(Qt 3.2.3) Prob mit Helligkeit/Kontrast - Funktion



  • Man stelle sich die beiden Helligkeit/Kontrast Slider bei Photoshop vor. Wenn man den einen Regler verändert und dann den zweiten auch, soll das "neue" veränderte Preview Bild als vorlage für den zweiten Slider dienen. Das Problem ist jetzt, dass es zwei Methoden dafür gibt die jeweils 2 funktionen (lighten - darken; contrastIncr - contrastDecr) beinhalten und die Image Variable immer folgendermassen definiert wird:

    QImage preview = imageManip.darken(myPreviewImage, calcFactor(value));

    Die darken/lighten bzw. contrastIncr/contrastDecr Funktion geht immer vom Original Bild aus (myPreviewImage), da der manipulations Faktor immer der aktuelle Sliderstand ist.

    etwas Code:

    Die beiden Slider:

    code:

    connect(briteCtrl, SIGNAL(valueChanged(int)),
    this, SLOT(setBrightness(int)));

    connect(contrastCtrl, SIGNAL(valueChanged(int)),
    this, SLOT(setContrast(int)));

    Und die Funktionen:

    code:

    void
    BrightnessDialog::setBrightness(int value)
    {

    QImage preview;
    myBrightness = value;

    if (value > 0) {
    preview = imageManip.lighten(myPreviewImage, calcFactor(value));
    }
    else if (value == ) {
    preview = myPreviewImage;
    }
    else if (value < 0) {
    preview = imageManip.darken(myPreviewImage, calcFactor(-value));
    }

    //bild setzen bla..

    }

    und für den kontrast dasselbe:

    code:

    void
    BrightnessDialog::setContrast(int value)
    {

    QImage preview;
    myKontrast = value;

    if (value > 0) {
    preview = imageManip.contrastIncr(myPreviewImage, calcFactor(value));
    }
    else if (value == ) {
    preview = myPreviewImage;
    }
    else if (value < 0) {
    preview = imageManip.contrastDecr(myPreviewImage, calcFactor(-value));
    }

    //bild setzen bla..

    }

    So funktioniert es nicht. Das Bild wird immer wieder von den Funktionen gegenseitig überschrieben. Habe schon alles versucht, aber so ganz perfekt klappt es immer noch nicht. 😕



  • XFlorian schrieb:

    else if (value == ) {
          preview = myPreviewImage;
    

    das soll wohl so nicht gehen.

    übrigens, falsches forum!



  • Berechnest in beiden Funktionen den Preview in zwei Schritten. Einmal wird die Helligkeit angewendet und das anderemal der Kontrast.



  • Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Log in to reply