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 相关文章推荐
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
python版简单工厂模式
Oct 16 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
pandas通过索引进行排序的示例
Nov 16 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
TensorFlow 显存使用机制详解
Feb 03 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
win10安装python3.6的常见问题
Jul 01 Python
python爬虫中PhantomJS加载页面的实例方法
Nov 12 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
python requests模块的使用示例
Apr 07 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通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
JavaScript中的私有成员
2006/09/18 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python实现登陆文件验证方法
2018/10/06 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
Python如何实现机器人聊天
2020/09/10 Python
同学聚会主持词
2014/03/18 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2015年元旦促销方案书
2014/12/09 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
介绍信格式样本
2015/05/05 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS