Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [GD] Problema con il ridimensionamento immagini

    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?

  2. #2
    Mi rendo conto che forse non sono stato chiaro nell'esposizione del mio problema.
    Riformulo la domanda in maniera piu sintetica.
    Avendo incluso il file gd.php nella pagina che richiama le foto da una cartella specifica del server(denominata pubblic) come caricare le immagini ridimensionate che originariamente caricavo con la funzione $row estrapolandole dalla cartella pubblic?

  3. #3
    Beh ringrazio cmq i creatori di questo forum ho letto qualche pillola a riguardo ma non sono riuscito ancora a trovare una soluzione se ci riesco sicuramente scriverò la soluzione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.