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 smallseg分词用法实例分析
May 28 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
python将回车作为输入内容的实例
Jun 23 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
基于Python生成个性二维码过程详解
Mar 05 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
利用Python制作动态排名图的实现代码
Apr 09 Python
Django实现后台上传并显示图片功能
May 29 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
python基础之模块的导入
Oct 24 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
Javascript注入技巧
2007/06/22 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
2015/04/27 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
如何检测JavaScript的各种类型
2016/07/30 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
python用10行代码实现对黄色图片的检测功能
2015/08/10 Python
python中的错误处理
2016/04/10 Python
python如何修改装饰器中参数
2018/03/20 Python
Tensorflow使用支持向量机拟合线性回归
2018/09/07 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
python爬虫用mongodb的理由
2020/07/28 Python
什么是事务?事务有哪些性质?
2012/03/11 面试题
个人求职简历的自我评价
2013/10/19 职场文书
八年级物理教学反思
2014/01/19 职场文书
二年级数学教学反思
2014/01/21 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
我的教育故事演讲稿
2014/05/04 职场文书
放假通知范文
2015/04/14 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
Oracle 多表查询基本语法实例
2022/04/18 Oracle