برنامج C ++ الصغير لعرض الصور في محطة (حديثة) باستخدام رموز RGB ANSI وأحرف الرسومات Unicode Block.
هناك العديد من الأدوات المماثلة (مثل timg ) التي تستخدم حرف نصف كتلة Unicode لعرض اثنين من بكسل 24bit لكل خلية حرف. يعزز هذا البرنامج الدقة عن طريق تعيين خلايا 4x8 بكسل إلى أحرف Unicode مختلفة ، باستخدام الخوارزمية التالية لكل خلية 4 × 8 بكسل من الصورة (التي يحتمل أن تكون متدنية):
انظر الفرق عن طريق تعطيل هذا التحسين باستخدام خيار -0 . أو مجرد إلقاء نظرة على صورة المقارنة في نهاية هذا النص.
tiv [options] < filename > [ < filename > ...] سوف القذيفة توسيع أحرف البرية. بشكل افتراضي ، سيتم عرض الصور المصغرة وأسماء الملفات في حالة توفير أكثر من صورة واحدة. للحصول على قائمة بالخيارات ، قم بتشغيل الأمر دون أي معلمات أو مع --help .
SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-laterمهم
تتطلب جميع طرق التثبيت تثبيت ImageMagick ، التبعية المطلوبة. يجب على معظم مديري الحزم تثبيته تلقائيًا.
Makefile لدينا حاليا يدعم فقط g++ . يجب أن يكون من الممكن تجميع tiv يدويًا باستخدام أي من المترجمين المفضلين لديك والذين يدعمون رؤوس C ++ 17 و UNIX ( ioctl.h و sysexits.h ، على وجه التحديد) أو windows.h . PRS موضع ترحيب.
git clone https://github.com/stefanhaustein/TerminalImageViewer.git
cd TerminalImageViewer/src
make
# To move the tiv binary into your PATH (hopefully), also do
sudo make install من فضلك لا تنسَ تثبيت ImageMagick ... على Linux المستندة إلى Debian عبر sudo apt install imagemagick وعلى MacOS عبر brew install imagemagick .
brew install tivنظرًا لأن Apple Shell الأصلي يدعم فقط 256 وضعًا للألوان (-256) ويبدو أن هناك بعض التباعد الإضافي للخطوط ، مما يشوه الصورة ، نوصي أيضًا بتثبيت iterm2:
brew install --cask iterm2
make LDLIBS=-lstdc++fs (ولكنها تكسر أيضًا macos) ، انظر #103يمكن استخدام TIV كواجهة برمجة تطبيقات. لذلك إذا كنت ترغب دائمًا في تشغيل FPS المفضلة لديك في قذيفة ، فهذه هي الفرصة.
يتم عزل جميع التعليمات البرمجية المفيدة كمكتبة في TIV_LIB.H و TIV_LIB.CC.
نقطة الدخول الرئيسية هي
CharData findCharData (GetPixelFunction get_pixel, int x0, int y0, const int &flags)تأخذ المكالمة وظيفة STD :: تسمح لرمز TIV بطلب وحدات البكسل من FrameBuffer.
من هذا الإطار ، ستستفسر المكالمة من وحدات البكسل لمستطيل 4 × 8 بكسل ، حيث يحدد X0 و Y0 الزاوية العلوية اليسرى. تبحث المكالمة عن أفضل حرف وألوان أحادية الرسم لتقريب هذه الخلية من الصورة ، وإرجاعها في بنية chardata.
يسعدني قبول مساهمات مفيدة بموجب ترخيص Apache 2.0 ، لكن ...
تم تصوير معظم الأمثلة مع إصدار Java من هذا البرنامج ، والذي ينبغي أن يكون له ناتج مكافئ ولكن أبطأ من قبل Millenia في سنوات وحدة المعالجة المركزية.
إذا كانت هناك صور متعددة تتطابق مع مواصفات اسم الملف ، يتم عرض الصور المصغرة.
على سبيل المثال أدناه ، تم إنشاء الصورة العلوية مع تعطيل تحسين الأحرف عبر الخيار -0 .
أنت حر في استخدام هذا الرمز إما تحت GPL (3 أو أحدث) أو الإصدار 2.0 من ترخيص Apache. نقوم بتضمين مكتبة CIMG ، التي يتم ترخيصها بموجب Cecill 2.0 (بالقرب من GPL ومتوافق معها) أو [Cecill-C] (https://spdx.org/licenses/cecill-c) (بالقرب من LGPL ومتوافق مع Apache).