ImageMagick脚本失败,文件名或扩展名过长(-稀疏颜色)
问题 在我很短的脚本中,我遇到了一个问题,它有时会报告文件名或扩展名太长。根据脚本中的ImageMagick脚本失败,文件名或扩展名过长(-稀疏颜色),imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,问题 在我很短的脚本中,我遇到了一个问题,它有时会报告文件名或扩展名太长。根据脚本中的$image和$size值,此错误可能会发生,也可能不会发生 例如,下面的脚本使用从-保存并转换为“example3.png”的图像生成此错误 我确实在windows上使用版本:ImageMagick 7.0.10-62 Q16 x64,我不知道如何处理错误消息。。。你知道这里有什么问题吗 Powershell脚本 ##################### # Setup ##################
$image
和$size
值,此错误可能会发生,也可能不会发生
例如,下面的脚本使用从-保存并转换为“example3.png”的图像生成此错误
我确实在windows上使用版本:ImageMagick 7.0.10-62 Q16 x64,我不知道如何处理错误消息。。。你知道这里有什么问题吗
Powershell脚本
#####################
# Setup
#####################
$image = "./example3.png"
$out = "./result.png"
$outPalette = "./palette.png"
$size = 50
$fuzz = 50
$colors = 6
$resizedSize = "$($size)x$($size)`!"
$histogramSize = "$($size)x$($size)"
#####################
# Program
#####################
Write-Host ""
# 1) Scale + change depth + remove unwanted colors (b/w)
Write-Host "- Step 1..." -ForegroundColor Green
magick convert $image -scale $resizedSize -depth 8 `
-fuzz $fuzz -transparent black -transparent white `
$out
#2) create histogram with the help of the sparse colors
Write-Host "- Step 2..." -ForegroundColor Green
$dataHistogram = magick convert -size $histogramSize xc: -sparse-color voronoi ( magick convert $out sparse-color: ) +dither -colors $colors -depth 8 -format %c histogram:info:
# ... more ...
编辑:调整
- 将
替换为magick convert
magick
- 将
替换为$fuzz=50
$fuzz=“50%”
- 将
替换为$size=50
$size=100
magick convert$out sparse color:
)的结果如下所示:
# ImageMagick pixel enumeration: 100,100,255,srgba
0,0: (87,72,86,0) #57485600 srgba(87,72,86,0)
1,0: (105,81,91,0) #69515B00 srgba(105,81,91,0)
...
我不确定powershell发生了什么,但如果问题是命令行的长度,您可以从如下文件中提供稀疏颜色:
magick -size 800x600 xc: -sparse-color voronoi @colors.txt result.png
echo "10,10 red 200,200 yellow" | magick -size 800x600 xc: -sparse-color voronoi @- result.png
或者在stdin
上,如下所示:
magick -size 800x600 xc: -sparse-color voronoi @colors.txt result.png
echo "10,10 red 200,200 yellow" | magick -size 800x600 xc: -sparse-color voronoi @- result.png
我不确定powershell发生了什么,但如果问题是命令行的长度,您可以从如下文件中提供稀疏颜色:
magick -size 800x600 xc: -sparse-color voronoi @colors.txt result.png
echo "10,10 red 200,200 yellow" | magick -size 800x600 xc: -sparse-color voronoi @- result.png
或者在stdin
上,如下所示:
magick -size 800x600 xc: -sparse-color voronoi @colors.txt result.png
echo "10,10 red 200,200 yellow" | magick -size 800x600 xc: -sparse-color voronoi @- result.png
请注意,
magick convert…
几乎总是错误的。请注意,-fuzz
最好与百分比一起使用,而不是绝对值,因为红色+/-50
在0..255范围内的8位图像上与0..65535范围内的16位图像上的红色+/-50
非常不同。谢谢-看起来像我的值fuzz是个问题。。。第一次测试表明,使用50%(我希望是这样)可以解决问题issue@MarkSetchell我做了您提到的调整,并将此信息添加到我的问题中-我现在仍然看到此错误,有进一步的想法吗?您能将实际的错误消息编辑到您的问题中吗?另外,我不知道powershell的语法。我假定magick…(magick…
使用内部magick
命令的结果运行外部magick
命令?如果是,,请您分离出内部magick
命令的结果好吗?仅用于调试目的。请注意magick convert…
几乎总是错误的。请注意-fuzz
最好与百分比一起使用,而不是绝对值,因为红色+/-50
在0..255范围内的8位图像上非常不同相对于0..65535范围内的16位图像上的红色+/-50
。谢谢-似乎我的模糊值是问题所在。。。第一次测试表明,使用50%(我希望是这样)可以解决问题issue@MarkSetchell我做了您提到的调整,并将此信息添加到我的问题中-我现在仍然看到此错误,有进一步的想法吗?您能将实际的错误消息编辑到您的问题中吗?另外,我不知道powershell的语法。我假定magick…(magick…
使用内部magick
命令的结果运行外部magick
命令?如果是这样的话,你能把内部magick
命令的结果分离出来吗?只是为了调试的目的。实际上,我试过这个。我甚至在命令行上尝试过,但我找不到一种适用于windows的语法。例如,以下作品:magick-尺寸100x100 xc:-稀疏颜色voronoi“0,0#57485600 1,0#69515B00 2,0#78566000 3,0#835E6700 4,0#95666F00”test.png
。将此命令中完全相同的文本放入文本文件并运行magick-size 100x100 xc:-sparse color voronoi@colors2.txt test.png
将失败,参数数无效@error/operations.c/SparseColorOptions/252
…感谢您的耐心和花时间的帮助-我找到了提供数据的原因通过文件不起作用-我在导出文件时忘记定义正确的编码。将其编码为UTF-8或ASCII,并通过@colors.txt
读取。实际上,我尝试了这个方法。我甚至在命令行上尝试过,但我找不到一种适用于windows的语法。例如,以下作品:magick-尺寸100x100 xc:-稀疏颜色voronoi“0,0#57485600 1,0#69515B00 2,0#78566000 3,0#835E6700 4,0#95666F00”test.png
。将此命令中完全相同的文本放入文本文件并运行magick-size 100x100 xc:-sparse color voronoi@colors2.txt test.png
将失败,参数数无效@error/operations.c/SparseColorOptions/252
…感谢您的耐心和花时间的帮助-我找到了提供数据的原因通过文件不起作用-我在导出文件时忘记定义正确的编码。将其编码为UTF-8或ASCII,并通过@colors.txt
读取