所以我需要水平翻转图像,即关于水平轴,如这张图片
但是我的问题是它在垂直轴方面发生了翻转,如图所示
这是我的代码。有人可以解释我需要做的更改吗?image.gif是我要翻转的图像。我将newImage设置在如下所示的新位置的原因是因为我希望图像出现在与旧图像相同的窗口中。它做到了!只能垂直翻转而不是水平翻转。
from cImage import*
def horizentalFlip(oldimage):
myimagewindow = ImageWin("image",1000,600)
oldimage = FileImage("image.gif")
oldimage.draw(myimagewindow)
oldw = oldimage.getWidth()
oldh = oldimage.getHeight()
newImage = EmptyImage(oldw,oldh)
maxp = oldw - 1
for row in range(oldh):
for col in range(oldw):
oldpixel = oldimage.getPixel(maxp-col,row)
newImage.setPixel(col,row,oldpixel)
newImage.setPosition(oldw+1,0)
newImage.draw(myimagewindow)
myimagewindow.exitOnClick()
谢谢
所需的翻转类型(围绕x轴,第一张图片的反射)通常称为“垂直”翻转,而围绕y轴(第二张图片)的反射通常称为水平翻转。
除了命名法之外,您还希望围绕x轴反射,如果我对您的理解正确,那么您的问题是您正在围绕y轴反射。这是因为以下几行:
maxp = oldw - 1
...
oldpixel = oldimage.getPixel(maxp-col,row)
操纵宽度(w
),列(col
)和每个调用的第一个坐标参数getPixel
:所有这些概念都与操纵每个像素的水平坐标有关。但是您想更改每个像素的垂直坐标,因此需要使用高度,行和第二个坐标参数:
maxp = oldh - 1
...
oldpixel = oldimage.getPixel(col, maxp - row)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句