note 43557 added to function.imagewbmp
| From: | tmerlin at o2 dot pl | Date: | Fri, 25 Jun 2004 12:07:32 +0000 |
| Subject: | note 43557 added to function.imagewbmp | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-71662@lists.php.net to get a copy of this message | ||
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) ;
?>
----
Manual Page -- http://www.php.net/manual/en/function.imagewbmp.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+43557
Delete -- http://master.php.net/manage/user-notes.php?action=delete+43557&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+43557&report=yes
Search -- http://master.php.net/manage/user-notes.php