note 43557 deleted from function.imagewbmp by victor
| From: | victor@php.net | Date: | Fri, 25 Jun 2004 12:46:03 +0000 |
| Subject: | note 43557 deleted from function.imagewbmp by victor | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-71665@lists.php.net to get a copy of this message | ||
Note Submitter: tmerlin@o2.pl
----
Easy convert jpeg(16bit color) => jpeg(2 color)
<?
// otwieranie obrazka
$img = imagecreatefromjpeg($plik) ;
// pobieranie rozmiaru obrazka
$szerokosc_img = ImageSX($img) ;
$wysokosc_img = ImageSY($img) ;
// pobranie do tablicy indexu kolorow z obrazka
$tablica = array() ;
$a = 0 ;
for($i=0; $i<$wysokosc_img; $i++) {
for($j=0;$j<$szerokosc_img; $j++) {
$tablica[$a] = imagecolorat($img, $j, $i) ;
$a++ ;
}
}
sort($tablica) ;
// usuniecie powtarzajacych sie elementow
$tablica = array_unique($tablica) ;
// wyznaczenie granicy kolorow
$granica = $tablica[(count($tablica)/2)] ; ;
if($granica == ""||$granica == 0) $granica = 14000000 ;
// konwersja obrazka do 2 kolorow
$obrazek = "" ;
for($i=0; $i<$wysokosc_img; $i++) {
for($j=0;$j<$szerokosc_img; $j++) {
$wartosc = ImageColorAt($img, $j, $i);
if($wartosc <$granica) {
$obrazek .= "1" ;
} else {
$obrazek .= "0" ;
}
}
}
// zmienna obrazek zawiera kod obrazka w postaci binarnej ..
header("Content-Type: image/jpeg");
$obraz = ImageCreate($szerokosc, $wysokosc) ;
$kolor_tla = ImageColorAllocate($obraz, 255, 255, 255) ;
$kolor = ImageColorAllocate($obraz, 0, 0, 0) ; // black
ImageFill($obraz, 1, 1, $kolor_tla) ;
for($i=0;$i<($wysokosc+1);$i++) {
for($j=0; $j<($szerokosc+1); $j++) {
$miejsce = ($i*$szerokosc)+$j ;
$punkt = substr($obrazek,$miejsce,1) ;
if($punkt == "1") {
imagesetpixel($obraz, $j, $i, $kolor) ;
}
}
}
ImageJPEG($obraz) ;
ImageDestroy($obraz) ;
?>