[QT4] qpixmap.loadFromData - Problem



  • das habe ich befürchtet...

    - momentan lese ich alle Pixel einzeln aus und setzte sie im QImage.

    nicht ganz die feine Art...
    😞



  • darf man fragen wie du die einzelne Pixel ins QImage packst?

    MfG



  • das geht ganz einfach,bei 32bpp mit

    void setPixel32bpp(QImage &image, int x, int y, uint red, uint green, uint blue)
    {
    uint *ptr = (uint *)image.scanLine(y)+x;
    *ptr = qRgb(red, green, blue);
    }
    

    oder bei 8bpp ebend noch einfacher

    void setPixel8bpp(QImage &image, int x, int y, unsigned char value)
    {
    *(image.scanLine(y)+x)= value;
    }
    

    aso, ich nutz QT4...
    :xmas1:
    mfg hilby



  • thx für die Erklärung und wie muss ich die Farbe setzen damit das Bild ein Transparenten Hintergrund bekommt?
    Wäre nett wenn du mir da auch noch helfen könntest.
    P.S.: ich benutze auch Qt4

    MfG



  • Transparenten Hintergrund habe ich bisher nur mit PNG-Bildern verwendet, bei denen die Transparenz in den Bildinformationen drinsteht.

    und zwar so:

    QLabel* mainwidget = new QLabel();
    QPixmap pm = QPixmap("hilby.png"); 
    mainwidget->setPixmap(pm);
    mainwidget->setMask(pm.mask());  // Transparenz-Maske
    mainwidget->show();
    

    probier das mal aus - sollte funktionieren.

    mfg
    hilby
    😉



  • hmm will ja kein bild laden soll ja intern ein bild "gemalt" werden.
    Hier mal ein Test Code wie ich jetzt zur Zeit mache:

    QImage img(20,20, QImage::Format_Mono);
    img.fill(255);
    img.setPixel(2,2, 0);
    //.. algorithmus
    

    Was ich noch nicht erwähnt habe das Bild hat nur zwei Farben Schwarz und Weiss deswegen ist das Format inmoment auch Mono.
    Nun und jetzt will ich halt das der weisse Hintergrund halt Transparent haben.
    Hab schon ein bissel mit ein paar Methoden von QImage herumexperimentiert aber selbsgemaltes transparent bekomm ich nicht hin.

    MfG



  • achso,

    dann mach das doch lieber mit einem QPainter
    und drawPoint() - der malt doch auf den Hintergrund.

    und den Painter kannst dann in ein Pixmap speichern, wenn Du eins brauchst...

    schönes WE

    hilby



  • versteh ich jetzt nicht will ja kein hintergrund malen brauch ja ein QImage später nur das das QImage halt ein transparenten hintergrund haben soll.

    dir auch ein schönes WE

    MfG



  • ok habs nun hinbekommen mittels qRgba(x,x,x,0) als Farbwert.

    MfG



  • cool !
    😉


Anmelden zum Antworten