该帖已经被评为良好帖
|
|||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
作者 | 正文 | ||||||||||||||||||
发表时间:2009-01-12
Image模块的介绍 Image.new(mode, size) Image.new(mode, size, color)
Image.blend(img1, img2, alpha)
Image.composite(img1, img2, mask)
写道
L = R*299/1000 + G*587/1000 + B*114/1000
(此为ITU-R 610-2 亮度转换方程)
out = img.point(lambda i : i*1.2)#对每个点进行20%的加强
argument * scale + offset e.g out = img.point(lambda i: i*1.2 + 10)
def hideInfoInImage(img, info): if img.mode != "RGBA": img = img.convert("RGBA") if info.mode != "L" and info.mode != "1": info = info.convert("L") img.putalpha(info) return img
if __name__ == "__main__": img = Image.open("green.png") band = Image.open("antelope_inhalf.jpg") img = hideInfoInImage(img, band) img.show()#可以看到,原图片没有显式变化 img.split()[3].show()#抽取出透明通道中的图片并显示
def randomPalette(length, min, max): return [ randint(min, max) for x in xrange(length)]
putpalette(palette) img = Image.open("green.png").convert("L") #img.show() l = randomPalette(768, 0, 255) img.putpalette(l) img.show()
transform(size, method, data)
transpose im.transpose(method) method参数:
关于Image模块就介绍到这里,还有一部分属性,函数和方法没有在此做分析,这部分比较简单,如果想了解更多,可以参看pil的handbook。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-12
PIL的文章还会继续吗?
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-12
内容很有趣,也很实用。
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-13
rockjava 写道 PIL的文章还会继续吗?
一定的,关于这个超级牛的图形库我也正在学习阶段,所以更新可能会慢一些,但是我一定会把学习中的心得贴出来。谢谢关注。 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-14
真的很不错。
用动态语言处理处理图像的点操作之类简直太方便、太合适了,如果不考虑效率的话。效率是个致命问题,所以PS永远不可能用Python或Ruby写。 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-14
xuby 写道 真的很不错。
用动态语言处理处理图像的点操作之类简直太方便、太合适了,如果不考虑效率的话。效率是个致命问题,所以PS永远不可能用Python或Ruby写。 效率未必低吧。pil只是入口,内部还是C。 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-14
MountLion 写道 xuby 写道 真的很不错。
用动态语言处理处理图像的点操作之类简直太方便、太合适了,如果不考虑效率的话。效率是个致命问题,所以PS永远不可能用Python或Ruby写。 效率未必低吧。pil只是入口,内部还是C。 是的,这个包使用C开发的,处理效率还过得去,不过脚本语言嘛,主要用于定制或者扩展已有的应用,效率方面要求是不那么高的。PS肯定不会被脚本语言代替。不过,借助PIL,很可能自己做一个python版的PS,呵呵 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-15
最后修改:2009-01-15
MountLion 写道 xuby 写道 真的很不错。
用动态语言处理处理图像的点操作之类简直太方便、太合适了,如果不考虑效率的话。效率是个致命问题,所以PS永远不可能用Python或Ruby写。 效率未必低吧。pil只是入口,内部还是C。 比如点操作,主要的处理部分还是那个 Python 的 lambda 函数,再加上跨语言的时间消耗,效率肯定会低不少。 另外还有内存问题。图像处理以消耗内存而著称,像我们处理的图像经常会超过1G,自动内存收集的静态语言(C#,Java)都不好使,更不要说动态语言了。 但是用c/c++实现类似的点操作功能的话,要用函数指针或者虚基类,相当麻烦,代码远不如Python这么清爽。 |
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-01-20
文明谁玩过?他的界面就是用python写的
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
发表时间:2009-02-25
java 能处理得这么清晰就好了
|
|||||||||||||||||||
返回顶楼 | |||||||||||||||||||
浏览 15110 次