franz Temat założony przez niniejszego użytkownika |
GetPixel nie działa w pętli for » 2010-02-06 19:31:00 Witam znalazłem na tym forum kod czytający w RGB kolor pixela z pulpitu. Program się kompiluje i działa,ale jak chcę dać zczytywanie pixela w pętlę,żeby zczytał mi więcej pixeli program uruchamia się a zamiast odczytać np. x=10 pixeli o współrzędnych (x,0) zachowuje się jakby był w pętli nieskończonej while(w okienku lecą cały czas jakieś wartości).Wklejam kod: #include <iostream> #include <windows.h> using namespace std;
int main() { short int r, g, b, x; HDC Ekran = GetDC( NULL ); COLORREF Kolor = RGB( 255, 255, 255 ); for( x = 1; x = 10; x++ ) { Kolor = GetPixel( Ekran, x, 1 ); r = GetRValue( Kolor ); g = GetGValue( Kolor ); b = GetBValue( Kolor ); cout << "Czerwony : " << r << "Zielony : " << g << "Niebieski : " << b << "\n"; } ReleaseDC( NULL, Ekran ); system( "PAUSE" ); return 0; }
Program się uruchamia,ale nie wyświetla 10 współrzędnych , tak jakby program był w while... Gdzie jest błąd? Pytanie2: Czy żeby odczytać pixele z własnego zdjęcia muszę napisać kod w allegro? Czy można odczytać jakoś pixele podając lokalizację pliku graficznego? |
|
malan |
» 2010-02-06 20:43:30 for( x = 1; x = 1; x++ ) Wiesz jak działa pętla for? Proponowałbym sobie przypomnieć albo zastanowić się nad poprawnością tego zapisu :). Czy żeby odczytać pixele z własnego zdjęcia muszę napisać kod w allegro? |
W WinAPI chyba jest jeszcze podobna funkcja. Czy można odczytać jakoś pixele podając lokalizację pliku graficznego? |
Podając programowi lokalizację musiałby on albo otworzyć zdjęcie (tzn. wyświetlić w jakiś oknie) i odczytac pixele albo odczytać je z pliku... ;p. Z tym drugim życzę powodzenia... |
|
franz Temat założony przez niniejszego użytkownika |
» 2010-02-06 20:58:26 for (x=1;x=10;x++)
Wiesz jak działa pętla for? Proponowałbym sobie przypomnieć albo zastanowić się nad poprawnością tego zapisu wesoły.
Właśnie wracam do c++ i z tego co wiem pierszy parametr: x=1 //początkowa wartość x=10 //wartość kończąca pętle x++ //wartość wskazująca na wzrost lub malenie wartości 1 Czy można odczytać jakoś pixele podając lokalizację pliku graficznego?
Podając programowi lokalizację musiałby on albo otworzyć zdjęcie (tzn. wyświetlić w jakiś oknie) i odczytac pixele albo odczytać je z pliku... język. Z tym drugim życzę powodzenia...
W sumie to z tą lokalizacją to chodziło mi o wyświetlenie bitmapy,a potem odczytanie pixeli.Źle to wyraziłem-głupio zabrzmiało...Rozumiem że w WinApi nie będzie problemu |
|
DejaVu |
» 2010-02-06 21:45:46 Proponuję poczytać czym się różni zapis porównania od zapisu przypisania. |
|
franz Temat założony przez niniejszego użytkownika |
» 2010-02-06 22:02:23 Ups,noobski bląd <:D>
Przy okazji zadam jeszcze jedno pytanie. Czy można sprecywować w C++,żeby szukał np. barwy tylko zółtej? Czysty zółty to (255,255,0),ale odcienie mają inny RGB. Przepisywanie wszystkich byłoby trochę bez sensu.
|
|
malan |
» 2010-02-06 22:02:33 W sumie to z tą lokalizacją to chodziło mi o wyświetlenie bitmapy,a potem odczytanie pixeli.Źle to wyraziłem-głupio zabrzmiało...Rozumiem że w WinApi nie będzie problemu |
Jakbyś się uparł to w allegro też dałbyś radę. Ładujesz obrazek (bitmapę), wyświetlasz w okienku allegro i odczytujesz pixele.Gdzieś w między czasie jeszcze podajesz lokalizację pliku (zdjęcia) (np. w EditBox-ie). |
|
dmx81 |
» 2010-02-06 22:43:48 co do szukania tylko zoltego i do odcieni, to pewnie sprawa subiektywna, kiedy jeszcze cos jest zolte, a kiedy juz np brazowe, bezowe itd, mi sie wydaje, ze musialbys np w PAINTcie przeleciec suwakiem i okreslic, jaki zakres cie interesuje, pozniej w zaleznosci, ile zmiennych sie zmienia w twoim okreslonym zakresie, utworzyc jakas petle, np
jakis kolor to (a,b,c) a=100, b=100, c=100
twoj zakres zmienia sie: a 90-110, b 100-110, c 100
i na tej podstawie sprawdzic czy if((a>=90||a<=110)&&(b<=.... itd)) mam nadzieje, ze to cos pomoze, chyba ze chodzi o cos innego... |
|
franz Temat założony przez niniejszego użytkownika |
» 2010-02-06 22:55:43 Witaj właśnie o takie coś mi chodzi. Myślałem po prostu,że ktoś ma źródło jakiejś strony,która podaje te zakresy.. |
|
« 1 » 2 |