Horizontal spiegeln Sie ein Bild in Python (JES)
Ich brauche, um eine Funktion, wird ein Bild kopiert, aber gespiegelt. Ich erstellte den code für die spiegelung des Bildes, aber es funktioniert nicht und ich weiß nicht warum, denn ich verfolgte den code und es sollte die spiegelung des Bildes. Hier ist der code:
def invert(picture):
width = getWidth(picture)
height = getHeight(picture)
for y in range(0, height):
for x in range(0, width):
sourcePixel = getPixel(picture, x, y)
targetPixel = getPixel(picture, width - x - 1, height - y - 1)
color = getColor(sourcePixel)
setColor(sourcePixel, getColor(targetPixel))
setColor(targetPixel, color)
show(picture)
return picture
def main():
file = pickAFile()
picture = makePicture(file)
newPicture = invert(picture)
show(newPicture)
Kann mir jemand erklären was falsch ist? Danke.
show(picture)
und return picture
eingerückt werden sollBitte aktualisieren Sie Ihren code-block zu
mirror
😉 was haben Sie in Ihrer lokalen Datei...wenn ich das Tue, es gibt mir einen Fehler beim übergeben eines Arguments an eine Funktion.
ich weiß nicht, was du meinst...das hab ich natürlich takinh ist jython für Anfänger also ich habe noch nicht eingeführt worden, um die python-APIs, wenn das, was Sie sich beziehen.
Nein, aber fix Ihren Einzug in Ihre Frage den Körper, damit wir nicht verwirrt mit bad Einzug (klicken Sie auf
edit
link unten)InformationsquelleAutor user2387191 | 2013-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies :
naja ok ich dachte die Antwort, for x in range sein sollten, width / 2 und die targetPixel soll die Breite - x - 1, y danke für Eure Hilfe Jungs!
Gut gemacht, Prost !
Ich erzielte den 2 Antworten: flip
vertically
undhorizontally
...InformationsquelleAutor Gauthier Boaglio
Das problem ist, dass Sie die Schleife über das gesamte Bild, anstatt nur die Hälfte der Breite. Sie spiegeln zweimal Ihr Bild und das gleiche Bild als Ausgabe, die Sie Eingabe.
wenn Sie den Spiegel über der Y-Achse die code sollte
Wenn Sie spiegeln wollen, wenn horizontaly sollte es gehen über die Hälfte der Höhe.
Ja, aber selbst wenn ich das Tue, es gibt mir die gleiche Ausgabe, was passieren würde, wenn ich geteilt, die Breite durch 2.
Was ist genau falsch?
Okay, wenn ich also nicht teilen entweder in Reihe zwei, wird es nur wieder spucken das gleiche Bild, das ich Eingangs. Wenn ich die Höhe geteilt durch zwei, in der y-Bereich, es spiegelt das Bild sowohl horizontal als auch vertikal. Wenn ich die Breite geteilt durch 2, es tut die gleiche Sache. Ich will es so, dass das Bild nur flips horizontal.
InformationsquelleAutor Alexandru Barbarosie