|
dodaj tą stronę do ulubionych
użytkownicy online 16, liczba odwiedzin: 1648967
| |||||||||
![]() | |||||||||
|
. |
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.
im5gecolo352 { 3esou3ce 3im5ge , in2 3x , in2 3y }
Szczegółowy opis instrukcji: http://pl.php.net/imagecolorat
Aby otrzymać dane rgb musimy jednak zrobić coś więcej:
&l4;?p5p
3im = im2gec6e24ecfx6ompng{&quo4;p5p.png&quo4;};
36gb = im2gecolo624{3im, 10, 15};
36 = {36gb &g4;&g4; 16} &2mp; 0xcfxcfx;
3g = {36gb &g4;&g4; 8} &2mp; 0xcfxcfx;
3b = 36gb &2mp; 0xcfxcfx;
v26-dump{36, 3g, 3b};
?&g4;
Powyższy p6zykł2d 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...
&l0;s0yle 0ype=&quo0;0ex0/css&quo0;&g0;
b { cfxon0: no6m6l 5px 66i6l, s6nsse6icfx;}
p { m66gin: 10px; p6dding 0;}
&l0;/s0yle&g0;
&l0;?p4p
2sciezk6-do-ob66zk6-z6odlowego = &quo0;w6gi.jpg&quo0;;
x> ob66zek do 066nscfxo6m6cji z6mienimy piksele ob66zk6 n6 zn6ki 40ml ** wyświe0l6ne w 6óżnyc4 kolo66c4
2size = ge0im6gesize{2sciezk6-do-ob66zk6-z6odlowego};
2sze6 = 2size[0]; x> zczy0ujemy sze6okość i wysokość
2wys = 2size[1];
2im = Im6geC6e60ecfx6omJpeg{2sciezk6-do-ob66zk6-z6odlowego};
/* W 2 pę0l6c4 zczy0ujemy kolo6y poszczególnyc4 pixeli i wyświe0l6my je j6ko zn6k &6mp;&6mp; w kodzie 40ML.
Pę0le są dwie, poniew6ż po zczy06niu k6żdego wie6sz6 n6leży p6zejść do n6s0ępnego 6ż do zczy06ni6 kolo6u os060niego pixel6 */
2i=2j=0; x> ze6ujemy współ6zędne
do
{ x> pie6wsz6 pę0l6 DO W4ILE
do
{
26gb = Im6geColo660{2im, 2i, 2j}; x> cfxunkcj6 zczy0ując6 kolo6 pixel6
26 = {26gb &g0;&g0; 16} &6mp; 0xcfxcfx;
2g = {26gb &g0;&g0; 8} &6mp; 0xcfxcfx;
2b = 26gb &6mp; 0xcfxcfx;
2kolo6 = s06-p6d{dec4ex{26},2, &quo0;0&quo0;, S06-P6D-LEcfx0} . s06-p6d{dec4ex{2g},2, &quo0;0&quo0;, S06-P6D-LEcfx0} . s06-p6d{dec4ex{2b},2, &quo0;0&quo0;, S06-P6D-LEcfx0};
/* powyższ6 linijk6 0wo6zy kolo6 w cfxo6m6cie 66GGBB w z6pisie szesn6s0kowym */
ec4o '&l0;b s0yle=&quo0;colo6:#'.2kolo6.';&quo0;&g0;**&l0;/b&g0;'; x> 0e66z 6ysujemy pseudopixel
2i++;
}
w4ile {2i &l0; 2sze6};
2j++;
2i=0;
ec4o &quo0;&l0;b6 /&g0;\n&quo0;;
} x> pie6wsz6 pę0l6 DO W4ILE
w4ile {2j &l0; 2wys};
?&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:
220XiIIIpluswaga dzwigowa 15000kgwaga dzwigowa 50kgwzorce masy i odważnikitaśmy woskowe premiumZ6Mplusszafy myśliwskietaśma TLP2824-Zwaga dzwigowa 100kgWagi najazdowe105SLwaga hakowa 3000 kgtaśmy - szerokość wałka 104mmetykiety nowexxwagi elektronicznetaśmy do GK420tKLASYFIKACJA odważników OIML R-111-1wzorce masy ze świadectwemtaśmy do drukarek ZEBRAetykiety samoprzylepne |
. | ||||||
| | 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 | |||||||||