Làm thế nào để tôi làm cho thiết bị đầu cuối của tôi hiển thị hình ảnh đồ họa?


146

Đây là một mockup nhanh chóng tôi sao chép và dán cùng nhau. Tôi tưởng tượng điều này là siêu mát mẻ và hữu ích.

Có một cái gì đó như thế này đã tồn tại?

http://imgur.com/Z3DbS


5
Tôi luôn luôn chỉ sử dụng feh! Tôi biết nó không ở trong nhà ga, nhưng nó hoạt động.
dylnmc

Terminal không dành cho đồ họa, nó chỉ có thể hiển thị các ký tự unicode và thực hiện một số màu. Điều tốt nhất bạn có thể nhận được là nghệ thuật ASCII.
Ben

Tôi thích sử dụng thiết bị đầu cuối cho đồ họa với itermplot , không may là macOS.
miku

Có phải câu hỏi này được thúc đẩy bởi hình ảnh bia nhỏ trong Homebrew? Đó là một biểu tượng cảm xúc.
Ekevoo

Nếu bạn đang ở trên máy chủ Ubuntu đang cố xem chúng trên máy Mac, thì nó hoạt động rất tuyệt: unix.stackexchange.com/a/457076/7000
Sridhar Sarnobat

Câu trả lời:


48

Cập nhật 2018-12-31

Tất cả xung quanh trình giả lập thiết bị đầu cuối tuyệt vời kitty có icatlệnh hiển thị hình ảnh (không hoạt động trong tmux). Kitty cũng cho phép xem trước hình ảnh trong ranger (trình quản lý tệp thiết bị đầu cuối), đây là phương pháp tôi hiện đang sử dụng thường xuyên nhất (hoạt động trong tmux).


1. w3m

Mặc dù mục đích chính w3mlà cung cấp trình duyệt web trong bàn điều khiển, nó cũng có thể được sử dụng để xem hình ảnh trong thiết bị đầu cuối. Các gói có liên quan để cài đặt là w3mw3m-img(ít nhất là trên Ubuntu). Sau đó, bạn cần phải vô hiệu hóa trình xem ảnh bên ngoài bằng cách chuyển qua -o ext_image_viewer=0hoặc vào menu tùy chọn ('o') bên trong w3mvà tắt xem hình ảnh bên ngoài.

Bây giờ, gõ w3m <image_name>sẽ hiển thị hình ảnh trong thiết bị đầu cuối. w3msẽ sử dụng toàn bộ cửa sổ terminal, vì vậy bạn không thể thấy các lệnh trước đó cho đến khi thoát w3m(nghĩ less, không cat). Lưu ý rằng nếu hình ảnh lớn để vừa với cửa sổ đầu cuối, nó vẫn sẽ được mở ra bên ngoài (trong hình ảnh đối với tôi). Cũng lưu ý rằng mặc dù tôi đã đọc nhiều nơi mà w3mhình ảnh nội tuyến sẽ không hoạt động gnome-terminal, nhưng nó vẫn hoạt động tốt với tôi. Có một chút khó chịu khi bạn phải gõ qhai lần để đóng hình ảnh đầu tiên và sau đó w3m.

2. Thuật ngữ

tycatlà một phần terminologyvà hiển thị hình ảnh như cathiển thị các tệp văn bản và giống như imgcatcác tác phẩm cho iTerm2 trên OS X.

3. libsixel + mlterm / xterm

Cài đặt libsixel-binvà bất kỳ thiết bị đầu cuối tương thích nào (ví dụ được đề cập trong phần 'Yêu cầu' của readme này , ví dụ mltermhoặc xtermđược biên dịch với các cờ bên phải và bạn có thể xem hình ảnh bằng img2sixellệnh. Cả hai gói này đều có sẵn trong repos Ubuntu.

4. FIM

Sau đó, có FIM là phiên bản cải tiến của fbi. Trang chủ nói rằng nó có thể hiển thị hình ảnh không chỉ với bộ đệm khung mà còn với X. Tuy nhiên, nó sẽ không cài đặt cho tôi. Chỉnh sửa Tôi đã chạy nó bằng cách tải xuống phiên bản 0,5 thân, chạy ./configure --disable-exifvà sau đó tạm thời xóa anaconda(phân phối python) khỏi đường dẫn của tôi vì nó gây ra xung đột với libpngtrước khi chạy makesudo checkinstall(bạn cần phải viết số phiên bản theo cách thủ công checkinstall, nhưng nó giúp dễ dàng hơn để loại bỏ hơn make install). Tuy nhiên, hình ảnh vẫn được hiển thị trong một cửa sổ riêng biệt, mặc dù giống như fbibạn không cần phải chạy X, điều này thật tuyệt.

5. jupyter-qtconsole

Bạn cũng có thể sáng tạo và sử dụng jupyter-qtconsole làm bảng điều khiển hệ thống của mình, định cấu hình nó để hiển thị các ô nội tuyến ( %matplotlib inline) và sau đó hiển thị hình ảnh bằng matplotlib =)

6. feh

fehđang sử dụng X để hiển thị hình ảnh, nhưng feh -xbật chúng lên trong một cửa sổ không viền có thể được đóng lại nhanh chóng bằng qhoặc x. Mặc dù hình ảnh không được hiển thị trong thiết bị đầu cuối mỗi lần nói, tôi nghĩ rằng nó đáng được đề cập vì đó là cách ít xâm phạm nhất mà tôi đã tìm thấy cho đến nay và những gì tôi đang sử dụng cho đến khi gnome-terminalimgcat/ tycattương đương.


w3m đang sử dụng caca-utils vì vậy sẽ tốt hơn nếu chỉ sử dụng trực tiếp (cacaview e.jpg)
user1133275

65

Có lẽ caca là những gì bạn muốn. Đối với hình ảnh :

sudo apt-get install caca-utils
cacaview /PATH/TO/image.jpg

Hãy chắc chắn rằng cửa sổ đầu cuối của bạn đủ lớn.

Ví dụ, đây là cách hình ảnh này được hiển thị trong cacaview:

Ảnh chụp màn hình

Đôi khi tôi đã sử dụng nó để giải trí khi xem video dưới dạng ASCII trong mplayer :) Giống như thế này:

mplayer -vo caca /PATH/TO/video.mpg

6
Rất hữu ích - một lệnh từ caca-utils sẽ hiển thị hình ảnh nội tuyến trong thiết bị đầu cuối làimg2txt
Wilf

7
Hiện tại có một người chơi mới trên sân: github.com/ichinaski/pxl --- Trong một thử nghiệm nhanh, hình ảnh trông đẹp hơn trong cacaview. (Tôi muốn thêm câu trả lời mới, nhưng trang web đã không cho phép tôi (?))
user569825

" Xem video dưới dạng ASCII " Nhưng ... tại sao?
Derek 朕 會

4
"watch videos as ASCII" But... why? bởi vì bạn muốn? bởi vì bạn cần xem lén video và điều duy nhất bạn có là thiết bị đầu cuối? Bởi vì nếu bạn không cần thứ gì đó thì KHÔNG có nghĩa là người khác làm theo.
Marcin Orleansowski

1
mpvcó đầu ra tct (khi được sử dụng với --quiet) hiển thị phương tiện trong thiết bị đầu cuối với chất lượng tương đương pxl.
dsstorefile1

38

Tôi đã viết một công cụ C ++ nhỏ để chuyển đổi hình ảnh thành mã điều khiển ANSI RGB và các ký tự đồ họa khối Unicode cho các thiết bị đầu cuối hiện đại hỗ trợ các tính năng này:  https://github.com/stefanhaustein/TerminalImageViewer

Cài đặt:

git clone https://github.com/stefanhaustein/TerminalImageViewer.git
cd TerminalImageViewer/src/main/cpp
make
sudo make install

Sử dụng:

tiv <image(s)>

Chỉnh sửa : Thay đổi liên kết / hướng dẫn đến kho lưu trữ chính; sử dụng thêm.

Ví dụ:

TerminalImageViewer


2
Cái này nhìn rất đẹp! Nhưng đó là Java hay C ++?
Andrea Lazzarotto

3
Nó từng là Java nhưng sự cần thiết của JVM cho tác vụ đơn giản này đã làm tôi khó chịu, vì vậy tôi đã chuyển nó sang C ++ (ảnh chụp màn hình vẫn hiển thị lệnh java)
Stefan Haustein

4
Cách tốt hơn so với cacaview!
Piotr Dabkowski

1
Đây là một công cụ tuyệt vời. Chắc chắn là chậm hơn, nhưng tốt hơn nhiều so với caca. Có sự giảm chất lượng nào khi sử dụng "chế độ 256 bit" không? (vì tôi phải làm, chế độ bình thường bị rối)
phil294

2
Kết quả rất tốt! Cảm ơn ! Rất hữu ích với ssh khi không có máy chủ x có sẵn!
Arnaud De Broissia

33

Tôi đã thực hiện một hàm shell một dòng rất nhanh, đơn giản để giải quyết câu hỏi ban đầu chính xác theo yêu cầu trong các mockup. Lưu ý các ảnh chụp màn hình dưới đây là hình ảnh thực tế, không phải mockup.

function lsix() { montage -tile 7x1 -label %f -background black -fill white "$@" gif:- | convert - -colors 16 sixel:-; }

Ảnh chụp màn hình của việc sử dụng lệnh lsix

Điều kiện tiên quyết là tối thiểu: xterm và ImageMagick ( apt-get install xterm imagemagick). Xterm của bạn phải ở chế độ vt340, bạn có thể đặt trong ~/.Xresourceshoặc từ dòng lệnh ( xterm -ti vt340).

Hạn chế: Chỉ có 16 màu được sử dụng trên tất cả các hình ảnh được hiển thị. Điều đó có nghĩa là, một hình ảnh có thể trông đẹp hơn khi tự mình xem. (Xem bên dưới).

Ảnh chụp màn hình hiển thị giới hạn 16 màu

CẬP NHẬT

Mặc dù câu trả lời trên của tôi vẫn đúng, tôi đã tạo một tập lệnh shell thậm chí còn tốt hơn để có thể thực hiện một 'hình ảnh' trực tiếp vào một thiết bị đầu cuối. Có tất cả các loại cải tiến tôi đã thêm vào để làm cho hình ảnh đẹp hơn (nhiều màu sắc hơn, hướng alpha phù hợp, định hướng JPEG, xử lý nhiều hình ảnh, bố cục ô nhỏ gọn, ...). Đây vẫn là một chương trình khá nhỏ, nhưng tôi cho rằng mọi người có thể muốn tùy chỉnh nó, vì vậy tôi đã đưa nó lên github: https://github.com/hackerb9/lsix .


30

Bạn không thể làm như vậy trong cửa sổ đầu cuối, nhưng bạn có thể làm như vậy trong bảng điều khiển Linux bằng cách sử dụng fbi. Bạn cần một bộ đệm khung để cho phép nó hoạt động:

sudo apt-get install fbi

Chuyển đến bảng điều khiển Linux (sử dụng Ctrl+ Alt+ F1) và nhậpfbi <filename>

Nó sẽ hiển thị hình ảnh của bạn.


5
Bạn có ý nghĩa gì bởi "thiết bị đầu cuối" so với "tty"? Không phải họ giống nhau sao? Askubfox.com/questions/506510/ trộm
Wernight 10/07/2015

6
Không làm việc cho tôi. Nhưng công cụ "caca" đã làm việc. sử dụng "DejaVu Sans Mono-16", pixelsize = 16,67 file = / usr / share / fonts / truetype / DejaVu / DejaVuSansMono.ttf ioctl VT_GETSTATE: ioctl không phù hợp cho thiết bị (không phải là một linux console?)
Felipe

3
@Wernight Ctrl + Alt + F1 / F2 / F3 cung cấp cho bạn một tty dưới ubfox (Ctrl + Alt + F8 để lấy lại).
joelostblom

1
Ngoài ra còn có FIM là phiên bản cải tiến của fbi. Trang chủ nói rằng nó có thể hiển thị hình ảnh không chỉ với bộ đệm khung mà còn với X. Tuy nhiên, nó sẽ không cài đặt cho tôi.
joelostblom

1
Tin tốt iTerm2 v3 có thể hiển thị hình ảnh kiểm tra nội tuyến iterm2.com/images.html
AB

20

Một cách khác là thuật ngữ:

nhập mô tả hình ảnh ở đây https://www.youtube.com/watch?feature=player_embedded&v=ibPziLRGvkg

Bạn có thể cài đặt nó trên Ubuntu bằng cách thêm kho lưu trữ enlightenment-git :

sudo add-apt-repository ppa:enlightenment-git/ppa
sudo apt-get update && sudo apt-get install terminology

Hoặc trong các bản phát hành Ubuntu gần đây> = Vivid (15.04), nó có thể được tìm nạp từ kho chính thức.

sudo apt-get install terminology

Để xem hình ảnh, nhập tycat IMAGENAMEvà để xem danh sách hình ảnh, nhập tyls -m.


5
tycatđể hiển thị một hình ảnh nội tuyến và tyls -mđể hiển thị hình thu nhỏ kích thước trung bình trong một thư mục.
joelostblom

sudo add-apt-repository ppa: hannes-janetzek / enlightenment-svn không hoạt động
Gucho Ca

Tôi đã cập nhật câu trả lời để chỉ ra ppa giác ngộ gần đây hơn
Javier López

1
@chilicuil terminologynằm trong kho Ubuntu chính thức , không cần PPA.
mèo

@cat câu trả lời ban đầu được viết trước khi phát hành sinh động và tại thời điểm đó thuật ngữ không có sẵn, ppa khai sáng vẫn có các gói chính xác / đáng tin cậy và các phiên bản thuật ngữ cập nhật hơn. Tuy nhiên, có thể chỉnh sửa câu trả lời để chỉ ra các phiên bản thuật ngữ đóng băng có sẵn trong các bản phát hành Ubuntu gần đây sẽ hữu ích.
Javier López

12

Thực sự có một dự án như vậy có tên TermKit , nếu bạn muốn thử nghiệm nó - hãy xem http://blog.easytech.com.ar/2011/05/21/playing-with-termkit-with-chrome/ nhưng nó khá chưa hoàn thành (vì dường như bạn có máy Mac, bạn nên thử phiên bản Mac vì nó là "bản gốc")

Vì vậy, có, đó là một ý tưởng đáng để khám phá, tuy nhiên - việc chuyển đổi giữa chế độ chỉ có đồ họa và văn bản phải nhanh chóng vì tôi không luôn cần hình ảnh được xem. Ngoài ra - nó cần phải tương thích hoàn toàn với Vim ..


Tôi đã đọc về dự án này một lần trước đây trên Slashdot . Âm thanh hấp dẫn! Quá tệ, bạn cần Google Chrome để sử dụng nó ... tốt, được thôi, sẽ không quá tệ nếu bạn sử dụng Chrome để bắt đầu, nhưng có vẻ như đó là một sự phụ thuộc không cần thiết.
Christopher Kyle Horton

@ WarriorIng64 Yeah, tôi nó có thể có tác dụng nếu bạn hack một chút với WebKit Qt của - nhưng may mắn thay chúng ta có chromium-browsertrong Repos, do đó nó khá dễ dàng để cài đặt một cái gì đó Chromelike - Tôi đã không thực sự cố gắng TermKit trên máy tính của tôi (w / Chromium đã cài đặt, nhưng sử dụng Fx là chính) vì tôi khá phụ thuộc vào Vim và thực sự không thể sử dụng một thiết bị đầu cuối sẽ không cung cấp cho tôi trình soạn thảo văn bản yêu quý của tôi;)
sakjur

8

Điều này không tồn tại; gnome-terminalchỉ có khả năng văn bản tốt nghiệp, ít nhất là theo như tôi biết.

Tuy nhiên, bạn có thể gọi trình xem ảnh từ dòng lệnh để xem ảnh của bạn trong một thư mục cụ thể. Vì vậy, tắt mockup của bạn ở trên cho thấy bạn liệt kê tất cả các ảnh .jpg trong thư mục hiện tại, bạn có thể sử dụng Eye of Gnome (trình xem ảnh mặc định của Ubuntu) từ dòng lệnh cho một thứ tương tự:

eog *.jpg &

Lưu ý rằng cửa sổ xuất hiện sẽ chỉ hiển thị một hình ảnh tại một thời điểm, mặc dù bạn có thể sử dụng các nút mũi tên được cung cấp để xoay vòng giữa chúng.


1
nếu chạy từ thiết bị đầu cuối, eog *.jpg & disowntốt hơn là nếu không, EOG sẽ có khả năng thoát khi thiết bị đầu cuối đóng lại. NB Tôi muốn EOG vẫn là trình xem ảnh defualt của Ubuntu - shotwell là tốt, nhưng cố gắng index 30GB của tôi + hình ảnh .... và là chậm chạp và khó chịu nào
Wilf

Tất cả các câu trả lời trước chứng minh bài này sai.
Arnaud De Broissia

7

Tôi đã viết một công cụ để làm điều này. Tôi đặt tên của tôi Hiển thị hình ảnh trong Terminal ( siit). Nó giả định rằng bạn có một thiết bị đầu cuối 256 màu và hỗ trợ UTF8, và nó được viết bằng perl.

Tôi thả nó trong của tôi ~/bin. Nó giả định rằng bạn có Image :: Magick, Term :: Size, Getopt :: Long and Time: HiRes, tất cả sẽ có sẵn trong kho của distro hoặc CPAN.

Ý định của tôi là ssh vào nhà tôi và nhanh chóng xem hình ảnh mà không khởi chạy màn hình trên X. Script theo chiều rộng / chiều cao phù hợp cho thiết bị đầu cuối mà bạn đang ở. Tôi đã sử dụng các ký tự UTF8 để tăng gấp đôi độ phân giải dọc của thiết bị đầu cuối của bạn, thực sự giúp rõ ràng. YMMV.

Mẫu chụp tại đây

Mã nguồn ở đây


1
Đó là "siit", không phải "shit" (nghiêm túc ....)
Star OS

Ban đầu nó được gọi là termpeg, nhưng quá khó để nhớ và không hoàn thành tốt tab. Bên cạnh đó, "mã này là một mảnh siit" thậm chí không có ý nghĩa.
Tom

2
Liên kết mã nguồn không hoạt động với tôi, nhưng tôi đã tìm thấy một phiên bản trên internet, đây là một tấm gương: gist.github.com/certik/4336299de10f400ee49943bd9f8a8ba6
Ondřej Čertík

Bất kỳ cơ hội bạn có thể cung cấp một phiên bản đi kèm? Tôi luôn bỏ cuộc khi phải cài đặt thư viện.
Sridhar Sarnobat

6

Ngoài câu trả lời của Joel , trình quản lý tệp thiết bị đầu cuối Rangerw3mimgdisplayphần mở rộng có thể hiển thị hình ảnh với đầy đủ màu sắc và cũng hỗ trợ "xem trước nghệ thuật ASCII oldschool". Đây là cách bạn có thể kích hoạt nó. Đây có thể không phải là điều chính xác mà bạn đang tìm kiếm mà là một cách để xem trước hình ảnh trong thiết bị đầu cuối.

nhập mô tả hình ảnh ở đây


4

Một công cụ khác là catimg , mặc dù không có gói sẵn sàng cho Ubuntu. Nó không thực sự xem hình ảnh mà biến nó thành các ký tự màu.

nhập mô tả hình ảnh ở đây


3

Dưới đây là một số giải pháp trong node.js(Hướng dẫn cài đặt tại đây ).

  1. ống hình

  2. hình ảnh

Để cài đặt một trong hai, loại npm install -g <package_name>package_namelà một trong hai picture-tubehoặc imaging.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.