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?
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:
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.