Python 处理图片失真
昨天做一个简单的图片处理后台需要用到 PIL(Python Image Library),之前没怎么用过遇到几个难点卡住了几次,没有时间仔细研究,暂作记录:
?
应用 PIL 中的 Image Module 可以方便的处理图片,比如旋转、剪裁、获取图片尺寸等等,简单看了几篇例子和文档(http://www.pythonware.com/library/pil/handbook/image.htm)感觉还是很强大。但应用处理的方法首先要获得一个 image 对象,应用 open 方法打开一个路径很简单,但是从一段 str 类型获得 image 对象就有点绕,比如请求一张网络上的图片,或者从数据库中读取出来图片,需要用 StringIO 处理一下,代码:
?
new_img = img.rotate(90)new_img_str = new_img.tostring('jpeg', 'RGB', 90)
?第三个参数是 jpeg 图片的 quality, 0-90,默认 75,所以如果不传基本肉眼能看出来处理过的图片失真了。参照 JPEG 描述:http://www.pythonware.com/library/pil/handbook/format-jpeg.htm
?
暂时记录,下次用到再仔细研究。
?
-EOF-