• User Attivo

    Salvare un'immagine con php

    Ho un'immagine PNG nella variabile $cimg[1] che per rendervi l'idea è così: ```
    �PNG  IHDRPMB��sBIT��O�tEXtSoftwaregnome-screenshot��> IDATx��w|T�����-{��7RHH�$4)Vimage MQ�`�ӧ>�gG���( z�*5�BzO���{g��dž�$�"���Pv�9sf���93gfд�W���PV��B�!>��H� �� �<���M&c�"��imageS�.B�m���I�5�����G:���l|8� ���a�ex+�s��ÆO����5G�$o8� �1P�x�ҥhh�h�������,�<�So�D9lՅ�轗Ћ eccetera eccetera

    
    Vorrei sapere avendo $cimg[1] e il percorso dell'immagine come posso salvarla.
    
    Ho provato 
    fwrite($cimg[1], $im/$id.png);
    imagepng($cimg[1],"$im/$id.png",9,'PNG_NO_FILTER');
    
    ma non fungono.
    
    Come faccio a salvare questa immagine in un percorso $x?
    
    Grazie in anticipo.

  • User Attivo

    Ciao,
    non si capise cos'è che hai in $cimg[1], un percorso?


  • User Attivo

    $cimg[1] è l'immagine completa e pronta per essere salvata (che se mostrata restituisce �PNG  IHDRPMB ecc. ovviamente perché è un'immagine).

    Grazie, ciao.


  • User Attivo

    Il testo tra virgolette ```
    "$im/$id.png"


  • User Attivo

    Sì, lo so. Il fatto è che mi serve sapere quale è la funzione adatta visto che le sopra citate non fungono.


  • User Attivo

    Il PHP è organizzato in modo da usare funzioni specifiche per salvare le immagini, nel manuale l'immagine è una risorsa, il che lascia intuire che nn è solo il contenuto vero è proprio come tu dici ma ci sono altri dati/informazioni che la compongono, questo non significa che il tuo fwrite non funzioni ma io escluderei l'uso che tu proponi.
    La serie di funzioni imagepng,imagejpeg etc etc in questo caso hanno la priorita' assoluta.
    Credo che la causa del non funzionamento sia da cercare nel path del file che usi per salvare.


  • User Attivo

    Ho risolto.
    Il file veniva salvato, ma poi ne veniva salvato un'altro vuoto sopra. Grazie per le informazioni.
    Un'altra cosuccia, a me serve modificare

    
    		$image_path = 
    				act('gif') ?
    				IMAGE_DIR.'/images/'.@date("Y/F/d",$idate)."/{$id}_{$xdate}.gif"
    				:		
    				IMAGE_DIR.'/images/'.@date("Y/F/d",$idate)."/{$id}_{$xdate}.jpg";
    
    

    con:

    
    		$image_path = 
    				act('gif') ?
    				IMAGE_DIR.'/images/'.@date("Y/F/d",$idate)."/{$id}_{$xdate}.gif"
    				:		
    				act('png') ?
    				IMAGE_DIR.'/images/'.@date("Y/F/d",$idate)."/{$id}_{$xdate}.png"
    				:	IMAGE_DIR.'/images/'.@date("Y/F/d",$idate)."/{$id}_{$xdate}.jpg";
    
    

    solo che non funge.
    Non essendo io esperto in PHP (non l'ho mai studiato) mi domando se questa è la forma corretta o se ve ne è un'altra.
    Dal punto di vista logico dovrebbe essere quella sopra riportata.

    Grazie in anticipo.

    Simone.


  • User Attivo

    Ho risolto con gli if.
    Ringrazio tutti per il supporto 😉

    Simone.


  • User

    a questo punto ti conviene la struttura del "case" ... così se ti servono anche i .bmp non devi annidare un'altro if


  • User Attivo

    Il fatto è che gli altri formati diversi da gif e png può benissimo trasformali in jpg. Altrimenti avrei sicuramente usato il case.

    Ciao.