Ống STDOUT đến một hình ảnh?


1

Gần đây, tôi muốn chạy một lệnh đầu cuối như "git show & lt; hash & gt;" và lưu đầu ra vào một hình ảnh, tốt nhất là PNG.

Tôi đã googled nó khá nhiều và tìm thấy một số thủ thuật gọn gàng, với lệnh nhập đáng chú ý, nhưng không có gì đáng tin cậy có thể chụp STDOUT và lưu nó dưới dạng hình ảnh.

Vì vậy, tôi nghĩ rằng tôi sẽ yêu cầu bộ não tin tưởng ở đây. Bất cứ ai cũng có một giải pháp được thử nghiệm và xác minh cho Linux?


1
Để rõ ràng, bạn muốn nó hiển thị văn bản dưới dạng hình ảnh (vì vậy khi bạn nhìn vào bạn có thể đọc văn bản), phải không? Bởi vì câu trả lời cho điều đó có thể phức tạp hơn "Tôi muốn các byte ASCII / Unicode của văn bản trở thành byte của tệp hình ảnh, mặc dù nó sẽ tạo ra một hình ảnh trông giống như các pixel ngẫu nhiên / hỏng / rác" hoặc " Tôi muốn các byte ASCII / Unicode của văn bản được lưu trữ trong siêu dữ liệu hoặc một số trường ẩn của định dạng tệp hình ảnh ".
Spiff

Kết xuất đầu ra dưới dạng văn bản có thể đọc được, vâng. Giữ nguyên màu nếu có thể vì tôi đã đặt "force_color_prompt = yes" trong tệp .bashrc của mình, nhưng tôi có thể thử tạm thời lật cài đặt đó nếu nó sẽ tạo ra sự khác biệt.
rjh427

Câu trả lời:


2

Cách chuyển đổi văn bản thành hình ảnh đã được trả lời ở đây: https://stackoverflow.com/questions38 Câu trả lời đó cung cấp các biến thể khác nhau về cách thực hiện điều này với các công cụ ImageMagick.

Xin lưu ý: Điều này sẽ chỉ hoạt động đáng tin cậy nếu đầu ra của lệnh của bạn là văn bản thuần túy.
Nếu có bất kỳ loại định dạng ưa thích nào (như công cụ ncurses), kết quả có thể khá khó đoán.


Chuyển đổi, vâng. Tôi đã thử một vài thứ với điều đó, không thể khiến bất kỳ ai trong số họ làm việc cả. Có lẽ bởi vì tôi đã đặt "force_color_prompt = yes" trong tệp .bashrc của mình và điều định dạng ưa thích mà bạn đã đề cập.
rjh427

0

Câu trả lời một phần, liệt kê một số khả năng:

Có một số chương trình bạn có thể sử dụng để kết xuất văn bản thành hình ảnh, ví dụ:

  • convert từ ImageMagick / GraphicsMagick
  • pbmtext từ NetPBM, kết xuất thành Bitmap di động
  • paps, kết xuất với Postcript bằng Pango
  • enscript, ám chỉ đến Postcript

Nhưng việc chuyển đổi một định dạng khác sang PNG không phải là một vấn đề.

Trong số này, chỉ enscript hỗ trợ màu sắc thông qua "lối thoát đặc biệt". Đây không giống như thiết bị đầu cuối thoát, vì vậy bạn sẽ chuyển đổi chúng với awk / perl, v.v.

Một tùy chọn khác là hiển thị toàn bộ nội dung trong xterm và ảnh chụp màn hình.

Như bạn có thể thấy, tất cả những thứ này khá phức tạp, sẽ đòi hỏi nỗ lực không hề nhỏ để làm cho chúng hoạt động. Điều này không có gì đáng ngạc nhiên, vì về cơ bản, bạn muốn sao chép toàn bộ phần kết xuất của thiết bị đầu cuối của bạn.

Có thể dễ dàng hơn khi chỉ lưu trữ đầu ra và truy xuất nó trong một thiết bị đầu cuối khi bạn muốn xem xét nó.


Vì vậy, nó chắc chắn không tầm thường, như tôi đã nhận ra. Bitmap sẽ hoạt động nhưng không hấp dẫn vì chúng không bị nén. Lưu dưới dạng postcript có thể mang lại một số tùy chọn mong muốn, mục tiêu là bảo tồn git show & lt; hash & gt; đầu ra dưới dạng có thể được chia sẻ với người khác (nghĩ danh mục đầu tư). Hoặc có thể có một lựa chọn thậm chí còn tốt hơn mà tôi chưa nghĩ đến.
rjh427

Như tôi đã nói, định dạng cuối cùng không phải là vấn đề - bạn có thể tự do chuyển đổi từ PBM sang PNG hoặc từ Postcript sang PNG trong bước cuối cùng. Vấn đề chính là kết xuất văn bản với màu thoát. Bảo quản git show đầu ra có thể được thực hiện bằng cách chỉ lưu trữ nó trong một tập tin với git show > xxx hoặc là git show --pretty=blah > xxx. Nếu bạn cần nó cho một số loại sơ yếu lý lịch, chuyển đổi nó thành bất kỳ lệnh nào mà hệ thống xử lý văn bản của bạn cần sẽ dễ dàng hơn nhiều so với chuyển đổi nó thành một hình ảnh.
dirkt
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.