我有一个示例灰度文件
z-gray-1x3.png
,由单行三个像素组成,灰度值为 0x00、0x7f、0xff:
我尝试使用 imagemagick、hexdump、sed 和 tr 编写脚本,但得到的是 3 字节像素:
$ magick z-gray-1x3.png -depth 8 RGB:output.txt
$ hexdump -xv output.txt | sed -E 's/^[^ ]+//' | tr -d ' \n'; echo
01017f017f7fffff00ff
(字节
00
按 hexdump
填充到偶数位数。)
所需的输出将是
007f00ff
(包括填充)。有没有办法修改 imagemagick 命令来做到这一点?
要使用 ImageMagick 和其他一些工具实现灰度图像所需的
007f00ff
输出,您可以稍微修改您的方法。关键是确保输出格式正确,没有额外的字节。
# Convert the grayscale image to RGB and save it to output.txt
magick z-gray-1x3.png -depth 8 RGB:output.txt
# Use xxd to convert to hex, then format it
xxd -p output.txt | tr -d '\n' | sed 's/..$//' # Remove the last two bytes if it's padding