问题标签 [perlmagick]

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 投票
1 回答
961 浏览

makefile - 在 PerlMagick 6.8.6 上出错

尝试安装 CPAN Image::Magick 模块并收到一个核心文件丢失的致命错误(注意水平线之间突出显示的致命错误):



思考下一步该怎么做?

0 投票
2 回答
4630 浏览

image - Image::Magick (perlmagick) 调整纵横比和质量问题(不同于 convert 命令行实用程序)

我正在尝试使用 ImageMagick 和 perlmagick (Image::Magick) 对图像进行一些批量调整大小操作。我作为源的所有图像都是大图像,我想将它们调整为不同的间隔或高度或宽度。我想始终保持纵横比。

给定一个尺寸为 3840 像素 × 2160 像素 (3840x2160) 的示例图像,我想创建以下调整大小的图像:

我可以通过以下命令(按顺序)使用convert命令行实用程序非常简单地做到这一点:

由于我试图与其他操作一起批量执行这些操作,因此我试图在 perl 中使用Image::Magick执行这些相同的操作。我尝试了几种不同的方法,结果如下:

这会导致图像不保持纵横比。例如,如果提供 100 的高度,则输出图像将是原始宽度乘以 100 (3840x100)。提供宽度时会产生类似的效果——保持高度,但不保持纵横比。

这导致图像保持纵横比,如果几何操作基于高度,则输出正是预期的。但是,如果提供了宽度,则输出非常模糊。

这导致图像都是正确的,但在 perl 进程之外分叉会导致效率问题。

perl 中是否有更好的方法来使此调整大小操作产生与命令行转换实用程序相同的结果?

我的命令行实用程序报告版本 6.7.9-10,Image::Magick 报告版本 6.79。

0 投票
1 回答
880 浏览

perl - 使用 ImageMagick 时遇到问题 - 通过 Homebrew 安装

我通过 Homebrew 成功安装了 ImageMagick - 看起来,无论如何 - 但是当我通过 Perl 测试它时使用

我收到了这个错误:

我做了一些研究,显然当通过 Homebrew 安装 ImageMagick 时默认不支持 Perl,所以我尝试安装 PerlMagick,即 Perl 的 ImageMagick API。下载源代码后,我使用了以下命令:

  • cd 文档/PerlMagick-6.88
  • perl 生成文件.PL
  • 制作
  • 须藤使安装

所以我以为我成功安装了 PerlMagick,但它丝毫没有改变我的情况。我是 ImageMagick 和 Homebrew 的新手(刚从 Macports 转换而来),所以我在这里可能做错了什么。

有人知道如何解决我的情况吗?具体会是什么原因

错误?

0 投票
1 回答
118 浏览

perl - ImageMagick 不在我的机器上创建文本 - Perl

我最近接手了别人在一个项目上的职位。当下面的代码在他们的旧机器上运行时,它运行良好。但是当我运行它时,我得到一个空白的白线,带有一个带有红色轮廓的黄色矩形。本质上,Draw() 方法工作正常,但 Annotate() 方法没有做任何事情。无论我为文本、字体、字体大小或颜色传递什么值,都不会显示任何文本。

以下是相关代码:

我很确定代码没有问题,因为其他更简单的脚本也不起作用。我相信我的机器或 ImageMagick 的安装有问题,但我不知道出了什么问题。

我的老板说他记得上一个人在字体问题上苦苦挣扎,所以也许这与它有关?过去一天左右我一直在做一些挖掘工作,但我没有找到任何与我的问题很相似的东西,可以提供一个很好的解决方案。

有谁知道为什么我不能让 ImageMagick 显示文本?

关于我的设置的一些信息:

OS X 小牛队 10.9.3;ImageMagick 6.8.9-1 / PerlMagick 6.88(通过 Homebrew 安装)

0 投票
1 回答
1175 浏览

perl - 图片::Magick 画一个模糊的圆圈

有背景图片。(对于这个例子mesh.png

图像需要添加一个圆圈,边框模糊。目前有这个:

这将产生下一个图像:

网格上的黑色圆圈

但我需要一个带有“模糊边缘”的圆圈,就像下一个(手动创建)

网格上的模糊圆圈

任何人都可以帮助如何使用Image::Magick获得如此模糊的圆圈吗?

如果有人想要mesh.png,它是用下一个脚本创建的:

0 投票
1 回答
464 浏览

perl - 使用 Image::Magick 将图像分割成更小的块并获取每个块的相对位置

我需要将一个大的(最大 16384x16384px)图像分割成更小的块,通常是 512x512。为此,我使用下面的简单 perl 脚本:

现在,问题是,我需要为较小的部分建立一个索引,其中包括原始图像中的位置偏移量,例如在 1024x1024 源图像的情况下:

...或类似的东西。基本上,只是为了跟踪每个特定块在原始图像中的位置。

由于convert命令传递给system()我正在考虑只做一个文件的全局并对其进行排序,因为一些快速实验表明较小的块按从左到右,从上到下(直观地)的顺序编号并基于构建索引那个,但我认为必须有一些更简单的东西,涉及perls 自己的 ImageMagick 接口


所以我的问题是:

1.Image::Magick相当于什么convert $ARGV[0] -crop $size $newfile" . "_%03d.png

2.一旦我设法避免了 system() 调用,是否可以根据来自 $image 对象的数据构建索引?

PS:

  • 块大小不会经常变化。硬编码 512 很好,所以没有必要从$size……中提取它。事实上,我根本不知道我为什么选择使用那个变量。
  • 原始图像大小始终可以被块大小整除,因此无需担心剩余部分。
  • 为了使 glob() 方法变得棘手,图像并不总是方形的。identify也许可以以某种方式考虑使用命令的第三列?
0 投票
1 回答
847 浏览

image - 使用 Perl 将数据添加到 IPTC 字段

我想在 Perl 中为 IPTC 字段“特殊说明”设置自定义文本。

如果不使用模块,如何做到这一点?

0 投票
1 回答
1738 浏览

image - 如何确定图像是否具有透明像素

我刚刚找到了一段代码,用于确定图像是否具有透明像素:

显然,这是行不通的。我用具有透明像素的开放图标库的图像 user-desktop.png 进行了尝试。支票返回-1。

我只能猜测为什么使用这个命令。GD 的手册页说:

如果不带任何参数调用此方法 [transparent],它将返回透明颜色的当前索引,如果没有则返回 -1。

所以,作为一个附带问题:透明像素根本没有颜色索引 - 对吧?

然后我发现线程Perl GD check if pixel is transparent。但是对于这个解决方案,我必须遍历图像的所有像素(至少在麦芽汁的情况下,当唯一的透明像素是最后一个时)。

没有一种简单的方法可以检查这些信息吗?也许像 $image_object->has_transparent_pixels 这样的方法?

注意:我没有绑定到 GD,所以其他 Image 模块也可以工作(但是,我在 Windows 上 - 它应该在那里工作)。

0 投票
1 回答
82 浏览

image - 将图像缩放到固定宽度但不保留纵横比

我想缩放图像以使结果图像具有固定宽度,但图像的高度保持不变。如何才能做到这一点?

0 投票
2 回答
2014 浏览

perl - ImageMagick 命令行选项顺序(和命令行参数的类别)

我的主管要求我将 Perl 脚本中使用 PerlMagick 的部分转换为管道并使用 ImageMagick 的命令行版本(出于各种不相关的原因)。

使用我们现有的界面(裁剪、缩放、保存等),我正在构建用户想要对图像执行的操作列表,构建要管道的语句,然后执行它。

我想知道的是:

  1. 转换操作是从左到右执行的吗?即我通过它们的顺序
  2. 如果我两次通过相同的选项会发生什么?它们是分开执行的吗?

显然,对图像执行操作的顺序至关重要,因此我正在尝试确定我是否可以一次执行所有操作(可能提高效率?)或者我是否必须执行每个操作分开。谢谢