python+imageMagick写的一个压缩图片脚本
!/usr/bin/python
import os
import cPickle as p
import re
import Image def imageCompre(imagedir = '.', imagelistfile="image.data"): datafile = imagedir+'/'+imagelistfile
allowImageType = ['jpg','jpeg','gif','png']
pre = re.compile('^big|^sml|^mid*'); if os.path.isfile(datafile):
f = file(datafile)
imagelist = p.load(f)
f.close()
else:
imagelist = [] for item in os.listdir(imagedir):
if item:
if os.path.isdir(imagedir+"/"+item):
imageCompre(imagedir+"/"+item,'image.data')
else:
if item.split('.')[-1] in allowImageType and item not in imagelist and not pre.match(item):
imagelist.append(item);
#convert image file
convertImage(imagedir,item)
#update image.data
if imagelist:
f = file(datafile, 'w')
p.dump(imagelist, f)
f.close()
#delete imagelist tuple
del imagelist def convertImage(imagedir,item):
sourcefile = imagedir+"/"+item
im = Image.open(sourcefile); if im.size[0]<=120:
os.system("cp %s %s/big-%s -a" %(sourcefile,imagedir,item))
os.system("cp %s %s/mid-%s -a" %(sourcefile,imagedir,item))
os.system("cp %s %s/sml-%s -a" %(sourcefile,imagedir,item))
else:
if im.size[0] > 640:
os.system("convert -resize 640 %s %s/big-%s" %(sourcefile,imagedir,item))
os.system("convert -resize 400 %s %s/mid-%s" %(sourcefile,imagedir,item))
os.system("convert -resize 120 %s %s/sml-%s" %(sourcefile,imagedir,item))
elif 400 < im.size[0] <= 640:
os.system("cp %s %s/big-%s -a" %(sourcefile,imagedir,item))
os.system("convert -resize 400 %s %s/mid-%s" %(sourcefile,imagedir,item))
os.system("convert -resize 120 %s %s/sml-%s" %(sourcefile,imagedir,item))
elif 120 < im.size[0] <= 400:
os.system("cp %s %s/big-%s -a" %(sourcefile,imagedir,item))
os.system("cp %s %s/mid-%s -a" %(sourcefile,imagedir,item))
os.system("convert -resize 120 %s %s/sml-%s" %(sourcefile,imagedir,item)) #init image
dirRoot = raw_input('input images directory (default is ./)')
if len(dirRoot) == 0:
dirRoot = '.' if os.path.isdir(dirRoot):
imageCompre(dirRoot);
else:
print 'the directory %s is not exists' %dirRoot;
python+imageMagick写的一个压缩图片脚本的更多相关文章
- 基于七牛Python SDK写的一个批量下载脚本
前言 上一篇基于七牛Python SDK写的一个同步脚本所写的脚本只支持上传,不支持文件下载. 虽然这个需求不太强烈,但有可能有人(在备份.迁移时)需要,而官方有没提供对应的工具,所以我就把这个功能也 ...
- Linux递归压缩图片脚本
1 压缩图片 使用ImageMagick的convert命令进行压缩图片,一般只需要一个指定压缩质量的参数,比如: convert -quality 75 1.jpg 1_compress.jpg 可 ...
- 自己写的一个tomcat发布脚本
闲来无事,就自己写一个shell脚本,方便自己以后在服务器上部署tomcat下的项目.我本地用maven打包,然后每次都要人工去切换一堆堆目录,有点繁琐,所以我写了下面的shell脚本. #! /bi ...
- 用Python 3写的一个Spider小爬虫(使用内置urllib模块and正则表达式)
用Python写了一个Spider小爬虫,爬一爬斗鱼“王者荣耀”在线直播的主播及人气
- 把登录和退出功能单独写到一个公共.py脚本,其它用例test1,test2调用公共登录,退出函数
公共登录/退出函数模块(login_exit.py): #coding:utf-8import timedef login(driver, username, password):#此处的driver ...
- 基于七牛Python SDK写的一个同步脚本
需求背景 最近刚搭了个markdown静态博客,想把博客的图片放到云存储中. 经过调研觉得七牛可以满足我个人的需求,就选它了. 博客要引用图片就要先将图片上传到云上. 虽然七牛网站后台可以上传文件,但 ...
- python类似微信未读信息图片脚本
其实就是实现一个效果,给一张图片,然后再右上角给出未读的信息数目,就像我们打开微信的时候,总是看到红点就忍不住想要点击去查看一样. 类似这种效果: 可以知道,图片是给定的,那么只要随机生成一个数字,然 ...
- Linux使用imagemagick的convert命令压缩图片、节省服务器空间
一.安装: sudo apt-get install imagemagick 二.说明 imagemagick的命令convert可以完成此任务,其参数-resize用来改变图片尺寸,可以直接指定像素 ...
- Linux使用imagemagick的convert命令压缩图片,节省服务器空间
1,安装imagemagick yum install ImageMagick 2,获取图片 find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500 ...
随机推荐
- RAC
RAC (Oracle网格计算技术) 编辑 Oracle RAC是Oracle Real Application Cluster的简写,官方中文文档一般翻译为“真正应用集群”,它一般有两台或者两台以上 ...
- 【Python】多线程-线程池使用
1.学习目标 线程池使用 2.编程思路 2.1 代码原理 线程池是预先创建线程的一种技术.线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中.这些线程都是处于睡眠状态,即均为启动,不消耗 ...
- 【vim】把当前文件转化为网页
这会生成一个 HTML 文件来显示文本,并在分开的窗口显示源代码: :%TOhtml (译者注:原文是 :%Tohtml,但在我的电脑上是 :%TOhtml) 转载自:https://linux.cn ...
- CSS选择器中带点(.)怎么办?
在SharePoint中很多元素的ID都用点(.)来连接的,比如: <li class="ms-cui-group" id="Ribbon.Documents.Ed ...
- .NET CORE 1.1 迁移到.NET 2.0正式版
以下操作参考官方文档 1:首先你需要升级到最新版的VS 2017 15.3 升级的地方在VS右上角有个黄色的更新提醒,如果没有请挂VPN或者重新下载一个新的. 2:第二步 和之前改.NET Frame ...
- ubuntu系统初始化网络及mysql配置
安装系统时需要安装open-ssh服务软件,否则无法远程连接 1.修改root密码 # sudo passwd 输入密码即可 切换到root用户,需要输入刚才的root密码 # su - 2.配置网络 ...
- Servlet注释与部署描述符
值得注意的是,部署描述符优先于注释.换句话说,部署描述符覆盖通过注释机制所规定的配置信息.Web 部署描述符的 3.0 版本在 web-app 元素上包含一种名为 metadata-complete ...
- windows安装配置git和Tortoisegit
git github gitlab Tortoisegit 的概念自行百度 1. 安装git 2. 安装小乌龟:Tortoisegit 和中文包 3. 配置 4. 使用 参考: 目录 安装及配置 ...
- Python源码学习(一)
考虑到性能的要求,我在工作中用的最多的是c/c++,然而,工作中又经常会有一些验证性的工作,这些工作对性能的要求并不高,反而对完成的效率要求更高,对于这样的工作,用一种开发效率高的语言是合理的想法,鉴 ...
- sql基础笔记备忘
MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型:tinyint smallint medium ...