python去除图片四周空白区域

在用字体文件造汉字的过程中,固定了图片大小后,用不同的字体绘制,会有一个问题,图片有时候太小,不足够画一个汉字。

为不同的字体、字号去调不同的图片大小又很麻烦。

就干脆在大的空白图片画汉字,再剪裁(本来也有剪裁的需求)

逻辑是这样的:

图片也就是个三维数组,如果空白是白色的,也就是(255,255,255)

计算四个方向(上,下,左,右)第一个不是空白的下标,再切片,放到一个新的array里

def trim(img):
        img2=img.sum(axis=2)
        (row,col)=img2.shape
        tempr0=0
        tempr1=0
        tempc0=0
        tempc1=0
#765 是255+255+255,如果是黑色背景就是0+0+0,彩色的背景,将765替换成其他颜色的RGB之和,这个会有一点问题,因为三个和相同但颜色不一定同
        for r in range(0,row):
                if img2.sum(axis=1)[r]!=765*col:
                        tempr0=r
                        break

        for r in range(row-1,0,-1):
                if img2.sum(axis=1)[r]!=765*col:
                        tempr1=r
                        break

        for c in range(0,col):
                if img2.sum(axis=0)[c]!=765*row:
                        tempc0=c
                        break

        for c in range(row-1,0,-1):
                if img2.sum(axis=0)[c]!=765*row:
                        tempc1=c
                        break

        new_img=img[tempr0:tempr1+1,tempc0:tempc1+1,0:3]
        return new_img



  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值