Модерируемая Коллекция Кистей Для Gimp

Здравствуйте, сегодня я хочу рассказать вам о некоммерческом проекте.

Для тех, кто не в курсе: существует графический редактор с открытым исходным кодом под названием Гимп .

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

Но речь идет не о самом сайте.

Редактор использует собственный формат кисти.

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

В чем преимущества проекта для пользователей:

  • Отказ от системы «щеточного пакета».

    Человек будет скачивать только те кисти, которые ему интересны.

  • Подбор кистей по фильтрам и ключевым словам.

    Мы постарались реализовать на страницах сайта то, что будет реализовано в GIMP 2.8.

  • Удобный просмотр кистей.

    Пользователь видит кисть перед загрузкой.

    Можно изменить цвет кисти и просмотреть ее в полном размере.

  • Перед скачиванием пользователь может опробовать кисть в действии.

    Нарисуйте для нее в специальном графическом редакторе.

  • Загрузка со страниц сайта.

    Никаких вам турбобитов, летитбитов и прочих файлообменников.

  • Рейтинг кистей.

    Сортировка кистей по качеству.

    Мы видим, сколько раз кисть была просмотрена, сколько раз ее скачали (показатель отказов), сколько раз ее рейтинг повышался (в дальнейшем и понижался).

    И в зависимости от этого сортируйте кисти по их качеству, а не по дате добавления.



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

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



Модерируемая коллекция кистей для GIMP

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

Основная проблема, с которой пришлось столкнуться, заключалась в получении правильного изображения из растрового изображения.

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

Видимо это как-то связано с моделью памяти при организации PHP-массивов, но я не стал копать глубже и решил изменить алгоритм.

Немного изучив документацию, я пришел к выводу, что можно спокойно, хоть и медленно, прочитать файл небольшими порциями с помощью пресловутого file_get_contents(), а затем работать с unpack().



Интерфейс выбора кисти

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



Модерируемая коллекция кистей для GIMP

Включив фильтр (1) и выбрав одну или несколько меток кистей (2), вам будут показаны кисти, соответствующие вашим требованиям (5).

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

Цифры — это размер кисти в пикселях.

При включении тегов (2) параметры поиска можно уточнить с помощью активных тегов (4).

Серая метка (3) неактивна, кистей с такими параметрами нет.

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

Как известно, самое медленное при работе в сети — это обращение к серверу и ожидание от него ответа.

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

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

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



Модерируемая коллекция кистей для GIMP



Производительность без JS

Казалось бы, с Аяксом-Аяксом всё в порядке.

Но это не хорошо для всех.

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

На этой странице представлена как сама кисть, так и ее полное подробное описание.

Помимо самих страниц с кистями, были еще страницы выделений с отметками.

Также было реализовано, что если включен JS, то с этих же страниц можно пользоваться выделениями как обычно.

Увидеть и пощупать интерфейс можно здесь: www.progimp.ru/downloads/brushes Теги: #gimp #открытый исходный код #графические редакторы #кисти #коллекции #открытый исходный код

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.