PIL Image resize 生成图像的质量能不能好一些?

724 views
Skip to first unread message

ego008

unread,
Mar 23, 2012, 1:26:08 AM3/23/12
to python-cn
最近在小脚丫  http://gobaby.sinaapp.com/  里使用PIL Image resize 来处理用户上传的头像,生成100x100px 的头像,但质量太差了,怎么办才好?
部分关键代码:
im = im.resize(box, Image.ANTIALIAS)
img_data = im.tostring('jpeg', 'RGB')

保存的是  img_data  数据

如何才能提高图片 resize 后的图片质量,或保存为png 格式?GAE 的 images 能保存为png

--
小脚丫.宝宝微博  http://gobaby.sinaapp.com/
SAE python tornado blog  http://saepy.sinaapp.com/


lee Alexander

unread,
Mar 23, 2012, 1:51:48 AM3/23/12
to pyth...@googlegroups.com
这是在打广告?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: pyth...@googlegroups.com
退订: python-cn+...@googlegroups.com (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

Mayli Hellsing

unread,
Mar 23, 2012, 1:52:38 AM3/23/12
to pyth...@googlegroups.com
你试过抗锯齿了么?
img = img.resize((width, height),PIL.Image.ANTIALIAS)

在 2012年3月23日 下午1:26,ego008 <ego...@gmail.com>写道:
PIL Image resize



--
Best regards,
Mengyang Li
NKU,TJ,CHN

netubu

unread,
Mar 23, 2012, 1:54:15 AM3/23/12
to python-cn
查看教主zpage中的zkit下的picture.py,里面有相关的处理。
 
 

damon
 
发件人: lee Alexander
发送时间: 2012-03-23 13:51
收件人: python-cn
主题: Re: [CPyUG] PIL Image resize 生成图像的质量能不能好一些?

ego008

unread,
Mar 23, 2012, 1:58:34 AM3/23/12
to pyth...@googlegroups.com


在 2012年3月23日 下午1:51,lee Alexander <superp...@gmail.com>写道:
这是在打广告?


主要是问题,顺便做个广告

ego008

unread,
Mar 23, 2012, 1:59:41 AM3/23/12
to pyth...@googlegroups.com


在 2012年3月23日 下午1:52,Mayli Hellsing <mayl...@gmail.com>写道:
你试过抗锯齿了么?
img = img.resize((width, height),PIL.Image.ANTIALIAS)

用了 im = im.resize(box, Image.ANTIALIAS)

ego008

unread,
Mar 23, 2012, 2:01:05 AM3/23/12
to pyth...@googlegroups.com


在 2012年3月23日 下午1:54,netubu <net...@gmail.com>写道:
查看教主zpage中的zkit下的picture.py,里面有相关的处理。
 

马上去看一下,希望能得到好的解决方法

slene

unread,
Mar 23, 2012, 2:17:46 AM3/23/12
to pyth...@googlegroups.com
我记得默认图片质量是60
你可以在save的时候调节一下,比如80
im = im.resize(box, Image.ANTIALIAS)
im.save(path, 'JPEG', quality = 80)

-- 
slene
已使用 Sparrow 发送

ego008

unread,
Mar 23, 2012, 2:18:23 AM3/23/12
to pyth...@googlegroups.com


在 2012年3月23日 下午1:54,netubu <net...@gmail.com>写道:
查看教主zpage中的zkit下的picture.py,里面有相关的处理。
 

看回来了,主要处理方法相同
image = image.resize((width, (width*y)/x), Image.ANTIALIAS)

我的是:
im = im.resize(box, Image.ANTIALIAS)
img_data = im.tostring('jpeg', 'RGB') #多了这行,如果不好是因为和这个有关?

ego008

unread,
Mar 23, 2012, 2:26:12 AM3/23/12
to pyth...@googlegroups.com


在 2012年3月23日 下午2:17,slene <vsl...@gmail.com>写道:
我记得默认图片质量是60
你可以在save的时候调节一下,比如80
im = im.resize(box, Image.ANTIALIAS)
im.save(path, 'JPEG', quality = 80)


我在SAE 上使用,不支持保存文件,就以字符的形式保存在SAE Storage 里
 im = im.resize(box, Image.ANTIALIAS)
 img_data = im.tostring('jpeg', 'RGB')

保存的内容是 img_data

等会用StringIO 试试im.save(path, 'JPEG', quality = 80) 的效果

ego008

unread,
Mar 23, 2012, 6:16:27 AM3/23/12
to pyth...@googlegroups.com
搞定了,做了一些总结  http://saepy.sinaapp.com/t/66  

limodou

unread,
Mar 23, 2012, 6:20:22 AM3/23/12
to pyth...@googlegroups.com
2012/3/23 ego008 <ego...@gmail.com>:
> 搞定了,做了一些总结 http://saepy.sinaapp.com/t/66
>

不错。

--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://code.google.com/p/uliweb/
My Blog: http://hi.baidu.com/limodou

Reply all
Reply to author
Forward
0 new messages