Python实现图片尺寸缩放脚本

最近由于网站对图片尺寸的需要,用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使用PIL缩放网络图片并保存的方法
  • 使用ImageMagick进行图片缩放、合成与裁剪(js+python)
(0)

相关推荐

  • 使用ImageMagick进行图片缩放、合成与裁剪(js+python)

    最近的项目里面需要对书籍的封面进行处理,就是加一条阴影线形成书脊的凹凸感,然后将书脊切出,分成两部分,以便客户端实现打开动画.由于需要在服务器端处理,使用就研究使用imagemagick来进行.同时准备封装了一个Node.js和Python的方法,主要还是讲一下然后使用imagemagick来对图片进行缩放.合成后进行裁剪吧. 首先素材文件如下(左边未处理封面,右边为需要合成上去的阴影): 安装ImageMagick的过程就不讲了,可以参考官网的安装方法:http://www.imagemagi

  • python使用PIL缩放网络图片并保存的方法

    本文实例讲述了python使用PIL缩放网络图片并保存的方法.分享给大家供大家参考.具体实现方法如下: ''' tk_image_view_url_io_resize.py display an image from a URL using Tkinter, PIL and data_stream also resize the web image to fit a certain size display widget retaining its aspect ratio Pil facili

  • Python实现图片尺寸缩放脚本

    最近由于网站对图片尺寸的需要,用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): """按照固定尺寸处理图片&quo

  • android调用原生图片裁剪后图片尺寸缩放的解决方法

    在安卓开发中,如果对拍照后的图片进行图片裁剪,如果是调用系统的裁剪,如下: /* * 裁剪图片 */ private void cropPhoto() { Intent intent = new Intent("com.android.camera.action.CROP"); Uri uri = Uri.parse("file://" + picSavePath); intent.setDataAndType(uri, "image/*");

  • Python实现更改图片尺寸大小的方法(基于Pillow包)

    本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os import os.path from PIL import Image ''' filein: 输入图片 fileout: 输出图片 width: 输出图片宽度 height:输出图片高度 type:输出图

  • python实现按长宽比缩放图片

    使用python按图片固定长宽比缩放图片到指定图片大小,空白部分填充为黑色. 代码 # -*- coding: utf-8 -*- from PIL import Image class image_aspect(): def __init__(self, image_file, aspect_width, aspect_height): self.img = Image.open(image_file) self.aspect_width = aspect_width self.aspect_

  • python批量修改图片尺寸,并保存指定路径的实现方法

    如下所示: import os from PIL import Image filename = os.listdir("D:\\Work\\process\\样本处理\\polyu-all-train") base_dir = "D:\\Work\\process\\样本处理\\polyu-all-train\\" new_dir = "D:\\Work\\process\\样本处理\\polyu\\" size_m = 128 size_n

  • 如何基于Python获取图片的物理尺寸

    这篇文章主要介绍了如何基于Python获取图片的物理尺寸,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 如何获取图片的物理尺寸,而非(width, height)? 代码 以女神图为例 #! -*- coding: utf-8 -*- import requests import io url = "http://s1.sinaimg.cn/large/001Db1PVzy7qxVQWMjs06" image = request

  • android获取图片尺寸的两种方式及bitmap的缩放操作

    我就废话不多说了,大家还是直接看代码吧~ //Uri.parse("file://"+result.getImage().getCompressPath())) String path=uri.getPath(); Log.e("图片路径",path+""); SpannableString spannableString=new SpannableString(path); //方法一:通过uri把图片转化为bitmap的方法 Bitmap b

  • python图片格式转换脚本

    目录 前言 1.cv2 1.1 导包 1.2 路径设置 1.3 改格式重新传 1.4 查看结果 2.pillow 2.1 导包 2.2 路径设置 2.3 写格式修改函数 2.4 开始转换 2.5 查看结果 前言 常见的图像任务通常需要把照片统一成相同的格式,所以此文章正是为了统一格式而生,常见的主要有cv2和PIL.Image的相关操作,照片格式是一串数字加上后缀名 1.cv2 pip install opencv-python之后就可以import cv2 1.1 导包 import os i

  • python简单图片操作:打开\显示\保存图像方法介绍

    一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用python这个脚本语言来进行数字图像处理. 要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的. 要使用python进行各种开发,就必须安装对应的库.这和matlab非常相似,只是matlab里面叫工具箱

  • python放大图片和画方格实现算法

    本文实例为大家分享了python放大图片和画方格的具体代码,供大家参考,具体内容如下 1.Python 放大图片和画方格算法 #!C:/Python27 # -*- coding: utf-8 -*- import os import sys from PIL import Image,ImageDraw def make_doc_data(lf): #li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.op

随机推荐