Salve a tutti il mio problema riguarda il ridimensionamento di immagini che vengono caricate su una messaggeria che aimè vorrei cercare di gestire.
Sto cercando di sfruttare le librerie GD2 che da quanto ho letto sono attive sui domini aruba.
Quindi nella cartella del mio spazio denominata "include" ho caricato questa pagina contenente il seguente codice:
<?Php
function GDVersion(){
if( !in_array('gd', get_loaded_extensions()) ) return 0;
elseif( isGD2supported() ) return 2;
else return 1;
}
function isGD2supported(){
global $GD2;
if( isset($GD2) AND $GD2 ) return $GD2;
else{
$php_ver_arr = explode('.', phpversion());
$php_ver = intval($php_ver_arr[0])*100+intval($php_ver_arr[1]);
if( $php_ver < 402 ){ // PHP <= 4.1.x
$GD2 = in_array('imagegd2',get_extension_funcs("gd"));
}
elseif( $php_ver < 403 ){ // PHP = 4.2.x
$im = @imagecreatetruecolor(10, 10);
if( $im ){
$GD2 = 1;
@imagedestroy($im);
}
else $GD2 = 0;
}
else{ // PHP = 4.3.x
$GD2 = function_exists('imagecreatetruecolor');
}
}
return $GD2;
}
function IsFormatSupported($format){
if( ($format == 'gif') AND (imagetypes() & IMG_GIF) )return true;
elseif( ($format == 'jpeg') AND (imagetypes() & IMG_JPG) )return true;
elseif( ($format == 'png') AND (imagetypes() & IMG_PNG) )return true;
else return false;
}
function ApplicaBordo(&$imres){
$h = imagesy($imres)-1;
$w = imagesx($imres)-1;
$white = imagecolorallocate($imres, 255, 255, 255);
$black = imagecolorallocate($imres, 0, 0, 0);
imagerectangle($imres, 0, 0, $w, $h, $black); // Bordo composto da una linea esterna nera
imagerectangle($imres, 1, 1, $w-1, $h-1, $white); // e da una linea interna bianca
}
function imagemyrectangle(&$imgres, $x1, $y1, $x2, $y2, $col){
imageline($imgres, $x1, $y1, $x2-2, $y1, $col ); //top
imageline($imgres, $x1+1, $y2-1, $x2, $y2-1, $col ); //bottom
imageline($imgres, $x2-1, $y1, $x2-1, $y2-2, $col ); //right
imageline($imgres, $x1, $y1+1, $x1, $y2, $col ); //left
}
//Watermark : Anche l'applicazione di un watermark, cioè di un'immagine salvata sopra all'originale per impedirne un utilizzo al di fuori dei termini di licenza è un'operazione abbastanza semplice con le librerie GD.
function AddWaterMark(&$imgres, &$imgWM){
imageCopyMerge($imgres, $imgWM, 5, 5, 0, 0, imageSX($imgWM), imageSY($imgWM), 50); }
function thumb($src,$dest,$thumb_width){
//Inizio il resize
$fullsize = getimagesize($src);
if( $fullsize[2] == 2 ){$im = @imagecreatefromjpeg($src);}
elseif( $fullsize[2] == 1 ){$im = @imagecreatefromgif($src);}
elseif( $fullsize[2] == 3 ){$im = @imagecreatefrompng($src);}
$fullsize_height=$fullsize[1];
$fullsize_width=$fullsize[0];
$thumb_height=floor($fullsize_height/($fullsize_width/$thumb_width));
if( (GDVersion() == 2) AND ($fullsize[2] != 1) ){
$thumb = imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresampled($thumb, $im, 0, 0, 0, 0, $thumb_width, $thumb_height, $fullsize[0], $fullsize[1]);
}else{
$thumb = imagecreate($thumb_width,$thumb_height);
imagecopyresized($thumb, $im, 0, 0, 0, 0,$thumb_width, $thumb_height, $fullsize[0], $fullsize[1]);
}
imagejpeg($thumb, $dest, 50);
imagedestroy($im);
imagedestroy($thumb);
}
// Recupero delle dimensioni dell'immagine
function dimimage($src){
$fullsize = getimagesize($src);
if( $fullsize[2] == 2 ){$im = @imagecreatefromjpeg($src);}
elseif( $fullsize[2] == 1 ){$im = @imagecreatefromgif($src);}
elseif( $fullsize[2] == 3 ){$im = @imagecreatefrompng($src);}
$fullsize_height=$fullsize[1];
$fullsize_width=$fullsize[0];
imagedestroy($im);
return array($fullsize_width,$fullsize_height);
}
?>
A questo punto devo integrare il codice php che richiami il ridimensionamento, ma ho difficolta a capire quale funzione richiamare.
Prima di addentrarmi in questa cosa le immagini le richiamavo semplicemente attraverso il comando:
<? if (($row["foto"] != "") AND file_exists("../public/".$row["foto"])){ ?>
[img]../public/<? echo $row[[/img]" width="90" height="100" alt="Nick: <? echo $row["username"]; ?>" border="0">
Ora una volta utilizzato
include_once("include/gd.php");
nella pagina che deve visualizzare le foto degli utenti connessi
dove $row mi estrapola le immagini degli iscritti contenute nella cartella pubblic come fare per ottenere le stesse immagini ridimensionate?