Visualizzazione risultati 1 fino 7 di 7

Discussione: Ridimensionare Immagine

  1. #1
    yakamoz non è connesso Neofita
    Data registrazione
    16-05-2013
    Messaggi
    19

    Predefinito Ridimensionare Immagine

    Dopo aver risolto la copia delle immagini ho un altro problema, io dovrei ridimensionare le immagini in un formato standard , larghezza 300 esempio:
    alla fine non capisco che percorso devo mettere nel tag dell immagine


    $serverpath1 = "/membri/yakamoz/Immagini/" ;
    $serverpatht = "/membri/yakamoz/Thumb/" ;
    $source1 = $serverpath1 . $imm;
    $dest = $serverpatht . $imm;
    $path = "/Immagini/".$imm;
    $paththumb = "/Thumb/".$imm;

    if (copy($source1, $dest) === false) {
    echo "WARNING: impossibile copiare l'immagine";
    }

    $dest = imagecreatefromjpeg($source1);
    list($width, $height, $type, $attr) = getimagesize($source1);
    $new_width = 300 ;
    $new_height = $new_width * ( $height / $width );
    $dest = imagecreatetruecolor($new_width, $new_height);

    imagecopyresized($dest, $source1, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagejpeg($dest, $serverpatht, 95);
    echo "<img src="$paththumb" class="img31" ><br>";

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Non "riciclare" i nomi delle variabili. Hai già usato $dest e $source1 per indicare i percorsi di due file immagine, non dovresti riutilizzarli come oggetti PHPGD. Analogamente, usa nomi significativi per gli identificatori.
    Come accennato nell'altra discussione: controlla sempre i valori di ritorno delle funzioni.

    Inoltre, se hai intenzione di generare le immagini thumbnail in questo modo, non hai alcun bisogno di copiarle. La procedura diventa:
    1. carica l'immagine da elaborare dal percorso sorgente
    2. ridimensionala
    3. salvala nel percorso destinazione

    che si traduce in:
    Codice PHP:
    $source = "/membri/yakamoz/Immagini/" . $imm;
    $dest = "/membri/yakamoz/Thumh/" . $imm;

    // Legge l'immagine
    $source_img = imagecreatefromjpeg($source);
    if (!
    $source_img) {
    echo
    "WARNING: Impossibile leggere l'immagine $source.";
    }

    // Ridimensiona l'immagine
    list($width, $height, $type, $attr) = getimagesize($source);
    $new_width = 300;
    $new_height = round($new_width * ($height / $width));
    $dest_img = imagecreatetruecolor($new_width, $new_height);
    if (!
    imagecopyresized($dest_img, $source_img, 0, 0, 0, 0, $new_width, $new_height, $width, $height)) {
    echo
    "WARNING: Impossibile ridimensionare l'immagine.";
    }

    // Salva l'immagine ridimensionata
    if (!imagejpg($dest_img, $dest, 95)) {
    echo
    "WARNING: Impossibile salvare l'immagine in $dest.";
    }

    // Libera la memoria
    imagedestroy($source_img);
    imagedestroy($dest_img);

    echo
    "<img src="$dest" class="img31"><br>";
    Ultima modifica di mzanella : 16-04-2019 alle ore 17.32.56 Motivo: Correzione errore nel codice

    I suggerimenti che do più spesso:


  3. #3
    yakamoz non è connesso Neofita
    Data registrazione
    16-05-2013
    Messaggi
    19

    Predefinito

    Grazie per l'aiuto!
    allora ho provato ma mi va in errore sul ridimensionamento immagine:
    WARNING: Impossibile ridimensionare l'immagine.

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Aggiungi
    Codice PHP:
    error_reporting(E_ALL);
    all'inizio del codice (prima di $source = "/membri/yakamoz/Immagini/" . $imm;), in questo modo ci dirà come mai il ridimensionamento non ha funzionato .

    I suggerimenti che do più spesso:


  5. #5
    yakamoz non è connesso Neofita
    Data registrazione
    16-05-2013
    Messaggi
    19

    Predefinito

    risultato:
    Warning: getimagesize() expects parameter 1 to be string, resource given in /membri/yakamoz/index.php on line 66
    riga 66: list($width, $height, $type, $attr) = getimagesize($source_img);

    EDIT:
    mi sono accorto che se metto getimagesize($source); anzichè getimagesize($source_img); FUNZIONA
    adesso devo provare anche a fare il crop dell'immagine oltre che il resize heheh
    Ultima modifica di yakamoz : 16-04-2019 alle ore 17.23.29

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    mi sono accorto che se metto getimagesize($source); anzichè getimagesize($source_img); FUNZIONA
    Esatto, era un errore mio .

    adesso devo provare anche a fare il crop dell'immagine oltre che il resize heheh
    Se non la conosci già prova a dare un'occhiata a imagecrop .

    I suggerimenti che do più spesso:


  7. #7
    yakamoz non è connesso Neofita
    Data registrazione
    16-05-2013
    Messaggi
    19

    Predefinito

    Ottimo sono riuscito anche a tagliarla ,
    Ho capito solo ora che in questo modo mi modifica proprio l'immagine originale! Pensavo fosse solo una cosa temporanea che faceva al volo ,
    quindi dovrei in realtà fare queste operazioni quando vado a fare l upload dell immagine creandone di diversi formati dall originale.

Regole di scrittura

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