ciao a tutti...
ho trovato e adattato a mio piacere una funzione per creare le miniature delle immagini... e ho un problema a settare lo sfondo bianco.
codice:
function image_createThumb($src, $dest, $maxWidth, $maxHeight, $quality=100) {
//var_dump(gd_info());
if(file_exists($src) && isset($dest)) {
// prendo le info dell'immagine
list($imgW, $imgH, $imgT) = getImageSize($src);
// se le dimensioni dell'immagine non superano i limiti la copio
if($imgW <= $maxWidth && $imgH <= $maxHeight) {
@copy($src, $dest);
}
else {
// stabilisco le dimensioni della nuova immagine
$srcRatio = $imgW / $imgH;
$destRatio = $maxWidth / $maxHeight;
if($destRatio > $srcRatio) {
$destH = $maxHeight;
$destW = $maxHeight * $srcRatio;
}
else {
$destW = $maxWidth;
$destH = $maxWidth / $srcRatio;
}
// creo una nuova immagine e do l'antialiasing
$destImage = imageCreateTrueColor($destW, $destH);
@imageAntiAlias($destImage, true);
// le info della destinazione
$destInfo = pathInfo($dest);
if ($destInfo["extension"] == "gif") {
$bg = imagecolorallocate($destImage, 255, 255, 255);
//$dest = substr_replace($dest, 'jpg', -3);
}
switch ($imgT) {
case 1: //GIF
$srcImage = imageCreateFromGif($src);
break;
case 2: //JPEG
$srcImage = imageCreateFromJpeg($src);
break;
case 3: //PNG
$srcImage = imageCreateFromPng($src);
break;
default:
return false;
break;
}
imageCopyResampled($destImage, $srcImage, 0, 0, 0, 0, $destW, $destH, $imgW, $imgH);
// generating image
switch ($imgT) {
case 1:
case 2:
imageJpeg($destImage,$dest,$quality);
break;
case 3:
imagePng($destImage,$dest);
break;
}
//system("$convert -quality 80 -antialias -sample $new_width" . "x" . "$new_height -bordercolor black -border $border \"$source\" \"$dest\" 2>&1");
return true;
}
}
else {
return false;
}
}
la parte in grassetto è la parte incriminata...
praticamente voglio rimpicciolire una gif che supera maxWidth e maxHeight, e anche se non sarà animata e che lo sfondo trasparente non sarà + trasparente, vorrei che lo sfondo diventasse bianco... e invece di default è nero...
come devo modificare la funzione per fare in modo che lo sfondo sia bianco?
grazie infinite