Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Ruotare un'immagine png mantenendo lo sfondo trasparente

    Ciao a tutti!
    Ho una pagina imageCreator.php che utilizzo per gestire le immagini del mio sito: in pratica riceve vari parametri get: l'url dell'immagine da caricare, l'altezza e la larghezza a cui ridimensionare l'immagine e il numero di gradi di cui ruotarla. Il tutto funziona perfettamente, finché non si utilizzano immagini con sfondo trasparente, che viene tradotto in nero. Sono riuscito a risolverlo per quanto riguarda il ridimensionamento inserendo la riga:
    Codice PHP:
    imagealphablending($imgfalse); 
    Sembra però che questo espediente non serva per quanto riguarda la rotazione.
    qualcuno sa per quale motivo, e come risolvere il problema?
    Grazie in anticipo!
    EDIT: Scusate, mi rendo conto solo ora che lo sfondo dell'immagine è effettivamente trasparente, solo che ruotando l'immagine viene ampliata per contenere tutta l'immagine precedente ruotata. Dunque, il nero non è altro che lo sfondo dell'immagine. Quindi riformulo la domanda:
    Come si fa a selezionare il colore di sfondo?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    In pratica devi ruotare l'immagine, crearne una nuova trasparente con le stesse dimensioni, e poi salvare il canale alpha sulla nuova in modalita' non blending. Dopodiche' basta copiare l'immagine originale ruotata sulla nuova.

    con altre parole:
    Codice PHP:
    $src imagecreatefrompng('blabla.png');
    $trans imagecolorallocatealpha($src0,0,0,127);
    $src =  imagerotate($src45$trans0);
    $rotated imagecreatetruecolor(imagesx($src), imagesy($src));
    imagealphablending($rotatedfalse);
    imagesavealpha($rotatedtrue);
    imagecopy($rotated$src0000imagesx($src), imagesy($src));

    header('Content-type: image/png');
    imagepng($rotated); 
    Attenzione, tutto questo vale per le png, mentre per le gif indicizzate funziona diversamente, devi fare alcuni passaggi in piu'.

  3. #3

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.