如何正确的自动生成App图标

在做iOS开发时,需要设置很多不同分辨率的图标。这些图标大多是正方形的,也有一些情况下是长方形的,例如Sticker Pack Extension中的图标。 在产品设计中,这些图标的原图大都是同一个,只是分辨率不同而已。如果由UI设计师来人工“切图”,这无疑是一件很没有生产力的事情。 这里可以使用工具从一张最高分辨率的图片(通常为1024x1024)生成不同分辨率的图片。这里推荐使用GraphicsMagic,它非常高效,也支持很多种语言的接口,例如Ruby等。 如果是正方形的图片,直接从原图同比例缩放即可。但如果是长方形的,这样操作就会导致变形失真,此时从中裁剪(crop)出一块长方形的小图更为恰当。 裁剪是需要注意的是,应该先将原始图片缩小到大于目标分辨率的最小正方形,否则可能结果出现“全黑”的情况。 例如,如果目标分辨率为60x45,应该先将1024x1024的原图resize为60x60,然后再以左上角为锚点crop出分辨率为60x45的图片。

以Ruby为例:

def crop_image(image_file, basepath, params)
	image = MiniMagick::Image.open(image_file)
	image.format 'png'
	width = params['width']
	height = params['height']kj
	if width == height
	    image.resize "#{width}x#{width}"
	else
	    max = width > height ? width : height
	    image.resize "#{max}x#{max}"
	    image.crop  "#{width}x#{height}"
	end
	image.define("png:exclude-chunks=date,time")
	image.write File.join(basepath, params['filename'])
end