Visualizzazione risultati 1 fino 11 di 11

Discussione: [GD] difficoltà creazione thumbnails

  1. #1
    Guest

    Predefinito [GD] difficoltà creazione thumbnails

    salve, arrivo subito al sodo, partendo dallo script trovato in questa pagina http://forum.altervista.org/showthread.php?t=52007 ho creato uno script mio che crea dei thumbnails, fin qui niente di strano, non fosse per il fatto che li crea solo delle immagini che vuole lui, per esempio quelle della mia macchina fotografica non le calcola, ma quelle di una mia amica sì, non ho ancora capito per quale arcano motivo, qualcuno ha suggerimenti in merito?
    ps: la parte di script che crea le anteprime è uguale a quella presente nella pagina da me linkata, ciao!

  2. #2
    Guest

    Predefinito

    Io per i thumbnails uso questo script:
    Codice PHP:
    <?php
    $immagine
    ="grande.jpg";
    $out_width="512";
    $out_height="384";


    Header("Content-Type: image/jpeg");
    if (!
    extension_loaded('gd')) {
    dl('php_gd2.dll');
    }

    $src=ImageCreateFromJpeg($immagine);
    $out=ImageCreateTrueColor($out_width,$out_height);
    imagecopyresampled($out,$src,0,0,0,0,$out_width,$out_height,imagesx($src),imagesy($src));
    ImageJpeg($out,'',100);
    ImageDestroy($out);
    ?>
    dove grande.jpg è l'immagine originale, $out_width e $out_height sono le dimensioni di output dell'immagine.

    Al posto di imagecopyresized ho usato imagecopyresampled per avere una migliore qualità dell'immagine.

    Se invece vuoi ridimensionare un immagine in percentuale puoi usare:
    Codice PHP:
    <?php
    $immagine
    ="grande.jpg";
    $percentuale="100";

    Header("Content-Type: image/jpeg");
    if (!
    extension_loaded('gd')) {
    dl('php_gd2.dll');
    }

    $src=ImageCreateFromJpeg($immagine);
    $larghezza=imagesx($src)*($percentuale/100);
    $altezza=(imagesy($src)/imagesx($src))*$larghezza;
    $out=ImageCreateTrueColor($larghezza,$altezza);
    imagecopyresampled($out,$src,0,0,0,0,$larghezza,$altezza,imagesx($src),imagesy($src));
    ImageJpeg($out,'',100);
    ImageDestroy($out);
    ?>
    dove $percentuale è la percentuale di ridimensionamento; mettere 100 vuol dire nessun ridimensionamento, 50 l'immagine diventerà la metà delle sue dimensioni originali e così via.

    Ciao!!
    Ultima modifica di allo : 08-05-2006 alle ore 13.53.31

  3. #3
    Guest

    Predefinito

    provo con il tuo primo, non sono interessato a percentuali perchè ho spazi fissi per le immagini
    grazie a dopo!

    EDIT:
    la qualità è decisamente migliore con il copyresampled ma rimane il mio problema, non crea l'anteprima di molte immagini, che come privilegi, sola lettura ecc sono uguali a quelle che riesce a rimpicciolire..
    Ultima modifica di SFo : 08-05-2006 alle ore 15.36.11

  4. #4
    Guest

    Predefinito

    bhè...anche il codice postato prima da te era corretto...a questo punto mi sa che i problema sta nelle imamigni percui posta i link ad un'immagine che ti da rpoblemi...
    ps
    percaso ti restituisce qualche errore particolare?

  5. #5
    Guest

    Predefinito

    humm con firefox questo non lo vedevo, ho guardato un anteprima con ie ed è comparsa questa scritta (poi l'ho vista anche dal sorgente visto con firefox)
    <br />
    <b>Fatal error</b>: Allowed memory size of 12582912 bytes exhausted (tried to allocate 8128 bytes) in <b>/web/htdocs/www.sfowood.com/home/sfo/thumb.php</b> on line <b>32</b><br />
    bene è risolto forse, dovrei SOLO ridimensionare le immagini, questo lo faccio con vb però... l'unica cosa che mi lascia perplesso è che ridimensiona un'immagine da 944B e non una da 600, vabbè, dogma di fede...

    grazie per la collaborazione e i consigli, ciao!

  6. #6
    Guest

    Predefinito

    La domanda è:
    non è che il problema sta tutto nell'estensione delle immagini?? Perchè ImageCreateFromJpeg() funziona solo se l'immagine è una jpeg così come ImageCreateFromGif() funziona solo con le gif. Dagli una controllata.

  7. #7
    Guest

    Predefinito

    sono jpg, le fotocamere nel 90% dei casi salvano in jpg, nel 9% in raw e nell'1% non funzionano
    ciao!

  8. #8
    Guest

    Predefinito

    Ma quell'immagine è 12 mega? Penso che il problema sia la limitazione nel tempo dello script php che c'è in AV.. Se non sbaglio il limite è 30 secondi qui su AV... credo...

    Inoltre.. Le immagini in che formato sono? 4:3 ? A volte le routine GD hanno problemi a ridimensionare immagini che hanno formati troppo bassi e lunghi (tipo foto panoramiche per intenderci) o stretti e alti..

    Considera che soffrono di qualche bug inspiegabili alcune funzioni GD.. Se guardi nei siti ufficiali di php alcuni problemucci (forse non proprio pochi..) sono stati risolti nelle versioni successive di php 4..

    Infatti se provi in locale (dove magari hai php 5) e poi in rete (dove magari hai php 4.1) noterai a volte problemi di ridimensionamento strani, che non si verificano in versioni successive di php...
    Ultima modifica di attorianzo : 08-05-2006 alle ore 19.17.00

  9. #9
    Guest

    Predefinito

    1) il sito è su aruba anche se non l'ho scritto prima
    2) ci sono immagini tra i 600KB e 1.1MB
    non capisco il razzismo esercitato dallo script visto che fa le anteprime di un paio di file da 900KB ma non degli altri...
    ciao!

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da SFo
    2) ci sono immagini tra i 600KB e 1.1MB
    non capisco il razzismo esercitato dallo script visto che fa le anteprime di un paio di file da 900KB ma non degli altri...
    Citazione Originalmente inviato da SFo
    ... l'unica cosa che mi lascia perplesso è che ridimensiona un'immagine da 944B e non una da 600, vabbè, dogma di fede...
    Più che dogma di fede penso sia un problema di memoria da allocare e il messaggio non lascia molti dubbi.
    Ovvero quello che ti lascia perplesso è perché riesce a ridimensionare una immagine JPG di totKB mentre con altre JPG (apparentemente!) meno pesanti fallisce.
    Evidentemente -almeno quel che posso supporre- è dovuto soltanto al fatto che un formato è più compresso dell'altro.. ma -attenzione- una volta decompresse in formato "bitmap" richiedono troppa memoria. Forse più che le dimensioni del file dovresti controllare la risoluzione delle foto, mi viene da pensare che quelle che falliscono sono più estese di quelle che riescono bene.
    Non conviene superare i 800x600 a dimensione originale..

  11. #11
    Guest

    Predefinito

    grazie nospam, infatti adesso reinstallo vb e faccio un'applicazione che ridimensioni le immagini, in effetti sono foto ad alta risoluzione....
    ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •