Kolor piksela obrazka

0

Jak odczytać kolor dowolnego piksela z obrazek,
nie wyświetlając go nigdzie, da się np władować
taki obrazek do canvas'a, a jeżeli tak to czy będzie
jakieś ograniczenie co do formatu obrazka ?
;p
Czytałem FAQ ale tam tylko o bazgraniu po pulpice
czy jakimś komponencie [glowa]

--
Pozdrawiam...
piechnat

0

nie wiem o zadnych ograniczeniach.. chyba nie ma, ale wiem ze mozna zaladowac obrazek do canvas'a i potem komenda pixel[x,y] pobrac kolor. Wiem bo robilem wezyka po pulpicie :d

--
..::ZwoRek::..

0

image1.picture.bitmap.canvas.pixels[x, y], lub jeżeli masz TBitmap, to bitmapa.canvas.pisels[x, y]. Gorzej natomiast z obrazkami jpg i ikonami. Tu już trzeba wyrysować obrazek na jakiś TBitmap, a potem stamtąd odczytać.

--

Delphi 6

Pozdrówka

0

a jeżeli tak to czy będzie jakieś ograniczenie co do formatu obrazka ?

Jeżeli potrafisz w Delphi odczytać jakiś obrazek, to tak samo możesz odczytać pojedynczy pixel. Utwórz tylko odpowiedni obiekt (TBitmap, TJPEGBitmap itp.)
Jeżeli chodzi o bitmapy, to można w dosyć prosty sposób odczytać pojedynczy piksel od razu z pliku (bmp ma prosty format).

--
Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Dzięki wszytskim zaraz popróbuję, i tak jeszcze mam pytanie
czy jest jakiś universalny sposób żeby do TBitmap władować
wszytko bez wzgęldu na to czy to będzie bmp jpg czy gif ?
tzn. przekonwertować w locie, tak żebym miał pewnośc
że jakiego użytkownik pliku nie wybierze to będzie
można odczytać pixele ?

--
Pozdrawiam...
piechnat

0

i tak jeszcze mam pytanie
czy jest jakiś universalny sposób żeby do TBitmap władować
wszytko bez wzgęldu na to czy to będzie bmp jpg czy gif ?
tzn. przekonwertować w locie, tak żebym miał pewnośc
że jakiego użytkownik pliku nie wybierze to będzie
można odczytać pixele ?

Do bmp nie, ale możesz spróbować z TPicture.

--
Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Do bmp nie, ale możesz spróbować z TPicture.

Sorry że tak marudze ale to chyba nie jest takie proste jak myślałem [wstyd]

uses JPEG
var Pic : TPicture;

Pic := TPicture.Create;
Pic.LoadFromFile('plik.jpg');
ShowMessage(IntToStr(Pic.Bitmap.Canvas.Pixels[x,y]));

hmm... pod x i y wstawiałęm w pętli wszystkie możliwości
a powyższy kod za każdym razem wyświetla mi -1
Co jest nie tak ?

--
Pozdrawiam...
piechnat

0

Sorry że tak marudze ale to chyba nie jest takie proste jak myślałem [wstyd]

uses JPEG
var Pic : TPicture;

Pic := TPicture.Create;
Pic.LoadFromFile('plik.jpg');
ShowMessage(IntToStr(Pic.Bitmap.Canvas.Pixels[x,y]));

hmm... pod x i y wstawiałęm w pętli wszystkie możliwości
a powyższy kod za każdym razem wyświetla mi -1
Co jest nie tak ?

Gdy ładujesz obrazek inny niż bmp do TPicture to jest on ładowany do Graphic a nie do Bitmap. Musisz zrobić tak:

uses JPEG
var 
  Pic : TPicture;
  Can: TCanvas;

Pic := TPicture.Create;
Pic.LoadFromFile('plik.jpg');
Can := TCanvas.Create;
Can.Height := Pic.Height;
...
Can.Draw(0, 0, Pic.Graphic);
ShowMessage(IntToStr(Can.Pixels[x,y]));
Can.Free;

--
Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

0

Oj jak ja nie lubie marudzić :-/

Can.Height := Pic.Height;

tu mam problem bo Canvas nie ma właściwości Height ani Width
ale szukałęm po innych przykłądach i tam nie ma takiej linijki więc dalej:

Can.Draw(0, 0, Pic.Graphic);
ShowMessage(IntToStr(Can.Pixels[x,y]));

Ciągle mi wyskakuje: Canvas does allow drawing
a próbowałęm z tym iz jakimś przykładem gdzie
był TJPEGImage :(

tzn w linijce ShowMessage(IntToStr(Can.Pixels[x,y])); tak się dzieje

--
Pozdrawiam...
piechnat

0

Oj jak ja nie lubie marudzić :-/
tu mam problem bo Canvas nie ma właściwości Height ani Width
[wstyd]

No tak. Zapomniałem. Utwórz TBitmap i dopiero na TBitmap.Canvas rysuj. Rozmiary oczywiście bitmapie przyporządkuj.

--
Jest jeszcze jeden błąd ... :)
--------Oficjalny kanał----------
Service for programmers w IRC:
Kanał: #4programmers.net
Serwer: warszawa.ircnet.pl
Sieć: POLNet
Port: 6667

0

No tak. Zapomniałem. Utwórz TBitmap i dopiero na TBitmap.Canvas > rysuj. Rozmiary oczywiście bitmapie przyporządkuj.

ufffff jaka ulga :-D

DZIAŁA @~~

dzięki Dryobates [hurra]

no to mogę w spokoju się wyspać B-|

a jutro pomęcze z gifami [diabel]

--
Pozdrawiam...
piechnat

0

a odczytywać kolejno pixele? ich odczyćt (czrno viałego obrazka ) ma być podawany w 1 i 0 a potem na podstawie ty ch 1 i 0 stworzyć jakiśplik, np, textowy... to jest coś w rodzaju szyfrowania...
najpiewr należy zamienić plik textowy na obraz, poźniej odczytać go tym sposobem. zrobić co trzeba i utworzyć pilik

--
Jeśli Coś wydaje Ci się trudne, spróbuj zrobić to na chłopski rozum.

1 użytkowników online, w tym zalogowanych: 0, gości: 1