Ich benutze Django + PIL + Amazon Boto in einer Web-App. Der Benutzer sendet das Bild und die Webapp zeigt es an. Meistens schicken die Leute Fotos von ihrem Handy ein. Manchmal wird das Bild in der falschen Ausrichtung angezeigt. Gibt es eine Möglichkeit, PIL oder Djangos ImageField zu verwenden, um die Metainformationen aus dem Bild zu erhalten und es zu verwenden, um das Bild in die richtige Ausrichtung zu drehen?PIL verwenden, um Bild automatisch mit dem Handy und Accelorometer zu drehen
7
A
Antwort
3
Versuchen Sie dies, um die EXIF-Informationen zu erhalten. N .: Die _getexif()
-Methode gehört zum JPEG-Plugin. Es wird nicht in anderen Arten von Bildern existieren.
import Image
from PIL.ExifTags import TAGS
im = Image.open('a-jpeg-file.jpg')
exifdict = im._getexif()
if len(exifdict):
for k in exifdict.keys():
if k in TAGS.keys():
print TAGS[k], exifdict[k]
else:
print k, exifdict[k]
Für eine zufällige Bild, das ich auf meiner Festplatte gefunden, dies erzeugt:
ExifVersion 0221
ComponentsConfiguration
ApertureValue (4312, 1707)
DateTimeOriginal 2012:07:19 17:33:37
DateTimeDigitized 2012:07:19 17:33:37
41989 35
FlashPixVersion 0100
MeteringMode 5
Flash 32
FocalLength (107, 25)
41986 0
Make Apple
Model iPad
Orientation 1
YCbCrPositioning 1
SubjectLocation (1295, 967, 699, 696)
SensingMethod 2
XResolution (72, 1)
YResolution (72, 1)
ExposureTime (1, 60)
ExposureProgram 2
ColorSpace 1
41990 0
ISOSpeedRatings 80
ResolutionUnit 2
41987 0
FNumber (12, 5)
Software 5.1.1
DateTime 2012:07:19 17:33:37
41994 0
ExifImageWidth 2592
ExifImageHeight 1936
ExifOffset 188
Es ist der Orientation
Wert ist, den Sie möchten. Seine Bedeutung kann z.B. auf der exif orientation page.
Die unverarbeiteten exif-Daten sind als Zeichenfolge von Image.info['exif']
verfügbar. Die Rotation kann mit der rotate()
Methode durchgeführt werden.
Mir ist nicht bekannt, eine Methode zum Ändern der EXIF-Daten mit PIL, außer dem Ändern der Rohdaten.
3
Ich verwende django-imagekit für Bilder dann die Verarbeitung imagekit.processors.Transpose
from imagekit.models import ImageSpecField
from imagekit.processors import ResizeToFill, Transpose, SmartResize
class UserProfile(models.Model):
avatar = models.ImageField(upload_to='upload/avatars', max_length=255, blank=True, null=True)
avatar_thumbnail = ImageSpecField(
source='avatar',
processors = [Transpose(),SmartResize(200, 200)],
format = 'JPEG',
options = {'quality': 75}
)
Verwandte Themen
- 1. Übersetzen Bild mit PIL
- 2. Drehen und Zuschneiden automatisch mit C#
- 3. PIL Bild zu sqlite3 Blob und umgekehrt?
- 4. Wie man django Bildfeld zu PIL Bild und zurück gehen?
- 5. PIL: Thumbnail und mit einem quadratischen Bild
- 6. Bild mit PIL herunterladen und Anfragen
- 7. wpf Bild um Zentrum drehen
- 8. Wie PIL verwenden, um die Größe zu ändern und Rotations EXIF-Informationen in der Datei anzuwenden?
- 9. Bild mit pygame drehen
- 10. Bild mit CSS drehen
- 11. Wie Bitmap-Bild in Python zu analysieren, mit PIL?
- 12. Ist es möglich, Bild mit XSL zu drehen und zu drehen?
- 13. Howto Bild mit jquery drehen Plugin drehen?
- 14. Wie kann ich scipy.ndimage.interpolation.affine_transform verwenden, um ein Bild um seinen Mittelpunkt zu drehen?
- 15. Python Schleife für Bild und pil Modul
- 16. Android: Bitmap einmal drehen oder EXIF-Ausrichtung verwenden, um Bildansicht zu drehen
- 17. Drehen ein Bild mit Orientierung angegeben in EXIF Python ohne PIL einschließlich Thumbnail
- 18. Hintergrund mit transparentem Bild in PIL verschmelzen
- 19. Bild um mehr als 180 Grad drehen
- 20. Speichern bearbeitete Bild nach dem Zoomen, Drehen und Schwenken
- 21. Django. Bild mit Anfragen herunterladen - mit PIL bearbeiten - zu Modell
- 22. Bild mit Touch drehen, um Punkt in Android
- 23. Was soll ich in paintComponent haben, um ein Bild zu ziehen und zu drehen?
- 24. PIL: Bytearray in Bild konvertieren
- 25. Wie kann ich verhindern, dass PIL beim Drehen eines Bildes um 90 ° Höhe/Breite wechselt?
- 26. Verwenden von Pixelschriftarten in PIL
- 27. CSS: Bild drehen und oben links ausrichten
- 28. Cookies auf dem Handy
- 29. Php Gd Bild drehen
- 30. Verwenden einer Matrix, um Rechtecke einzeln zu drehen
Heres ein Thread mit, dass vielleicht können Sie helfen: http: //stackoverflow.com/questions/1606587/how-to-use-pil- to-resize-and-apply-rotation-exif-Informationen-zur-Datei – Jingo
Dies könnte Ihnen helfen http://stackoverflow.com/questions/4228530/pil-thumbnail-is-rotating-my-image – Rakesh