OPIS TWORZENIA MINIATUREK UPLOADOWANYCH PLIKOW <?php $TypyObrazkow[] = 'image/x-png'; $TypyObrazkow[] = 'image/pjpeg'; $TypyObrazkow[] = 'image/gif'; $MINI_SZER = 180; $MINI_WYS = 120; $rozmiar = GetImageSize($Obrazek); $Szerokosc = $rozmiar[0]; $Wysokosc = $rozmiar[1]; switch ($Obrazek_type) { case $TypyObrazkow[0] : $im = ImageCreateFromPNG($Obrazek); break; case $TypyObrazkow[1] : $im = ImageCreateFromJPEG($Obrazek); break; case $TypyObrazkow[2] : $im = @ImageCreateFromGIF($Obrazek); } // END of switch ($Obrazek_type) if ($im) { if ($Szerokosc > $MINI_SZER) $ProcentS = $MINI_SZER/$Szerokosc; else $ProcentS = 1.0; if ($Wysokosc > $MINI_WYS) $ProcentW = $MINI_WYS/$Wysokosc; else $ProcentW = 1.0; $Procent = ($ProcentS < $ProcentW) ? $ProcentS : $ProcentW; if ($Procent) // jesli wogole potrzebne jest skalowanie { $Szerokosc *= $Procent; $Wysokosc *= $Procent; } // END of if ($Procent) settype($Szerokosc,'integer'); settype($Wysokosc,'integer'); $miniaturka = ImageCreate($Szerokosc, $Wysokosc); ImageCopyResized($miniaturka, $im, 0, 0, 0, 0, $Szerokosc, $Wysokosc, $rozmiar[0], $rozmiar[1]); } // END of if ($im) $TEMP = tempnam(NULL, substr(md5(microtime()),0,3)); switch ($Obrazek_type) { case $TypyObrazkow[0] : ImagePNG($miniaturka,$TEMP); break; case $TypyObrazkow[1] : ImageJPEG($miniaturka,$TEMP); break; case $TypyObrazkow[2] : @ImageGIF($miniaturka,$TEMP); } // END of switch ($Obrazek_type) $file = fopen($TEMP,'rb'); flock($file,1); $ZawartoscMiniaturki = fread($file,filesize($TEMP)); flock($file,3); fclose($file); unlink($TEMP); $file = fopen($Obrazek,'rb'); flock($file,1); $ZawartoscOryginalu = fread($file,filesize($Obrazek)); flock($file,3); fclose($file); ?> Adnotacje: $MINI_SZER I $MINI_WYS to maksymalna szerokosc i wysokosc miniaturki (potrzebne by zachowac wszystko w odpowiedniej skali!) $Obrazek to sciezka na serwerze do uploadowanego pliku za pomoca formularza <INPUT TYPE="file" ...> $rozmiar[0] i $rozmiar[1] to odpowiednio szerokosc i wysokosc oryginalnego obrazka $Szerokosc i $Wysokosc odpowiadaja rozmiara miniaturki $ZawartoscMiniaturki i $ZawartoscOryginalu to juz sie chyba kazdy domysla ;-) (nalezy jeszcze potraktowac te zmienne funkcja addslashes() przed wstawieniem do bazy czy gdzie tam chcecie:) Dziekuje za uwage:) Marcin Zduniak e-mail: zdunko@irc.pl URL: http://tests.xcom.pl/zdunko
VW-SERWIS