Hi,
ich möchte eine QPixmap auf 100x100Pixel strecken (wenn das Bild kleiner sein sollte) bzw. schrumpfen (wenn das Bild größer sein sollte). Wie mache ich das? Mit resize(int x, int y) funktioniert es nicht.
Gartenzwerg
Hi,
ich möchte eine QPixmap auf 100x100Pixel strecken (wenn das Bild kleiner sein sollte) bzw. schrumpfen (wenn das Bild größer sein sollte). Wie mache ich das? Mit resize(int x, int y) funktioniert es nicht.
Gartenzwerg
http://sebastian.familiegibb.de | GiKraSoft | Nachwachsende Rohstoffe
Ich denke niemals an die Zukunft - sie kommt früh genug.
Albert Einstein
Nein, der sträubt sich da etwas und tut gewiss nicht, was du willst.Zitat von Gartenzwerg
Erfolg hatte ich mit so was, indem ich ein Label in den gewünschten Maßen erzeugt habe, dieses als skalierbar gesetzt und dem das QPixmap verpasst habe. Hier ein Auszug aus dem Quelltext::
QLabel* p_ue =new QLabel(p_spalte1);
p_ue->setScaledContents(true);
p_ue->resize(400,400);
p_ue->setPixmap(QPixmap("./images/stein_0001.png"));
... und schon wird das arme Steinchen aufgeblasen
Möglicherweise ist nicht mehr genug Platz, dann verkneift er sich manchmal das Neuskalieren in der einen oder anderen Richtung, und du musst das Label "zwingen".
Hi,
danke deine Lösung funktioniert einwandfrei. Es gibt nur eine kleine Einschränkung: Wenn das QLabel in einem Layout steckt, akzeptiert es das resize anscheinend nicht und der Inhalt wird in Orginalgröße dargestellt. Kann man das irgendwie ändern?
Gartenzwerg
http://sebastian.familiegibb.de | GiKraSoft | Nachwachsende Rohstoffe
Ich denke niemals an die Zukunft - sie kommt früh genug.
Albert Einstein
Du kannst dir den Skalierungsfaktor bzw Faktoren berechnen und dann das Bild mit einem QPainter auf ein leeres 100x100 Pixmap zeichnen.
Siehe dazu QPainter::scale()
Oder in ein QImage umwandeln, scalen und zurück umwandeln.
Ciao,
_
Qt/KDE Entwickler
Debian Benutzer
, genau das meinte ich mit dem Zusatz.Zitat von Gartenzwerg
Du kannst ausprobieren:
setMaximumSize, setMinimumSize und Konsorten, je höher das entsprechende Label in der Widget-Hierarchie steckt, desto aussichtsreicher .
setStretchFactor und Konsorten für härtere Fälle, falls mehrere Widgets in einem Ober-Widget stecken.
Ich habe auch versucht, anda_skoas Weg zu gehen, aber die Trolltech Doku meint, dass die Konvertierung QPixmap-Image nicht gerade die schnellste ist.
Das ist schon richtig, weil ja vom Xserver in den Client kopiert werden muss, bzw umgekehrt, aber du wirst das ja vermutlich nicht ununterbrochen machen.
Ciao,
_
Qt/KDE Entwickler
Debian Benutzer
Hab jetzt den Weg von anda_skoa genommen. Dieser ist schön einfach und funktioniert spitze. Das Bild wird sehr selten skaliert, damit sollte die Geschwindigkeit für mich keine Rolle spielen.
Gartenzwerg
http://sebastian.familiegibb.de | GiKraSoft | Nachwachsende Rohstoffe
Ich denke niemals an die Zukunft - sie kommt früh genug.
Albert Einstein
Lesezeichen