Название: QPixmap: сдвиг изображения Отправлено: vanessa от Январь 31, 2010, 09:57 Мне нужно сдвинуть изображение, что в QPixmap на несколько пикселей в сторону при этом результат должен остатся в том-же обьекте.
пробовал так. Код: QPixmap pix(400,300); Есть ли какие методы его сдвига? или можно ли сделать так: слева, напримар отрезать полоску шириной в несколько пикселей а справа добавить столько-же ? Название: Re: QPixmap: сдвиг изображения Отправлено: SABROG от Январь 31, 2010, 13:13 Если операция translated() выходит за пределы картинки, то она не производится. "Умное" Qt пытается сделать adjust для картинки (что-то типа волшебной палочки выделения в фотошопе), поэтому если картинка целиком должна быть трансформирована и результат этой трансформации больше размера картинки, то ничего не делается. Метод QPixmap::trueMatrix() возвратит матрицу, где все твои изменения (сдвиг по горизонтали на 50) сброшены в 0:
Код: QMatrix(11=1 12=0 21=0 22=1 dx=50 dy=0) // до Примечательно то, что метод rotate() по каким-то причинам этим не страдает, увеличивает картинку до новых размеров, если она не умещается. P.S.: QMatrix больше не поддерживается, вместо него нужно использовать QTransform (но это не решит проблемы). Название: Re: QPixmap: сдвиг изображения Отправлено: vanessa от Январь 31, 2010, 13:18 А другие варианты как такое сделать есть ? У него ведь есть связанные не-члены
QDataStream & operator<< ( QDataStream & stream, const QPixmap & pixmap ) QDataStream & operator>>( QDataStream & stream, const QPixmap & pixmap ) может с помощью их можно как-то перегруппировать данные внутри піксмапа чтоб получить нужный мне результат ? Название: Re: QPixmap: сдвиг изображения Отправлено: SABROG от Январь 31, 2010, 13:26 Простейший вариант связка двух QPixmap'ов и QPainter. Т.е. создается временный QPixmap того же размера, который передается на QPainter. Дальше все трансформации производятся на нем. И в конце drawPixmap() с оригинальной картинкой.
|