2016-12-11 6 views
0

я могу использовать изображения (JPEG) из моего приложения Python App Engine, используя API встроенных изображений без проблем, например, так:Подавать GIF из AppEngine (Python)

result = img.execute_transforms(output_encoding=images.JPEG) 
self.response.headers['Content-Type'] = 'image/jpeg' 
self.response.out.write(result) 

Это не работает с GIF хоть. Следующие

result = img.execute_transforms(output_encoding=images.GIF) 
self.response.headers['Content-Type'] = 'image/gif' 
self.response.out.write(result) 

приводит Output encoding type not in recognized set frozenset([0, 1, 2])

Глядя на documentation (около вершины), я считаю:

JPEG = images_service_pb.OutputSettings.JPEG 
PNG = images_service_pb.OutputSettings.PNG 
WEBP = images_service_pb.OutputSettings.WEBP 
BMP = -1 
GIF = -2 
ICO = -3 
TIFF = -4 

OUTPUT_ENCODING_TYPES = frozenset([JPEG, PNG, WEBP]) 

Означает ли это, что сервировки GIFs в настоящее время не поддерживается питона изображений апи? Если да, есть ли другой способ обслуживать gif из приложения python app engine?

ответ

1

Означает ли это, что обслуживание GIF-файлов в настоящее время не поддерживается изображениями python api?

Да. Подтверждено фрагмент кода, на самом деле производит ошибку вы столкнулись, далее на той же странице документации вы ссылки, внутри execute_transforms_async():

if output_encoding not in OUTPUT_ENCODING_TYPES: 
     raise BadRequestError("Output encoding type not in recognized set " 
          "%s" % OUTPUT_ENCODING_TYPES) 

Если да, то есть другой способ служить гифы из питона приложения двигателя приложение?

Да, вы можете использовать предоставленный GAE PIL library (только версия 1.1.7 доступна в GAE).

Using get_serving_url() С (курсив):

Кроме изображений API, вы можете также использовать преобразований, предусмотренных в Python Imaging Library (PIL) в вашем приложении Python 2.7. Чтобы сделать это, объявите библиотеку в разделе libraries файла app.yaml. Однако, если вы хотите использовать PIL в своей локальной среде (используя сервер разработки), вы также должны указать download and install PIL или pillow.

Метод get_serving_url() позволяет создать фиксированный выделенный URL-адрес для изображения, хранящегося в Blobstore, .

Примечание: Я действительно не пробовал это, ответ основывался исключительно на документации.