python给图片补充背景颜色,避免变形

tech2026-01-27  16

需求:图片比例不对,前端使用会造成拉成或压扁,需要处理成正方形供前端使用。

样例:

 

思路:利用图片边界像素点,统计出出现次数最多的点,以此为背景颜色生成一张正方形图片,

然后将原图居中合成到背景上,形成一张新的图片。

代码:

def deal_img_rbg(self, img1): np_img = np.asarray(img1) match_range = 20 each_rgb = [] each_rgb += (list(np_img[0:match_range, :][0])) each_rgb += (list(np_img[-1 - match_range:-1, :][0])) each_rgb += (list(np_img[:, 0:match_range][0])) each_rgb += (list(np_img[:, -1 - match_range:-1][0])) each_rgb = np.asarray(each_rgb) bg_rgb = tuple(stats.mode(each_rgb)[0][0]) # 查看最多的颜色 imgSize = img1.size # 图片的长和宽 max_bian = max(imgSize) img2 = Image.new('RGB', (max_bian, max_bian), bg_rgb) bw, bh = img2.size lw, lh = img1.size img2.paste(img1, ((bw - lw) // 2, (bh - lh) // 2)) img2.show

结果:

最新回复(0)