Я использую Django + PIL + Amazon boto в веб-приложении. Пользователь отправляет изображение, и веб-приложение отображает его. В основном люди присылают фотографии, сделанные с мобильного телефона. Иногда изображение отображается в неправильной ориентации. Есть ли способ использовать PIL или Django ImageField, чтобы получить метаинформацию из изображения и использовать ее для поворота изображения в правильную ориентацию?
Использование PIL для автоматического поворота изображения, сделанного с помощью мобильного телефона и акселорометра.
26.08.2012
- Вот поток, который может вам помочь: stackoverflow.com/questions/1606587/ 27.08.2012
- Это может помочь вам stackoverflow.com/questions/ 4228530/ 27.08.2012
Ответы:
1
Я использую django-imagekit для обработки изображений, а затем использую 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}
)
13.04.2014
2
Попробуйте это для получения информации EXIF. N.B.: метод _getexif()
относится к подключаемому модулю JPEG. Его не будет в других типах изображений.
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]
Для случайного изображения, которое я нашел на своем жестком диске, это произвело:
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
Это значение Orientation
, которое вам нужно. Его значение можно найти, например. на странице ориентации exif.
Необработанные данные exif доступны в виде строки из Image.info['exif']
. Вращение можно выполнить с помощью метода rotate()
.
Я не знаю способа изменить данные EXIF с помощью PIL, кроме изменения необработанных данных.
26.08.2012
Новые материалы
Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..
Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом
Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..
Советы по коду Laravel #2
1-) Найти
// You can specify the columns you need
// in when you use the find method on a model
User::find(‘id’, [‘email’,’name’]);
// You can increment or decrement
// a field in..
Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv)
Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..
3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации —
2. Используя квадратичную формулу —
3. Заполнив квадрат —
Давайте поймем это, решив это простое уравнение:
Мы пытаемся сделать LHS,..
Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..
Демистификация рекурсии
КОДЕКС
Демистификация рекурсии
Упрощенная концепция ошеломляющей
О чем весь этот шум?
Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..