python实现批量按比例缩放图片效果

本文实例为大家分享了python实现批量按比例缩放图片的具体代码,供大家参考,具体内容如下

把脚本文件放在要缩放的文件夹下面。

双击运行脚本,输入要缩放的系数。脚本会在当前目录下创建一个scaledImg_xxxx文件夹,如果已经存在,会强制删除,如果删除失败会提示手动删除这个文件夹,再双击运行就可以了。

resizeImg.py

#!/usr/bin/python
# -*- coding:utf8 -*- 

#author@skillart www. 

import os
import shutil
import Image
to_scale = 0.5
processIndex = 0
def resizeImg(imgPath):
  global processIndex
  fileList = []
  files = os.listdir(imgPath)
  for f in files:
    filePath = imgPath + os.sep + f
    if(os.path.isfile(filePath)):
      fileList.append(f)
    elif(os.path.isdir(filePath)):
      resizeImg(filePath)
  for fileName in fileList:
    processIndex+=1
    fileFullName = imgPath+os.sep+fileName
    suffix = fileName[fileName.rfind('.'):]
    if(suffix == '.png' or suffix == '.jpg'):
      print 'processing the '+str(processIndex)+'th file:'+fileFullName
      img = Image.open(fileFullName)
      w,h = img.size
      tw = int(w * to_scale)
      th = int(h * to_scale)
      reImg = img.resize((tw,th),Image.ANTIALIAS)
      reImg.save(fileFullName)
      del reImg
if __name__ == '__main__':
  scaleStr = raw_input('input to_scale: ')
  to_scale = float(scaleStr)
  scaledPath = '.\\scaledImg_xxxx';
  if os.path.isdir(scaledPath):
    flag = raw_input('the output dir is exist, sure to del it(y/n)')
    if flag == 'y' or flag == 'yes':
      try:
        shutil.rmtree(scaledPath)
      finally:
        raw_input('remove dir failed , please removed the dir manually.')
    else:
      exit
  shutil.copytree('.\\',scaledPath)
  resizeImg(scaledPath)
  raw_input("resize success")

生成Icon

generateIcon.py

#!/usr/bin/python
# -*- coding:utf8 -*- 

#author@skillart www. 

import os
import shutil
import Image
def resizeImg(imgPathName):
  print imgPathName
  iconDict = {'Icon.png':'72x72','Icon@2x.png':'144x144','Icon-29.png':'29x29','Icon-40.png':'40x40','Icon-50.png':'50x50',
  'Icon-57.png':'57x57', 'Icon-58.png':'58x58','Icon-72.png':'72x72','Icon-76.png':'76x76','Icon-80.png':'80x80',
  'Icon-100.png':'100x100','Icon-114.png':'114x114','Icon-120.png':'120x120','Icon-144.png':'144x144','Icon-152.png':'152x152',
  'FlipCycleTileLarge.png':'300x300','FlipCycleTileMedium.png':'300x300','FlipCycleTileSmall.png':'300x300',
  'IconicTileMediumLarge.png':'300x300','IconicTileSmall.png':'300x300','ApplicationIcon.png':'300x300','icon.png':'72x72'}
  if os.path.isfile(imgPathName) == False:
    print('open imgPathName failed , check the' + imgPathName + "is exist!")
    exit
  img = Image.open(imgPathName)
  index = imgPathName.rfind(os.sep)
  prefix = imgPathName[:index+1]
  for key, value in iconDict.items():
    # print key,value
    v_split = value.split('x')
    w,h = int(v_split[0]),int(v_split[1])
    fileName = prefix + key
    reImg = img.resize((w,h),Image.ANTIALIAS)
    reImg.save(fileName)
    print fileName,w,h
  del img
if __name__ == '__main__':
  scaledPath = '.\\createIcon'
  if os.path.isdir(scaledPath):
    flag = raw_input('the output dir is exist, sure to del it(y/n)')
    if flag == 'y' or flag == 'yes':
      try:
        shutil.rmtree(scaledPath)
      finally:
        raw_input('remove dir failed , please removed the dir manually.')
    else:
      exit
  shutil.copytree('.\\',scaledPath)
  fileList = []
  files = os.listdir(scaledPath)
  for f in files:
    filePath = scaledPath + os.sep + f
    if os.path.isfile(filePath) :
      suffix = filePath[filePath.rfind('.'):]
      if(suffix == '.png' or suffix == '.jpg'):
        print filePath
        resizeImg(filePath)
        break
  raw_input("resize success") 

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

(0)

相关推荐

  • python+pyqt5实现图片批量缩放工具

    批量修改图片大小好像用PS也可以,不过我不会,程序猿就用程序来解决. 这段时间学了下Python,很强大,之前一些不知道怎么处理的东西在Python里面都能找到解决方法. 工具界面如下图 这个工具需要用到第三方库 Pillow 和 Pyqt5,可通过命令行安装. pip install pillow pip install pyqt5 代码: #!-*-coding:utf-8-*- from PIL import Image import hashlib, os, sys from PyQt5

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

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

  • 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实现图片尺寸缩放脚本

    最近由于网站对图片尺寸的需要,用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

  • 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实现批量按比例缩放图片的具体代码,供大家参考,具体内容如下 把脚本文件放在要缩放的文件夹下面. 双击运行脚本,输入要缩放的系数.脚本会在当前目录下创建一个scaledImg_xxxx文件夹,如果已经存在,会强制删除,如果删除失败会提示手动删除这个文件夹,再双击运行就可以了. resizeImg.py #!/usr/bin/python # -*- coding:utf8 -*- #author@skillart www. import os import shut

  • 用jquery实现等比例缩放图片效果插件

    复制代码 代码如下: jQuery.fn.autoZoomLoadImage = function(scaling, width, height, loadPic) { if (loadPic == null) loadPic = "Loading.gif"; return this.each(function() { var t = $(this); var src = $(this).attr("src"); var img = new Image(); //a

  • PHP 等比例缩放图片详解及实例代码

    直接上代码,imgzip($src,$newwid,$newhei)这个函数带进去的分别是原图片.缩放要求的宽度.缩放的长度.代码都备注了,不懂可以留言哈哈 <?php //压缩图片 缩略图 $src= "xiezheng.jpg"; $newwid=640; $newhei= 480; function imgzip($src,$newwid,$newhei){ $imgInfo = getimagesize($src); $imgType = image_type_to_ex

  • JavaScript等比例缩放图片控制超出范围的图片

    js等比例缩放图片,这个功能非常实用,当网页加载一个尺寸比较大的图片时,往往会把一个网页撑的变形,页面变得很难看,于是我们就想到了用JS去控制超出一定范围的图片,我们以稳定页面布局,本代码段就是完成了此功能,而且代码非常简洁,效果很好. 复制代码 代码如下: <html><head><title>等比例缩放图片</title><script>function DrawImage(ImgD,iwidth,iheight){ //参数(图片,允许的宽

  • php等比例缩放图片及剪切图片代码分享

    php等比例缩放图片及剪切图片代码分享 /** * 图片缩放函数(可设置高度固定,宽度固定或者最大宽高,支持gif/jpg/png三种类型) * Author : Specs * * @param string $source_path 源图片 * @param int $target_width 目标宽度 * @param int $target_height 目标高度 * @param string $fixed_orig 锁定宽高(可选参数 width.height或者空值) * @ret

  • jQuery实现按比例缩放图片的方法

    本文实例讲述了jQuery实现按比例缩放图片的方法.分享给大家供大家参考,具体如下: 做网站的时候,相信有很多朋友都会遇到图片过大,导致页面撑开变形的问题,如果强制设置width,height,图片则会因为强制变形而走样.在这里我介绍一种简单的按比例缩放图片的方法. 对于一堆图片 <img src="1.jpg" border="1"></img> <img src="2.jpg" border="1&qu

  • JS实现按比例缩放图片的方法(附C#版代码)

    本文实例讲述了JS实现按比例缩放图片的方法.分享给大家供大家参考,具体如下: js版本: function resizeImage(obj, MaxW, MaxH) { var imageObject = obj; var state = imageObject.readyState; if(state!='complete') { setTimeout("resizeImage("+imageObject+","+MaxW+","+MaxH+&

  • 比较方便的onMouseWheel缩放图片效果 原创

    复制代码 代码如下: <HTML>   <HEAD>   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">   <TITLE>onMouseWheel缩放图片效果-www.jb51.Net</TITLE> <body> <script> function bbimg(o) {   var zoom

  • Python 爬虫批量爬取网页图片保存到本地的实现代码

    其实和爬取普通数据本质一样,不过我们直接爬取数据会直接返回,爬取图片需要处理成二进制数据保存成图片格式(.jpg,.png等)的数据文本. 现在贴一个url=https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg 请复制上面的url直接在某个浏览器打开,你会看到如下内容: 这就是通过网页访问到的该网站的该图片,于是我们可以直接利用requests模块,进行这个图片的请求,于是这个网站便会返回给我们该图片的数据,我们

  • 如何使用php等比例缩放图片

    本文介绍了PHP实现图片压缩方法,读者可以根据具体应用参考或加以改进,直接上代码,imgzip($src,$newwid,$newhei)这个函数带进去的分别是原图片.缩放要求的宽度.缩放的长度. <?php //压缩图片 缩略图 $src= "xiezheng.jpg"; $newwid=640; $newhei= 480; function imgzip($src,$newwid,$newhei){ $imgInfo = getimagesize($src); $imgTyp

随机推荐