Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Creare dinamicamente delle miniature

    Salve a tutti, mi servirebbe una dritta per realizzare delle miniature dinamicamente con php o con l'aiuto delle librerie GD.

    Vi espongo una versione semplicistica del problema: in una colonna del mio db ho la dst dell'immagine. Ad un certo punto questa viene richiamata da una pagina del mio sito ma non dev'essere visualizzata nelle sue reali dimensioni, bensi deve mostrarsi ridimensionata ad una grandezza x, y. Non dev'essere salvata da nessuna parte la miniatura. Deve solo essere visualizzata.

    Mi servirebbe una cosa più ottimizzata possibile. Come mi dite di procedere?
    Possibilmente non vorrei sgranare l'immagine....

    Grazie
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  2. #2
    Problema di abbastanza semplice risoluzione, per rendere il tutto più sicuro sarebbe l'ideale che ad ogni immagine nel db sia legato un numero univoco, un id tanto per capirci, poi tu dove l'immagine deve apparire metti una cosa simile
    codice:
    [img]thumbnail.php?id=1[/img]
    Nel file thumbnail.php metterai un codice tipo questo
    Codice PHP:
    <?php

    $ID 
    intval($_GET['id']);

    if(
    $ID == 0) die('Immagine non valida');


    header("Content-type: image/jpeg"); // Cambia in base al tipo di file

    // Possono anche essere passati tramite GET
    $max_width 100;
    $max_height 100;
    //*****************************************


    // Connessione al database


    // Esecuzione query
    $query mysql_query("SELECT dst FROM table WHERE id = {$ID} LIMIT 1") or die('Immagine non valida');
    $image mysql_result($query00);
    //*****************************************


    $info getimagesize($image);

    $width $info[0];
    $height $info[1];


    // Calcolo le nuove dimensioni
    if($width $max_width)
    {
        
    $width $max_width;
        
    $height ceil($width $info[1] / $info[0]);
    }

    if(
    $new_height $max_height)
    {
        
    $height $max_height;
        
    $width ceil($height $info[0] / $info[1]);
    }
    //*****************************************

    $thumb imagecreatefromjpeg($image); // Varia per ogni estensione

    $newsize imagecreatetruecolor($width$height);

    imagecopyresampled($newsize$thumb0000$width$heightimagesx($thumb),imagesy($thumb));

    imagejpeg($newsize''100);

    imagedestroy($thumb);

    ?>
    In giro comunque ci sono diverse classi che fanno questa cosa


  3. #3
    Allora io ho fatto come hai detto tu cambiando solo il parametro passato:

    Codice PHP:
    [img]thumb.php?id=<?php echo [/img] />"
    e poi nel file thumb.php ho messo:

    Codice PHP:
    <?php

    $image 
    $_GET['src'];

    header("Content-type: image/jpeg"); // Cambia in base al tipo di file

    // Possono anche essere passati tramite GET
    $max_width 100;
    $max_height 100;
    //*****************************************

    $info getimagesize($image);

    $width $info[0];
    $height $info[1];


    // Calcolo le nuove dimensioni
    if($width $max_width)
    {
        
    $width $max_width;
        
    $height ceil($width $info[1] / $info[0]);
    }

    if(
    $new_height $max_height)
    {
        
    $height $max_height;
        
    $width ceil($height $info[0] / $info[1]);
    }
    //*****************************************

    $thumb imagecreatefromjpeg($image); // Varia per ogni estensione

    $newsize imagecreatetruecolor($width$height);

    imagecopyresampled($newsize$thumb0000$width$heightimagesx($thumb),imagesy($thumb));

    imagejpeg($newsize''100);

    imagedestroy($thumb);

    ?>
    Ma non mi visualizza l'immagine... perchè?
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  4. #4
    intanto $row[image] non è una stringa, quindi non la devi passare coi doppi apici, e poi se la passi tramite $_GET['id'] perchè speri di recuperarla con $_GET['src']

    ?!?

  5. #5
    $row[image] è una stringa presa dal mio DB. Infatti se faccio echo "$row[image]"; mi da /.../image.jpg

    Riguardo il $_GET['src'], l'ho corretto... (era un errore di copia/incolla) ma comunque non va.... :S
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  6. #6
    $row[image] casomai è un array, si fa echo $row['image'], senza doppi apici, comunque assicurati che il path dell'immagine sia corretto partendo dal file thumb.php eventualemente inserisci nel db un path che parta direttamente dalla document_root del server,
    prova anche a commentare la riga relativa al content-type ed abilita la visualizzazione degli errori per vedere dove sta il problema

  7. #7
    Uhm..... $row[image] è una stringa Lo so che $row[...] è un array, ma in questo caso è una stringa ... non confondiamo

    Riguardo i doppi apici vanno comunque bene in quanto quando visualizzo la pagina e poi visualizzo il codice html vede benissimo la path di dove si trova l'immagine.

    Quindi il problema non è da cercare qui, purtroppo...

    Il punto è che non da nessun errore... quindi non riesco a capire il problema...
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  8. #8
    Se non da errore è perchè probabilmente la visualizzazione degli errori/warning è disabilitata

    Ps. Studiatelo cos'è una stringa http://php.html.it/articoli/leggi/91...ringhe-in-php/
    se tu scrivi $var = 2; non è che puoi dire che $var è un numero, resta una variabile, ha un valore numerico, ma sempre una variabile resta, se poi funziona bene, ma il metodo corretto non è quello, e stai certo che il modo per garantirti piena compatibilità tra le varie versioni di php (future anche) è scrivere il codice come va scritto e non limitarti a quello che funziona


  9. #9
    Vabbeh dai.... ti lascio stare perchè so bene che in ogni forum ci dev'essere il prof. di turno altrimenti non è forum
    Preciso solo il fatto che per me una variabile che contiene una stringa o un numero, per semplificazione per me è una stringa o un numero. Non siamo cosi formali anche sulle stupidaggini. Il problema non è quello per cui è inutile che ti accanisci su quella riga

    La visualizzazione dei warning è attiva.

    P.S. Non ho capito cosa c'entrano le ultime 2 righe e mezzo del tuo discorso... comunque non fa niente...

    Ciao :master:
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  10. #10
    Le funzioni di GD se non vanno restituiscono un warning, prova in un file stand-alone ad inserire
    getimagesize('ciao.jpg') e vedi se ti da warning, per il resto vedi un pò te, il codice che ti ho postato funziona

    http://www.area82.it/test/prova.jpg (immagine originale)
    http://www.area82.it/test/index.php?src=prova.jpg (rimpicciolita)
    http://www.area82.it/test/index.php?src=prova2.jpg (warning)

    so bene che in ogni forum ci dev'essere il prof. di turno altrimenti non è forum
    Tu hai chiesto aiuto



    EDIT: per ricevere il warning devi togliere l'header come detto prima, oppure lo sposti prima di imagejpeg()

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.