Seite 1 von 1
Transparentes Image über anderen Inhalten
Verfasst: 20. Dezember 2004 16:41
von Kamayaka
Huidaho,
vielleicht stelle ich mich momentan einfach nur zu doof an aber ich komm nicht dahinter. Ich möchte ein transparentes PNG über anderen Inhalt platzieren, in diesem Falle ein Bild.
Das Pixmap kommt aus ner Mime Source und wird in ein QLabel gesetzt. Leider hat das QLabel immer einen Hintergrund. Wie bekommt man den den transparent oder muss man sich hier mit Masken auseinandersetzen ?
Kama
Verfasst: 20. Dezember 2004 22:22
von FlorianBecker
Bild ganz transparent:
Code: Alles auswählen
QPixmap pix( 16, 16 );
pix.fill( Qt::color0 );
QBitmap mask( pix.size(), true );
pix.setMask( mask );
Pixel in PNGs Transparent darstellen:
Code: Alles auswählen
for (int height = 0; height < img.height(); height++)
{
for (int width = 0; width < img.width(); width++)
setPixel1BPP(img2, width, height, qAlpha(img.pixel(width, height)) >= 70);
}
QBitmap mask;
mask.convertFromImage(img2);
pix->setMask(mask);
void Xgq3Base::setPixel1BPP(QImage &image, int x, int y, bool value)
{
if ( image.bitOrder() == QImage::LittleEndian )
{
if (value)
*(image.scanLine(y) + (x >> 3)) |= 1 << (x & 7);
else
*(image.scanLine(y) + (x >> 3)) &= ~(1 << (x & 7));
}
else
{
if (value)
*(image.scanLine(y) + (x >> 3)) |= 1 << (7-(x & 7));
else
*(image.scanLine(y) + (x >> 3)) &= ~(1 << (7-(x & 7)));
}
}
Verfasst: 21. Dezember 2004 09:12
von gandalf
Also ich hab die Bilder immer in einem QImage und da wird transparenz ohne probleme und ohne konvertierungen dargestellt.
ich benutze das auf röntgenbildern um fertige Kreuze darzustellen bei denen eine Umgebungsfarbe stören würde
gandalf
Verfasst: 21. Dezember 2004 09:15
von FlorianBecker
Naja, dann ist dein Problem ja gelöst, oder?
Verfasst: 21. Dezember 2004 12:08
von gandalf
@FlorianBecker
na da hast du dich aber in der Zielperon geirrt
gandalf
Verfasst: 21. Dezember 2004 13:30
von FlorianBecker
Ja, hab ich schon gemerkt.
