Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

GetPixel nie działa w pętli for

Ostatnio zmodyfikowano 2010-02-07 06:42
Autor Wiadomość
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:

C/C++
#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++ ) //zaczynam od x=1 chce powtórzyć pętle 10x rosnąco
    {
       
        Kolor = GetPixel( Ekran, x, 1 ); //x ma się zmienia z każdym obrotem do 10
       
        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?

P-13595
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...
P-13598
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
P-13599
DejaVu
» 2010-02-06 21:45:46
Proponuję poczytać czym się różni zapis porównania od zapisu przypisania.
P-13603
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.
P-13608
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).
P-13609
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...
P-13612
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..
P-13613
« 1 » 2
  Strona 1 z 2 Następna strona