Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    ridimensionare immagine da db

    Estraggo delle immagini inserite in un database e le visualizzo con questo script
    Codice PHP:
    $_query "SELECT file FROM immagini WHERE id = '".$_GET['id_img']."' " ;

    $_risultato mysql_query($_query) or die('Query non valida: ' mysql_error()) ;

    $_tmp mysql_fetch_array($_risultato);



    header('Content-type: image/jpeg') ;

    echo 
    $_tmp['file'] ; 
    Fin qua tutto bene, però le immagini dovrei visualizzarle come miniature ossia con dimensioni ridotte.
    Sto provando questo script però non funziona
    Codice PHP:
    $_query "SELECT file FROM immagini WHERE id = '".$_GET['id_img']."' " ;

    $_risultato mysql_query($_query) or die('Query non valida: ' mysql_error()) ;

    $_tmp mysql_fetch_array($_risultato);



    header('Content-type: image/jpeg') ;

    $_immagine_sorgente imagecreatefromjpeg($_tmp['file']) ;

    list(
    $_larghezza_originale,$_altezza_originale) = getimagesize($_immagine_sorgente) ;


    $_nuova_larghezza '160' ;
    $_nuova_altezza '120' ,

    $_immagine_ridimensionata imagecreatetruecolor($_nuova_larghezza,$_nuova_altezza) ;

    imagecopyresized($_immagine_ridimensionata,$_immagine_sorgente,0,0,0,0,$_nuova_larghezza,$_nuova_altezza,$_larghezza_originale,$_altezza_originale) ;


    echo 
    $_immagine_ridimensionata 
    Chiedo aiuto...
    Errare humanum est, perseverare ovest

  2. #2
    Prova a sostituire:

    Codice PHP:
    list($_larghezza_originale,$_altezza_originale) = getimagesize($_immagine_sorgente) ; 
    con:

    Codice PHP:
    list($_larghezza_originale,$_altezza_originale) = getimagesize($_tmp['file']) ; 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Già provato ma non funziona
    Errare humanum est, perseverare ovest

  4. #4
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    sto migliorando e semplificando lo script ma ancora non funziona

    eccolo, escludo l'estrazione dal db, tanto il problema è qui
    Codice PHP:
    header('Content-type: image/jpeg') ;

    $_immagine_sorgente imagecreatefromjpeg($_tmp['file']) ;

    $_larghezza_originale 600 ;
    $_altezza_originale 450 ;
    $_nuova_larghezza 160 ;
    $_nuova_altezza 120 ;

    $_immagine_ridimensionata imagecreatetruecolor($_nuova_larghezza,$_nuova_altezza) ;

    imagecopyresized($_immagine_ridimensionata,$_immagine_sorgente,0,0,0,0,$_nuova_larghezza,$_nuova_altezza,$_larghezza_originale,$_altezza_originale) ;


    imagejpeg($_immagine_ridimensionata) ; 
    Così ottengo un rettangolo nero
    Errare humanum est, perseverare ovest

  5. #5
    C'è una cosa che non mi torna...il campo file della tabella immagini cosa contiene? Il percorso ed il nome del file oppure l'immagine vera e propria?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Se hai il nome ed il percorso dell'immagine questo codice funziona:

    Codice PHP:
    header('Content-type: image/jpeg');
    list(
    $oldWidth$oldHeight) = getimagesize("nome_immagine");
    $newWidth $oldWidth 0.5;
    $newHeight $oldHeight 0.5;
    $img imagecreatetruecolor($newWidth$newHeight);
    $src imagecreatefromjpeg("nome_immagine");
    imagecopyresized($img$src0000$newWidth$newHeight$oldWidth$oldHeight);
    imagejpeg($img);
    imagedestroy($img); 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Il campo 'file' è un mediumblob e contiene l'immagine vera e propria.

    Senza il ridimensionamento la visualizzazione mi riesce, purtroppo non riesco ad ottenere la miniatura delle immagini.

    A questo punto mi viene da pensare che il problema sia in
    Codice PHP:
    $_immagine_sorgente imagecreatefromjpeg($_tmp['file']) ; 
    Credo che la funzione imagecreatefromjpeg si aspetta un percorso di un file e non il file vero e proprio.

    Quindi come fare?
    Errare humanum est, perseverare ovest

  8. #8
    Originariamente inviato da carlo2002
    sto migliorando e semplificando lo script ma ancora non funziona

    eccolo, escludo l'estrazione dal db, tanto il problema è qui
    Codice PHP:
    header('Content-type: image/jpeg') ;

    $_immagine_sorgente imagecreatefromjpeg($_tmp['file']) ;

    $_larghezza_originale 600 ;
    $_altezza_originale 450 ;
    $_nuova_larghezza 160 ;
    $_nuova_altezza 120 ;

    $_immagine_ridimensionata imagecreatetruecolor($_nuova_larghezza,$_nuova_altezza) ;

    imagecopyresized($_immagine_ridimensionata,$_immagine_sorgente,0,0,0,0,$_nuova_larghezza,$_nuova_altezza,$_larghezza_originale,$_altezza_originale) ;


    imagejpeg($_immagine_ridimensionata) ; 
    Così ottengo un rettangolo nero
    Prova a modificare così:

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

    $_larghezza_originale 600 ;
    $_altezza_originale 450 ;
    $_nuova_larghezza 160 ;
    $_nuova_altezza 120 ;

    $_immagine_ridimensionata imagecreatetruecolor($_nuova_larghezza,$_nuova_altezza) ;

    imagecopyresized($_immagine_ridimensionata,$_tmp['file'],0,0,0,0,$_nuova_larghezza,$_nuova_altezza,$_larghezza_originale,$_altezza_originale) ;


    imagejpeg($_immagine_ridimensionata) ; 
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    No niente, neanche così
    Errare humanum est, perseverare ovest

  10. #10
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    RISOLTO

    L'unica spiegazione che sono riuscito a trovare era proprio sul sito php.net, esattamente al seguente link:

    http://it.php.net/manual/en/function...ized.php#52239

    ed ecco il codice come serviva a me
    Codice PHP:
    $_query "SELECT file FROM immagini WHERE id = '".$_GET['id_img']."' " 
    $_risultato mysql_query($_query) or die('Query non valida: ' mysql_error()) ;
    $_db_file mysql_fetch_array($_risultato);

    $_file_immagine microtime().'.jpg' ;
    $_file_temporaneo fopen($_file_immagine'w+') ;
    fwrite($_file_temporaneo$_db_file['file'] ) ;
    fclose($_file_temporaneo) ;

    $_immagine_sorgente imagecreatefromjpeg($_file_immagine) ;
    list(
    $_larghezza_originale,$_altezza_originale) = getimagesize($_file_immagine) ;

    unlink($_file_immagine) ;

    $_nuova_larghezza 160 ;
    $_nuova_altezza 120 ;

    $_immagine_ridimensionata imagecreatetruecolor($_nuova_larghezza,$_nuova_altezza) ;
    imagecopyresized($_immagine_ridimensionata,$_immagine_sorgente,0,0,0,0,$_nuova_larghezza,$_nuova_altezza,$_larghezza_originale,$_altezza_originale) ;

    header('Content-type: image/jpeg') ;
    imagejpeg($_immagine_ridimensionata) ;
    imagedestroy($_immagine_ridimensionata) ; 
    Funziona alla grande

    Logicamente nello script vanno integrati anche i dati per la connessione al database che ho ommesso per motivi pratici.
    Si puo' notare che ho messo delle dimensioni fisse per creare la miniatura, questo perchè le immagini che ho nel database sono tutte delle stesse dimensioni, ossia 600x450 pixel e quindi 160x120 sono in proporzione. Se le immagini originali avessero dimensioni diverse si dovrebbero fare le opportune proporzioni per il ridimensionamento.
    Lo stesso dicasi per l'estensione che è sempre .jpg

    Errare humanum est, perseverare ovest

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.