โปรแกรม C ++ ขนาดเล็กเพื่อแสดงภาพในเทอร์มินัล (ทันสมัย) โดยใช้รหัส RGB ANSI และอักขระกราฟิกบล็อก Unicode
มีเครื่องมือที่คล้ายคลึงกัน (เช่น timg ) ที่ใช้อักขระ Unicode ครึ่งบล็อกเพื่อแสดงสองพิกเซล 24 บิตต่อเซลล์อักขระ โปรแกรมนี้ช่วยเพิ่มความละเอียดโดยการแมปเซลล์ 4x8 พิกเซลกับอักขระ Unicode ที่แตกต่างกันโดยใช้อัลกอริทึมต่อไปนี้สำหรับแต่ละเซลล์ 4x8 พิกเซลของภาพ (อาจลดขนาด):
ดูความแตกต่างโดยปิดการใช้งานการเพิ่มประสิทธิภาพนี้โดยใช้ตัวเลือก -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เนื่องจากเชลล์แอปเปิ้ลดั้งเดิมรองรับ 256 โหมดสี (-256) และดูเหมือนว่าจะมีระยะห่างเส้นพิเศษบางส่วนบิดเบือนภาพเรายังแนะนำให้ติดตั้ง ITERM2:
brew install --cask iterm2
make LDLIBS=-lstdc++fs (แต่มันยังแบ่ง MacOS) ดู #103TIV สามารถใช้เป็น API ดังนั้นหากคุณต้องการเรียกใช้ FPS ที่คุณชื่นชอบในเปลือกหอยนี่เป็นโอกาส
รหัสทั้งหมดมีประโยชน์เป็นห้องสมุดถูกแยกใน tiv_lib.h และ tiv_lib.cc
จุดเริ่มต้นหลักคือ
CharData findCharData (GetPixelFunction get_pixel, int x0, int y0, const int &flags)การโทรใช้ฟังก์ชั่น std :: ที่อนุญาตให้รหัส TIV ขอพิกเซลจาก framebuffer ของคุณ
จาก FrameBuffer นี้การโทรจะสอบถามพิกเซลสำหรับสี่เหลี่ยม 4x8 พิกเซลโดยที่ X0 และ Y0 กำหนดมุมบนซ้าย การโทรค้นหาอักขระและสีของกราฟิก Unicode ที่ดีที่สุดเพื่อประมาณเซลล์นี้ของภาพและส่งคืนสิ่งเหล่านี้ใน chardata struct
ฉันยินดีที่จะยอมรับการมีส่วนร่วมที่เป็นประโยชน์ภายใต้ใบอนุญาต Apache 2.0 แต่ ...
ตัวอย่างส่วนใหญ่ถูกถ่ายด้วยเวอร์ชัน Java ของโปรแกรมนี้ซึ่งควรมีผลผลิตที่เทียบเท่า แต่ช้ากว่า Millenia ใน CPU ปี
หากภาพหลายภาพตรงกับข้อมูลจำเพาะชื่อไฟล์รูปขนาดย่อจะปรากฏขึ้น
สำหรับตัวอย่างด้านล่างภาพด้านบนถูกสร้างขึ้นด้วยการเพิ่มประสิทธิภาพตัวละครผ่านตัวเลือก -0
คุณมีอิสระที่จะใช้รหัสนี้ภายใต้ GPL (3 หรือใหม่กว่า) หรือเวอร์ชัน 2.0 ของใบอนุญาต Apache เรารวมไลบรารี CIMG ซึ่งได้รับใบอนุญาตภายใต้ Cecill 2.0 (ใกล้กับ GPL และเข้ากันได้กับมัน) หรือ [CECILL-C] (https://spdx.org/licenses/cecill-c) (ใกล้กับ LGPL และเข้ากันได้กับ Apache)