使用Imagemagick转储灰度图像的像素

问题描述 投票:0回答:1

我有一个示例灰度文件

z-gray-1x3.png
,由单行三个像素组成,灰度值为 0x00、0x7f、0xff:

1x3 grayscale image

我尝试使用 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 grayscale hexdump
1个回答
0
投票

要使用 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
© www.soinside.com 2019 - 2024. All rights reserved.