想做一个横板的过关游戏,没有图片,就用photoshop从别人的游戏截屏中抽了一些图片出来,发现一共有74张图片,每张图片都在一个图层中,听说photoshop有图层批量导出的功能,很开心。但发现一个问题,就是图片批量导出的时候,会把透明的像素也导出来了。这个第一张图片会有很多空着的透明像素,好像这个没有办法解决。


废话少说,我们先批量导出所有的图片,方法如下。

不知道photoshop有没有能不能批量导出没有透明像素的图片。反正我没有找到,我只能用最最老土的方法了。就是用python来对导出的图片分析。删除我们不要的透明像素。下边是使用python读取图片像素值的方法。


用image模块,可以用getpixel获得像素值,给你个例子吧。得到的像素值应该是(R,G,B,A),大家读读看每个图片是什么。
#!/usr/bin/env python
import Image
import sys
im = Image.open(sys.argv[1])
width = im.size[0]
height = im.size[1]
print "/* width:%d */"%(width)
print "/* height:%d */"%(height)
count = 0
for h in range(0, height):
for w in range(0, width):
pixel = im.getpixel((w, h))
for i in range(0,3):
count = (count+1)%16
if (count == 0):
print "0x%02x,/n"%(pixel[i]),
else:
print "0x%02x,"%(pixel[i]),


box = (100,100,500,500)#设置要拷贝的区域,这是我们找到的有像素的区域。


#将im表示的图片对象拷贝到region中,大小为(400*400)像素。这个region可以用来后续的操作(region其实就是一个Image对象),box变量是一个四元组(左,上,右,下)。


region = im.crop(box)


region .save( "fileout.png" )


下边是一个不错的教程。 

http://onlypython.group.iteye.com/group/wiki/1371-python-graphics-library-pil-python-image-library-introduction


另一个教程:


http://www.blogjava.net/Skynet/archive/2009/11/28/303986.html

一个使用pil制作验证码的方法:

http://ju.outofmemory.cn/entry/34825



加一个PIL模块的安装方法:


pip install Image


用这个方法安装的PIL在import时要使用


form PIL import Image的方法调用Image图片模块.


欢迎热爱技术的人加入我的QQ群:213571088