Найти - Пользователи
Полная версия: Библиотека для создания растрового графического редактора.
Начало » Python для новичков » Библиотека для создания растрового графического редактора.
1 2
philimonix
Привет, народ!
Вопрос такой. Я в программировании пока совсем ещё новичок. Хотя прочитал несколько книг по разным языкам (Haskell, Common Lisp, Perl, C, Python). Но ничего серьёзней задачек из этих книг я почти никогда не писал. И вот подумал, что читать книжки, конечно, можно и дальше, но толку от них не будет, пока я не возьмусь за какой-то проект. Не долго думая, решил совместить два увлечения - программирование и пиксель арт - и начать писать графический редактор на Python3.
Планы у меня в этом направлении наполеоновские. В конечном итоге хотелось бы создать полноценную среду для создания пиксельной анимации.
Для начала было бы неплохо ограничиться такими задачами как редактирование спрайтов и создание тайлсетов для 2D-игр. А потом уже потихоньку добавлять возможности анимации и всякое прочее.

В чём, собственно, вопрос?
Во-первых, хочу просто попросить вас о любых подсказках и советах, если кому-то из вас уже приходилось делать что-то подобное.
Во-вторых, я совершенно не секу в графических библиотеках. Видал tkinter. Выглядит вроде не сложно. Мне она показалась интересной и вполне пригодной для моей задачи. Что скажете? Когда дело дойдёт до анимации, мне не придётся задуматься о смене графической библиотеки и переписывании большой части кода?

P.S: Начать, конечно, нужно с чего-то простенького и не богатого на разнообразные фишки. Что-то вроде такого редактора как Piskelapp. Есть онлайн версия, работает прямо в браузере. Там просто возможность рисования карандашом в один пиксель, зеркальное отображение, слои, простая анимация по кадрам, примитивы, ластик.. ну и всё такое.

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

P.P.P.S: Буду рад любым советам
FishHook
Вам наверняка понадобится это
Shaman
PyQt* покроет любые фантазии. Там есть QImage.
PEHDOM
Shaman
PyQt* покроет любые фантазии. Там есть QImage.
Там есть еще Qt Graphics Framework
http://doc.qt.io/qt-4.8/graphicsview.html
http://doc.crossplatform.ru/qt/4.6.x/graphicsview.html
Graphics View Framework это не только система вывода графики с широкими возможностями, но и готовая реализация парадигмы модель-контроллер-вид для программ, работающих с двухмерной графикой.
Графическое представление обеспечивает поверхность для управления и взаимодействия с большим количеством созданных пользователем двумерных графических элементов, а также виджет для их визуализации с поддержкой масштабирования и вращения.
philimonix

Shaman
PyQt* покроет любые фантазии. Там есть QImage.
PEHDOM
Там есть еще Qt Graphics Framework
Что-то Qt показалась мне как-то переусложнённой штуковиной для новичка. Там уж очень много всего. Но штука интересная, по всей видимости для конкретно крупных приложений, работающих со сложной графикой, это будет самое оно. Спасибо за наводку. Возможно, в будущем, если мой энтузиазм не закончится на первых трудностях, я займусь изучением этой штуки. А пока что это будет стрельба из пушки по воробьям, ибо пиксель арт вряд ли потребует чего-то грандиозно сложного и жрущего ресурсы аки 3D Max.

FishHook
Вам наверняка понадобится это
Pilliow выглядит интересно и попроще чем Qt. Наверное, всякие там преобразования форматов файлов, алгоритмы изменения размеров изображения и всякие разные вещи очень даже пригодятся.

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

Всем большое спасибо!
Shaman
С растровыми редакторами вопрос “как хранить растр” является не менее важным чем “как построить IU”.
philimonix
Shaman
С растровыми редакторами вопрос “как хранить растр” является не менее важным чем “как построить IU”.
Ну так пиксель арт же. Тут PNG надо. Или имеется в виду хранение всего этого дела в памяти во время самого процесса редактирования?
Shaman
philimonix
Или имеется в виду хранение всего этого дела в памяти во время самого процесса редактирования
Да. Именно это подразумевалось. Главное - начать, а там правильные вопросы сами появятся.
philimonix
Shaman
Главное - начать, а там правильные вопросы сами появятся.
Это да. Пока не начнёшь, даже и не подозреваешь о вопросах, которые поджидают. А уж у меня этих вопросов будет валом, ибо я сразу с места в карьер, ничего не умея и почти ничего не зная, взялся за такой проект.
Ну, как хранить всё это дело в памяти, я пока не знаю. Думаю, раз это пиксельный редактор, то концептуальненько было бы иметь класс Pixel, который описывал бы минимальный строительный блок графики. Класс Layer мог бы иметь в себе список объектов Pixel, а класс Tile содержал бы в себе список слоёв (Layer). Тогда TileSet был бы списком тайлов. Ну там ещё кадры, анимации и всякое прочее. Это пока то, что в голову пришло. На данном этапе пока такой вопрос передо мной не стоит.
JOHN_16
philimonix
если вы такой новичок может для того что бы мотивацию не растерять с чего то попроще начать? А то уж больно как то высокая планка - слишком часто такие вещи начинаются и не дойдя до половины бросаются (половина - это я еще оптимистично)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB