微信公众号" 程序猿刘先森", 共同学习~

https://darylliu.github.io/archives/9c4cfe08.html

最近由于网站对图片尺寸的需要,用python写了个小脚本,方便进行图片尺寸的一些调整,特记录如下:

# coding=utf-8
import Image
import shutil
import osclass Graphics:infile = 'D:\\myimg.jpg'outfile = 'D:\\adjust_img.jpg'@classmethoddef fixed_size(cls, width, height):"""按照固定尺寸处理图片"""im = Image.open(cls.infile)out = im.resize((width, height),Image.ANTIALIAS)out.save(cls.outfile)@classmethoddef resize_by_width(cls, w_divide_h):"""按照宽度进行所需比例缩放"""im = Image.open(cls.infile)(x, y) = im.size x_s = xy_s = x/w_divide_hout = im.resize((x_s, y_s), Image.ANTIALIAS) out.save(cls.outfile)@classmethoddef resize_by_height(cls, w_divide_h):"""按照高度进行所需比例缩放"""im = Image.open(cls.infile)(x, y) = im.size x_s = y*w_divide_hy_s = yout = im.resize((x_s, y_s), Image.ANTIALIAS) out.save(cls.outfile)@classmethoddef resize_by_size(cls, size):"""按照生成图片文件大小进行处理(单位KB)"""size *= 1024im = Image.open(cls.infile)size_tmp = os.path.getsize(cls.infile)q = 100while size_tmp > size and q > 0:print qout = im.resize(im.size, Image.ANTIALIAS)out.save(cls.outfile, quality=q)size_tmp = os.path.getsize(cls.outfile)q -= 5if q == 100:shutil.copy(cls.infile, cls.outfile)@classmethoddef cut_by_ratio(cls, width, height):"""按照图片长宽比进行分割"""im = Image.open(cls.infile)width = float(width)height = float(height)(x, y) = im.sizeif width > height:region = (0, int((y-(y * (height / width)))/2), x, int((y+(y * (height / width)))/2))elif width < height:region = (int((x-(x * (width / height)))/2), 0, int((x+(x * (width / height)))/2), y)else:region = (0, 0, x, y)#裁切图片crop_img = im.crop(region)#保存裁切后的图片crop_img.save(cls.outfile)

http://www.darylliu.cn/archives/9c4cfe08.html

微信公众号" 程序猿刘先森", 共同学习进化~

Python 图片尺寸缩放的4种方式相关推荐

  1. 《OpenCV3编程入门》学习笔记6 图像处理(六)图像金字塔与图片尺寸缩放

    6.6 图像金字塔与图片尺寸缩放 6.6.1 图像金字塔 1.图像金字塔是图像中多尺度表达的一种,主要用于图像分割,是一种以多分辨率解释图像的结构,通过梯次向下采样获得分辨率逐步降低的图象集合 2.分 ...

  2. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  3. 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  4. Python实现微信支付(三种方式)

    Python实现微信支付(三种方式) 微信.支付宝二维码聚合SDK下载 点我下载 关注公众号"轻松学编程"了解更多. 如果需要python SDk源码,可以加我微信[1257309 ...

  5. python代码的注释只有一种方式、那就是使用_尔雅学习通APP2020年细胞的奥秘答案查题公众号...

    [填空题]饱和水蒸气通过间壁加热空气,间壁温度接近于 的温度. [判断题]Python代码的注释只有一种方式,那就是使用 # . A. 正确 B. 错误 [单选题]胚胎最易受病毒感染而造成胎儿发育畸形 ...

  6. Python识别网站验证码的几种方式

    Python识别网站验证码的几种方式 1.云打码平台(已完结) 优势:现成的平台,只需要调用即可,成功率较高. 劣势:需要一点软妹币. 这是最简单的运用,国内常用的打码平台有: 云打码(http:// ...

  7. python代码的注释只有一种方式、那就是使用_[多选] 《建立世贸组织协定》附件4包括的诸边贸易协议有()....

    Python代码的注释只有一种方式,那就是使用#符号 [填空题]Some young people like pop music, while still others like music. 以能源 ...

  8. python使用什么作为转义字符-详解用Python处理HTML转义字符的5种方式

    写爬虫是一个发送请求,提取数据,清洗数据,存储数据的过程.在这个过程中,不同的数据源返回的数据格式各不相同,有 JSON 格式,有 XML 文档,不过大部分还是 HTML 文档,HTML 经常会混杂有 ...

  9. Python调用API接口的几种方式

    本文主要介绍python中调用API的几种方式,下面是python中会用到的库. 1.urllib2 import urllib2, urllib github_url = 'https://api. ...

最新文章

  1. 职业操盘手内部教材 z
  2. java 张龙_张龙 JAVA5新特性学习笔记
  3. php图形图像,php图形图像处理
  4. 思科查看服务器启动配置文件,启动配置检查UCS
  5. 前端学习(557):css与百分比单位
  6. Unable to delete directory: D:\Downloads\githubdownfive\tianxmyapp\library\
  7. python中协程与函数的区别_python 协程与go协程的区别
  8. JAVA程序员从菜鸟到菜鸟
  9. 中国开源视频编辑软件行业市场供需与战略研究报告
  10. hadoop的学习之一
  11. phpMyAdmin创建数据库无权限解决方案
  12. 哔哩哔哩---P2 WPF基础入门视频(布局)
  13. Win10将中文用户名修改为英文
  14. 解决OneNote无法联网
  15. 震惊!让90%的程序员一看就会的入门级AI项目!
  16. 使用msi2lmp和materials studio导出复杂结构的data文件的报错:Unable to find bond data for XXX,Unable to find oop data
  17. 使用opencv将16位深度图转灰度图
  18. opencv实现视频实时去雾算法
  19. ECCV2020视频插帧方法
  20. java 手电筒 电池_android 手电筒的实现

热门文章

  1. 一键同步Elasticsearch,DataWorks数据集成同步解决方案上线!
  2. Hive学习之路 (二)Hive安装
  3. 文件十六进制编辑软件HxD Hex Editor的使用
  4. macbook proa1708_MacBook Pro 2017 A1708自己更换电池
  5. ceph---ceph osd DNE状态对集群的影响
  6. java写满天繁星,描写满天繁星唯美句子
  7. 半色调技术简介(一)
  8. 双偶幻方的c语言算法,单偶阶、双偶阶幻方的巧妙填法
  9. 微信公众号文章信息(阅读量、在看、点赞数)获取
  10. fork客户端mac使用教程