Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264

    Libreria GD... immagine ridimensionata... ma non proporzionale!

    Ciao a tutti!
    ho questo script che tramite la fantastica libreria GD, prende una immagine, la ridimensione e ne ritaglia una parte (vorrei fosse quella centrale)..

    sembra funzionare... ma il risultato è una immaginetta di 100px per 100px... non proporzionale e non centrata...

    Riuscite ad aiutarmi??? Non so davvero dove modificarlo ancora...

    <?
    //dimensioni del ritaglio
    $width2 = 100;
    $height2 = 100;
    $dimensions2 = getimagesize($percorso.$new_name_file.'.jpg');

    // immagine in memoria
    $canvas2 = imagecreatetruecolor($width2,$height2);
    $piece2 = imagecreatefromjpeg($percorso.$new_name_file.'.jpg ');

    $newwidth2 = $dimensions2[0] / 2;
    $newheight2 = $dimensions2[1] / 2;
    $cropLeft2 = ($newwidth2/2) - ($width2/2);
    $cropHeight2 = ($newheight2/2) - ($height2/2);

    imagecopyresized($canvas2, $piece2, 0, 0, $cropLeft2, $cropHeight2, $width2, $height2, $newwidth2, $newheight2);
    if (imagejpeg($canvas2,$percorso.'icona.jpg',90)) {
    echo 'Immagine ritagliata';
    } else {
    echo 'Ritaglio immagine fallito';
    }
    ?>

  2. #2
    Da nessuna parte mantieni le proporzioni, semplicemente dividi per 2 l'altezza e la larghezza dell'immagine di partenza. Ma se l'immagine non è quadrata?

  3. #3
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da kylnas1
    Da nessuna parte mantieni le proporzioni, semplicemente dividi per 2 l'altezza e la larghezza dell'immagine di partenza. Ma se l'immagine non è quadrata?
    è assurdo...

    se l'immagine deve essere un rettangolo, funziona perfettamente...

    in questo caso deve essere quadrata... e invece il risultato è allungato...

    In che modo posso gestirlo???

  4. #4
    Originariamente inviato da henry78
    In che modo posso gestirlo???
    Prendi le grandezze delle immagini, ne ridimensioni 1 e calcoli l'altra mantenendo la proporzione.
    Dopo di che ritagli questa nuova immagine con un quadrato 100 x 100.

    Dal punto di vista pratico vedi come funzionano le funzioni e passagli i parametri giusti.

  5. #5
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264
    Originariamente inviato da kylnas1
    Prendi le grandezze delle immagini, ne ridimensioni 1 e calcoli l'altra mantenendo la proporzione.
    Dopo di che ritagli questa nuova immagine con un quadrato 100 x 100.

    Dal punto di vista pratico vedi come funzionano le funzioni e passagli i parametri giusti.
    il problema è che saranno gli utenti a inserire le immagini..

    a seconda della dimensione che inseriscono, io voglio avere come risultato un quadrato di 100 x 100 , proporzionale e centrato...

  6. #6
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da henry78
    il problema è che saranno gli utenti a inserire le immagini..

    a seconda della dimensione che inseriscono, io voglio avere come risultato un quadrato di 100 x 100 , proporzionale e centrato...
    non potrai mai avere un 100x100 corretto, visto che non saprai a priori di che dimensioni sarà l'immagine inserita.

    io ho usato uno script pronto, me lo sono adattato, mantenendo le proporzioni. Cerca nel forum
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  7. #7
    Originariamente inviato da henry78
    il problema è che saranno gli utenti a inserire le immagini..

    a seconda della dimensione che inseriscono, io voglio avere come risultato un quadrato di 100 x 100 , proporzionale e centrato...
    E che c'entra? Quando un utente inserisce un'immagine, tu sai qual'è la sua grandezza.
    La ridimensioni e poi effettui il taglio.

    Devi solo scegliere ti quanto ridimensionarla.
    Potresti fare qualcosa del tipo:
    codice:
    IF (grandezza_immagine > grandezza_scelta)
       ridimensiona_immagine();
    
    ritaglia_immagine(100, 100);

  8. #8
    Utente di HTML.it L'avatar di JoeP
    Registrato dal
    May 2004
    Messaggi
    558
    1) Prendi la dimensione più piccola (altezza o larghezza)
    2) Riducila a 100px e calcolati l'altra in proporzione
    3) Fai il crop (e qui non so come si fa)

    Esempio, l'utente uploada una 800x600:
    1) Altezza: 600
    2) Altezza: 100 => Larghezza: 133
    3) Ora hai una 133x100, ci fai il crop (ritaglio) a 100x100...

  9. #9
    Originariamente inviato da JoeP
    1) Prendi la dimensione più piccola (altezza o larghezza)
    2) Riducila a 100px e calcolati l'altra in proporzione
    3) Fai il crop (e qui non so come si fa)

    Esempio, l'utente uploada una 800x600:
    1) Altezza: 600
    2) Altezza: 100 => Larghezza: 133
    3) Ora hai una 133x100, ci fai il crop (ritaglio) a 100x100...
    Secondo me ridimensionarla subito a 100 ne rovina troppo la qualità.
    Potrebbe prendere una 800x600, ridurla a 200x150, e poi tagliare il quadrato centrale di 100x100. Si perdono delle informazioni sull'immagine ma l'immagine rimane di alta qualità. E' una tecnica inventata da Jakob Nielsen .

  10. #10
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Originariamente inviato da kylnas1
    E che c'entra? Quando un utente inserisce un'immagine, tu sai qual'è la sua grandezza.
    La ridimensioni e poi effettui il taglio.
    giusto. Il problema è un altro. Come fai a sapere che quando fai il CROP non ritagli una parte fondamentale dell'immagine?
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

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.