在python中如何将一个图像与另一个图像相乘

2024-09-26 22:53:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着把一个图像放在另一个图像上,即如果两个图像绿苹果.png以及红颜色.png图像就在我身边,现在我想把它放大红颜色.png到绿苹果.png所以图像绿苹果.png会被掩盖红颜色.png只在那个地方希腊苹果.png剩下的就走了。 我试过用ImageChops来做,代码是

import Image
import bakepass
from PIL import ImageChops

im1 = Image.open("greenapple.png")
im2 = Image.open("redcolor.png")
image = Image.open("new.png")

image.save(ImageChops.multiply(im1,im2))

但是使用上面的代码我得到了值错误:图像不匹配 我用的是同样大小的512X512文件 请帮帮我


Tags: 代码from图像imageimport苹果pilpng
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:06

这可能就是你要找的:changing hue

但如果您出于某种原因不想使用numpy,您可以使用composite和alpha通道(下面将alpha值放在整个图像上,您可以通过img1的绿色/红色来计算在哪里更改img2的alpha):

from PIL import Image, ImageEnhance

img1 = Image.open('apple.png')
img2 = Image.open('green.png')
img2.putalpha(ImageEnhance.Brightness(img2.split()[3]).enhance(0.75))
img1 = Image.composite(img2, img1, img2)
img1.save('out.png')

下面是我在上面的测试中使用的两张图片(可能有点大),第三张图片是上面代码的结果:

在苹果.png在

Imgur

在绿色.png在

Imgur

在输出.png在

Imgur

还有PIL的paste()函数:

^{pr2}$

使用img.split()来处理red, green, blue, alpha,并在决定将覆盖层放在哪里时使用绿色/红色色块。在

以下是一些经过计算的备选方案,例如可以使用黑色作为排除颜色:

相关问题 更多 >

    热门问题