python 读取图片,画矩形框,然后保存,分辨率不变。

我现在想读取一个图片,然后在这个图片上 某个位置画个矩形框,要求可以定义这个矩形框 线的宽度,
传统的PIL 的draw rectangle 无法设置线宽。 Matplot搜了半天,不知道怎么按原分辨率保存,似乎会有很多的白边。求解决方案!

阅读 17.7k
2 个回答

查了一下文档,发现可以用画线段的方法画。

draw = ImageDraw.Draw(im)
draw.line([(x,y),(x+width,y),(x+width,y+height),(x,y+width),(x,y)], width=line_width, fill=line_color)

其实变通一下就能满足你的需求,线宽是1,你如果想线宽5,那就画5次就行了

from PIL import Image, ImageDraw

im = Image.open("a.jpeg")
draw = ImageDraw.Draw(im)

line = 5
x, y = 10, 10
width, height = 100, 50
for i in range(1, line + 1):
    draw.rectangle((x + (line - i), y + (line - i), x + width + i, y + height + i), outline='red')

im.save("b.jpeg")
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题