复制像素颜色 (ImageMagick)
Copy a pixel color (ImageMagick)
如何指定从给定像素到填充的颜色?
convert -gravity center -background rgb\(222,97,56\) -fill "#%[hex:u.p{10,10}/2]" -size 120x60 -pointsize 42 label:Test -depth 8 out.png
错误:转换:无法打开图像'#%[hex:u.p{10,10}/2]':没有那个文件或目录
-format '%[hex:p{10,10}/2]\n' info:
returns "6F311C" 和 -fill "#6F311C" 虽然有效。
更新答案
如果你想使用 label:
而不是 -annotate
,试试这个:
magick -gravity center -size 100x100 xc:yellow \
-fill black -draw "rectangle 10,10 100,100" \
-fill '%[pixel:p{0,0}]' -background magenta -size 100x80 -pointsize 42 label:"Label" -append result.png
原答案
我想你想要这个:
magick -gravity center -size 100x100 xc:yellow \
-fill black -draw "rectangle 10,10 100,100" \
-fill '%[pixel:p{0,0}]' -annotate 0 "text" result.png
前两行创建一个黄色 canvas,黑色矩形覆盖 bottom-right 部分,留下 top-left 像素黄色。然后从像素 (0,0) 获取填充颜色并用于文本注释。
为避免 Imagemagick 在不同 OS 平台上出现问题,您应该使用双引号。
以下应 return 蓝色的十六进制值:
magick xc:red xc:blue xc:green1 +append -depth 8 -format "%[hex:u.p{1,0}]" info:
0000FFF
如果你真的要做除法,那么
magick xc:red xc:blue xc:green1 +append -depth 8 -format "%[hex:u.p{1,0}/2]" info:
000080
所以要将其放入标签中,
# create image
magick xc:red xc:blue xc:green1 +append rgb.png
# put color into label
magick rgb.png -set label "%[hex:u.p{1,0}/2]" rgb.png
# check label
magick rgb.png -format "%l" info:
000080
以下内容适用于 Imagemagick 7。将 # 符号添加到您的十六进制命令中。
magick -size 120x60 -background "rgb(222,97,56)" -depth 8 -fill "#%[hex:u.p{10,10}/2]" -pointsize 42 -gravity center label:Test -depth 8 out.png
请注意,Imagemagick 7 的实现添加了 Imagemagick 6 中不可用的 in-line 计算。
如何指定从给定像素到填充的颜色?
convert -gravity center -background rgb\(222,97,56\) -fill "#%[hex:u.p{10,10}/2]" -size 120x60 -pointsize 42 label:Test -depth 8 out.png
错误:转换:无法打开图像'#%[hex:u.p{10,10}/2]':没有那个文件或目录
-format '%[hex:p{10,10}/2]\n' info:
returns "6F311C" 和 -fill "#6F311C" 虽然有效。
更新答案
如果你想使用 label:
而不是 -annotate
,试试这个:
magick -gravity center -size 100x100 xc:yellow \
-fill black -draw "rectangle 10,10 100,100" \
-fill '%[pixel:p{0,0}]' -background magenta -size 100x80 -pointsize 42 label:"Label" -append result.png
原答案
我想你想要这个:
magick -gravity center -size 100x100 xc:yellow \
-fill black -draw "rectangle 10,10 100,100" \
-fill '%[pixel:p{0,0}]' -annotate 0 "text" result.png
前两行创建一个黄色 canvas,黑色矩形覆盖 bottom-right 部分,留下 top-left 像素黄色。然后从像素 (0,0) 获取填充颜色并用于文本注释。
为避免 Imagemagick 在不同 OS 平台上出现问题,您应该使用双引号。
以下应 return 蓝色的十六进制值:
magick xc:red xc:blue xc:green1 +append -depth 8 -format "%[hex:u.p{1,0}]" info:
0000FFF
如果你真的要做除法,那么
magick xc:red xc:blue xc:green1 +append -depth 8 -format "%[hex:u.p{1,0}/2]" info:
000080
所以要将其放入标签中,
# create image
magick xc:red xc:blue xc:green1 +append rgb.png
# put color into label
magick rgb.png -set label "%[hex:u.p{1,0}/2]" rgb.png
# check label
magick rgb.png -format "%l" info:
000080
以下内容适用于 Imagemagick 7。将 # 符号添加到您的十六进制命令中。
magick -size 120x60 -background "rgb(222,97,56)" -depth 8 -fill "#%[hex:u.p{10,10}/2]" -pointsize 42 -gravity center label:Test -depth 8 out.png
请注意,Imagemagick 7 的实现添加了 Imagemagick 6 中不可用的 in-line 计算。