Transparentes Image über anderen Inhalten

Alles rund um die Programmierung mit Qt
Antworten
Kamayaka
Beiträge: 1
Registriert: 20. Dezember 2004 16:35

Transparentes Image über anderen Inhalten

Beitrag 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
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag 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)));
 }
}
gandalf
Beiträge: 39
Registriert: 31. August 2004 17:00
Wohnort: Varel
Kontaktdaten:

Beitrag 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
benutzte QT 3.2 nc auf w2k
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Naja, dann ist dein Problem ja gelöst, oder?
gandalf
Beiträge: 39
Registriert: 31. August 2004 17:00
Wohnort: Varel
Kontaktdaten:

Beitrag von gandalf »

@FlorianBecker

na da hast du dich aber in der Zielperon geirrt :-)

gandalf
benutzte QT 3.2 nc auf w2k
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Ja, hab ich schon gemerkt. :?
Antworten