【python】PIL库ImageDraw模块的笔记

PIL的ImageDraw库
PIL的ImageDraw库




from PIL import Image, ImageDraw

im = Image.open()

draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
del draw

im.save(sys.stdout, )

//这个例子是在图片上画一条对角线
//现在我还没有开始学,所以暂时看不懂
//拿来运行了一遍,还不错

1.初始化需要绘图的图像


from PIL import Image,ImageDraw

im = Image.open("1.png")
draw = ImageDraw.Draw(im)

//此时初始化了一个draw对象
//接下来可使用各种方法在im图片对象上操作

2.获取当前字体

PIL.ImageDraw.ImageDraw.getfont()



from PIL import Image, ImageDraw
import sys

im = Image.open("1.png")

draw = ImageDraw.Draw(im)
print(draw.getfont())

//结果返回:PIL.ImageFont.ImageFont object at 0x04AB37D0
//应该是返回了当前字体的信息
//具体有什么用,还有待考察

3.在给定区域内获取位图

PIL.ImageDraw.ImageDraw.bitmap(xy, bitmap, fill=None)



from PIL import Image, ImageDraw
import sys

im01 = Image.open("1.png")
im02=Image.open("1.png")


r,g,b=im02.split()

draw=ImageDraw.Draw(im01)
draw.bitmap((0,0),b,(0,255,0))
im01.show()

//获取到了1.png的位图
//但是不知道r,g,b=im02.split()的用意
//r,g,b=im02.split()这个方法是将图片的三色通道分开

4.在所给图像中绘制一个圆或圆的一部分

PIL.ImageDraw.ImageDraw.chord(xy, start, end, fill=None, outline=None)



from PIL import Image, ImageDraw
import sys

im01 = Image.open("1.png")
draw=ImageDraw.Draw(im01)
draw.chord((0,0,200,200),0,180,(255,0,0),(0,255,0))
im01.show()

//在四元组区域绘制一个圆或者圆的一部分
//

5.绘制一个椭圆

PIL.ImageDraw.ImageDraw.ellipse(xy, fill=None, outline=None)



from PIL import Image, ImageDraw
import sys

im01 = Image.open("1.png")
draw=ImageDraw.Draw(im01)
draw.ellipse((0,0,200,200),(0,255,0),(0,0,255))
im01.show()

//在指定区域画一个椭圆
//参数的用法和.ImageDraw.arc是一样的

6.在图片中画一条线

PIL.ImageDraw.ImageDraw.line(xy, fill=None, width=0)



from PIL import Image, ImageDraw

im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.line([(100,50),(300,100)],(0,255,0),10)
im.show()

//第一个参数为一个二元组,每个元组中包含两个坐标
//分别为起始坐标和终止坐标
//第二个参数为线的颜色
//第三个参数为线的宽度

7.在图片上画点

PIL.ImageDraw.ImageDraw.point(xy, fill=None)



from PIL import Image, ImageDraw

im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.point([(20,100),(100,20),(50,50),(200,150)],(0,255,0))
im.show()

//在给定的元组内进行画点
//每个点占用一个像素
//测试的时候记得仔细找一找,一个像素很小

8.绘制一个多边形

PIL.ImageDraw.ImageDraw.polygon(xy, fill=None, outline=None)



from PIL import Image, ImageDraw

im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.polygon([(200,10),(50,50),(45,150),(42,195),(62,45)],(255,0,0))
im.show()


9.在指定的位置绘制一个字符

PIL.ImageDraw.ImageDraw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align=”left”, direction=None, features=None)



from PIL import Image, ImageDraw

im=Image.open("2.png")
draw=ImageDraw.Draw(im)
draw.text((10,10),"hello",(0,255,0))
im.show()

//第一个参数是坐标
//第二个是要打印的文本
//第三个是颜色
//第四个是字体
//align属性是字体对齐方式
//在最新的版本里面没有看到后面几个属性

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值