PNG récalcitrant ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
PhM
Messages : 118
Inscription : dim. 08/déc./2019 10:50

PNG récalcitrant ?

Message par PhM »

Bonjour,

Je télécharge une petite image PNG (MC.png) sur un site qui, ensuite, apparait bien sur le disque.

Par contre, sa lecture est impossible ? Cela semble provenir du format png de cette image.

Comment remédier à cela ?

Voici le code de test :

Code : Tout sélectionner

UsePNGImageEncoder()

URL$ = "https://airportguide.com/images/flags/48x32/MC.png"

If OpenWindow(0, 0, 0, 128, 128, "FreeImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

  If ReceiveHTTPFile(URL$, GetTemporaryDirectory() + "MC.png")
    
    If LoadImage(0, GetTemporaryDirectory() + "MC.png")   
      SaveImage(0, GetTemporaryDirectory() + "MC.png") 
      ImageGadget(0, 10, 10, 48, 32, ImageID(0)) ; Affichage
    EndIf
  EndIf
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: PNG récalcitrant ?

Message par Ollivier »

Peut-être en remplaçant "En" par "De" en 1ère ligne : c'est un décodage que tu as besoin, pas un encodage. Je vois aussi SaveImage(), je comprends pas pourquoi.
Dernière modification par Ollivier le dim. 12/févr./2023 10:55, modifié 1 fois.
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: PNG récalcitrant ?

Message par Marc56 »

Bonjour,

Déjà ce n'est pas le bon plugin, il faut utiliser Decoder et pas Encoder

Code : Tout sélectionner

; UsePNGImageEncoder()
  UsePNGImageDecoder()
Ensuite, si tu ouvres le fichier chargé avec un autre programme, il dira que ce n'est pas un png, mais un .webp
IrfanView
---------------------------
Attention !
Le fichier: "[...]AppData\Local\Temp\MC.png" est un fichier WEBP avec une extension incorrecte !
Le renommer ?


:idea: Quand on utilise des If, penser à mettre des Else, sinon on ne sais pas ce qui n'a pas fonctionné.

Code : Tout sélectionner

; UsePNGImageEncoder()
UsePNGImageDecoder()

URL$ = "https://airportguide.com/images/flags/48x32/MC.png"

If OpenWindow(0, 0, 0, 128, 128, "FreeImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)   
    If ReceiveHTTPFile(URL$, GetTemporaryDirectory() + "MC.png")
        If LoadImage(0, GetTemporaryDirectory() + "MC.png")   
            SaveImage(0, GetTemporaryDirectory() + "MC.png") 
            ImageGadget(0, 10, 10, 48, 32, ImageID(0)) ; Affichage
        Else
            Debug "Can't load File in image"
        EndIf
    Else
        Debug "file not loaded"
    EndIf
    
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Avatar de l’utilisateur
PhM
Messages : 118
Inscription : dim. 08/déc./2019 10:50

Re: PNG récalcitrant ?

Message par PhM »

Effectivement, désolé pour l'erreur d'encoder...

Mais, est-il possible de lire un fichier .webp avec PB ou faut-il attendre un futur UseWEBImageDecoder()?
Marc56
Messages : 2197
Inscription : sam. 08/févr./2014 15:19

Re: PNG récalcitrant ?

Message par Marc56 »

Il y a quelques discussions sur le forum us, mais rien d'abouti je crois.
Sinon, il faut trouver d'autres ressources graphiques aux formats classiques ou convertir les .webp avec d'autres outils.
Avatar de l’utilisateur
Mindphazer
Messages : 694
Inscription : mer. 24/août/2005 10:42

Re: PNG récalcitrant ?

Message par Mindphazer »

Sinon tu peux télécharger tes images ailleurs, au format png, sur flagcdn.com
Comme par exemple ici (pour Monaco), remplace ton URL par celle-ci : https://flagcdn.com/w40/mc.png
Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Avatar de l’utilisateur
PhM
Messages : 118
Inscription : dim. 08/déc./2019 10:50

Re: PNG récalcitrant ?

Message par PhM »

Merci Mindphazer pour cette source !
Répondre