我想通过convertImageMagick 创建一个验证码pic .
我遵循这个,但有一些问题.
输入在我的linux shell中:
convert -background white -fill black -font FreeSerif-Bold -pointsize 36 label:'adfgh' ./test.png
Run Code Online (Sandbox Code Playgroud)
错误是:
转换:未授权
adfgh@ error/construct.c/ReadImage/453.转换:缺少图像文件名./test.png@ error/convert.c/ConvertImageCommand/3015
我的ImageMagick:版本:6.7.2-7,我安装它yum install ImageMagick.
我很无能为力.有什么建议吗?
Imagemagick安全策略似乎不允许我执行从pdf到png的转换.转换其他扩展似乎正在起作用,而不是来自pdf.我没有改变任何imagemagick设置,因为我安装它...我正在使用Arch Linux,如果操作系统很重要.
user@machine $ convert -density 300 -depth 8 -quality 90 input.pdf output.png
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.
Run Code Online (Sandbox Code Playgroud) 我想使用ImageMagick保存到无损PNG时达到最大压缩量.我正在批量转换许多PSD.
我尝试了一些东西,但它看起来像我生成的PNG图像不像原始图像那样清晰,尽管我的妻子看不到它.
这些是我正在玩的当前论点:
convert -depth 24 -define png:compression-filter=1 \
-define png:compression-level=9 -define png:compression-strategy=2
Run Code Online (Sandbox Code Playgroud)
根据:http: //www.imagemagick.org/script/command-line-options.php#define
和http://www.w3.org/TR/PNG-Filters.html
这意味着:
根据文档:"有效值为0到4,表示默认,过滤,huffman_only,rle和固定的ZLIB压缩策略.如果您使用的旧zlib不支持Z_RLE(1.2.0之前)或Z_FIXED(之前) 1.2.2.2),值3和4分别使用zlib默认策略."
顺便说一句,我的图像是960x720像素.
(如果我使用默认压缩策略0,我会得到大文件.可能是9的压缩过滤器和0的压缩策略产生较小尺寸的图像,但我仍然不确定它是否是无损的).
问题:
升级后ImageMagick,将pdf转换为jpeg时,文本质量降低了:
旧图像

新图片
转换命令: convert foo.pdf foo.jpeg
旧ImageMagick版本:
[root@home]# convert -version
Version: ImageMagick 6.2.8 05/07/12 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
Copyright: Copyright (C) 1999-2006 ImageMagick Studio LLC
Run Code Online (Sandbox Code Playgroud)
生成的文件大小:
-rw-r--r-- 1 root root 139K Apr 2 16:11 foo-0.jpeg
-rw-r--r-- 1 root root 130K Apr 2 16:11 foo-1.jpeg
-rw-r--r-- 1 root root 334K Mar 24 14:27 foo.pdf
Run Code Online (Sandbox Code Playgroud)
升级ImageMagick后
[root@home]# convert -version
Version: ImageMagick 6.7.8-10 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
Run Code Online (Sandbox Code Playgroud)
生成的文件大小:
-rw-r--r-- 1 root root 60K Apr …Run Code Online (Sandbox Code Playgroud) 我有一个包含许多不同类型图像的文件夹(png,jpg,jpeg,bmp,pdf),我想使用imagemagick将它们全部转换为png(例如).
是否有一个命令可以执行此操作?如果没有,我该怎么办呢?
谢谢.
我想有效地将多页pdf转换为单页图像.
我已经知道如何使用imagemagick一次执行此页面.例如,
convert x.pdf[2] x3.jpg
Run Code Online (Sandbox Code Playgroud)
将给我作为图像的PDF格式的第3页.因此,如果我使用识别来确定 pdf中有多少页面,那么我可以循环并将pdf中的所有页面转换为图像.然而,这种方法可能需要一段时间.例如,15页的pdf可能需要15-30秒.
根据我在其他地方(也在imagemagick论坛上)看到的答案,以下imagemagick命令应该将pdf分成多个图像.
convert x.pdf x-%0d.jpg
Run Code Online (Sandbox Code Playgroud)
但所有这一切最终都是创建名为x-0.jpg的第一页
作为替代方案,我尝试使用具有突发功能的pdftk.我在那里遇到的问题是爆炸在所有情况下都不起作用.它适用于某些pdf,而不适用于其他一些.
关于如何改进事物的任何建议都会有所帮助.
我的操作系统是Mac OSX Lion,但我确实需要在CentOS 6上运行.
我正在将.psd转换为文件夹内的.png文件.如何在不同扩展名的文件夹中保留每个文件的相同名称?
例如,我输入文件夹图像,然后从终端I执行
$ convert *.psd *.png
Run Code Online (Sandbox Code Playgroud)
但它给.png命名只是与适当的.psd图像不一样的数字.
问题: ImageMagick转换无法裁剪图像.看起来它无法识别图像类型?
我试过的:
我在网上搜索过,我看过几个类似的问题,但不是我的.我尝试过他们的解决方案,包括
我正在使用Mac OSX El Capitan,终端中的其他一切工作正常.ImageMagick已经安装好了.
当我跑:
$ convert /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487.png 805X972+34+94 /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487-cropped.png
Run Code Online (Sandbox Code Playgroud)
我明白了:
转换:无法打开图像`805X972 + 34 + 94':没有这样的文件或目录@ error/blob.c/OpenBlob/2702.
convert:没有用于此图像格式的解码委托`'@ error/construct.c/ReadImage/504.
没有解码委托给这个图像格式''@ error/construct.c/ReadImage/504
在这个问题的其他帖子中,人们得到了
为此图像格式"PNG"转换无解码委托
或者类似(除了图像类型或文件名和图像类型)
但是,我对图像文件类型没有任何说明......
我没有尝试卸载ImageMagick,然后从源手动安装它,因为我对此没有信心......(此解决方案显示:https://stackoverflow.com/a/34633084/5398660)
有谁知道可能会发生什么?
另外,任何人都可以帮我解释@ error/construct.c/ReadImage/504部分吗?我在看的代码constitute.c ,但我不知道,如果从它来解决我的问题(我只知道一点的C)我可以得到有用的信息
谢谢!
我想将不同的图像格式(bmp,jpg,gif,png,tiff-incluging multipaged)转换为A4格式的PDF格式,并且图像适合页面(必要时调整大小).图像应位于页面的中心,我想定义一个偏移量.我尝试了下面的代码,但顶部没有偏移,图像质量非常差.
convert png.png -gravity North -resize 500x500 -quality 100 -page a4x5x5 myout.pdf
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
感谢任何帮助,Mariusz
我正在本地 ubuntu 20.04 机器上运行一个 laravel 项目,该项目在另一台机器上运行良好。该项目使用 Image Magic 将 PDF 转换为 PNG。当我调用将 PDF 转换为 PNG 的功能时,出现以下错误:
ImagickException 尝试执行安全策略“PDF”不允许的操作@ error/constitute.c/IsCoderAuthorized/408
该函数看起来:
public function show($id)
{
$book = Book::all()->first();
$file = public_path('' . $book->pdf);
$count = 0;
$im = new \Imagick($file);
$blobList=[];
do {
$page = new \Imagick();
$page->setResolution(300,300);
$page->readImage($file . '['.$count.']');
$page->setImageFormat("jpeg");
header("Content-Type: image/jpeg");
$image = $page->getImageBlob();
array_push($blobList,$image);
$count++;
} while (5> $count);
// $im->resizeImage(200,200,1,0);
return view('notice/showbook', compact('book', 'blobList'));
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经安装了 image magic 和 gs,并policymap.xml参考这个问题的接受答案进行了更改
然而,错误仍然存在。请帮忙!
谢谢,
imagemagick ×10
bash ×1
ghostscript ×1
image ×1
laravel ×1
libpng ×1
macos ×1
pdf ×1
php ×1
png ×1