Imagemagick(转换:像素不是真实的)

时间:2016-01-07 07:46:21

标签: imagemagick imagemagick-convert

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

我在 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.

2 个答案:

答案 0 :(得分: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吗?

答案 1 :(得分:0)

没有人能回答为什么会发生这种情况,但大多数人都同意有一种更好的方法,其中一些不产生任何错误。这似乎与在链中的某个点之后使用from sklearn.svm import LinearSVC from sklearn.svm import SVC svm1 = LinearSVC() # performs the best, similar to logistic regression results which is expected svm2 = LinearSVC(class_weight="auto") # performs somewhat worse than svm1 svm3 = SVC(kernel='rbf', random_state=0, C=1.0, cache_size=4000, class_weight='balanced') # performs way worse than svm1; takes the longest processing time svm4 = SVC(kernel='rbf', random_state=0, C=1.0, cache_size=4000) # this is the WORST of all, the classifier simply picks the majority class 请求有关。

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

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

感谢ImageMagick论坛中的Fred结束。