| Rubrika Php / mysql
Čiernobiele obrázky v PHP
Na firemnej stránke http://www.altamira.sk máme obrázky aktuálnych realizácií čiernobiele. Prevod vstupného obrázku do B&W je realizovaný automaticky. Je na to použitá pomerne jednoduchá funkcia.
function rgbToGrayscale($input,$output,$type) { switch($type) { case 'jpg': $header = 'image/jpeg'; $fce = imagecreatefromjpeg($input); break; case 'gif': $header = 'image/gif'; $fce = imagecreatefromgif($input); break; case 'png': $header = 'image/png'; $fce = imagecreatefrompng($input); break; } list($width, $height) = getimagesize($input); $source = $fce; $bwimage= imagecreate($width, $height); for ($c=0;$c<256;$c++) { $palette[$c] = imagecolorallocate($bwimage,$c,$c,$c); } for ($y=0;$y<$height;$y++) { for ($x=0;$x<$width;$x++) { $rgb = imagecolorat($source,$x,$y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $gs = $this->makeGrayscale($r,$g,$b); imagesetpixel($bwimage,$x,$y,$palette[$gs]); } } switch($type) { case 'jpg': imagejpeg($bwimage,$output); break; case 'gif': imagegif($bwimage,$output); break; case 'png': imagepng($bwimage,$output); break; } }
Princípom funkcie je prechádzanie vstupného obrázku pixel po pixeli, zisťovanie RGB hodnoty daného pixlu a následny prevod do čiernobieleho pomocou tejto funkcie.
function makeGrayscale($r,$g,$b) { return (($r*0.299)+($g*0.587)+($b*0.114)); }
Autorom funkcie je Angela
Bradley.
Zdroj: http://php.about.com/…scale_gd.htm
Tomáš Mašek
naspäť
prispieť do diskusie [5]
Vyhľadávanie
Posledných 5 komentárov
Pridať komentár / čítať diskusiu
-
Šeliga Adam: Funguje to perfektne, ale má to chybičky,...
-
tomas masek: zaklady objektoveho programovania tu urcite tiez raz...
-
Šeliga Adam: Ale keď napíšem: $img -> rgbToGrayscale("images/body-bg.png","images/bw-body-bg.png","png");
tak... -
tomas masek: ano, pouzitie je jednoduche:
$img->rgbToGrayscale($input,$output,$typ);
-
Šeliga Adam: A ako túto funkciu použijem? Napríklad, keď...
Viac z rubriky
Ako ochrániť includované PHP súbory?
Automatické generovanie formulárov z MySQL
Automatický prevod texu na hyperlink
Cachovanie do HTML súboru
Cachovanie s pomocou funkcií serialize/unserialize
Dynamická tvorba URL
Fulltext ako názov stĺpca v tabuľke
Getcwd – Ako ľahko získať absolútnu cestu
Import z Excelu do MySQL databázy
Maximálny timeout vykonávania SQL skriptu
Microtime – rýchlosť načítania stránky
Odstránenie diakritiky v PHP pomocou iconv()
Overovanie a kontrola formulárov v PHP
Parsovanie XML súboru v PHP
PHP a zachytenie nedoručených mailov
PHP funkcia implode
Porovnávanie a dátovy typ DATE
Práca so súbormi pri zapnutom safe_mode
Prihlasovanie uživateľa prostredníctvom $_SESSION
Real-time kontrola e-mailovej adresy AJAX-om
Spracovanie dátového typu ENUM do HTML selectu
Strpos a offset – nájdenie výskytu znaku v reťazci
Tip: Generovanie PDF súborov
Tip: jednoduché šifrovanie a dešifrovanie v PHP
Tip: správne includovanie súborov
Ukladanie jazykových verzií statických textov
Veľmi jednoduchý návod na pekné URI
Vkladanie obrázkov do databázy
Výber záznamov začínajúcich číslom
Vyčistenie viacrozmerného poľa
Vyhľadávanie, pekné URI a diakritika
Vypísanie abecedy v PHP
Využívanie unikátnych kľúčov v MySQL databáze
Zaradenie jednej položky do viacerých kategórií
Zistenie hodnoty ďalšieho ID – autoincrement
Zložené MySQL dotazy – LEFT JOIN
Zvýrazňovanie syntaxe kódu – GeSHi
Pridať komentár



