Всем привет!
Если нужно из 2-х картинок сделать одну, то как лучше всего это делать? Я делаю так.. но меня смущает правильность этого.. Может есть другой способ?
void CPlayingForm::AddImage(QImage& oImageInitial, const QImage& oImageToAdd, const int& nVertOffset) const
{
//к oImage добавляем oImageToAdd с вертикальным смещением nOffset
const int nImageW = oImageToAdd.width();
const int nImageH = oImageToAdd.height();
if (oImageInitial.width() != nImageW)
{
//error
return;
}
if (nImageH + nVertOffset > oImageInitial.height())
{
//error
return;
}
for (int i = 0; i < nImageW; ++i)
{
for (int j = 0; j < nImageH; ++j)
{
oImageInitial.setPixel(i, nVertOffset + j, oImageToAdd.pixel(i, j));
}
}
}
.......
QImage oImage(nImageW, 2 * nImageH, QImage::Format_RGB32);
AddImage(oImage, oImage1, 0 * nImageH);
Думаю быстрее будет, если использовать QPainter::drawImage.
Создаешь QImage нужного размера, инициализируешь его в QPainter и рисуешь исходные изображения с необходимым смещением.
А то setPixel постоянно смещение по координатам вычисляет.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)