Ich verwende PIL, um ein Bild zu drehen. Dies funktioniert im Allgemeinen, außer wenn ich das Bild genau um 90 ° oder 270 ° rotiere. In diesem Fall tauschen die x- und y-Messungen aus. Das heißt, das Bild gegeben:Wie kann ich verhindern, dass PIL beim Drehen eines Bildes um 90 ° Höhe/Breite wechselt?
>>> img.size
(93, 64)
Wenn ich es drehen um 89 ° ich dieses:
>>> img.rotate(89).size
(93, 64)
Und um 91 ° Ich bekomme diese:
>>> img.rotate(91).size
(93, 64)
Aber wenn ich drehen sie entweder 90 ° oder 270 °, finde ich die Höhe und Breite vertauscht:
>>> img.rotate(90).size
(64, 93)
>>> img.rotate(270).size
(64, 93)
Was ist der richtige Weg, dies zu verhindern?
Es sieht aus wie 90 und 270 sind Sonderfälle und tun, was * die meisten * Leute erwarten. Sie können Pech haben, obwohl Sie die Option 'expand' verwenden können, um sie konsistent zu machen. –
Ich glaube nicht, dass "expand" von selbst funktioniert; Ich schreibe auf einen Bildschirm fester Größe. Möglicherweise "erweitern" und eine Art "Crop" -Operation. – larsks
Update für andere Googler: Pillow, die ausgezeichnete PIL-Gabel, behebt dieses Problem in 3.0.0. Bei einer Drehung von 90 oder 270 Grad wird jetzt dieselbe Dimension beibehalten. Daher müssen Sie expand = True festlegen, wenn Sie möchten, dass sich die Dimensionen tatsächlich ändern. – Agargara