欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python实现去除图片纯色边框和给图片补边

发布时间:2023/12/15 python 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python实现去除图片纯色边框和给图片补边 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
# encoding: utf-8 # author: qbit # date: 2020-06-15 # summary: 去除图片纯色边框 import shutil from PIL import Image, ImageChops Image.MAX_IMAGE_PIXELS = 10000000000 import numpy as np def TrimImgEdge(inImgPath, outImgPath):r"""去除图片边框inImgPath: 输入图片路径outImgPath: 输出图片路径"""print(f'TrimImgEdge {inImgPath} ...')imgIn = Image.open(inImgPath)# 创建一个边框颜色图片bg = Image.new(imgIn.mode, imgIn.size, imgIn.getpixel((0, 0)))diff = ImageChops.difference(imgIn, bg)# diff = ImageChops.add(diff, diff, 2.0, -10) # 可选,会去的更干净,副作用是误伤bbox = diff.getbbox() # 返回左上角和右下角的坐标 (left, upper, right, lower)if bbox:imgIn.crop(bbox).save(outImgPath, quality=95)else:shutil.copyfile(inImgPath, outImgPath) if __name__ == "__main__":TrimImgEdge('IR_3000.png', 'IR_3000(new).png')

Python 给图片补边

# encoding: utf-8 # author: qbit # date: 2020-09-2 # summary: 给宽图片上下补白边,让其满足一定比例,然后缩放到指定尺寸import math from PIL import Image Image.MAX_IMAGE_PIXELS = 10000000000 def add_white_edge(inImgPath, outImgPath, width, height):r"""给宽图片上下补白边,让其满足一定比例,然后缩放到指定尺寸inImgPath: 输入图片路径outImgPath: 输出图片路径width: 最终宽度height: 最终高度"""print(f'{inImgPath}')inImg: Image.Image = Image.open(inImgPath)bgWidth = inImg.widthbgHeight = inImg.heightif bgWidth > bgHeight:bgHeight = math.ceil((bgWidth * height) / width)# 创建一个白色背景图片bgImg: Image.Image = Image.new("RGB", (bgWidth, bgHeight), (255, 255, 255))bgImg.paste(inImg, (0, round((bgHeight - inImg.height) / 2)))bgImg.resize((width, height), Image.LANCZOS).save(outImgPath)if __name__ == "__main__":add_white_edge('IR_3000(new).png', 'IR_3000_4.png', 46170, 23085)

参考: https://segmentfault.com/a/1190000022940069
参考 : https://segmentfault.com/a/1190000023863720

总结

以上是生活随笔为你收集整理的python实现去除图片纯色边框和给图片补边的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。