gpt4 book ai didi

python - PIL镜像坐标

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:38 29 4
gpt4 key购买 nike

我有一个使用 PIL 创建的图像

import Image
import ImageDraw

img = Image.new("RGB", (400,400), "white")
draw = ImageDraw.Draw(img)

coords = [(100,70), (220, 310), (200,200)]
dotSize = 2

for (x,y) in coords:
draw.rectangle([x,y,x+dotSize-1,y+dotSize-1], fill="black")

我知道要编辑此图像并获取每个坐标并在同一图像上制作它的对角线镜像。

有没有我可以使用的方法?我想要这种效果! https://imgur.com/Q6LLhmk

最佳答案

您可以使用 PIL 的 transposerotatecomposite 函数来实现所需的结果。这些都在Image模块。

我稍微更改了初始图像以使结果更清晰。对于初学者,我增加了每个点的大小,使它们更加引人注目。

下面的代码首先显示初始图像覆盖有选择图像从左上到右下对角线下方的一半的掩码。

enter image description here

然后它显示了原始图像和镜像图像的合成。

enter image description here

import Image
import ImageDraw

imsize = 400
img = Image.new("L", (imsize,imsize), "white")
draw = ImageDraw.Draw(img)

coords = [(100,70), (220, 310), (200,200), (80,20)]
dotSize = 50

for (x,y) in coords:
draw.rectangle([x,y,x+dotSize-1,y+dotSize-1], fill="black")

## mirror image along the diagonal
img2 = img.rotate(90).transpose(Image.FLIP_TOP_BOTTOM)

## mask
mask = Image.new("L", (imsize,imsize), "black")
maskdraw = ImageDraw.Draw(mask)
# draw a triangle on the mask dividing the image along the diagonal
maskdraw.polygon([(0,0),(0,imsize),(imsize,imsize)], fill="white")

# show the mask overlaid on the original image
Image.blend(mask, img, 0.5).show()

# compute and show the blended result
img3 = Image.composite(img, img2, mask)
img3.show()

关于python - PIL镜像坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14832425/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com