Qualche tempo fa avevo scovato questo interessante plugin per Wordpress per inserire un avatar a lato dei commenti:
Dan’s Avatar Thingy
Molto interessante, carino ma afflitto da una piccola pecca, se l’immagine era di dimensioni minori rispetto a quelle indicate nella variabile default, veniva ingrandita con un effetto non molto bello da vedere.
Allora ho dato un occhio al sorgente e ho ritoccato un po’.
Ecco le modifiche da fare per ovviare al problema, cerchiamo la funzione function cmd_avatar_profile() seguiamo quindi le istruzioni:
editiamo questa linea
$cmd_avatar_image = imagecreatetruecolor ($def_width, $def_height);
commentandola
//$cmd_avatar_image = imagecreatetruecolor ($def_width, $def_height);
scendiamo di poche righe e nel corpo dello switch troviamo quanto segue:
case 1: // GIF
$image = imagecreatefromgif($_FILES['cmd_avatar_file']['tmp_name']);
imagecopyresampled($cmd_avatar_image, $image, 0, 0, 0, 0, $def_width, $def_height, $width, $height);
$avatar_created = (imagejpeg($cmd_avatar_image, $uploadfile, 100) ? TRUE : FALSE);
imagedestroy($image);
imagedestroy($cmd_avatar_image);
break;
case 2: // JPEG
$image = imagecreatefromjpeg($_FILES['cmd_avatar_file']['tmp_name']);
imagecopyresampled($cmd_avatar_image, $image, 0, 0, 0, 0, $def_width, $def_height, $width, $height);
$avatar_created = (imagejpeg($cmd_avatar_image, $uploadfile, 100) ? TRUE : FALSE);
imagedestroy($image);
imagedestroy($cmd_avatar_image);
break;
case 3: // PNG
$image = imagecreatefrompng($_FILES['cmd_avatar_file']['tmp_name']);
imagecopyresampled($cmd_avatar_image, $image, 0, 0, 0, 0, $def_width, $def_height, $width, $height);
$avatar_created = (imagejpeg($cmd_avatar_image, $uploadfile, 100) ? TRUE : FALSE);
imagedestroy($image);
imagedestroy($cmd_avatar_image);
break;
default:
$avatar_created = FALSE;
break;
sostituiamolo con questo:
case 1: // GIF
$image = imagecreatefromgif($_FILES['cmd_avatar_file']['tmp_name']);
if($width < $def_width) $def_width=$width;
if($height < $def_height) $def_height=$height;
$cmd_avatar_image = imagecreatetruecolor ($def_width, $def_height);
imagecopyresampled($cmd_avatar_image, $image, 0, 0, 0, 0, $def_width, $def_height, $width, $height);
$avatar_created = (imagejpeg($cmd_avatar_image, $uploadfile, 100) ? TRUE : FALSE);
imagedestroy($image);
imagedestroy($cmd_avatar_image);
break;
case 2: // JPEG
$image = imagecreatefromjpeg($_FILES['cmd_avatar_file']['tmp_name']);
if($width < $def_width) $def_width=$width;
if($height < $def_height) $def_height=$height;
$cmd_avatar_image = imagecreatetruecolor ($def_width, $def_height);
imagecopyresampled($cmd_avatar_image, $image, 0, 0, 0, 0, $def_width, $def_height, $width, $height);
$avatar_created = (imagejpeg($cmd_avatar_image, $uploadfile, 100) ? TRUE : FALSE);
imagedestroy($image);
imagedestroy($cmd_avatar_image);
break;
case 3: // PNG
$image = imagecreatefrompng($_FILES['cmd_avatar_file']['tmp_name']);
if($width < $def_width) $def_width=$width;
if($height < $def_height) $def_height=$height;
$cmd_avatar_image = imagecreatetruecolor ($def_width, $def_height);
imagecopyresampled($cmd_avatar_image, $image, 0, 0, 0, 0, $def_width, $def_height, $width, $height);
$avatar_created = (imagejpeg($cmd_avatar_image, $uploadfile, 100) ? TRUE : FALSE);
imagedestroy($image);
imagedestroy($cmd_avatar_image);
break;
default:
$avatar_created = FALSE;
break;
e il gioco è fatto :)