为什么用我编写的ImageMagick批处理脚本将此SVG转换为ICO会产生损坏的图像?

时间:2019-04-18 05:26:26

标签: bash image image-processing imagemagick ico

好的,我一直在搜索这个主题,但似乎无法在该网站上找到一个好的答案,因此请在阅读全文之前将其标记为重复或其他内容。

我正在编写一些个人的zsh实用程序,以使我可以轻松地将过程图标批处理为各种不同的格式。

这是imagemagick convert实用程序的版本输出信息

┌─  ~/LinuxSVGsets/Dex_KDE/actions                                                                                          
└─➤ convert -version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP 
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib

这是我当前的脚本

function svg2icoBatch ()  {
for fname in $1/**/*.svg
do

#take off the svg
pathAndName=${fname%.svg}

#take off the path from the file name
iconname=${pathAndName##*/}

#take off the file name from the path
iconpath=$pathAndName:h

#create new folder for converted icons to be placed in
mkdir -p ${iconpath}/ico-converted/

 convert $fname -background none -density 256 -define icon:auto-resize=16,32,48,64,256 ${iconpath}/ico-converted/${iconname}.ico
echo "\033[1;33m converted ${iconname}.svg to ico\n \033[0m"
done

}

生成的ico看起来像垃圾:

enter image description here

当我尝试在在线ico查看器上打开它们以确保这不仅仅是Ubuntu中的图像预览器实用程序的怪异时,我看到该图标的超级模糊版本,其中不包括其他尺寸。我不知道我在做什么错。 enter image description here

有任何线索吗?

0 个答案:

没有答案