2011-01-12 1 views
1

En C#, je suis en train de charger un fichier PNG sur Mac OS X en utilisant la dernière MonoImpossible de charger la PNG en C# sur l'exécution de Mac OS X Mono

using System.Drawing; 
Bitmap bmp = new Bitmap("test.png"); 

Je reçois l'erreur suivante

Either the image format is unknown or you don't have the required libraries to decode this format [GDI+ status: UnknownImageFormat] 

Cela n'arrive pas avec tous les fichiers png; juste celui-là.
alt text

Ré-enregistrer dans le magasin de photos ne le répare pas sauf si je passe à 8bpp. Y a-t-il quelque chose que je dois installer pour supporter ce fichier png "spécial"? Fonctionne bien sur les fenêtres.

Répondre

5

J'ai essayé de charger ce fichier mono sur mon ubuntu et a obtenu l'exception suivante:

** (mono_load_bitmap:3490): WARNING **: PNG images with 48bpp aren't supported by libgdiplus. 
Either the image format is unknown or you don't have the required libraries to decode this format [GDI+ status: UnknownImageFormat] 
    at System.Drawing.GDIPlus.CheckStatus (Status status) [0x00000] in <filename unknown>:0 
    at System.Drawing.Bitmap..ctor (System.String filename, Boolean useIcm) [0x00000] in <filename unknown>:0 
    at System.Drawing.Bitmap..ctor (System.String filename) [0x00000] in <filename unknown>:0 
    at (wrapper remoting-invoke-with-check) System.Drawing.Bitmap:.ctor (string) 

Erreur

images PNG avec 48bpp ne sont pas pris en charge par libgdiplus

semblent être de la même nature que celle que vous avez sur votre mac. La recherche rapide sur google n'a renvoyé aucune information sur la façon de le réparer. Ma suggestion est d'essayer de l'ouvrir avec Gdk.Pixbuf classe:

Gdk.Pixbuf pic = new Gdk.Pixbuf("test.png"); 
// shows pixbuf in the Gtk.Image widget 
Gtk.Image image = new Gtk.Image();  
image.Pixbuf = pic; 

cet appel n'a pas entraîné une erreur sur mon ubuntu.

espérons que cela aide, salutations

+0

Merci Serge. Depuis que mes plates-formes cibles sont Mac et Windows, j'ai décidé de lancer un bloc try-catch autour de ce code et de dire aux artistes de changer la profondeur de bits sur ces images. – milkplus

0

Avez-vous vérifié si une application MacOS X peut afficher l'image (peut-être en utilisant libpng)?

+0

oui. double-cliquer sur le png le charge dans un visualiseur. – milkplus

Questions connexes