convert
từ ImageMagick có thể làm điều đó.
Ví dụ: thang độ xám 2x3 8 bit:
printf '\x00\xFF\x88\xFF\x00\xFF' > f
Sau đó:
convert -depth 8 -size 3x2+0 gray:f out.png
Lệnh giải thích:
-depth 8
: mỗi màu có 8 bit
-size 2x3+0
: 2x3
hình ảnh. +0
có nghĩa là bắt đầu ở offset 0 trong tệp. Nếu có các tiêu đề siêu dữ liệu, bạn có thể bỏ qua chúng với phần bù.
gray:f
: tệp đầu vào là f
và định dạng gray
, như được định nghĩa tại http://www.imagemagick.org/script/formats.php Ký hiệu kỳ lạ này được sử dụng vì ImageMagick thường xác định định dạng từ tiện ích mở rộng, nhưng ở đây không có tiện ích mở rộng .
Vấn đề bây giờ là làm thế nào để xem đầu ra. Một trực tiếp eog
:
eog out.png
không tốt lắm vì hình ảnh quá nhỏ và nếu bạn phóng to nhiều thì eog
sử dụng thuật toán hiển thị trộn lẫn các pixel, tốt hơn cho hầu hết các hình ảnh, nhưng không phải trong trường hợp của chúng tôi. Tôi tìm thấy hai khả năng:
gimp out.png
. Trình chỉnh sửa hình ảnh phải hiển thị từng pixel.
convert out.png -scale 300x200 out2.png
. -scale
là cần thiết thay vì -resize
, theo mặc định -resize
mixels pixel giống như nhiều eog
.
Đầu ra:

Ví dụ RGB:
printf '\xFF\x00\x00\x00\xFF\x00\x00\x00\xFF' > f
convert -depth 8 -size 3x1+0 rgb:f out.png

Đã thử nghiệm trên Ubuntu 16.04, ImageMagick 6.8.9.
hd
để định dạng. Sau đó, bạn yêu cầu để xem một hình ảnh. Nếu đó là một hình ảnh, thì nó sẽ ở định dạng hình ảnh (như bmp) ít nhất sẽ có một tiêu đề xác định định dạng, chiều rộng, chiều cao, độ sâu màu và cũng có thể có bảng màu đính kèm.