Raga, ho trovato una funzione che fa al caso mio. L'ho quindi adattata alle mie esigenze, ma ho un piccolo problema, non so come dare un nome dinamico al nuovo file creato. Sto ancora imparando ad utilizzare le funzioni, so che è sicuramente qualcosa di semplicissimo, ma non riesco:
Codice PHP:
function resizeImage( $file, $width = 0, $height = 0, $proportional = false, $output = 'file') {
$info = getimagesize($file); $image = '';
$final_width = 0; $final_height = 0;
list($width_old, $height_old) = $info;
if ($proportional) {
if ($width == 0) $factor = $height/$height_old;
elseif ($height == 0) $factor = $width/$width_old;
else $factor = min ( $width / $width_old, $height / $height_old);
$final_width = round ($width_old * $factor);
$final_height = round ($height_old * $factor); }
else { if (($width_old == 320) && ($height_old == 50)){
$final_width = 320;
$final_height = 50; }
elseif(($width_old == 640) && ($height_old == 100)){
$final_width = 320;
$final_height = 50; }
}
switch ( $info[2] ) {
case IMAGETYPE_GIF: $image = imagecreatefromgif($file); break;
case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($file); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($file); break;
default: return false; }
$image_resized = imagecreatetruecolor( $final_width, $final_height );
if ( ($info[2] == IMAGETYPE_GIF) || ($info[2] == IMAGETYPE_PNG) ) {
$trnprt_indx = imagecolortransparent($image);
if ($trnprt_indx >= 0) {
$trnprt_color = imagecolorsforindex($image, $trnprt_indx);
$trnprt_indx = imagecolorallocate($image_resized, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
imagefill($image_resized, 0, 0, $trnprt_indx);
imagecolortransparent($image_resized, $trnprt_indx); }
elseif ($info[2] == IMAGETYPE_PNG) {
imagealphablending($image_resized, false);
$color = imagecolorallocatealpha($image_resized, 0, 0, 0, 127);
imagefill($image_resized, 0, 0, $color);
imagesavealpha($image_resized, true);
}
}
imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $final_width, $final_height, $width_old, $height_old);
switch ( strtolower($output) ) {
case 'browser': $mime = image_type_to_mime_type($info[2]);
header("Content-type: $mime");
$output = NULL; break;
case 'file':
$output = $file;
break;
case 'return':
return $image_resized; break;
default: break; }
switch ( $info[2] ) {
case IMAGETYPE_GIF: imagegif($image_resized, $output); break;
case IMAGETYPE_JPEG: imagejpeg($image_resized, $output); break;
case IMAGETYPE_PNG: imagepng($image_resized, $output); break;
default: return false; }
return true;}
$test = $_FILES["image_upload_box"]["tmp_name"];
resizeImage($test, "320", "50", false, "image_files/prova.gif");
echo '<img src="image_files/prova.gif">';
La parte che mi interessa è questa:
resizeImage($test, "320", "50", false, "image_files/prova.gif");
come faccio a chiamare la nuova immagine con qualcosa tipo: "images/".rand(0,100).$_FILES["image_upload_box"]["name"];
Spero possiate aiutarmi!