【问题标题】:Imagemagick (convert: pixels are not authentic)Imagemagick(转换:像素不真实)
【发布时间】:2016-01-07 07:46:21
【问题描述】:

我有一个命令行可以按预期输出图像,但在完成转换时出现错误:像素不真实。为什么会发生这种情况?

我在 OSX El Capitan 上的 Term2 中使用 ImageMagick 6.9.2-8 Q16 x86_64 2015-12-06

命令/输出/错误:

convert -verbose artwork.jpg -resize 1800x \
\( +clone -gravity center -background white -extent 2000x2000 \) \
\( -clone 1 displaceY.png -compose displace -define compose:args=0x5% -composite \)  \
\( -clone 2  -gravity west displaceX.png -compose displace -define compose:args=5x0% -composite \) \
-delete 0--2 \( +clone alpha.png -compose copy_opacity -composite \) -delete 0 out.png

artwork.jpg JPEG 2952x2124 2952x2124+0+0 8-bit sRGB 911KB 0.000u 0:00.000
displaceY.png PNG 2000x2000 2000x2000+0+0 8-bit sRGB 109KB 0.000u 0:00.000
displaceX.png PNG 2400x2400 2400x2400+0+0 8-bit sRGB 104KB 0.000u 0:00.000
alpha.png PNG 2000x2000 2000x2000+0+0 8-bit sRGB 63.9KB 0.000u 0:00.000
artwork.jpg=>out.png JPEG 2952x2124=>2000x2000 2000x2000+0+0 8-bit sRGB 572KB 0.000u 0:00.000

convert: pixels are not authentic `artwork.jpg' @ error/cache.c/QueueAuthenticPixelCacheNexus/4017.

【问题讨论】:

    标签: imagemagick imagemagick-convert


    【解决方案1】:

    如果没有文件并且不知道您想要实现什么,很难进行调试,但我会说出我所看到的,也许这会有所帮助。以下是我认为您在各个层中拥有的内容:

    0 - artwork 1800px wide
    1 - artwork extended to 2000x2000
    2 - clone of (1)
    3 - clone of (2)
    

    然后我们来到最后一行......你删除了可疑的0--2,你的意思是0-2吗,因为0--2实际上是0,1。

    那么,在-delete 0--2 之后,您的图片列表中有什么意思,我的意思是,有多少张图片?我猜你的意思是还剩 1 个。

    然后你克隆它,你为什么这样做?您可以直接将不透明度复制到它上面,然后最后不需要-delete

    【讨论】:

    • 谢谢马克。那是正确的顺序和操作。似乎与clone 的使用有关,但还不确定具体如何。删除是在我检查索引图像并当前删除输出所需的内容之后进行的。不过,我喜欢你对最后一个删除语句的建议。
    【解决方案2】:

    没有人能回答为什么会发生这种情况,但大多数人都同意有更好的方法来做到这一点,其中一些不会产生错误。这似乎与在链中的某个点之后使用clone 请求有关。

    这里有两个命令可以解决这个问题并提供正确的输出图像:

    convert artwork.jpg +repage -thumbnail 1800x -gravity center -background white -extent 2000x2000 \
    -gravity northwest displaceY.png +repage -compose over -compose displace -define compose:args=0x5% -composite \
    -gravity northwest displaceX.png +repage -compose over -compose displace -define compose:args=5x0% -composite \
    -gravity center alpha.png -compose over -compose copy_opacity -composite final.png
    

    convert artwork.jpg +repage -thumbnail 1800x -gravity center -background white -extent 2000x2000 \
    -gravity northwest displaceX.png displaceY.png +repage -compose over -compose displace -define compose:args=0x5% -composite \
    -gravity center alpha.png -compose over -compose copy_opacity -composite final.png
    

    感谢 ImageMagick 论坛中的Fred

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 2021-09-18
      • 1970-01-01
      相关资源
      最近更新 更多