Python实现图片尺寸缩放脚本


Posted in Python onMarch 10, 2018

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

# coding=utf-8 
import Image 
import shutil 
import os 
 
 
class Graphics: 
 infile = 'D:\\myimg.jpg' 
 outfile = 'D:\\adjust_img.jpg' 
 
 @classmethod 
 def fixed_size(cls, width, height): 
  """按照固定尺寸处理图片""" 
  im = Image.open(cls.infile) 
  out = im.resize((width, height),Image.ANTIALIAS) 
  out.save(cls.outfile) 
 
 @classmethod 
 def resize_by_width(cls, w_divide_h): 
  """按照宽度进行所需比例缩放""" 
  im = Image.open(cls.infile) 
  (x, y) = im.size 
  x_s = x 
  y_s = x/w_divide_h 
  out = im.resize((x_s, y_s), Image.ANTIALIAS) 
  out.save(cls.outfile) 
 
 @classmethod 
 def resize_by_height(cls, w_divide_h): 
  """按照高度进行所需比例缩放""" 
  im = Image.open(cls.infile) 
  (x, y) = im.size 
  x_s = y*w_divide_h 
  y_s = y 
  out = im.resize((x_s, y_s), Image.ANTIALIAS) 
  out.save(cls.outfile) 
 
 @classmethod 
 def resize_by_size(cls, size): 
  """按照生成图片文件大小进行处理(单位KB)""" 
  size *= 1024 
  im = Image.open(cls.infile) 
  size_tmp = os.path.getsize(cls.infile) 
  q = 100 
  while size_tmp > size and q > 0: 
   print q 
   out = im.resize(im.size, Image.ANTIALIAS) 
   out.save(cls.outfile, quality=q) 
   size_tmp = os.path.getsize(cls.outfile) 
   q -= 5 
  if q == 100: 
   shutil.copy(cls.infile, cls.outfile) 
 
 @classmethod 
 def cut_by_ratio(cls, width, height): 
  """按照图片长宽比进行分割""" 
  im = Image.open(cls.infile) 
  width = float(width) 
  height = float(height) 
  (x, y) = im.size 
  if 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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
2款Python内存检测工具介绍和使用方法
Jun 01 Python
Python递归遍历列表及输出的实现方法
May 19 Python
python基于multiprocessing的多进程创建方法
Jun 04 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
Aug 22 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
Mar 23 Python
Python求凸包及多边形面积教程
Apr 12 Python
手把手教你用Django执行原生SQL的方法
Feb 18 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
TensorFlow平台下Python实现神经网络
Mar 10 #Python
python构建深度神经网络(续)
Mar 10 #Python
python构建深度神经网络(DNN)
Mar 10 #Python
Python使用numpy实现BP神经网络
Mar 10 #Python
python实现日常记账本小程序
Mar 10 #Python
python实现简单神经网络算法
Mar 10 #Python
TensorFlow saver指定变量的存取
Mar 10 #Python
You might like
PHP编程与应用
2006/10/09 PHP
Codeigniter的一些优秀特性总结
2015/01/21 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
Javascript - HTML的request类
2007/01/09 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
JQuery.validate在ie8下不支持的快速解决方法
2016/05/18 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
python实现文本文件合并
2015/12/29 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
KOHLER科勒美国官网:国际著名卫浴橱柜领先品牌
2020/06/27 全球购物
百度软件工程师职位
2013/02/14 面试题
自荐信范文
2013/12/10 职场文书
公司保密承诺书
2014/03/27 职场文书
五年级学生评语大全
2014/12/26 职场文书
创业计划书之面包店
2019/09/12 职场文书