import cv2 import numpy from PIL import Image, ImageDraw, ImageFont #这个函数用于将多个图片显示在一个图片里面的 def func1(): toimage = Image.new('RGBA', (2000, 2000)) my_url = ['E:\我的项目\my_images\image_00001.jpg', 'E:\我的项目\my_images\image_00029.jpg', 'e.jpg'] j = 0 jj = 0 for i in my_url: jj += 150 j += 1 image_data = Image.open(i) image_data = image_data.resize((300, 300), Image.ANTIALIAS) toimage.paste(image_data, (700, 500 + jj)) ##创建一个字体实例,采用微软雅黑38号 # font_en = ImageFont.truetype('/Library/Fonts/Microsoft/Microsoft Yahei.ttf',38) draw = ImageDraw.Draw(image_data) # 指定字体和颜色(RGB) draw.text((0, 100), 'He acknowledged his faults.', fill=(0, 0, 0)) #用PIL中的Image进行 画图,将多个图形放在一起. def func(): toimage = Image.new('RGBA', (2000, 2000))#一个大小为2000*2000的图形界面对象 image_data = Image.open('e.jpg') # image_data=image_data.resize((990,990),Image.ANTIALIAS) print(image_data.size) toimage.paste(image_data, (500, 500)) # 这个是将数据放到里面,然后后面是移动的位置 font = ImageFont.truetype('C:\Windows\Fonts\msyhl.ttc', 40) fillColor = (0, 0, 255) # 文字输出位置 position = (50, 50) draw = ImageDraw.Draw(image_data) draw.text(position, '书写中文字体', font=font, fill=fillColor) toimage.show() if __name__ == '__main__': img_OpenCV = cv2.imread('e.jpg') print(img_OpenCV.shape) # 图像从OpenCV格式转换成PIL格式 img_PIL = Image.fromarray(cv2.cvtColor(img_OpenCV, cv2.COLOR_BGR2RGB)) # 字体 字体*.ttc的存放路径一般是: /usr/share/fonts/opentype/noto/ 查找指令locate *.ttc font = ImageFont.truetype('C:\Windows\Fonts\msyhl.ttc', 40) # 字体颜色 fillColor = (0, 0, 255) # 文字输出位置 position = (100, 200) # 输出内容 str = '在图出中文' # 需要先把输出的中文字符转换成Unicode编码形式 # if not isinstance(str, unicode): # str = str.decode('utf8') draw = ImageDraw.Draw(img_PIL) draw.text(position, str, font=font, fill=fillColor) # 使用PIL中的save方法保存图片到本地 # img_PIL.save('02.jpg', 'jpeg') # 转换回OpenCV格式 img_OpenCV = cv2.cvtColor(numpy.asarray(img_PIL), cv2.COLOR_RGB2BGR) cv2.imshow("print chinese to image", img_OpenCV) cv2.waitKey() cv2.imwrite('03.jpg', img_OpenCV)
python画图库,PIL使用大全
最新推荐文章于 2024-06-06 08:25:23 发布