【发布时间】:2021-04-15 20:51:35
【问题描述】:
问题
在我相当短的脚本中,我遇到的问题是它有时会报告文件名或扩展名太长。根据我脚本中的 $image 和 $size 值,可能会发生此错误。
例如下面的脚本使用来自here 的图像产生此错误 - 保存并转换为“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
编辑2:
内部 magick 命令 (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)
...
【问题讨论】:
-
请注意
magick convert ...几乎总是错误的stackoverflow.com/a/61208844/2836621 -
请注意,
-fuzz最好与 百分比 一起使用,而不是绝对值,因为red +/- 50在 0 范围内的 8 位图像上非常不同。 255 相对于red +/-50在 0..65535 范围内的 16 位图像上。 -
谢谢 - 看来我对 fuzz 的重视是问题所在……第一次测试表明,使用 50%(我实际上想要)可以解决问题
-
@MarkSetchell 我进行了您提到的调整,并将此信息添加到我的问题中 - 我现在仍然看到此错误,还有其他想法吗?
-
你能把实际的错误信息编辑成你的问题吗?另外,我不知道
powershell语法。我假设magick ...(magick ...)使用内部magick命令的结果运行外部magick命令?如果是这样,您能否将内部magick命令的结果分开 - 仅用于调试目的。
标签: imagemagick imagemagick-convert