免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3165 | 回复: 3
打印 上一主题 下一主题

PIL 生成图片的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-06-09 23:19 |只看该作者 |倒序浏览
大家好,我想生成一个数字的图片,图片生成了,但是稍微放大后就失真了,思索了一下,想了个办法,生成一个大的图片,然后压缩成小,但是还是不行
下面是代码,麻烦大家帮忙看看
  1. # -*- coding: utf-8 -*-
  2. '''
  3. Created on Jun 6, 2016

  4. @author: ada-h
  5. '''
  6. from PIL import Image, ImageFont, ImageDraw
  7. from matplotlib.delaunay.testfuncs import quality

  8. class GenCommodityImg(object):
  9.     '''
  10.     classdocs
  11.     '''


  12.     def __init__(self, width, height, fontsize):
  13.         '''
  14.         Constructor
  15.         '''
  16.         self.width = width
  17.         self.height = height
  18.         self.fontsize = fontsize
  19.         self.bgcolor = (255,255,255)
  20.         self.font = ImageFont.truetype('arial.ttf', fontsize)
  21.         self.fontcolor = (0,0,0)
  22.         self.image = Image.new('RGB',(self.width, self.height), self.bgcolor)
  23.         self.draw = ImageDraw.Draw(self.image)
  24.         
  25.     def setData(self, text):
  26.         textWidth,textHeight = self.font.getsize(text)
  27.         x =y = 0
  28.         if textWidth < self.width:
  29.             x = (self.width - textWidth) / 2
  30.         if textHeight < self.height:
  31.             y = (self.height - textHeight) / 2
  32.         self.draw.text((x, y), text, fill = self.fontcolor, font = self.font)
  33.       

  34. if __name__ == "__main__":
  35.     genImg = GenCommodityImg(1920,768, 200)
  36.     genImg.setData("123321321")
  37. #     genImg.image.resize((100,20), Image.ANTIALIAS)
  38.     genImg.image.save("e://321321.png", "PNG")  
  39.     img  = Image.open("e://321321.png")
  40.     w, h = img.size
  41.     img.resize((w/2, h/2)).save("e:/1111.png","PNG")
  42.     print img.size
  43.     print genImg.image.format
复制代码

论坛徽章:
0
2 [报告]
发表于 2016-06-11 10:11 |只看该作者
.....完全没人理啊

论坛徽章:
4
程序设计版块每日发帖之星
日期:2015-10-14 06:20:00每日论坛发贴之星
日期:2015-10-14 06:20:00程序设计版块每日发帖之星
日期:2016-05-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-08 06:20:00
3 [报告]
发表于 2016-06-11 11:15 |只看该作者
是不是生成图片的格式 设置成矢量图,或者保存时分辨率提高?

论坛徽章:
0
4 [报告]
发表于 2016-06-11 15:03 |只看该作者
回复 3# mswsg


    感谢回复,矢量图虽然不失真,但是不太好看,而且我的要求也不是无限放大,只要稍微不太失真就可以,
    找资料了解后,影响整个清晰度的是dpi,但是我在save的时候加了genImg.image.save("e://321321.png", "PNG", quality=95, dpi=(600,600)), 生成的图片没有区别
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP