Netpbm:生成透明背景图像/文件,以便在特定坐标处将另一个图像/文件放在其上

问题描述 投票:0回答:1

如标题所述,我需要知道如何实现这一点,即ImageMagick,使用Netpbm程序套件:

convert -size 4800x3450 xc:transparent background.pnm overlay_image.pnm -geometry +469+499 -composite pnm:- | img2pdf - | pdftk - multibackground another_image.pdf output def_image.pdf

提供一个班轮代码来提供上下文。我只需要

convert
部分。

说明 Gimp 问题的另一种方法可能是:如何将图像(将图像作为图层导入)放在(透明)画布上并保存整个图像而不将其压平,即保持图像的透明度背景/画布。

请随意详细阐述通道、透明度等的情况(甚至还有更基本的图像处理概念)。

我是这方面的新手,我只是从我想要的角度说话,而不是从我应该知道的角度说话。预先感谢您。

(对于新手来说,Netpbm 套件文档中的示例非常吝啬。在多次失败的尝试之后,了解正在发生的情况的最佳机会可能是提供 ImageMagick 示例并查看它如何转换为 Netpbm 套件。)

image-processing canvas alpha-transparency compositing netpbm
1个回答
0
投票

这似乎就是我正在寻找的(这是 bash/CLI;我再次给出一句俏皮话,因为这是我将实际使用的):

pbmmake -white ${CANVAS_WIDTH} ${CANVAS_HEIGHT} | pnmcomp -xoff=${x1} -yoff=${y1} ${OVERLAY_PNM_IMAGE} - | pnmtopng  -transparent=white | pngquant --speed 1 --posterize 4 --strip - | img2pdf - | pdftk - multibackground "${IMAGE%.pnm}_ocr.pdf" output "def.pdf"
  • 如果我没记错的话,关键是要确保使用

    pbmmake
    命令制作的画布颜色与
    pnmtopng
    命令中指定的颜色相同。

    我认为有一些“几何”(即定义区域和相关内容的坐标)信息要存储/嵌入到

    .png
    文件中,以告诉软件不要修改指定的区域/像素,但似乎整个业务相当于告诉实用程序从
    .pnm
    转换为
    .png
    将其解释为之前在生成“画布”时指定的“透明”颜色。

    注意:在我的工作场景(灰度)中,我选择白色,因为选择实际颜色可以绝对避免与灰度图像的干扰(即使用无关的颜色,例如红色,可以确保不会弄乱现有的颜色)颜色,然后可以充当“透明”,作为透明度的参考,可以这么说),当在

    .pdf
    中查看最终的
    okular
    文件时,会产生不良效果:可能会出现非常细的(红色)颜色框架清楚地感知到。因此,由于我的图像背景是白色,所以我选择了白色。

  • pngquant
    允许微调输出
    .png
    文件,基本上,与原始帖子中
    convert
    命令的输出相比,此设置会减小其大小。

© www.soinside.com 2019 - 2024. All rights reserved.