在python中怎么裁剪图片大小?如何利用Python裁剪图片?

Python0140

在python中怎么裁剪图片大小?如何利用Python裁剪图片?,第1张

先对图片进行二值化处理。

由于这些格子大小均匀,所以可以使用常规的除法,先裁剪出第一个格子:

e=a[:,:,0].shape

f=a[0:int(e[0]/9),0:int(e[1]/9)]

io.imsave('00.png',f)

下图是等比例放大的效果图。

第一列第二个格子:

m=1

n=0

f=a[int(m*e[0]/9):int((m+1)*e[0]/9),int(n*e[1]/9):int((n+1)*e[1]/9)]

第一行第二个格子:

m=0

n=1

f=a[int(m*e[0]/9):int((m+1)*e[0]/9),int(n*e[1]/9):int((n+1)*e[1]/9)]

这样,用for循环,可以实现全部裁剪:

for m in range(9):

for n in range(9):

f=a[int(m*e[0]/9):int((m+1)*e[0]/9),int(n*e[1]/9):int((n+1)*e[1]/9)]

io.imsave('0/'+str(m)+'-'+str(n)+'.png',f)

去除边界的黑框,只保留数字或空白:

for m in range(9):

for n in range(9):

f=a[int(m*e[0]/9)+10:int((m+1)*e[0]/9)-10,int(n*e[1]/9)+10:int((n+1)*e[1]/9)-10]

io.imsave('0/'+str(m)+'-'+str(n)+'.png',f)

当然可以。

先根据字符的长度,将字符分成N个组,每组一个字符。

然后根据电脑显示器的大小,创建一个图片框,高度和长度分别设置为电脑显示器的25%。

再将字符显示到图片框中,保存图片框的内容为图片文件即可。

# -*- coding: gbk -*-

import Image

import ImageDraw

import ImageChops

            

im = Image.new('RGB', (800, 600), 'white')

im2 = Image.open('test.png')

#测试图放画布左边,画布右边底色涂黄

left = (im.size[0]/2 - im2.size[0])/2

upper = (im.size[1] - im2.size[1])/2

im.paste(im2, (left, upper))

im.paste('yellow', (im.size[0]/2, 0) + im.size)

im.show()

#因要旋转得计算测试图对角线,然后切出

d = int((im2.size[0]**2 +im2.size[1]**2)**0.5)

left = (im.size[0]/2-d)/2

upper = (im.size[1]-d)/2

bbox = (left, upper, left+d, upper+d)

cp = im.crop(bbox)

#图底不是黑先做mask再作旋转,

#mask做法不一,按测试图可选取g或b通道

r, g, b = cp.split()

mask = g.point(lambda i: i < 250 and 255)

angle = 30

mask = mask.rotate(angle)

cp = cp.rotate(angle)

#利用mask贴在画布右边黄底区内

im.paste(cp, (left+im.size[0]/2, upper), mask)

im.show()