Kann Bild nicht korrekt in der cimg Bibliothek speichern

8

Hier ist die Gesamtheit meines Codes:

%Vor%

Dies zeigt erfolgreich an, was ich in einem Fenster erwarte, nämlich ein komplett schwarzes Quadrat mit einem weißen Pixel bei 50,50. File.bmp ist jedoch einfach ein schwarzes Quadrat, ohne das Pixel (und speichert ein cimg-Bild, das mit wiederholten Aufrufen von draw_point geändert wurde in einem größeren Programm, das etwas Nützliches tut, scheitert auch). Was ist hier los?

    
Tneuktippa 23.04.2012, 18:24
quelle

2 Antworten

4

Das Problem besteht darin, dass Sie CImgDisplay mit aktivierter Normalisierung erstellen. Daher wird Ihr Pixel von {1,1,0} auf {255,255,0} normalisiert und ist auf Ihrem Bildschirm sichtbar.

CImg.save führt keine Normalisierung durch, daher wird das Pixel als sehr dunkles Pixel auf der Festplatte gespeichert.

Sie können das Problem beheben, indem Sie Ihre weiße Pixelfarbe ändern:

%Vor%

Und optional durch Deaktivieren der Normalisierung:

%Vor%

Alternativ können Sie das Originalbild vor dem Speichern oder Anzeigen normalisieren:

%Vor%

Referenzen:

Robᵩ 23.04.2012, 19:43
quelle
1

Ich bin mit dieser Bibliothek nicht vertraut, aber dieses Verhalten würde darauf hinweisen, dass CImgDisplay das Bild beim Rendern anders interpretiert.

Ich würde erwarten, dass die Farbe Weiß als const unsigned char color[] = {255,255,255}; definiert wird, um RGB-Werte für die Bitmap darzustellen.

Ich würde die Dokumentation für CImg als ersten Schritt prüfen.

    
AJG85 23.04.2012 18:42
quelle

Tags und Links