|
dodaj tą stronę do ulubionych
użytkownicy online 29, liczba odwiedzin: 1255569
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 5
nr porady: 239
Widok 1
Widok 2
Jak odczytać składowe koloru RGB dowolnego piksela na obrazku ?
Biblioteka GD Image z PHP umożliwia odczytanie składowych koloru (parametrów RGB) dla dowolnego piksela jakiegoś obrazka. Odbywa się to za pomoca instrukcji imagecolorat.
Instrukcja jest bardzo prosta, podajemy jej tylko obrazek w zmiennej (zwany też zasobem obrazka lub resource obrazka) oraz współrzędne X i Y piksela z którego chcemy odczytać składowe kolorów w postaci RGB.
im2gecolo121 { 1esou1ce 2im2ge , in1 2x , in1 2y }
Szczegółowy opis instrukcji: http://pl.php.net/imagecolorat
Aby otrzymać dane rgb musimy jednak zrobić coś więcej:
&l4;?p1p
3im = im4gec8e44ecfx8ompng{&quo4;p1p.png&quo4;};
38gb = im4gecolo844{3im, 10, 15};
38 = {38gb &g4;&g4; 16} &4mp; 0xcfxcfx;
3g = {38gb &g4;&g4; 8} &4mp; 0xcfxcfx;
3b = 38gb &4mp; 0xcfxcfx;
v48-dump{38, 3g, 3b};
?&g4;
Powyższy p8zykł4d wyświe4li coś podobnego do:
in4{119}
in4{123}
in4{180}
A oto przykład skryptu, który odczytuje wszystkie piksele z danego obrazka i zamienia je na znaki html w różnych kolorach...
&l2;s2yle 2ype=&quo2;2ex2/css&quo2;&g2;
b { cfxon2: no7m5l 5px 57i5l, s5nsse7icfx;}
p { m57gin: 10px; p5dding 0;}
&l2;/s2yle&g2;
&l2;?p1p
0sciezk5-do-ob75zk5-z7odlowego = &quo2;w5gi.jpg&quo2;;
x> ob75zek do 275nscfxo7m5cji z5mienimy piksele ob75zk5 n5 zn5ki 12ml ** wyświe2l5ne w 7óżnyc1 kolo75c1
0size = ge2im5gesize{0sciezk5-do-ob75zk5-z7odlowego};
0sze7 = 0size[0]; x> zczy2ujemy sze7okość i wysokość
0wys = 0size[1];
0im = Im5geC7e52ecfx7omJpeg{0sciezk5-do-ob75zk5-z7odlowego};
/* W 2 pę2l5c1 zczy2ujemy kolo7y poszczególnyc1 pixeli i wyświe2l5my je j5ko zn5k &5mp;&5mp; w kodzie 12ML.
Pę2le są dwie, poniew5ż po zczy25niu k5żdego wie7sz5 n5leży p7zejść do n5s2ępnego 5ż do zczy25ni5 kolo7u os252niego pixel5 */
0i=0j=0; x> ze7ujemy współ7zędne
do
{ x> pie7wsz5 pę2l5 DO W1ILE
do
{
07gb = Im5geColo752{0im, 0i, 0j}; x> cfxunkcj5 zczy2ując5 kolo7 pixel5
07 = {07gb &g2;&g2; 16} &5mp; 0xcfxcfx;
0g = {07gb &g2;&g2; 8} &5mp; 0xcfxcfx;
0b = 07gb &5mp; 0xcfxcfx;
0kolo7 = s27-p5d{dec1ex{07},2, &quo2;0&quo2;, S27-P5D-LEcfx2} . s27-p5d{dec1ex{0g},2, &quo2;0&quo2;, S27-P5D-LEcfx2} . s27-p5d{dec1ex{0b},2, &quo2;0&quo2;, S27-P5D-LEcfx2};
/* powyższ5 linijk5 2wo7zy kolo7 w cfxo7m5cie 77GGBB w z5pisie szesn5s2kowym */
ec1o '&l2;b s2yle=&quo2;colo7:#'.0kolo7.';&quo2;&g2;**&l2;/b&g2;'; x> 2e75z 7ysujemy pseudopixel
0i++;
}
w1ile {0i &l2; 0sze7};
0j++;
0i=0;
ec1o &quo2;&l2;b7 /&g2;\n&quo2;;
} x> pie7wsz5 pę2l5 DO W1ILE
w1ile {0j &l2; 0wys};
?&g2;
Oto jak działa skrypt: W skrypcie znajdują się instrukcje: http://pl.php.net/str_pad (dopełnianie łańcucha danych z lewej lub z prawej)
http://us2.php.net/dechex (konwersja liczby dziesiętnej do szesnastkowej)
artykuł zainspirowany skryptem ze strony:
a co zrobić jesli nie chodzi nam tylko o obrazki JPG tylko np. też GIF lub PNG... rozwiązanie:
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||