范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

扣丁学堂Python培训之PIL模块处理图片及中文验证码分享

  PIL是PythonImagingLibrary的简称,PIL是一个Python处理图片的库,提供了一系列模块和方法,比如:裁切,平移,旋转,改变尺寸等等。已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。
  有如下几个模块:Image模块、ImageChops模块、ImageCrackCode模块、ImageDraw模块、ImageEnhance模块、ImageFile模块、ImageFileIO模块、ImageFilter模块、ImageFont模块、ImageGrab模块、ImageOps模块、ImagePath模块、ImageSequence模块、ImageStat模块、ImageTk模块、ImageWin模块、PSDraw模块。
  在PIL库中,任何一个图像都是用Image对象来表示的,所以要加载一张图片,最简单的形式如下:
  fromPILimportImage
  image=Image.open("1.jpeg")
  在PIL库中,最常用的模块有Image,ImageDraw,ImageEnhance,ImageFile等。
  接下来学习PIL中一些常见的操作:
  1、改变图片大小
  使用resize方法可以方便的对图片进行缩放
  fromPILimportImage
  image=Image.open("1.jpeg")
  new_img=image.resize((256,256),Image.BILINEAR)
  new_img.save("2.jpeg")
  2.旋转图片
  rotate方法可以进行旋转操作
  fromPILimportImage
  image=Image.open("1.jpeg")
  new_img=image.rotate(45)
  new_img.save("2.jpeg")
  3.直线绘制
  PIL库中的ImageDraw模块提供了图形绘制的基本功能,可以绘制直线,弧线,椭圆,矩形等等。
  fromPILimportImage,ImageDraw
  image=Image.open("2.jpeg")
  draw=ImageDraw.Draw(image)
  width,height=image.size
  draw.line(((0,0),(width-1,height-1)),fill=255)
  draw.line(((0,height-1),(width-1,0)),fill=255)
  image.save("2.jpeg")
  4.绘制圆
  fromPILimportImage,ImageDraw
  image=Image.open("2.jpeg")
  draw=ImageDraw.Draw(image)
  width,height=image.size
  draw.arc((0,0,width-1,height-1),0,360,fill=255)
  image.save("2.jpeg")
  5.中文验证码实例
  现在我们来研究利用Python如何生成中文验证码。其实这个问题简单,我们都知道验证码一般是用来防止网络机器
  人采用无限次数的登录尝试破解密码,那么我们需要对这张图片随机生成中文字符来验证,一般来说会把图片的字表
  现得很模糊,这样有效地防止机器人识别。所以我们除了要随机生成汉字,还要加入一些干扰线条等等。
  #-*-coding:utf-8-*-
  fromPILimportImage,ImageDraw,ImageFont
  importrandom
  importmath,string
  classRandomChar():
  @staticmethod
  defUnicode():
  val=random.randint(0x4E00,0x9FBF)
  returnunichr(val)
  @staticmethod
  defGB2312():
  head=random.randint(0xB0,0xCF)
  body=random.randint(0xA,0xF)
  tail=random.randint(0,0xF)
  val=(head<<8)|(body<<4)|tail
  str="%x"%val
  returnstr.decode("hex").decode("gb2312")
  classImageChar:
  def__init__(self,fontColor=(0,0,0),
  size=(100,40),
  fontPath="SIMSUN.TTC",
  bgColor=(255,255,255),
  fontSize=20):
  self.size=size
  self.fontPath=fontPath
  self.bgColor=bgColor
  self.fontSize=fontSize
  self.fontColor=fontColor
  self.font=ImageFont.truetype(self.fontPath,self.fontSize)
  self.image=Image.new("RGB",size,bgColor)
  defrotate(self):
  self.image.rotate(random.randint(0,30),expand=0)
  defdrawText(self,pos,txt,fill):
  draw=ImageDraw.Draw(self.image)
  draw.text(pos,txt,font=self.font,fill=fill)
  defrandRGB(self):
  return(random.randint(0,255),
  random.randint(0,255),
  random.randint(0,255))
  defrandPoint(self):
  (width,height)=self.size
  return(random.randint(0,width),random.randint(0,height))
  defrandLine(self,num):
  draw=ImageDraw.Draw(self.image)
  foriinrange(0,num):
  draw.line([self.randPoint(),self.randPoint()],self.randRGB())
  defrandChinese(self,num):
  gap=5
  start=0
  foriinrange(0,num):
  char=RandomChar().GB2312()
  x=start+self.fontSize*i+random.randint(0,gap)+gap*i
  self.drawText((x,random.randint(-5,5)),RandomChar().GB2312(),self.randRGB())
  self.rotate()
  self.randLine(18)
  defsave(self,path):
  self.image.save(path)
  ic=ImageChar(fontColor=(100,211,90))
  ic.randChinese(4)
  ic.save("1.jpeg")
  以上就是关于扣丁学堂Python培训之PIL模块处理图片及中文验证码实例,最后想要了解更多关于Python发展前景趋势,请关注扣丁学堂python培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供最新的Python视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的Python视频教程课程,让你快速掌握Python从入门到精通开发实战技能。扣丁学堂Python技术交流群:943406067。

决策参考财富时代相继被收购1财富时代相继被收购,谁在收割世界顶级媒体?事件近日,美国财富杂志被以1。5亿美元(约10亿元人民币)的价格出售给了泰国华裔商人谢展。2个月前,时代周刊被以1。9亿美元(约13亿人苹果高管回应MacBookPro2021取消TouchBa10月25日,Wired消息,苹果全球高级营销副总裁GregJoswiak在采访时谈到取消TouchBar的理由。Joswiak表示,我们的专业用户希望在功能键上体验到真实的触感,郭明錤Meta将成为全球最大VR装置供应商天风国际分析师郭明錤在新报告指出,Meta(Facebook)将成为全球最大VR装置供应商,预计2021VR装置出货量可达900万部。报告中提到,无线化为改善元宇宙使用者体验与推升苹果联合创始人称新旧款iPhone没啥区别据报道,近日,苹果公司联合创始人沃兹尼亚克近日表示,他发现iPhone13与该设备之前的版本几乎没有区别。我拿到了新iPhone,我真的分不出区别,沃兹尼亚克说,其中的软件应该也适世界最小8。9寸超极本最新消息!GPDP2Max京东6月30号开启预售自从GPD发布全球最小超极本GPDP2Max以来,不断有用户询问我们何时上市,现在终于定了,P2Max将于6月30号上午10点,在京东GPD官方店发起预售,16G512G版47996寸工程师电脑玩LOL,用触摸板放技能,这操作太骚了GPDMicroPC是一台工程师专用电脑,配置了RS232接口和RJ45网线接口专业工程调试之用吗,最近看到参与预售的伙伴都已经收到货了,各种开心的晒机器中,不过这些人一个个都在测比小米笔记本速度还快,全球最小8。9寸电脑,是怎么做到的?GPDP2Max是目前最小的超极本,屏幕仅有8。9寸,性能却决不含糊,P2Max有多种配置,下面我们用来演示的这台内测机,酷睿m38100y处理器,16G运行内存,1TBNvme固马斯克称如可解决全球饥饿将立即卖股票11月1日,马斯克Twitter上回应被联合国官员要求捐款一事时称,如果联合国世界粮食计划署(WFP)能够详细解释如何使用60亿美元来解决全球饥饿问题,他会马上出售股票。此前,WF8。9寸超极本体验在线播放4K视频,CPU占用极低,液冷散热表现惊人这是GPDP2Max,8。9寸屏全球最小的超极本内测机,这台内测机的硬件配置是酷睿m38100y,16G运行内存,1Tb固态硬盘,屏幕分辨率25601600,因为这台笔记本体积比较决策参考字节跳动拿下网络小贷牌照芒果超媒市值超越爱奇艺1字节跳动深圳拿下网络小贷牌照注册资本4亿元事件7月15日,据新流财经报道,多位知情人士向新流财经透露,字节跳动终于在深圳拿下了一张网络小贷牌照深圳市中融小额贷款股份有限公司,注册决策参考阿里巴巴新成立京西腾讯发出虎牙斗鱼合并邀约1苹果亚马逊微软和谷歌总市值达6。2万亿美元事件8月7日,据最新数据,2009年3月,苹果亚马逊微软和谷歌的总市值达到3260亿美元,如今,该数字已达到6。2万亿美元,这比除了美国
好用才是硬道理,燃气热水器首选特维尔(上篇)凭借即开即热恒温水量足等优势,燃气热水器解决了储水式电热水容量有限,加热速度慢等问题。成为绝大多数用户的首选。同事说热水器买大不买小,你觉得有道理,朋友说零冷水不错,你心动了亲戚说数字货币观察数字人民币试点推硬科技,数字钱包加载中国芯点蓝字关注,不迷路近日,我国自主研发的中国芯数字货币钱包已通过相关测试。该产品通过指纹识别解锁,支持数字货币收付款余额查询交易信息显示加载健康码等功能。该款数字货币钱包的最大亮点是保险业规则巨变,年前高性价比互联网产品集体下架上个礼拜,保险业发生了一件大事。银保监下发了关于进一步规范保险机构互联网人身保险业务有关事项的通知,也就是行业内大家所说的互联网保险新规。新规落地,互联网保险重新洗牌,在行业内引发一些著名的软件都用什么语言编写?一操作系统MicrosoftWindows汇编CC备注曾经在智能手机的操作系统(WindowsMobile)考虑掺点C写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的为什么视频解说up主片源都特别清晰,而我们找高清都很难?强答一波。费劲吗?我觉得还可以。要保证视频清晰,方法有两种片源需要高清。直接4K,最低也要1080p。至于网站,推荐几个我常用的BD影视这个网站很良心。虽然有各种小广告,但是能真正关于微商,大家怎么看?微商是一个时代的产物,也是微信带给大家的商机,任何新型APP都会成为营利的集中营。做微商能赚到钱都是凭本事,凭人脉,凭信誉,虽然有很多人上当受骗,但大家还是喜欢呆在家里买买买,只要有人说双缝干涉延迟实验的结果让人恐惧,你怎么看?如果说宇宙不是完美的,它有BUG(漏洞),你信么?双缝干涉实验似乎一步步地发现了这个宇宙漏洞双缝干涉实验是什么?当我们在水中丢下一块石头,那么水面就会产生波纹,如果同时丢下两块石头光速飞行每秒可绕地球7圈半,而中子星每秒可旋转700圈,超光速了吗?答中子星的直径不大,所以表面线速度并没有超过光速。中子星是由中子紧紧挨在一起组成的天体,所以中子星密度基本就是原子核的密度,高达2亿吨每立厘米根据钱德拉卡极限和奥本海默极限,中子星如果下一次爆发的灾难是全球网络瘫痪你要提前准备什么?我不需要准备什么,对我来说,有没有网络无所谓,如果一定要准备什么,那就准备个收音机吧,一样了解世界大事,如果人人都有一个收音机,现在有很多的个人无线电台,一样不寂寞。至于生活吗,现想买一款价位20003000,内存256G,续航能力较强的手机,有什么推荐吗?20003000价位段一般都属于各个品牌的中端定位,针对题主需求,而这个价位段中。256G内存和续航能力比较强的手机,还是挺多的,下面我推荐这几款手机,可以参考下哈!1。荣耀30S给特斯拉维权女车主的公开信张女士,你好看到你起诉特斯拉的陶琳,突然有一种男性荷尔蒙无法抑制住的莫名冲动,忍不住想给你写一封信。你在起诉书中说被告陶琳在接受媒体采访时称近期的负面都是她贡献的只愿意高额赔偿,一