Witam wszystkich!
Chcę napisać program, który wczyta bitmapę, a następnie policzy histogram występujących w niej kolorów. Oto, co jak dotąd udało mi się zrobić:
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{
int red,green,blue;
COLORREF color;
HDC hdc;
struct info
{
int wysokosc;
int szerokosc;
}info;
ifstream obraz("obrazek.bmp", ios::binary); //wczytanie pliku
hdc = obraz;
obraz.seekg(18,ios::beg);
obraz.read((char*)&info.szerokosc, sizeof(int)); //wczytanie wartości szerokości
obraz.seekg(22,ios::beg);
obraz.read((char*)&info.wysokosc, sizeof(int)); //wczytanie wartości wysokości
color= GetPixel(hdc,150,170);
blue=GetBValue(color);
red=GetRValue(color);
green=GetGValue(color);
cout<<"Blue: "<<blue<<", Red: "<<red<<", Green: "<<green<<"."<<endl;
system("pause");
return 0;
}
Jak łatwo można się domyśleć, linijka "color= GetPixel(hdc,150,170);" jest błędna, gdyż jest tam niedozwolona konwersja. Ww. program nie jest kompletny, na razie moim celem jest znalezienie komend, które poprawnie wczytają wartości danego piksela. Byłbym bardzo wdzięczny, gdyby ktokolwiek mógłby mi pomóc, wyjaśnić jak to zrobić dobrze lub chociaż naprowadzić na poprawne rozwiązanie. W googlach szukałem parę godzin, niestety bez większego efektu ;/
Z góry dziękuję za otrzymaną pomoc,
Pozdrawiam.