这里主要是使用Python图像处理库Pillow创建缩略图的方法,以及粘贴的方法
上原图:
这里我想在图片的左上角加入一个缩略图,会使得显得有层次感些,于是乎:
# _*_ coding:utf-8 _*_
from PIL import Image
__author__ = 'admin'
'''
在原图上加入缩略图
'''
def thumbnail(im):
# 缩略图大小
size = (200, 200)
try:
# 创建后的缩略图大小不一定就是200x200的,是按照原图比例来的
im.thumbnail(size)
return im
except IOError:
print(u"无法创建缩略图!")
def mosaic(im):
im0 = im.copy()
width_im, height_im = im0.size
# 调用thumbnail创建缩略图
im_thumbnail = thumbnail(im0)
# 获取缩略图大小
width_thumbnail, height_thumbnail = im_thumbnail.size
# 避免出现原图比缩略图尺寸还小的情况
if width_im > width_thumbnail and height_im > height_thumbnail:
im.paste(im_thumbnail, (0, 0, width_thumbnail, height_thumbnail))
return im
im = Image.open(r'linuxidc.com.png')
mosaic(im).show()
效果图:
期间让我烦恼的是我无法直接在将原图创建缩略图的基础上,再把缩略图放回原图了!因为我将原图创建缩略图是这样的:
im = Image.open(r'linuxidc.com.png')
im_thumbnail = thumbnail(im)
此时的im已经不是原来的im了,想必大家已经知道了,此时的im已经是缩略图了
最后我得知了一个方法就是
im.copy()
想复制几个就复制几个,都不会影响原图的。
更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2020-01/162138.htm