2015-03-30 4 views
0

Мне нужно отразить изображение. У меня есть эта часть, но исходное изображение исчезает в моей области изображения при вызове этой функции. Я сохранил исходное изображение, и используя QPainter, вытащили оригинал, а затем зеркало, думая, что оба изображения будут скомпонованы. Я все еще получаю зеркальное изображение. Я хочу как зеркальное, так и исходное изображение на одной области изображения. Вот что я до сих пор.Как слить два изображения в qt после режима зеркалирования?

QImage* Original= mImage; //original image 
QImage reflection = mImage->mirrored(true,false);//mirror the original image 

QPainter painter(mImage); 

painter.CompositionMode_DestinationOver; 
painter.drawImage(0, 0, *mImage); 
painter.drawImage(0, 0, reflection); 
painter.end(); 

ответ

0

QPainter :: CompositionMode_DestinationOver

альфа места назначения используется, чтобы смешать его на верхней части источника пикселей.

Если ваше изображение не имеет альфа-канала, вы не увидите никакой разницы.

Кроме того, у вас есть другие проблемы в коде.

  • нанесения изображения на себе является ненужным
  • painter.end(); ненужно
  • Режим композиции
  • установка выполняется с painter.setCompositionMode();
  • Режим композиции устанавливается между чертежами


QPainter painter(mImage); 
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver); 
painter.drawImage(0, 0, reflection); 
+0

Спасибо, я создал альфа-канал, но теперь зеркалирование не работает \t \t 'QImage mask = mImage-> createAlphaMask(); \t \t QPainter painter (&mask); ' – rampency

+0

Вам также нужны пиксели с заметной прозрачностью. – svlasov

 Смежные вопросы

  • Нет связанных вопросов^_^