=begin
将3x图片生成2x和3x图片,并重新命名成@2x和@3x结尾(icon.png => icon@2x.png, icon@3x.png)。
可带参数,参数为文件夹,将遍历该文件夹下的所有文件。
不带参数时,将遍历脚本所在的文件夹下的所有文件。
=end
require 'fileutils'
require 'chunky_png'
def makeImageSize(path)
Dir.foreach(path) do |entry|
if entry == '.' || entry == ".." || entry == ".DS_Store" #如果是这几个文件夹则跳过
next
end
p = "#{path}/#{entry}" #完整路径
if File.file?(p) #是文件
if entry.include?(".png") #是否是png图片
if entry.include?("@2x") || entry.include?("@3x") #如果图片名字已经包含@2x或@3x则跳过
next
end
copyP = String.new<<p
replaceP = String.new<<p
copyP.insert p.length-".png".length, "@2x"
replaceP.insert p.length-".png".length, "@3x"
FileUtils.cp p, copyP #复制文件p到copyP路径
File::rename p, replaceP #更改p文件名为replaceP
image = ChunkyPNG::Image.from_file(replaceP) #从replaceP路径获取图片
width = image.dimension.width
height = image.dimension.height
if width > 1
width = width*2/3
end
if height > 1
height = height*2/3
end
system "sips -z " + height.to_s + " " + width.to_s + " " + copyP
end
else #是文件夹,递归
makeImageSize p
end
end
end
#ruby中除了false和nil,其他都是true
if ARGV.count > 0 && File.directory?(ARGV[0]) #是否有指定文件夹
path = Dir.pwd+"/#{ARGV[0]}"
else #没有指定文件夹,将遍历该目录下的所有文件
path = Dir.pwd
end
makeImageSize path
iOS3x图生成2x和3x的图
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 尊重知识,转发请注明出处:基于iOS 10、realm封装的下载器(支持存储读取、断点续传、后台下载、杀死APP重...
- 转自《人人都是产品经理》,原文链接:写给产品经理技术书 产品经理有三大领域的技术是需要去攻克的,分别是:客户端相关...