python如何把一个png中不透明的部分缩小再与另一个图片为背景全成一张图?

python如何把一个png中不透明的部分缩小再与另一个图片为背景全成一张图?

一个png中不透明的部分缩小部分要求放在另一张图片的指点坐标处,比如x,y都居中


回答:

from PIL import Image, ImageDraw, ImageFont

def add_watermark(img_path, watermark_path):

# 加载主图片

main_img = Image.open(img_path).convert('RGBA')

main_width, main_height = main_img.size

# 加载水印图片

watermark_img = Image.open(watermark_path).convert('RGBA')

watermark_width, watermark_height = watermark_img.size

# 水印图片缩小一半

scale = 0.5

new_size = (int(watermark_width * scale), int(watermark_height * scale))

# 改变图像大小

new_img = watermark_img.resize(new_size)

width, height = new_img.size

# 创建画布

position = (int((main_width - width)/2), int((main_height - height)/2))

watermark_canvas = Image.new('RGBA', main_img.size, (0, 0, 0, 0))

watermark_canvas.paste(new_img, position)

# 合并图片

result_img = Image.alpha_composite(main_img, watermark_canvas)

# 保存图片

result_path = img_path.split('/')[-1].split('.')[0] + '_with_watermark.jpg'

result_img.save(result_path)

print('Watermark added successfully to the image: ', result_path)

add_watermark('./main.webp', './water.jpg')


回答:

要将一个PNG图像中不透明的部分缩小,并与另一张背景图片合并,你可以使用Python的PIL库(Pillow)来实现。下面是一个示例代码:
from PIL import Image

打开PNG图像和背景图像

foreground_image = Image.open('foreground.jpg')
background_image = Image.open('background.jpg')

缩小前景图像的尺寸

width, height = foreground_image.size
scaled_width, scaled_height = int(width/2), int(height/2)
scaled_foreground = foreground_image.resize((scaled_width, scaled_height))

在背景图像上创建一个新的图像对象

merged_image = background_image.copy()

计算将缩小后的前景图像放置在背景图像中心的坐标

center_x = (background_image.width - scaled_width) // 2
center_y = (background_image.height - scaled_height) // 2

将缩小后的前景图像粘贴到背景图像上

merged_image.paste(scaled_foreground, (center_x, center_y), mask=scaled_foreground)

保存合并后的图像

merged_image.save('merged_image.jpg')

请确保将"foreground.jpg"替换为你的PNG图像文件名,"background.jpg"替换为你的背景图像文件名。这段代码将打开前景图像和背景图像,将前景图像缩小一半,并将其放置在背景图像中央,然后保存合并后的图像为"merged_image.jpg"。

以上是 python如何把一个png中不透明的部分缩小再与另一个图片为背景全成一张图? 的全部内容, 来源链接: utcz.com/p/938924.html

回到顶部