php - tworzenie miniaturek obrazkow.txt

(2 KB) Pobierz
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
Zgłoś jeśli naruszono regulamin