问题标签 [imagick]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
12463 浏览

php - 如何在 PHP 中使用 Imagick 换行文本,以便将其绘制为多行文本?

PHP 中的 Imagick 库允许您在图像上绘制文本。

我如何告诉 Imagick 基于一些有界文本框来换行文本,以便单词显示为多行文本而不是单行?

0 投票
4 回答
3366 浏览

php - 将 PHP/GD 包装器移植到 Imagick 的问题

我最近发现 Imagick 可以支持颜色配置文件,从而产生比 GD 质量更好的图像(有关更多详细信息,请参阅此问题/答案),因此我正在尝试移植我的 GD 包装器以使用 Imagick 类,我的当前的 GD 实现如下所示:

我一直在尝试使用 Imagick 类方法,这就是我目前所得到的:

已经支持基本功能(裁剪/调整大小/水印),但是,我仍然遇到一些问题。由于 PHP Imagick 文档有点糟糕,我别无选择,只能尝试所有可用方法和参数的试错方法组合,这需要很多时间。

我目前的问题/疑问是:


1 - 保持透明度

在我最初的实现中,这些行:

将透明 PNG 图像转换为 PNG 输出时,具有保留透明度的效果。但是,如果您尝试将透明 PNG 图像转换为 JPEG 格式,则透明像素的颜色应设置为白色。到目前为止,使用 ImageMagick,我只能将所有透明像素转换为 white,但如果输出格式支持,我无法保留透明度。


2 - 压缩输出格式(即 JPEG 和 PNG)

我的原始实现在 PNG 上使用 9 的压缩级别,在 JPEG 上使用 90 的质量:

这些行:

似乎压缩 JPEG 图像 - 然而,GD 能够使用与质量参数相同的参数来压缩它更多$value- 为什么?对于以下之间的差异,我也一无所知:

我应该使用哪一个,它们有什么区别?此外,最关键的问题与 PNG 压缩有关,Imagick 压缩常量列表似乎不支持 PNG 格式:

这是在屁股上的油漆,因为如果使用 Imagick 输出(大小约为 2 MB),恰好大小为 100-200 KB 的 GD PNG 输出会变得非常胖......

关于这个问题有几个关于 SO 的问题 找不到 任何不依赖外部应用程序的有效解决方案。这真的不可能用 ImageMagick 做吗?!


3 - 图像卷积

在 GD 实现中,我调用ImageConvolution()来锐化图像,我知道 Imagick 有内置的方法来锐化图像(我还没有机会尝试它们)但我想知道 Imagick 是否有相当于ImageConvolution()函数。


4 - 颜色配置文件

这与原始实现无关,但我也想把它做好。

我是否应该始终将 Imagick / International Color Consortium sRGB 颜色配置文件添加到所有图像?还是应该仅在存在(或不存在)特定颜色配置文件时才添加?

另外,我应该删除现有的颜色配置文件吗?

我知道这可能是一个广泛的问题,但我对颜色配置文件的理解非常有限,非常感谢对此提供一些一般性指导。


5 - 打开远程图像

GD 原生支持打开远程图像,无论是通过ImageCreateFrom*函数,还是像我正在做的那样file_get_contents()结合使用。ImageCreateFromString()

Imagick 似乎只能打开本地图像,或打开文件句柄。是否有任何直接的方法可以让 Imagick 读取远程图像(无需打开和关闭文件句柄)?


如果有人可以阐明这些问题中的任何一个,我将不胜感激。

提前致谢!

0 投票
1 回答
3216 浏览

php - Imagick:设置 Imagick 项目的重力

我在 Imagick 中设置图像的重力有一些真正的困难。

我已经设法设置了 ImaickDraw 对象的重力,但我没有成功地将它设置在 Imagick 对象中。

下面是我当时正在使用的基本代码。我刚刚使用了与 ImagickDraw 相同的方法,但显然它不起作用。

任何想法如何设置现有图像而不是绘图对象的重力?

谢谢!

0 投票
2 回答
3318 浏览

php - 带有消息“无法打开文件”的“ImagickException”

带有消息“无法打开文件/data/web/myweb.com/sub/7/file:/data/web/myweb.com/sub/7/sites/default/files/logo.png”的“ImagickException”

嗨,当我想从网页创建 PDF 文件时,我收到了这条消息,即 png 文件。仅当 PDF 的内容包含一些 PNG 文件时才会引发错误。当我删除所有应该是 pdf 的 png 文件时,一切都是正确的。当我查看 php 信息时,我看到 png 是 Imagick 支持的格式。当我试图在谷歌上找到解决方案时,它返回了许多具有相同错误但几乎没有解决方案的站点。我找到的唯一解决方案是将另一个库安装到服务器。但如果有的话,我更喜欢另一种解决方案。

感谢托马斯的任何建议

0 投票
4 回答
616 浏览

module - host-imagick 的问题

我有这个模块的问题。

在我的本地服务器中,我打开我的 php.ini,我在列表中有模块 imagick。现在我将站点更改为网络服务器,但在 php.ini 中,未显示该模块。

我与拥有网络服务器的公司进行了交谈,答案是:“模块已安装并显示:”

但是当我使用这段代码时:

我简单地收到这个:

但是相同的代码在我的本地主机中有效。问题是什么?(可能是扩展名在php.ini中被注释了?还是代码中存在问题?)

谢谢

0 投票
2 回答
3687 浏览

php - PDF 尺寸与实际内容尺寸

我目前正在使用 php 的 imagick 将一些 PDF 转换为图像 - 这对于图像在输出过程中被“切碎”的小细节非常有效。

这是由于 PDF 中包含的信息与实际内容尺寸存在差异。

PDF 报告为 612x792 72ppi 文档,但是当我通过 Mac 上的预览从中导出图像时,图像为 1651x1275 - 这怎么可能?

显然,导出是正确的,因为在这些维度上可以正确查看图像 - 难道是 PDF 在宽度和高度混合的地方被错误地编码?如何通过代码检测到这一点?此外,图像导出的大小不同(大得多),大约是大小的两倍,这让我相信 imagick 没有正确读取某些信息。

基本上我想知道是否有适当的方法来确定实际的 PDF 内容大小,以便从中导出的图像质量尽可能好。

谢谢!

编辑:(添加代码)

使用的pdf如下: http ://www.pantone.com/pages/MYP_mypantone/software_downloader.aspx?f=3

此外,这是 identifyImage() 函数的 imagick 输出,从文件大小来看似乎有点错误。

0 投票
7 回答
36743 浏览

php - PHP-Imagemagick 图片展示

我有创建pdf缩略图的php代码如下;

哪个运作良好。但是如果我想在网页中显示图像,我必须使用<img src="">标签。有没有办法使用..header("Content-Type: image/jpeg"); 从语法和回显图像中删除?<img src="">或者有人告诉我如何使用语法在网页中显示图像。

我在我的 Windows Vista PC 中使用 php5 运行 apache..

0 投票
2 回答
4348 浏览

php - 设置ImageMagick PNG图像背景颜色

我有一个 PHP 脚本来创建 PDF 文件的 PNG 缩略图,如下所示:

它返回一个缩略图,但背景是透明的。我想设置白色背景颜色(将 alpha 图层更改为白色)。我怎样才能做到这一点?

0 投票
8 回答
11167 浏览

php - php Imagemagick jpg 黑色背景

我有一个 php 脚本来创建 pdf 的 jpg 缩略图,如下所示;

但是生成的jpg有黑色背景而不是白色..我该如何解决这个问题?

0 投票
3 回答
2741 浏览

php - 缩略图生成/图像调整大小

你会推荐什么 PHP 库来生成缩略图?我需要它与 GD(不仅是 Imagick)一起工作,能够在仅给定一个维度时拉伸图像或保持纵横比,并且 - 最重要的是 - 能够裁剪和调整图像大小(在生成缩略图时,我需要所有这些都是,假设是 128x128,所以我希望库在这种情况下裁剪图像)你有什么建议?