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



猜你喜欢

转载自blog.csdn.net/XLM11/article/details/80784264