Visualizzazione dei risultati da 1 a 5 su 5

Discussione: manipolazione immagini

  1. #1

    manipolazione immagini

    salve,
    ho la necessità di ridimensionare una o più immagini mantenendo le proporzioni.
    Una volta ridimensionata, l'immagine deve essere inserita in un'altra immagine bianca con dimensioni fisse.
    Forse non è molto chiaro. Forse mi spiego con un esempio.

    il risultato che devo ottenere è un'immagine di dimesione 300x300.

    1. scarico un'immagine da Google che ha dimensione 600x400

    2. adesso devo ridimensionarla mantenendo le proporzioni quindi farla diventare per esempio di
    280x187 in modo da mantenere le proporzioni

    3. adesso devo fare un'immagine bianca di 300 x300

    4. devo inserire l'immagine 280x 187 all'interno dell'immagine 300x300 posizionandola al centro sia verticalmente che orizzontalmente.

    5. salvare l'immagine finale.

    Si può fare con php?
    Vedendo un po' in giro sul web ho trovato la classe SmartImage ma non so se è adatta a raggiungere il mio obbiettivo.

    Potreste darmi qualche suggerimento?
    grazie.

  2. #2
    ciao.

    penso si possa fare, ma lo trovo una operazione intricata.

    perchè devi mettere l'immagine dentro una immagine da 300x300?
    se il problema è la visualizzazione nella pagina, ti basterebbe usare html e css.

  3. #3
    Devo creare uno script esterno su un sito fatto in prestashop che sembra gestisca le immagini in questo modo.
    Avrei preferito usare le funzioni del cms per fare questi ridimensionamenti ma non ho assolutamente idea di come agganciare uno script esterno a prestashop per poterle usare.
    Quindi ho deciso di utilizzare qualche script php per ottenere gli stessi risultati.

    Ma secondo te SmartImage potrebbe essere adatto?

    grazie.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi provare questo.

    Codice PHP:
    <?php
    function thumb($sourceImage,$thumbFile) {
     
    $maxWidth  300;
     
    $maxHeight 300;
     
    $newWidth  280;
     
    $newHeight 187;
     
     
    $positionX 10;
     
    $positionY 56;
     
    //------- Width and Height of source image
     
    list($imgWidth$imgHeight) = getimagesize($sourceImage);
     
    //------- Creates an image from the source image
     
    $image imagecreatefromjpeg($sourceImage);  
     
    //------- Creates the white background image
     
    $ni    imagecreatetruecolor($maxWidth,$maxHeight);
     
    $white imagecolorallocate($ni255255255);
     
    imagefill($ni00$white);
     
     
    //--------- Creates a new empty image with new dimensions
     
    $newImage imagecreatetruecolor($newWidth$newHeight);
     
     
    //--------- Copies and resamples the source image into the new empty image
     
    imagecopyresampled($newImage$image0000$newWidth$newHeight$imgWidth$imgHeight);
     
     
    //--------- Copies the the new image inside the white background
     
    imagecopy($ni$newImage$positionX$positionY00$newWidth$newHeight);
     
     
    //--------- Creates the new image on hard disk using path and name that are in $thumbFile
     
    imagejpeg($ni$thumbFile50);
     
     
    imagedestroy($ni);
    // function thumb($sourceImage,$thumbFile)
    //------ Primo parametro   : URL dell'immagine da copiare
    //------ Secondo parametro : Il percorso e il nome del file finale sull'hard disk
    thumb("example.jpg","th_example.jpg");
    ?>
    example.jpg

    example.jpg


    th_example.jpg
    th_example.jpg
    Ultima modifica di badaze; 20-09-2015 a 19:36
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Grande!!! Funziona perfettamente.
    E' proprio quello che cercavo. Poche righe di codice per ottenere il risultato.
    Grazie Badaze.



    ps.grazie anche a Fermat per l'interessamento.

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.