前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

基本环境

  • 版本:Python3.6

  • 系统:Windows

相关模块:

 import requests as req
from PIL import Image
from io import BytesIO

原图:

结果图:

完整代码

 import requests as req
from PIL import Image
from io import BytesIO
def make_thumb(url, sizes=(300, 175)):
"""
生成指定尺寸缩略图
:param path: 图像路径
:param sizes: 指定尺寸
:return: 无返回,直接保存图片
"""
response = req.get(path)
im = Image.open(BytesIO(response.content))
mode = im.mode
if mode not in ('L', 'RGB'):
if mode == 'RGBA':
# 透明图片需要加白色底
alpha = im.split()[3]
bgmask = alpha.point(lambda x: 255 - x)
im = im.convert('RGB')
im.paste((255, 255, 255), None, bgmask)
else:
im = im.convert('RGB')

# 切成方图,避免变形
width, height = im.size
if width == height:
region = im
else:
if width > height:
# h*h
delta = (width - height) / 2
box = (delta, 0, delta + height, height)
else:
# w*w
delta = (height - width) / 2
box = (0, delta, width, delta + width)
region = im.crop(box)

# resize
thumb = region.resize((sizes[0], sizes[1]), Image.ANTIALIAS)
#保存图片
filename = url.split('/')[-1]
name, ext = filename.split('.')
savename = name + str(sizes[0]) + '_' + str(sizes[1]) + '.' + ext
thumb.save(savename, quality=100)


path = r'C:\Users\HP\Desktop\luckylttory.png'
make_thumb(path)

最新文章

  1. js 反显查询。
  2. 错误的CPU时间片大小概念
  3. android视频播放器开发
  4. check member function
  5. sql注入攻击的预防函数
  6. js上移、下移、置顶、置底功能实现
  7. IOS学习3
  8. c#转义字符串中的所有正则特殊字符
  9. Insertion Sort List —— LeetCode
  10. 水平居中的两种方法margin text-align
  11. 2017JAVA课程设计
  12. Python学习之--socket
  13. JVM垃圾收集相关经常使用參数
  14. 集合之LinkedHashSet(含JDK1.8源码分析)
  15. 用canvas写个接水管小游戏
  16. Jenkins与网站代码上线解决方案【转】
  17. (ios7) 解决代码布局View, ios7 中 subView 高度增加StatusBar20dp的问题,保证Ios6,ios7代码一致
  18. webapi 异常处理
  19. php oci8 小试
  20. Codeforces 160 D. Edges in MST

热门文章

  1. mysql中的事务隔离级别
  2. robot用例执行常用命令(转)
  3. 谁说程序员不浪漫?Python导出微信聊天记录生成爱的词云图
  4. Cesium专栏-空间分析之坡向分析(附源码下载)
  5. Windows下Linux虚拟机的配置以及Win10 linux子系统开启
  6. Android进阶之绘制-自定义View完全掌握(二)
  7. vue/cli2.0优化
  8. 【转】C++ - 结构体构造函数使用总结
  9. mysql中group by 使用
  10. Yet Another Broken Keyboard