标签: imagemagick-convert

ImageMagick使用超过2GB的内存来转换PDF文件

ImageMagick正在使用大量内存来转换PDF文件 - 超过2GB.我正在使用的命令是:

convert -density 250 -resize 1280x myfile.pdf -interlace plane -strip -quality 40 -alpha flatten myfolder/myfile-%03d.jpg
Run Code Online (Sandbox Code Playgroud)

如何改进?我有1GB的限制,否则这个过程会被无情地杀死.):

memory resources converter imagemagick imagemagick-convert

10
推荐指数
1
解决办法
1万
查看次数

如何转换base64图像?

我正在尝试使用ImageMagick中的"convert"命令行工具.我有一个base64编码的png文件,我需要将其转换为另一种格式.我正在查看文档论坛讨论,这表明我应该能够使用这种语法:

convert inline:file.txt file.jpg
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我收到此错误消息:

convert: corrupt image `file.txt' @ error/constitute.c/ReadInlineImage/910.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何转换为读取base64图像文件?

imagemagick imagemagick-convert

10
推荐指数
1
解决办法
5410
查看次数

将ImageMagick中的多个图像与相对(非绝对)偏移组合在一起

我正在寻找在ImageMagick中将多个图像拼接在一起的最有效方法,在背景图像上,使得叠加图像之间的间距/填充是一致的?

我已经研究过使用+ append,convert -composite和转换-page和-layers合并.

以下命令(convert -composite)有效,但需要预先计算图像尺寸才能指定绝对偏移.真的,我希望FIRST分层图像的末端和第二层图像的开始之间有10像素的间隙,但我能看到的唯一方法是通过指定画布左上角的绝对偏移量.

convert \
  background.jpg \
  first.jpg -gravity Northwest -geometry  +10+10 -composite \
  second.jpg                   -geometry +300+10 -composite \
  third.jpg                    -geometry +590+10 -composite \
  output.jpg
Run Code Online (Sandbox Code Playgroud)

我正在寻找某种类型的运算符,以便可以相对于分层中的"最后"图像解释水平偏移,因此我可以以某种方式指定偏移,而不是指定+300+10第二个图像和+590+10第三个图像+10+10.

我认为引力可以让我实现那个(-gravity Northwest),就像float: left;在CSS定位中一样,但事实并非如此.

我在以下方面也取得了一些成功:

convert \
  -page  +10+10 first.jpg  \
  -page +300+10 second.jpg \
  -page +590+10 third.jpg  \
  -background transparent  \
  -layers merge \
   layered.png

convert background.jpg layered.png -gravity Center -composite output.jpg
Run Code Online (Sandbox Code Playgroud)

所描述的两种技术都需要预先计算绝对偏移,这有点痛苦.有一个更好的方法吗?

imagemagick imagemagick-convert

8
推荐指数
1
解决办法
1万
查看次数

ImageMagick:如何在调整大量图像文件的同时实现低内存使用?

我想调整大量(约5200)图像文件(PPM格式,每个5 MB大小)的大小,并使用它们保存为PNG格式convert.

精简版:

convert虽然我使用了convert连续处理图像文件的语法,但它会耗尽24 GB的内存.

长版:

关于超过25 GB的图像数据,我认为我不应该同时处理所有文件.我搜索了有关如何连续处理图像文件的ImageMagick文档,我发现:

调整每个读取图像的速度更快,资源更少:

$ convert '*.jpg[120x120]' thumbnail%03d.png

此外,该教程还指出:

例如,而不是......

montage '*.tiff' -geometry 100x100+5+5 -frame 4 index.jpg

它首先读取所有tiff文件,然后调整它们的大小.你可以做......

montage '*.tiff[100x100]' -geometry 100x100+5+5 -frame 4 index.jpg

这将读取每个图像,并在继续下一个图像之前调整它们的大小.当达到内存限制时,导致内存使用量大大减少,并可能阻止磁盘交换(颠簸).

因此,这就是我在做的事情:

$ convert '*.ppm[1280x1280]' pngs/%05d.png
Run Code Online (Sandbox Code Playgroud)

根据文档,它应该逐个处理每个图像文件:读取,调整大小,写入.我在具有12个真实内核和24 GB RAM的机器上执行此操作.但是,在前两分钟内,该convert进程的内存使用量增长到大约96%.它会停留在那里一段时间.CPU使用率最高.稍长一点,过程就死了,只说:

杀害

此时,尚未生成任何输出文件.我在Ubuntu 10.04上convert --version说:

Version: ImageMagick 6.5.7-8 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
Features: OpenMP 
Run Code Online (Sandbox Code Playgroud)

它看起来像是convert在开始转换之前尝试读取所有数据.因此,要么存在错误convert,文档存在问题,要么我没有正确阅读文档.

怎么了?如何在调整大量图像文件的同时实现低内存使用量?

BTW:一个快速的解决方案是使用shell循环遍历文件并convert独立调用每个文件.但我想了解如何使用纯ImageMagick实现相同目标. …

linux image imagemagick image-processing imagemagick-convert

8
推荐指数
1
解决办法
4353
查看次数

使用不带Ghostscript的ImageMagick将pdf转换为jpg

我正在尝试使用ImageMagick php将pdf转换为jpg.似乎ImageMagick需要Ghostscript才能使用pdfs,但是我的共享托管服务提供商不允许安装Ghostscript,因为它使用shell_exec()exec().

所以我的问题是.我可以使用ImageMagick将pdf转换为jpg而不使用Ghostscript.如果没有,那就有替代方案.我正在使用wordpress平台fyi这样做.

php imagemagick ghostscript imagemagick-convert

8
推荐指数
1
解决办法
6062
查看次数

ImageMagick"颜色到alpha"(像GIMP)

我正在尝试做GIMP在选择具有实际颜色的"颜色到alpha"时所做的事情.

我有一个颜色为#a0132e的图像,我想将其转换为透明度.不仅是那种确切的颜色,而且任何偏离它的颜色都必须变得非常透明.这就是GIMP中"颜色对alpha"的作用.

我已经尝试了一百万种不同的东西,但我无法理解它.我一直在为自己打扰几个小时尝试-fx参数,这绝对是奇怪的语法,所以这根本没有帮助.也许有些选项convert可以解决这个问题,但我还没有找到正确的做法,而且,我已经尝试了谷歌得到的所有东西.

理想情况下,我想创建一个我可以这样调用的脚本:

color-to-alpha.cmd original.png output.png #a0132e

或类似的.我怎样才能做到这一点?

imagemagick gimp imagemagick-convert

8
推荐指数
2
解决办法
4099
查看次数

使用ImageMagick和'textcleaner'清理OCR图像

我有以下图像,我想准备一个带有tesseract的OCR: 在此输入图像描述

目标是清理图像并消除所有噪音.我正在使用textcleaner带有以下参数的ImageMagick脚本:

./textcleaner -g -e normalize -f 30 -o 12 -s 2 original.jpg output.jpg
Run Code Online (Sandbox Code Playgroud)

输出仍然不那么干净: 在此输入图像描述

我为参数尝试了各种变化,但没有运气.有没有人有想法?

ocr tesseract imagemagick imagemagick-convert

8
推荐指数
1
解决办法
1万
查看次数

ImageMagick ghostscript '委托' 安全策略阻止转换

这似乎与我之前的问题有关,其中存在ghostscript 错误,因此 ImageMagick 开发人员制定了阻止 PDF 转换的安全策略。通过调整策略文件,将权限从“无”(默认情况下)更改为“读取 | 写入”来克服这一问题

我的类似问题是在运行表单命令时启动的

convert input.pdf output.jpg
Run Code Online (Sandbox Code Playgroud)

现在使用 ghostscript 版本 9.27 (2019-04-04) 和 imagemagick 版本 7.0.8-56 Q16 x86_64 (2019-07-21)(我相信这是每个​​版本的最新版本),我收到此错误

convert: attempt to perform an operation not allowed by the security policy `gs' @ error/delegate.c/ExternalDelegateCommand/378.
convert: no images defined `output.jpg' @ error/convert.c/ConvertImageCommand/3273.
Run Code Online (Sandbox Code Playgroud)

所以我已经 sudoedited/etc/ImageMagick-7/policy.xml使得 中唯一未注释的行<policymap>

<policy domain="delegate" rights="none" pattern="gs" />
Run Code Online (Sandbox Code Playgroud)

<policy domain="coder" rights="read | write" pattern="PDF" />
<policy domain="delegate" rights="read | write" pattern="gs" />
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在。如果简单地注释掉或删除上面的行,则结果相同。这可以在我的不止一台 Arch 机器上重现。 …

pdf imagemagick file-conversion imagemagick-convert

8
推荐指数
1
解决办法
5903
查看次数

如何使用 imagemagick 将图像裁剪为多个矩形网格

如何将大图像剪切成网格,以便将较小的图像上传到 Instagram,以在网格视图中弥补大图像?

我认为 imagemagick 可以用于此目的。

image imagemagick imagemagick-convert

7
推荐指数
1
解决办法
2173
查看次数

使用 ImageMagick 从文本生成图像?

我正在尝试使用 ImageMagick 创建 3840 x 2160 的缩略图。

我需要图像具有黑色背景和白色文本。文本应垂直和水平居中。

我希望能够设置字体大小,但如果文本超出图像,则会自动减小字体大小,使其适合左侧和右侧的一定量的填充。

我将使用数十万张图像批量进行此操作。从我所发现的情况来看,您似乎总是必须设置字体大小,并且无法使其动态。

谁能确认这是否可行?

ubuntu command-line imagemagick imagemagick-convert ubuntu-16.04

7
推荐指数
1
解决办法
3468
查看次数