2016-01-07 44 views
0

我有一個命令行輸出爲目的的圖像,但使我對轉換完成時的錯誤:像素是不是正宗的。爲什麼會發生這種情況?ImageMagick的(轉換:像素不是正品)

我對OSX埃爾卡皮坦使用的ImageMagick 6.9.2-8 Q16 x86_64的2015年12月6日在詞條2

命令/輸出/錯誤:

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. 

回答

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

+0

謝謝馬克。這是正確的順序和操作。似乎與使用「克隆」有關係,但不確定究竟如何。刪除是在我檢查索引圖像後生成的,並且當前刪除了輸出所需的內容。不過,我喜歡你的最後一條刪除語句的建議。 –

0

沒有人能回答爲什麼這可能已經發生,但最能同意有這樣做的更好的方法,其中的幾個不產生錯誤。這似乎與在鏈中的某個點之後使用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 

由於Fred了在ImageMagick的論壇。