我有一个 bash oneliner,我通过相同的 ImageMagick 操作多次对一张图像进行管道传输。我想将其作为 Bash 循环来执行,最好不使用临时文件。
单行是:cat in.jpg | convert -quality 1 - jpg:- | convert -quality 1 - jpg:- | convert -quality 1 - jpg:- > out.jpg
这个也有效:(convert -quality 1 - jpg:- | convert -quality 1 - jpg:- | convert -quality 1 - jpg:-) > out.jpg < in.jpg
convert在命令中,-意思是“从标准输入读取”,jpg:-意思是“以 JPEG 格式输出到标准输出”。
我尝试过执行cat in.jpg | for x in {1..3}; do convert -quality 1 - jpg:-; done > out.jpg和(for x …
我需要调整图像大小,结果图像的高度应为 300 像素。图像必须保持原始图像的长宽比。
网络上的大多数说明都提到要做的事情
convert *.tif -evaluate-sequence median output.tif
Run Code Online (Sandbox Code Playgroud)
然而,在最新版本的 ImageMagick 中,它会生成一个多页 TIFF 文件,其中包含所有输入图像(每页一个),而不是实际评估中值。
我可以运行以下 GhostScript 成功地将多个 PDF 合并到一个文件中:
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=test.pdf file1.pdf file2.pdf file3.pdf
Run Code Online (Sandbox Code Playgroud)
我还需要向 PDF 添加自定义叠加层,因此我执行以下操作:
convert -density 300 -quality 100 file1.pdf -font /usr/share/fonts/urw-base35/NimbusSansNarrow-Regular.otf -pointsize 15 -fill '#000000' -draw 'rectangle 21,1114,675,1220' -fill white -annotate +440+1160 '1 / 3' -annotate +34+1213 'file1.pdf' file1_a.pdf
Run Code Online (Sandbox Code Playgroud)
...对于每个 PDF,然后我再次运行第一个gs命令来合并这些带注释的 PDF,但是当我这样做时,我收到以下错误:
**** Error: ICCbased space /N value does not match the ICC profile.
Using the number of channels from the profile.
Output may be incorrect.
Run Code Online (Sandbox Code Playgroud)
我确实找到了一些看起来相关的东西,表明 PDF 是错误的:https://bugs.ghostscript.com/show_bug.cgi ?id=697223
好吧,从根本上来说,您的 PDF 文件已损坏。它使用ICCBased色彩空间,并且色彩空间中声明的分量数量与ICC配置文件的实际内容不匹配。 …
假设我在一个文件夹中有一堆不同大小的图像。目标是以空白最少的方式将图像放入多个页面(例如 A4)中。不应涉及任何压缩或调整大小。一些图像被旋转是可以接受的。
这是我想出的,但不尝试以任何方式“适合”图像:
montage *.jpg -mode concatenate -tile 2x2 -page A4 -geometry +20+20 out.pdf
Run Code Online (Sandbox Code Playgroud)
是否可以使用 imagemagick 和 montage 开关?
我想计算几何算法应该改变上面命令的 2x2 和 +20+20 部分,对吗?
optimization imagemagick image-processing computational-geometry imagemagick-montage
我有一堆 PNG 图像(徽标),我想将它们转换为全白色调色板;基本上我想用白色像素替换所有非透明像素。在 imagemagick 中有一个简单的方法可以做到这一点吗?
我只是希望能够导入 Wand 并在 Mac 上的 Python 上使用它,但这似乎不再可能了。
我已经更新并清理了自制程序,然后运行brew install imagemagick@6
然后我export MAGICK_HOME=/opt/homebrew/Cellar/imagemagick@6/6.9.12-40因为那是我的 imagemagick 所在的位置。
我还安装了最新版本的 wand,然后当我尝试from wand.image import Image在 python3 中执行操作时,我收到此错误消息:
OSError: cannot find library; tried paths: [ ... ]
Run Code Online (Sandbox Code Playgroud)
其中...包含我可以看到的正确路径,其中包含 imagemagick 的文件。
那么,如果路径是正确的,为什么 Wand 仍然不起作用呢?
我想安装 imagemagick v7。我需要将命令添加到我的 Dockerfile 中。
该命令安装v6.9,该版本没有magick命令
RUN apt-get update && apt-get install -y --no-install-recommends imagemagick
Run Code Online (Sandbox Code Playgroud)
谁能帮我找到如何安装 imagemagick v7 来使用 magick 命令?非常感谢
我有这个片段,我用来将图像文件转换为tiff.我希望在文件无法转换时收到通知.Imagemagick在成功运行时退出0,因此我认为以下代码段会报告该问题.但是根本没有报告任何错误.
def image(filePath,dirPath,fileUUID,shortFile):
try:
os.system("convert " + filePath + " +compress " + dirPath + "/" + shortFile + ".tif")
except OSError, e:
print >>sys.stderr, "image conversion failed: %s" % (e.errno, e.strerror)
sys.exit(-1)
Run Code Online (Sandbox Code Playgroud) imagemagick ×10
python ×2
bash ×1
ghostscript ×1
linux ×1
loops ×1
optimization ×1
pipe ×1
wand ×1