Visualizzazione dei risultati da 1 a 9 su 9

Discussione: GD e ridimensionamento

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    598

    GD e ridimensionamento

    salve, sto cercando di ridimensione al volo delle img prima di visualizzarle. Utilizzo le librerie gd ecco il codice:

    list($width, $height, $type, $attr) = getimagesize($percorso_small);
    $thumb = imagecreatetruecolor(640, 480);
    $source = imagecreatefromjpeg("../public/immagini/small/".$coda."/file.jpg"));
    $black=imageColorAllocate($source,0,0,0);
    echo "[img]".$source."[/img] ";

    Purtroppo non mi viene visualizzato nulla eccetto la X, vedendo il codice che genera lo scirpt ho:

    [img]Resource id #8[/img]

    dove sbaglio ? Non voglio salvare le modifiche!!!

    Grazie
    Soffrire sempre mollare mai

  2. #2
    Crea uno script a se stante con il codice che genera l'immagine ed invia i corretti header (es. contet-type). Poi nell'attributo SRC del tag IMG inserisci il path dello script.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    598
    scusa ho iniziato da poco potresti essere + kiaro? Grazie
    Soffrire sempre mollare mai

  4. #4

    Re: GD e ridimensionamento

    Codice PHP:
    <?php
    header
    ('Content-type: image/jpeg');

    /* bla bla il resto dello script, basta che non abbia output */

    list($width$height) = getimagesize($percorso_small); 
    $thumb imagecreatetruecolor(640480); 
    $source imagecreatefromjpeg("../public/immagini/small/".$coda."/file.jpg"));
    imagecopyresampled($thumb$source0000640480$width$height);

    imagejpeg($thumb);
    ?>
    ammesso che i percorsi siano giusti (perche' non usi sempre $percorso_small?)

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    598
    ok proverò, nella pagina c sn 4 foto da ridimensionare nn crea problemi vero?
    Soffrire sempre mollare mai

  6. #6
    Con uno script come quello puoi processare una sola foto. Se ne vuoi piu' d'una ne fai una versione dinamica che possa processare una foto in base all'input (o se preferisci tante versioni quante sono le foto), e la richiami da un'altra pagina in un tag img mettendo il percorso dello script come src dell'immagine.

    Considera quello script come se fosse una "vera" jpg.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    598
    Ho provato ma mi stampa l'indirizzo della pagina:

    http://www.miosito.it/visualizza.php?id=6627-1005341111
    Soffrire sempre mollare mai

  8. #8
    Controlla i percorsi delle immagini che passi a getimagesize() e imagecreatefromjpeg()

  9. #9
    Utente di HTML.it L'avatar di dany0
    Registrato dal
    Feb 2003
    Messaggi
    422
    io usavo il tuo metodo, poi il gestore si è lamentato dell'uso eccessivo del processore (causa GD)
    quindi ora uso questa funzione che mi crea una thmub con il nome dell'immagine più _mini, e posso decidere se ritagliarla qualora si verticale e le voglia tutte orizzontali o meno

    spero ti possa essere utile

    function ritaglio_mini($file,$percorso,$tipo)
    {
    $imgtemp=str_replace(".jpg","_temp.jpg", $file);
    $imgmini=str_replace(".jpg","_mini.jpg", $file);
    $imgmini=$percorso.$imgmini;
    $file=$percorso.$file;

    //prendo dati dell'immagine
    $im_size = GetImageSize($file);
    $imageWidth = $im_size[0];
    $imageHeight = $im_size[1];

    //se non voglio ridurre la thumb
    if($tipo==1){
    $width = 120;
    $height = 90;
    }
    //se invece non la voglio ridurre calcolo la relativa altezza
    else{
    $width = 120;
    $height = ($width/$imageWidth)*$imageHeight;
    }

    // creo la foto con le giuste dimensioni
    $im = imageCreateTrueColor($width,$height);
    $im2 = ImageCreateFromJPEG($file);

    if (function_exists('ImageCopyResampled')) {
    ImageCopyResampled($im,$im2, 0, 0, 0, 0, $width, $height, $imageWidth, $imageHeight);
    }
    else {
    ImageCopyResized($im,$im2, 0, 0, 0, 0, $width, $height, $imageWidth, $imageHeight);
    }
    Imagejpeg($im, $imgtemp, 100); //100 è la qualità (da 1 a 100)

    ImageDestroy($im);
    ImageDestroy($im2);

    chmod("$imgtemp", 0777);

    rename("$imgtemp", "$imgmini");

    }

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.