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实现获取网站PR及百度权重
Jan 21 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
Win10下Python环境搭建与配置教程
Nov 18 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Python3.4实现远程控制电脑开关机
Feb 22 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
Python中遍历列表的方法总结
Jun 27 Python
pandas 如何分割字符的实现方法
Jul 29 Python
如何在Django配置文件里配置session链接
Aug 06 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
Python基础详解之描述符
Apr 28 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
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
ng-zorro-antd 入门初体验
2018/12/03 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
详解微信小程序开发(项目从零开始)
2019/06/06 Javascript
微信小程序前端自定义分享的实现方法
2019/06/13 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
Python Matplotlib库入门指南
2015/05/18 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python pip使用超时问题解决方案
2020/08/03 Python
Python无损压缩图片的示例代码
2020/08/06 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
Python脚本调试工具安装过程
2021/01/11 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
UNIX特点都有哪些
2016/04/05 面试题
艺术设计专业个人求职信范文
2013/12/11 职场文书
生产总经理岗位职责
2013/12/19 职场文书
旅游管理专业生自荐信范文
2014/01/02 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js