900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Python切图九宫格

Python切图九宫格

时间:2019-10-02 16:05:08

相关推荐

Python切图九宫格

1 # -*- coding: utf-8 -*- 2 ''' 3 将一张图片填充为正方形后切为9张图 4 ''' 5 from PIL import Image 6 import sys 7 #将图片填充为正方形 8 def fill_image(image): 9width, height = image.size10#选取长和宽中较大值作为新图片的11new_image_length = width if width > height else height12#生成新图片[白底]13new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')14#将之前的图粘贴在新图上,居中15if width > height:#原图宽大于高,则填充图片的竖直维度16 #(x,y)二元组表示粘贴上图相对下图的起始位置17 new_image.paste(image, (0, int((new_image_length - height) / 2)))18else:19 new_image.paste(image, (int((new_image_length - width) / 2),0))20return new_image21 #切图22 def cut_image(image):23width, height = image.size24item_width = int(width / 3)25box_list = []26# (left, upper, right, lower)27for i in range(0,3):#两重循环,生成9张图片基于原图的位置28 for j in range(0,3):29 #print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))30 box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)31 box_list.append(box)32 33image_list = [image.crop(box) for box in box_list]34return image_list35 #保存36 def save_images(image_list):37index = 138for image in image_list:39 image.save('./python'+str(index) + '.png', 'PNG')40 index += 141 42 if __name__ == '__main__':43file_path = "python.jpeg"44image = Image.open(file_path)45#image.show()46image = fill_image(image)47image_list = cut_image(image)48save_images(image_list)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。