python 实现PIL模块在图片画线写字

图片上画线条

import sys
from PIL import Image,ImageDraw

im = Image.open("th.png")
draw = ImageDraw.Draw(im) #实例化一个对象
draw.line((0, 0) + im.size, fill=128, width=5) #线的起点和终点,线宽
draw.line((0, im.size[1], im.size[0], 0), fill=128)
draw.line((0,im.size[1]/2)+(im.size[0]/2,im.size[1]), fill=128, width=5)
im.show()

图片上写字

from PIL import Image, ImageDraw, ImageFont

# get an image
base = Image.open('th.jpg').convert('RGBA')
# make a blank image for the text, initialized to transparent text color
txt = Image.new('RGBA', base.size, (255,255,255,0))
# get a font 需要在C:\Windows\Fonts拷贝一份字体文件 当前脚本路径下
fnt = ImageFont.truetype('cambriai.ttf', 40)
# get a drawing context
d = ImageDraw.Draw(txt)
# draw text, half opacity
d.text((10,10), "Hello", font=fnt, fill=(255,255,255,128))
# draw text, full opacity
d.text((10,60), "World", font=fnt, fill=(255,255,255,255))
fillcolor = "#ff0000"  #字体颜色
d.text((base.size[0]-20,10), "4", font=fnt, fill=fillcolor)
out = Image.alpha_composite(base, txt)
out.show()

参考官方文档 https://pillow.readthedocs.io/en/stable/reference/Image.html

补充知识:python对图像中的人脸进行画框(人脸的位置数据记录在记事本文件中)

我就废话不多说了,大家还是直接看代码吧!

import numpy as py
import os
import cv2 as cv
with open('labelFaceData.txt','r')as fp:#打开记录了数据的记事本文件
  pictureNumber = 0#用来记录照片的数量
  while 1:
    count = 1
    line = fp.readline()#读取文件中每一行的数据
    if not line:#如果读取失败则退出
      break
    pictureNumber+=1#图片数加1
    str1 = line.split()#用一个数组以字符串的形式储存文件中的数据
    img = cv.inread(str[0])#str[0]中存放的是要读取的图片地址,用cv.inread读取它
    faceNumber = (len(str1)-1)/16#用来记录人脸的总数
    for i in reage(faceNumber):#用for循环对人脸进行画框
      x = int(str1[count+1])#x,y,w,h为画框需要的点
      y = int(str1[count+2])
      w = int(str1[count+3])
      h = int(str1[count+4])
      cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),3,4,0)#用rectangle对图像进行画框
      count+=16
    #cv.namedWindow(str[0],0)
    #cv.imshow(str[0],img);
    #cv.waitKey(0)
    cv.imwrite("./result/image1_"+str(pictureNumber)+".jpg",img)#保存图片
fp.close()

以上这篇python 实现PIL模块在图片画线写字就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python使用PIL给图片添加文字生成海报示例

    前言 曾经,我也算半个所谓的文学青年.大学前两年大部分时间泡在图书馆看各种文学类的书. 那时的我,对于未来有很多遐想:写小说.写时评.写诗歌... 总而言之,就是成为一个文字工作者 现在我确实成为了一个文字工作者,只不过写的是代码... 在某个月黑风高的晚上,看着满屏花花绿绿的代码,揉着酸涩的眼睛,打了一个长长的哈欠.突然进入了禅定时刻: "还记得年少时的梦吗?" 我又开始想写作了,一个写了几年代码的老男人,在被生活粗暴地摁在地上摩擦几回后,突然触发了内心的柔软,想写些东西. 要写些什

  • Python图片处理模块PIL操作方法(pillow)

    一.PIL的基本概念: PIL中所涉及的基本概念有如下几个:通道(bands).模式(mode).尺寸(size).坐标系统(coordinate system).调色板(palette).信息(info)和滤波器(filters). 1.通道 每张图片都是由一个或者多个数据通道构成.PIL允许在单张图片中合成相同维数和深度的多个通道. 以RGB图像为例,每张图片都是由三个数据通道构成,分别为R.G和B通道.而对于灰度图像,则只有一个通道. 对于一张图片的通道数量和名称,可以通过方法getban

  • Python实现图片添加文字

    在工作中有时候会给图上添加文字,常用的是PS工具,不过我想通过代码的方式来给图片添加文字. 需要使用的Python的图像库:PIL.更加详细的知识点如下: Imaga模块:用来创建,打开,保存图片文件 new(path):用来创建一个新的图片文件.该文件位于path所在的路径中..打开后返回Image类型的图片. open(path):用来打开已经存在的图片文件.该文件位于path所在的路径中.打开后返回Image类型的图片. save(path):用来把创建或者打开的图片保到path所在的路径

  • python处理图片之PIL模块简单使用方法

    本文实例讲述了python处理图片之PIL模块简单使用方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python #encoding: utf-8 import Image class myimg: def __init__(self, open_file, save_file): self.img = Image.open(open_file) self.save_file = save_file def Change_Size(self, percent=10

  • python 实现PIL模块在图片画线写字

    图片上画线条 import sys from PIL import Image,ImageDraw im = Image.open("th.png") draw = ImageDraw.Draw(im) #实例化一个对象 draw.line((0, 0) + im.size, fill=128, width=5) #线的起点和终点,线宽 draw.line((0, im.size[1], im.size[0], 0), fill=128) draw.line((0,im.size[1]

  • python通过pil模块获得图片exif信息的方法

    本文实例讲述了python通过pil模块获得图片exif信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块功能超级强大,不但可以用来处理图片也可以用来获取图片的exif数据 from PIL import Image #code from http://www.jb51.net img = Image.open('img.jpg') exif_data = img._getexif() 希望本文所述对大家的Python程序设计有所帮助.

  • python使用PIL模块获取图片像素点的方法

    如下所示: from PIL import Image ########获取图片指定像素点的像素 def getPngPix(pngPath = "aa.png",pixelX = 1,pixelY = 1):     img_src = Image.open(pngPath)     img_src = img_src.convert('RGBA')     str_strlist = img_src.load()     data = str_strlist[pixelX,pixe

  • 使用Python的PIL模块来进行图片对比

    在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, 开个玩笑,当然是通过机器识别的,海量的图片只有机器识别才能做到. 那用python能不能实现这种功能呢?答案是:能 利用python的PIL模块的强大的图像处理功能就可以做到,下面上代码: import colorsys def get_dominant_color(image): #颜色模式转换,以便输出rgb颜色值 image = im

  • python实现通过pil模块对图片格式进行转换的方法

    本文实例讲述了python实现通过pil模块对图片格式进行转换的方法.分享给大家供大家参考.具体分析如下: python的pil模块相当的智能,如果你需要对图片格式进行转换,比如jpg转转成tif,jpg转换成gif,png转换成jpg只需要在保存文件时指定正确的图片扩展名即可. 代码如下: import Image im = Image.open('test.jpg') im.save('test.tiff') # or 'test.tif' 希望本文所述对大家的Python程序设计有所帮助.

  • python通过pil模块将raw图片转换成png图片的方法

    本文实例讲述了python通过pil模块将raw图片转换成png图片的方法.分享给大家供大家参考.具体分析如下: python通过pil模块将raw图片转换成png图片,pil中包含了fromstring函数可以按照指定模式读取图片信息然后进行保存. rawData = open("foo.raw" 'rb').read() imgSize = (x,y) # Use the PIL raw decoder to read the data. # the 'F;16' informs

  • python使用PIL模块实现给图片打水印的方法

    本文实例讲述了python使用PIL模块实现给图片打水印的方法.分享给大家供大家参考.具体实现方法如下: import Image, ImageEnhance def reduce_opacity(im, opacity): """Returns an image with reduced opacity.""" assert opacity >= 0 and opacity <= 1 if im.mode != 'RGBA': im

  • python使用pil库实现图片合成实例代码

    本文研究的主要是python PIL实现图片合成的相关内容,具体介绍如下,分享实例代码. 在项目中需要将两张图片合在一起.遇到两种情况,一种就是两张非透明图片的合成, 一种是涉及到透明png的合成. 相关API见 http://pillow.readthedocs.io/en/latest/reference/Image.html 第一种情况,直接将两张图片合在一起就可以了.如下图所示,将两张图片合在一起 += 详细代码 from PIL import Image #加载底图 base_img

  • Python 使用 Pillow 模块给图片添加文字水印的方法

    像微博一类的平台上传图片时,平台都会添加一个水印,宣誓着对图片的所有权,我们自己的博客平台也可以给自己的图片添加上水印. 还是用 Pillow 模块来实现 先来看一个简单的例子 >>> from PIL import Image >>> from PIL import ImageDraw >>> >>> image = Image.open('/Users/wxnacy/Downloads/vm-error1.png') >&g

  • python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法

    可能很多人遇到过这个错误,当使用setup.py安装python2.7图像处理模块PIL时,python默认会寻找电脑上以安装的vs2008.如果你没有安装vs2008,会出现Unable to find vcvarsall.bat错误. 那么如何解决这个错误呢?以下就是这个错误的解决办法. 你可以通过设置VS90COMNTOOLS环境变量来引导python去识别一个新的vs.然后再执行setup.py继续完成安装. 如果你安装了vs2010,在cmd中执行: SET VS90COMNTOOLS

随机推荐