【问题标题】:Set image inside png transparency在png透明度内设置图像
【发布时间】:2019-05-29 03:34:20
【问题描述】:

正如标题所示,我有一个具有一定透明度的 PNG 图像。我想用第二张图片(目前是 JPEG,但将其转换为 PNG 不成问题)填充该透明度。

我在互联网上搜索到的每一篇文章都是关于“逆”问题(从有背景的图像到有透明度的图像),所以显然它不适合我的情况;例如,我试过了

convert -flatten myimg.png myimg.png

(取自here)和

convert myimg1.png  -transparent white myimg.png

(取自here)。

【问题讨论】:

  • 嗨,欢迎来到堆栈溢出。请参阅How to Ask 链接以获取有关如何提出问题并相应更新您的问题的更多详细信息。例如,发布一个最小的代码示例。

标签: imagemagick


【解决方案1】:

在 ImageMagick 6 中,如果两个图像的大小相同,那么您可以将透明图像展平在背景图像之上。

背景(lena.jpg):

透明的 (logo_crop_trans.png):

convert lena.jpg logo_crop_trans.png -flatten lena_logo.jpg


如果使用 ImageMagick 7,则将 convert 更改为 magick。

如果你想对透明图像进行反锯齿处理,使其不那么锯齿,那么使用一些模糊来平滑轮廓(Unix 语法):

convert lena.jpg \( logo_crop_trans.png -channel a -blur 0x1 -level 50x100% +channel \) -compose over -composite lena_logo2.jpg


如果在 Windows 上删除括号前的 \。

【讨论】:

  • 这是基本思路,但是png的“透明”部分不是背景,而且两张图片的大小也不一样
  • 对不起,我不明白你关于 png 的透明部分不是背景的命令。我的背景来自 lena 图像。透明图像是放置在不透明 lena 图像之上的前景,以便 lena 显示出来。请发布指向您输入图像的链接,以便我们了解您想要做什么并使用它们来解决您的问题。您无权直接发帖。所以发布到一些免费的图片托管服务
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 1970-01-01
  • 2018-10-09
  • 2010-11-09
相关资源
最近更新 更多