LINUX.ORG.RU

Какие классы для графического редактора использовать?

 ,


0

1

На тостере посоветовали сюда обратиться.

Цель: небольшой редактор для пиксель-арта с подсказками для удобной подготовки графики под устройства. Подсказки: 1. на холст можно накладывать рамки различных устройств (имитирует aspect ratio), чтобы видеть общую область видимости выбранной линейки устройств; 2. возможность менять разрешения чтобы видеть, на каком разрешении графика начинает искажаться (графика масштабируется с изменением разрешения).Тут, конечно, будет ограничение: если монитор 1920х1080, то имитировать ретина не получится, - но хоть часть устройств покрыть будет можно.

Моего уровня совсем не достаточно, чтобы написать программу без помощи.

С программной стороны, вроде бы нужны классы для таких задач:

1. Создать холст для рисования, указать разрешение, aspect ratio.
Класс: QGraphicsScene\QPixmap?

2. Загрузить изображение jpg, png, bmp - холст автоматически создастся по параметрам изображения.
Класс: QPixmap?

3. Работа с изображением: рисовать, стирать, выделить изображение, масштабировать (вручную и автоматически - если выставить холсту другое разрешение), повернуть.
Класс: тут, наверное, классов нет - реализация своими алгоритмами и привязка их к обработчику мышки и клавиатуры.

4. Наложить поверх холста «сетку». Размер сетки - размер разрешения. Размер можно менять - сетка будет становиться плотнее\разряженнее.
Класс: ?

5. Поверх холста отображать рамки. Размер рамки - aspect ratio.
Класс: QFrame?

6. Сохранить изображение png, битность, альфа.
Класс: ?



Последнее исправление: nevro (всего исправлений: 5)

Начни с QObject и QWidget

AF ★★★
()

QPixmap/QPainter умеют всё желаемое

1. Aspect ratio для компа лишь цифры.
2. QPixmap::load
3. QPainter
4. Сводится к ресайзу. И да, QPainter.
5. QPainter::drawImage.
6. QPixmap::save.

Northsoft ★★
()

Я прочитал раздел «Цель», и у меня возник ламерский вопрос: а не проще правильнее ли будет для специфической части работы плагин к гимпу написать? Ведь в качестве именно редактора гимп всяко помощнее своего велосипеда будет, а специфика, как я понимаю, именно в подготовке под устройства...

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

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

nevro
() автор топика

Если знаешь Qt, то сможешь написать плагин для QtCreator. Там уже есть многое из того, что тебе надо с продуманным дизайном классов. В плане отрисовки там используется QGraphicsScene, т.е. пункт 1. В качестве отправной точки можно взять плагин QmlDesigner.

Помимо отрисовки там у тебя сразу есть возможность работать с множеством разрешений, есть возможность сериализовать свой дизайн в qml. Сразу есть возможность создать свой Project Wizard для создания проекта для дизайнеров.

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

dmitryshm
()
Ответ на: комментарий от dmitryshm

Печаль в том, что не знаю. Вообще с реальным программированием плохо, только в рамках лабораторных (давно не студент и ООП владею, если что). Предстоит много трудностей.

nevro
() автор топика
Ответ на: QPixmap/QPainter умеют всё желаемое от Northsoft

В документации по QT вычитал это: «Typically, the QImage class is used to load an image file, optionally manipulating the image data, before the QImage object is converted into a QPixmap to be shown on screen. Alternatively, if no manipulation is desired, the image file can be loaded directly into a QPixmap. On Windows, the QPixmap class also supports conversion between HBITMAP and QPixmap.» На стэковерфлоу прочитал, что разница между ними - в реализации (платформозависимость) и скорости работы. Судя по перечню поддерживаемых форматов и моему плохому английскому, с точки зрения функциональности, разницы нет.

nevro
() автор топика
Ответ на: комментарий от nevro

В документации вычитал

«Верной дорогой идёте, товарищи!» ©

Northsoft ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.