Perl+Image::Magick用法:如何将一张图片中的几个区域组合成一张新图片?

标签 perl imagemagick

我是 ImageMagick 的新手,还没有弄清楚如何将多个区域组合成一个新图像。 例如,我分别知道图像中单词“hello”和“world”的“几何形状”,我​​需要做什么 就是检索单词图像并将其放入一行图像中,同时保持它们的相对位置。

问题1:假设我使用perl API,我应该如何使用Composite()或其他正确的方法来做到这一点?

my $geom = sprintf('%dx%x+%d+%d', $word->{width}, $word->{height}, $offsetx, $offsety); 
$x = $lineimg->Composite($wordimg, $geom); 
warn "$x" if "$x";

假设 $lineimg 的大小足以容纳所有文字图像并且几何形状已经计算出来。 这段代码给出了 ImageMagick 的提示:

Exception 410: composite image required `Image::Magick' @ Magick.xs/XS_Image__Magick_Mogrify/7790 ...

问题2:目前我只知道如何从原始图像中裁剪出一个文字图像,然后使用 Clone() 方法 来恢复原始图像。有没有办法复制而不是裁剪图像中的特定区域?这边走 可以节省多次来回复制整个图像的时间。

有人知道如何编写这种处理吗?我感谢您的所有帮助和建议!

-金

最佳答案

从声音来看,Image::Magick 不是适合您任务的工具。 Image::Magick 通常用于操作整个图像 - 过滤、缩放、格式之间的转换等。

考虑GD module ,它几乎可以执行您需要的任何绘图操作。

关于Perl+Image::Magick用法:如何将一张图片中的几个区域组合成一张新图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2331459/

相关文章:

perl - 当最后一个字符是终止符时解决拆分功能

bash - 如何将 ImageMagick 输出存储到 Bash 变量中(然后使用它)?

imagemagick - 如何使用 ImageMagick 获得 8 位灰度和 alpha channel 深度?

imagemagick - 使用 ImageMagick 程序将 favicon.ico 转换为 png

animation - 将两个透明 gif 合并为图层

image-processing - ImageMagick 中的填充

regex - 获得等效于GNU grep并支持否定后向的最简单方法是什么?

perl - Text::SpellChecker 模块和 Unicode

对 .pl Perl 文件进行单元测试

perl - 如何 "map"在 3 个值之间?