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

    Librerie GD e sovrapposizione immagini

    Salve a tutti,
    sto provando a sovrapporre 2 o più png trasparenti per ottenere una nuova imagine. Utilizzo questo codice:
    Codice PHP:
    <?php
    header
    ("Content-type: image/png");
    $file_sfondo "circle.png";
    $file_icona "square.png";
    $dest = @imagecreatetruecolor(300300)
    or die(
    "errore nel caricare gd");
    $sfondo imagecreatefrompng($file_sfondo);
    $icona imagecreatefrompng($file_icona);
    imagecopy($dest$sfondo0000300300);
    imagecopy($dest$icona0000300300);
    $dest imagerotate($dest450);
    imagepng($dest);
    imagedestroy($dest);
    imagedestroy($sfondo);
    imagedestroy($icona);
    ?>
    Lìimmagine di destinazione, però, ha uno sfondo nero. Sicuramente senza rendermene condo lo imposto io, o cmq non deve essere molto difficile preservare la trasparenza di sfondo.
    Qualcuno può aiutarmi?
    Grazie mille.
    All'uomo non verrà mai tanto male quanto dall'uomo.

  2. #2
    Penso ti serva questa funzione.
    Ciao, bio.

  3. #3
    Hai ragione... per ora ancora non riesco però.
    Perchè creo il canvas di sfondo e diventa trasparente conq uel sistema, ma poi incollandoci le immagini sopra quete hanno uno sfondo nero.
    Grazie.
    All'uomo non verrà mai tanto male quanto dall'uomo.

  4. #4
    Ora, io nn l'ho mai usato, ma sulla pagina che ti ho incollato, in enorme c'è scritto:
    Note: Transparency is copied only with imagecopymerge() and true color images, not with imagecopy() or pallete images.

  5. #5
    No no hai ragione avevo già sostituito quella funzione. Poi mi sono accorto che la stavo usando male.
    Ora sono andato avanti ma ho sempre dei problemi.
    Utilizzo questo codice:

    Codice PHP:
    <?php
    header
    ("Content-type: image/png");
    $file_sfondo "circle.png";
    $file_icona "square.png";
    $dest = @imagecreatetruecolor(300300)
    or die(
    "errore nel caricare gd");

    $black imagecolorallocate($dest000); // creo il colore che deve diventare trasparente
    imagecolortransparent($dest$black); //rendo trasparente il nero dell'immagine
    $sfondo imagecreatefrompng($file_sfondo);
    $icona imagecreatefrompng($file_icona);

    imagecopymerge($dest$sfondo00,  0,  0300300100);
    imagecopymerge($dest$icona0000300300100);

    imagepng($dest);
    imagedestroy($dest);
    imagedestroy($sfondo);
    imagedestroy($icona);
    ?>
    Nell'ordine faccio come segue:
    - creo il canvas di destinazione nero;
    - lo buco imponendo che il nero dell'immagine diventi trasparente;
    - aggiungo con imagecopymerge le 2 immaigni;

    ottengo un file del tutto inaspettato. Sto veramente impazzendo. Poi mi pare di capire che non riesco in nessun caso a mantenere la sfumatura di trasperenza sullo sfondo, ossia la trasperenza delle png si salva nelle aree di sovrapposizione tra immagini ma quando deve sfumare sullo sfondo trasperente allora sfuma al nero.
    All'uomo non verrà mai tanto male quanto dall'uomo.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.