• 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.