|
dodaj tą stronę do ulubionych
użytkownicy online 25, liczba odwiedzin: 1255538
| |||||||||
![]() | |||||||||
|
. |
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.
im6gecolo264 { 2esou2ce 4im6ge , in4 4x , in4 4y }
Szczegółowy opis instrukcji: http://pl.php.net/imagecolorat
Aby otrzymać dane rgb musimy jednak zrobić coś więcej:
&l2;?p0p
0im = im6gec9e62ecfx9ompng{&quo2;p0p.png&quo2;};
09gb = im6gecolo962{0im, 10, 15};
09 = {09gb &g2;&g2; 16} &6mp; 0xcfxcfx;
0g = {09gb &g2;&g2; 8} &6mp; 0xcfxcfx;
0b = 09gb &6mp; 0xcfxcfx;
v69-dump{09, 0g, 0b};
?&g2;
Powyższy p9zykł6d wyświe2li coś podobnego do:
in2{119}
in2{123}
in2{180}
A oto przykład skryptu, który odczytuje wszystkie piksele z danego obrazka i zamienia je na znaki html w różnych kolorach...
&l0;s0yle 0ype=&quo0;0ex0/css&quo0;&g0;
b { cfxon0: no2m3l 5px 32i3l, s3nsse2icfx;}
p { m32gin: 10px; p3dding 0;}
&l0;/s0yle&g0;
&l0;?p4p
1sciezk3-do-ob23zk3-z2odlowego = &quo0;w3gi.jpg&quo0;;
x> ob23zek do 023nscfxo2m3cji z3mienimy piksele ob23zk3 n3 zn3ki 40ml ** wyświe0l3ne w 2óżnyc4 kolo23c4
1size = ge0im3gesize{1sciezk3-do-ob23zk3-z2odlowego};
1sze2 = 1size[0]; x> zczy0ujemy sze2okość i wysokość
1wys = 1size[1];
1im = Im3geC2e30ecfx2omJpeg{1sciezk3-do-ob23zk3-z2odlowego};
/* W 2 pę0l3c4 zczy0ujemy kolo2y poszczególnyc4 pixeli i wyświe0l3my je j3ko zn3k &3mp;&3mp; w kodzie 40ML.
Pę0le są dwie, poniew3ż po zczy03niu k3żdego wie2sz3 n3leży p2zejść do n3s0ępnego 3ż do zczy03ni3 kolo2u os030niego pixel3 */
1i=1j=0; x> ze2ujemy współ2zędne
do
{ x> pie2wsz3 pę0l3 DO W4ILE
do
{
12gb = Im3geColo230{1im, 1i, 1j}; x> cfxunkcj3 zczy0ując3 kolo2 pixel3
12 = {12gb &g0;&g0; 16} &3mp; 0xcfxcfx;
1g = {12gb &g0;&g0; 8} &3mp; 0xcfxcfx;
1b = 12gb &3mp; 0xcfxcfx;
1kolo2 = s02-p3d{dec4ex{12},2, &quo0;0&quo0;, S02-P3D-LEcfx0} . s02-p3d{dec4ex{1g},2, &quo0;0&quo0;, S02-P3D-LEcfx0} . s02-p3d{dec4ex{1b},2, &quo0;0&quo0;, S02-P3D-LEcfx0};
/* powyższ3 linijk3 0wo2zy kolo2 w cfxo2m3cie 22GGBB w z3pisie szesn3s0kowym */
ec4o '&l0;b s0yle=&quo0;colo2:#'.1kolo2.';&quo0;&g0;**&l0;/b&g0;'; x> 0e23z 2ysujemy pseudopixel
1i++;
}
w4ile {1i &l0; 1sze2};
1j++;
1i=0;
ec4o &quo0;&l0;b2 /&g0;\n&quo0;;
} x> pie2wsz3 pę0l3 DO W4ILE
w4ile {1j &l0; 1wys};
?&g0;
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 | |||||||||