Aus einem Bild(bitmap) Pixel für Pixel die Farbwerte auslesen
-
Halllo zusammen,
ich würde gerne bei einem Bild vom jedem Pixel den entsprechenden Farbwert herausbekommen.
Habe schon einiges im Internet gefunden, doch nicht das richtige.
Ich finde immer Skripte, indem jemand von irgend einem Fenster die Pixelfarbe herauszubekommen.
Doch wie kann ich das auf ein Bild übertragen.Ich wäre um Hilfe sehr dankebar.
OS: Win 7 x64
IE: VS c++ 2010MFG
Coco
-
Es wäre interessanter zu erfahren, welche Bildformate (vermutlich png, bei jpg macht Pixel auslesen weniger sinn) du lesen willst.
Hast du dir schon http://www.libpng.org/pub/png/libpng.html angesehen?
-
Danke schon mal für den link.
#include <iostream> #include <Windows.h> using namespace std; int main() { HDC hdc = GetDC(NULL); COLORREF color = GetPixel(hdc, 100, 100); ReleaseDC(NULL, hdc); int color_red = GetRValue(color); int color_green = GetGValue(color); int color_blue = GetBValue(color); cout << "\nRot: " << color_red << "\nGruen: " << color_green <<"\nBlau: " << color_blue; cin.get(); return 0; }
Das habe ich so im inet gefunden, doch vom Welchem "Objekt" nimmt das die Pixel?
Dazu kommmt bei mir nur immer die gleiche Farbwerte heraus. z.B( Rot= 256; Grün= 256; Blau=256)
Gruß
Coco
-
-
Wie kann ich dort jetzt eine Bild drin laden?
-
Hast du dir den ersten Link überhaupt angesehen?
-
Ja nur irgend wie komme ich damit nicht weiter
-
CocoEi schrieb:
Ja nur irgend wie komme ich damit nicht weiter
Kannst du wenigstens versuchen, dir Mühe zu geben, uns dein Problem zu beschreiben?
-
CocoEi schrieb:
Ja nur irgend wie komme ich damit nicht weiter
Zeit Programmieren zu lernen.
Spezifische Fragen werden hier gerne und meist relativ schnell beantwortet.
Einfach nur "ich
weisskomm da nicht weiter" läuft aber im Prinzip auf ein "macht meine Arbeit für mich" hinaus, und wird dementsprechend ungern beantwortet.Davon abgesehen würde ich dir nicht unbedingt libpng empfehlen, sondern eher sowas wie CImg:
http://cimg.sourceforge.net/
Da findest du ein Tutorial, das sollte wirklich jedem der auch nur irgendwie programmieren kann weiterhelfen:
http://cimg.sourceforge.net/reference/group__cimg__tutorial.htmlBzw. wenn du auf Schmerzen stehst dann vielleicht noch die OpenIL:
http://openil.sourceforge.net/
-
also ich denke sowas sollte gut zu schaffen sein, z.b. mit LoadImage(...)
da brauchst du noch nen kleines bisschen drumherum (nich viel) und dann kannst du mit SelectObject das auf dein HDC hauen... so ungefähr würde es glaube gehen können...nochwas: ich wusste gernicht, dass die RGB-anteile größer als 8 bit sein können:
Rot= 256; Grün= 256; Blau=256