Russian Qt Forum

Qt => Вопросы новичков => Тема начата: noname от Декабрь 18, 2011, 11:13



Название: Преобразование из QPixmap в QPaintDevice
Отправлено: noname от Декабрь 18, 2011, 11:13
Здравствуйте.
Не могу выполнить преобразование QPixmap  в QPaintDevice: открываю QImage (необходим низкоуровневый доступ к пикселам), преобразую его в QPixmap (судя по мануалам, на QImage не может рисовать QPainter), QPixmap преобразую в QPaintDevice (здесь ошибка) и наконец конструктору QPainter передаю QPaintDevice. Примеров и других вопросов (с ответом) на эту тему не нашел.

Вот код:
Код:
image = QImage(fileName);
QPixmap paintImage;
paintImage.fromImage(image);
QPaintDevice paintDev = paintImage.QPaintDevice;
QPainter painter(paintDev);

Компилятор выдает:
invalid use of 'QPaintDevice::QPaintDevice'

То же выдает и на
Код:
image = QImage(fileName);
QPixmap paintImage;
paintImage.fromImage(image);
paintImage.QPaintDevice;
QPainter painter(paintImage);

P.S. На виджете рисовать не получится, т.к. необходимо редактировать само изображение для последующего сохранения/печати.


Название: Re: Преобразование из QPixmap в QPaintDevice
Отправлено: Mikhail от Декабрь 18, 2011, 11:45
Это не преобразование а непонятно что.
QPixmap наследуется от QPaintDevice


Название: Re: Преобразование из QPixmap в QPaintDevice
Отправлено: Igors от Декабрь 18, 2011, 11:59
(судя по мануалам, на QImage не может рисовать QPainter)
Прекрасно может, поэтому вся городушка ни к чему


Название: Re: Преобразование из QPixmap в QPaintDevice
Отправлено: fuCtor от Декабрь 26, 2011, 13:05
Цитировать
QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen. QBitmap is only a convenience class that inherits QPixmap, ensuring a depth of 1. Finally, the QPicture class is a paint device that records and replays QPainter commands.
Собственно что сделать то хотите?
Если просто рисовать на картинке то:
Код
C++ (Qt)
QImage img;
QPainter p(&img);