Ras*_*ziz 0 python automation watermark image pillow
我有 10k 个图像,所以我试图使用 Pillow 库将水印放在所有图像上,但水印位置总是在变化,如下图所示。
我想把水印放在每张图片的中心位置,水印不应该离图片太大和太小,它应该适合每张图片,所以你能告诉我我该怎么做吗?
我正在使用此代码:
from PIL import Image
import glob
def watermark_with_transparency(input_image_path, output_image_path, watermark_image_path, position):
base_image = Image.open(input_image_path) #open base image
watermark = Image.open(watermark_image_path) #open water mark
width, height = base_image.size #getting size of image
transparent = Image.new('RGBA', (width, height), (0,0,0,0))
transparent.paste(base_image, (0,0))
transparent.paste(watermark, position, mask=watermark)
#transparent.show()
transparent.convert('RGB').save(output_image_path)
print 'Image Done..!'
for inputImage in glob.glob('images/*.jpg'):
output = inputImage.replace('images\\','')
outputImage = 'watermark images\\'+str(output)
watermark_with_transparency(inputImage, outputImage, 'watermark.png', position=(0,0)) #function
Run Code Online (Sandbox Code Playgroud)
小智 9
您将位置传递为 0,0。如果您希望它居中,那么您应该通过将图像的宽度和高度除以 2 并从中减去水印的宽度和高度除以 2 来更新函数内的位置。
X coordinate = width_of_image/2 - width_of_watermark/2
Y coordinate = height_of_image/2 - height_of_watermark/2
Run Code Online (Sandbox Code Playgroud)
这是一个示例代码:
width_of_watermark , height_of_watermark = watermark.size
position = ((width/2-width_of_watermark/2),(height/2-height_of_watermark/2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2948 次 |
| 最近记录: |