Zope3 продукты ng.app.objectqueue ng.app.quota

ng.app.photo

Andrey Orlov  2008-01-28 01:07

Пакет разработан для поддержки возможности редактирования фотографий на стороне сервера. Каждая фотография - это обычный IImage, в форму редактирования которого добавлена возможность изменения применения нескольких параметров изображения: размер, поворот, отражение относительно осей, изменение формата и применение нескольких заранее заготовленных фильтров (BLUR, EMBOSS). Все преобразования выполняются над текущим изображением при помощи подпрограмм библиотеки PIL.

Продукт

Название:
ng.app.photo
Выложен на PyPI
Репозиторий
Краткое описание пакета ng.app.photo

Краткое описание пакета ng.app.photo

Пакет разработан для поддержки возможности редактирования фотографий на стороне сервера. Каждая фотография - это обычный IImage, в меню редактирования которого добавлена возможность применения несколький зарание заготовленных интсрументов-преобразований, в том числе

  • Масштабирование до указанного размера,
  • Повороты на 90 градусов,
  • Преобразование формата,

Все преобразования выполняются над текущим изображением при помоощи подпрограмм библиотеки PIL.

Способ реализации

Основой продукта является класс Photo, который унаследован от Image и Contained и предоставляет все виды и формы которые есть у Image.

Определяется схема IPhotoEdit, поля которой являются фиктивными и схема IPhotoParam, поля которой существуют в классе Photo. Для класса посредством директивы form создается вид, отображающий поля схемы IPhotoEdit.

setData

При сохранении вида, вызывается метод setData класса, определенного в директиве form. Этот метод проверяет разницу между переданными в схеме значениями полей IPhotoEdit и фактическими значениями полей (0 градусов, 300пикселов ширину, формат RGB. PNG и т.п). После чего выполняются преобразования вызовом соответствующих функций PIL. Значения полей схемы IPhotoEdit, унаследованные от IPhotoParam, сохраняются, остальные нет.

getData

При отображении вида вызывается метод getData класса, определенного в директиве form. Этот метод набирает значения полей схемы IPhotoEdit , унаследованные от IPhotoParam, их класса, а для оставльных полей передает значчения по умолчанию.

Особое внимание придется уделить полям height width - для заполнения их значениями следует использовать вызов getImageSize(), определенный в интерфейсе IImage.

Реализация работы с IPhotoTool

IPhotoTool - это интерфейс инструмента преобразования изображения. Инструмент - это именованный адаптер IPhoto к IPhotoTool. Интерфейс IPhotoTool предоставляет метод do() вызов которого выполняет преобразование изображения "In Place".

Интерфейсы

IPhotoParam

format
Формат изображения (см. описание на PIL)
mime
MIME-типа изображения (см. описание на PIL)

IPhotoEdit

Интерфейс унаследован от IPhotoParam и служит для управнлия преобразованием рисунка и содержит следующие поля:

storeratio
Сохранять соотношение сторон
rotation
На сколько градусов повернуть (всегда сохраняется значение 0)
rotations :: select of (90, 180, 270)
Если выбрано значение не None, то используется значение из этого поля.
hmirror
Вертикальное отражение (всегда сохраняется значение False)
vmirror
Горизонтальное отражение (всегда сохраняется значение False)
filters : tuple of select of text_line
Фильтры, список которых составляют адаптеры IPhoto к IPhotoTool, именованные адаптеры.
width
Ширина изображения
height
Высота изображения

IPhotoTool

Интерфейс служит для управления преобразованием рисунка и содержит один метод do(), смысл которого - выполнить преобразование.

Виды

upload
Стандартный интерфейс заливки изображения, делать его не надо, используется унаследованный;
photoedit
Форма, обслуживающая интерфейс IPhotoEdit Сверху формы вставляется текущий вид изображения, обратите внимание, для этого не нужно никаких специальных интерфейсов, позовите орлова, орлов быстро это сделает.

Вложено:

Новое в ng.app.photo 2009-06-30 12:58  
ng.app.photo README.txt 2008-02-06 23:57  

...

Эпицентр Zope3 Учат тут Нейросети Репозиторий Статистика Редакторам Проекты
Подписаться на RSS Feed Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml