Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация

Open SourceКоллекция кистей для GIMP

Для тех, кто не в теме: существует опенсорсный графический редактор, который называется Gimp. Чтобы рассказать о нем, для простых людей был создан сайт, на котором были размещены уроки и описания этого редактора. Но речь пойдет не о самом сайте.

Редактор использует свой формат кистей. Пришла мысль о создании каталога, в котором можно было бы искать нужные кисти и быстро их скачивать.

В чем плюсы проекта для пользователей:
  • Отказ от системы «пакетов кистей». Человек будет скачивать только те кисти, которые ему интересны.
  • Подбор кистей по фильтрам и ключевым словам. То, что будет реализовано в GIMP 2.8 мы попытались реализовать на страницах сайта.
  • Удобный просмотр кистей. Пользователь видит кисть перед скачиванием. Может изменить цвет кисти и посмотреть ее в полном размере.
  • Перед скачиванием пользователь может опробовать кисть в действии. Порисовать ей в специальном графическом редакторе.
  • Скачивание со страниц сайта. Никаких тебе турбобитов, летитбитов и других файлообменников.
  • Рейтинг кистей. Сортировка кистей по качеству. Мы видим сколько раз кисть просмотрели, сколько раз ее скачали (показатель отказов), сколько раз ей подняли (в будущем и опустили) рейтинг. И в зависимости от этого, сортировать кисти по их качеству, а не дате добавления.



Организация предпросмотра кистей


Собственно, что такое этот сам предпросмотр — всего лишь эскиз внешнего вида самой кисточки и пробный штрих ею же в разных цветах.



Для начала разработки была найдена документация по кистям, используемым в GIMP. Как оказалось, кисть Гимпа в формате GBR устроена достаточно просто — она состоит из заголовка, описывающего саму кисть и битмапа хранимого изображения.

Основной проблемой, которая стояла, было получение корректной картинки из битмапа. Сначала была идея делать unpack для всего участка файла, содержащего битмап, но это привело к тому, что на полноцветных кистях размером в 500х500 точек просто заканчивалась память (интерпретатору отводилось вплоть до 256 МБ ОЗУ). Судя по всему это как-то связано с моделью памяти при организации массивов PHP, но копать вглубь я не стал, а решил изменить алгоритм. Немного изучив документацию пришел к выводу, что можно спокойно, хоть и медленно, читать файл маленькими порциями используя пресловутый file_get_contents(), а потом работать с unpack().

Интерфейс подбора кистей


Но кроме самого генератора штрихов и эскизов кисти, был создан и интерфейс позволяющий отбирать кисти по интересующим признакам.



Естественно было принято решение, что он должен быть быстрым и удобным, ну а этому как раз и способствовала концепция аякс запросов к серверу.

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

Если вы посмотрите на сервис, то увидите, что по клику на эскиз кисточки происходит открывание окна, в котором есть вся необходимая информация по кисти, уже полученная от сервера. Зато после открывания окна запускается асинхронный запрос, вызывающий серверный обработчик, подсчитывающий просмотры кисти. Кроме информации в этом окне реализована флеш-вставка позволяющая опробовать кисть «не отходя от кассы».



Работоспособность без JS


Казалось бы, аякс-аяксом и все хорошо. Но хорошо не для всех. Есть некоторые товарищи, которые отключают JS, а также поисковые системы, для которых мы сделали по обычной веб-страничке про каждую кисть. На этой странице есть и кисть и ее полное подробное описание. Кроме самих страниц с кистями, были сделаны и страницы выборок с метками. Реализовано было и то, что если включен JS, то с этих самых страниц можно будет пользоваться выборками как обычно.

Посмотреть и пощупать интерфейс можно тут: www.progimp.ru/downloads/brushes/
  • +1
  • Diesel
  • 31 октября 2010, 18:22
  • add twitter 

Комментарии (0) Вконтакте (0) facebook (0)

Комментарии (0)

rss свернуть / развернуть

Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.