我正在尝试生成具有this image中的背景和图案的图像。
当前我有此命令
magick convert \
\( \
-size 512x512 \
-define "gradient:vector=0,0 0,720" "gradient:#5DA2C2-#C70AA0" \
\) \
\( \
-size 4x4 xc:white -alpha transparent \
-channel alpha -fx "(1-min(1,(j+1)%2)) * 0.1" \
-write mpr:lines1 +delete -size 512x512 tile:mpr:lines1 \
\) -composite \
\( \
-size 4x4 xc:white -alpha transparent \
-channel alpha -fx "(1-min(1,j%4)) * 0.25" \
-write mpr:lines2 +delete -size 512x512 tile:mpr:lines2 \
\) -composite \
wallpaper.png
产生this。您可能会看到模式为broken(尤其是在底部)。
如果我将图案大小设置为64x64,问题就消失了,但这并不是真正的解决方法。
我在做什么错?如何在不更改图案大小的情况下解决该问题?
完整的magick --version
(convert --version
)输出:
Version: ImageMagick 7.0.8-23 Q16 x86_64 2019-01-04 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenCL OpenMP
Delegates (built-in): bzlib cairo fontconfig freetype gslib heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raw rsvg tiff webp wmf x xml zlib
各行之间是否总是在同一行出现这些行
是的,对于每个相同的参数集,结果都是相同的(但对于稍微不同的参数集(例如,更改分辨率或从花括号中删除写命令),可能会有所不同)。
作为测试,请尝试保存到TIFF而不是PNG。那行得通吗 还是不?
更改输出格式始终会产生完全相同的结果。我尝试过tiff,gif,jpeg。 (使用jpeg时,这些线条明显有点模糊,但是结果看起来几乎相同)。这也适用于fmw42的命令变体。
您是否已在ImageMagick中安装了OpenMP。还禁用OpenCL,看看是否有帮助。
未安装OpenMP,但我拥有的IM版本支持它。
通过环境变量MAGICK_OCL_DEVICE=OFF
禁用OpenCL不会更改结果。从tag = 7.0.8-23和从master重新编译带有和不带有OpenCL和OpenMP的IM-都是一样的...
您在tmp4.png中看到不可见的东西吗?
是的,如果我magick tmp4.png -alpha remove tmp4-opaque.png
答案 0 :(得分:1)
您的命令在ImageMagick 7.0.8.23 Q16 Mac OSX以及libpng 1.6.35上对我来说很好用。但是在IM 7中,请使用magick,而不要使用magick convert和not convert,否则您将获得IM 6行为。检查您的libpng版本,并在必要时进行升级。您的ImageMagick的版本和日期是什么,在什么平台上使用?
magick \
\( \
-size 512x512 \
-define gradient:vector="0,0 0,720" gradient:"#5DA2C2-#C70AA0" +write tmp1.png \
\) \
\( \
-size 4x4 xc:white -alpha transparent +write tmp2.png \
-channel alpha -fx "(1-min(1,(j+1)%2)) * 0.1" +write tmp3.png \
-write mpr:lines1 +delete -size 512x512 tile:mpr:lines1 +write tmp4.png \
\) -composite \
\( \
-size 4x4 xc:white -alpha transparent \
-channel alpha -fx "(1-min(1,j%4)) * 0.25" \
-write mpr:lines2 +delete -size 512x512 tile:mpr:lines2 \
\) -composite \
wallpaper.png
检查此内容,看看是否存在相同的问题。但我看不到任何虚线。