如何更改这个组合png图像的python背景颜色



我有下面的代码,它工作得很好,只是它生成了一个黑色背景图像,我希望它是白色的。我试过更改bg_color,但我更改的任何内容都仍然保持黑色背景。还有没有一种方法可以让我在组合的每个图像周围制作一个方框?

direction = 'vertical'
bg_color=(1,1,1,1)
aligment='center'
images = [Image.open(x) for x in ['LVISF2_ABoVE2019_0801_R2003_084168.TXT_ZG.png', 'LVISF2_ABoVE2019_0801_R2003_084168.TXT_RH95.png']]
widths, heights = zip(*(i.size for i in images))
if direction=='horizontal':
new_width = sum(widths)
new_height = max(heights)
else:
new_width = max(widths)
new_height = sum(heights)
new_im = Image.new('RGB', (new_width, new_height), color=bg_color)
offset = 0
for im in images:
if direction=='horizontal':
y = 0
if aligment == 'center':
y = int((new_height - im.size[1])/2)
elif aligment == 'bottom':
y = new_height - im.size[1]
new_im.paste(im, (offset, y))
offset += im.size[0]
else:
x = 0
if aligment == 'center':
x = int((new_width - im.size[0])/2)
elif aligment == 'right':
x = new_width - im.size[0]
new_im.paste(im, (x, offset))
offset += im.size[1]
new_im.save('test4.jpg')

原来我的png背景不是白色的,它是透明的,所以我不得不把透明背景改为白色,然后我就可以改变背景颜色了。

以下是我如何将原始png背景更改为白色

images1 = ['LVISF2_ABoVE2019_0801_R2003_084168.TXT_ZG.png', 'LVISF2_ABoVE2019_0801_R2003_084168.TXT_RH95.png']
for i in images1:
im = Image.open(r'{0}'.format(i))
fill_color = (255,255,255)
im = im.convert("RGBA")   
if im.mode in ('RGBA', 'LA'):
background = Image.new(im.mode[:-1], im.size, fill_color)
background.paste(im, im.split()[-1]) # omit transparency
im = background
im.convert("RGB").save(r'newimage_{0}.jpg'.format(i))

最新更新