通常在iOS上开发使用的图片素材1x,2x,3x三种

下面利用python Image 库 resize函数,由一个大图,自动生成1x,2x,3x的素材照片;

1. 首先你的python环境要安装有Image库, 即PIL

没有安装的,下载源码 http://effbot.org/downloads/Imaging-1.1.7.tar.gz

安装PIL:

     $ tar xvfz Imaging-1.1..tar.gz
$ cd Imaging-1.1.
$ python setup.py install

2. 处理逻辑

传入照片路径,设定生成照片的名字,1x的照片大小;

脚本处理

3. 使用的核心函数 resize

#打开指定路径的照片
img = Image.open(infile) #转换成RGBA 添加alpha,大多数照片还是要透明的
img = img.convert("RGBA") #转换照片大小
save1x = img.resize((inWidth*,inHeight*)) #保存到指定路径,输出
save1x.save(out1x)

4. 完整的处理python脚本

#coding=utf-8
#自动生成iOS上1x,2x,3x图
#dev.keke@gmail.com
#17-04-19 from sys import argv
import os.path,Image #verify input
if len(argv)!=5 or argv[1]=='-h':
print "调用错误,请参考如下说明"
print "使用该脚本自生成ios上 1x,2x,3x图片"
print "使用示例,生成loginBtn.png(100,100),loginBtn@2x.png(200,200),loginBtn@3x.png(300,300)"
print "python xxx.py ~/path/test.png loginBtn 100 100"
print ""
exit() #in
infile = argv[1]
inName = argv[2]
inWidth = int(argv[3])
inHeight = int(argv[4])
fpath,fname = os.path.split(infile)
img = Image.open(infile)
img = img.convert("RGBA")
x,y = img.size
print "infile: " + infile
print "inSize: (" + str(x) + "," + str(y) +")" #out
out1x = fpath + "/" + inName + ".png"
out2x = fpath + "/" + inName + "@2x.png"
out3x = fpath + "/" + inName + "@3x.png"
save1x = img.resize((inWidth*1,inHeight*1))
save1x.save(out1x)
save2x = img.resize((inWidth*2,inHeight*2))
save2x.save(out2x)
save3x = img.resize((inWidth*3,inHeight*3))
save3x.save(out3x)
print "out:"
print out1x + " size: (" + str(inWidth*1) +","+ str(inHeight*1) +")"
print out2x + " size: (" + str(inWidth*2) +","+ str(inHeight*2) +")"
print out3x + " size: (" + str(inWidth*3) +","+ str(inHeight*3) +")" print "SUCCESS"

使用示例:

cocoaPro-2:iostp cocoajin$ ls
howto.gif iosImg.py test.png
cocoaPro-2:iostp cocoajin$ python iosImg.py ./test.png download 100 100
infile: ./test.png
inSize: (473,473)
out:
./download.png size: (100,100)
./download@2x.png size: (200,200)
./download@3x.png size: (300,300)
SUCCESS
cocoaPro-2:iostp cocoajin$ ls
download.png download@3x.png iosImg.py
download@2x.png howto.gif test.png
cocoaPro-2:iostp cocoajin$

下载脚本

python Image resize 对iOS图片素材进行2X,3X处理的更多相关文章

  1. 实现iOS图片等资源文件的热更新化(零): 序

    必要的序 以后在写系列文章,准备把基本的规划和动机等,单独作为一个小的序言部分给独立出来.序言部分,可以较为完整地交待系列文章的写作动机,所展示的编码技术可能的应用场景等.个人,我还是比较看重文章或者 ...

  2. 大屏iPhone的适配 +iOS 图片尺寸要求

    摘自:http://blog.ibireme.com/2014/09/16/adapted_to_iphone6/ 苹果公司官网设计介绍到:Retina显示屏的超高像素密度已超过人眼能分辨的范围.Re ...

  3. iOS图片缓存

    iOS的内存管理始终是开发者面临的大问题,内存占用过大时,很容易会被系统kill掉,开发者需要尽可能的优化内存占用问题. 现在的App界面做的越来越精致,里面集成了大量的图片,笔者首先想到的就是如何减 ...

  4. 实现iOS图片等资源文件的热更新化(三):动态的资源文件夹

    简介 此文,将尝试动态从某个不确定的文件夹中加载资源文件.文章,会继续完善自定义的 imageNamed 函数,并为下一篇文章铺垫. 这么做的意义 正如我们经常所说的那样,大多数情景知道做事的意义往往 ...

  5. iOS 图片轮播图(自动滚动)

    iOS 图片轮播图(自动滚动) #import "DDViewController.h" #define DDImageCount 5 @interface DDViewContr ...

  6. jquery mobile上传图片完整例子(包含ios图片横向问题处理和C#后台图片压缩)

    上传图片本身是个基本的小功能,但是到了移动端就不那么简单了,相信找到这篇文章的你一定有深深的同感. 本文实例是:在(移动端)页面中点击图片,然后选择文件,然后保存.使用Asp.net 难点一:后台获取 ...

  7. iOS图片加载到内存中占用内存情况

    我的测试结果: 图片占用内存   图片尺寸           .png文件大小 1MB              512*512          316KB 4MB              10 ...

  8. 实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

    简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码, ...

  9. 实现iOS图片等资源文件的热更新化(一): 从Images.xcassets导出合适的图片

    本文会基于一个已有的脚本工具自动导出所有的图片;最终给出的是一个从 Images.xcassets 到基于文件夹的精简 合适 的图片资源集的完整过程.难点在于从完整图片集到精简图片集,肯定是基于一个定 ...

随机推荐

  1. poj2019 二维RMQ模板题

    和hdu2888基本上一样的,也是求一个矩阵内的极值 #include<iostream> #include<cstring> #include<cstdio> # ...

  2. CSS 滤镜

    声明: web前端学习笔记,欢迎大神指点.联系QQ:1522025433. CSS样式表是一种为超文本标签语言提供增强补充服务的技术,可对每一个html的标签做精雕细刻的修饰.只用html制作的网页, ...

  3. python 全栈开发,Day110(django ModelForm,客户管理之 编辑权限(一))

    昨日内容回顾 1. 简述权限管理的实现原理. 粒度控制到按钮级别的权限控制 - 用户登陆成功之后,将权限和菜单信息放入session - 每次请求时,在中间件中做权限校验 - inclusion_ta ...

  4. python 全栈开发,Day109(客户管理之动态"二级"菜单)

    昨日内容回顾 1. 权限有几张表? 2. 简述权限流程? 3. 为什么要把权限放入session? 4. 静态文件和模块文件 5. 相关技术点 - orm查询 - 去空 - 去重 - 中间件 - in ...

  5. python 全栈开发,Day52(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)

    昨日作业讲解: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉, ...

  6. 单一职责原则(Simple responsibility pinciple, SRP)

    一个类只负责一个功能领域中的相应职责 未完待续

  7. js后退

    history.back(-1):直接返回当前页的上一页,数据全部消息,是个新页面 history.go(-1):也是返回当前页的上一页,不过表单里的数据全部还在 history.back(0) 刷新 ...

  8. 【Java】 剑指offer(36) 二叉搜索树与双向链表

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不 ...

  9. CodeBlocks切换中文

    下载汉化包,百度搜索 “codeblock汉化包”即可, 比如:http://www.jb51.net/softs/545123.html 将其拷贝到,此路径: X:\Program Files (x ...

  10. 全排列-hdu1027

    题目描述: 题目大意:现在给我们两个数字,N和M.我们应该编程找出由1到N组成的第M个最小序列.主要运用了全排列的思想,运用了全排列中next_permutation()函数: next_permut ...