2013-02-11 5 views
0

Je suis aux prises avec FreeImage et la documentation ne m'aide pas beaucoup!Affichage de fichiers EXR dans Windows Forms

J'ai besoin d'afficher une image tif, exr ou HDR dans une image avec C# et je ne réussis pas et je me demande comment je peux le faire ... Je reçois l'erreur: Seules les bitmaps avec type de FIT_BITMAP peut être converti. ...

Quelqu'un peut-il m'aider? Je suppose que je dois convertir le format TIFF à un bitmap, mais je l'ai essayé, mais je ne sais pas comment je devrais le faire encore ... Voici mon code:

FIBITMAP imageToDisplay = new FIBITMAP(); 
    imageToDisplay = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_TIFF, i, FREE_IMAGE_LOAD_FLAGS.TIFF_CMYK); 
    Bitmap bitmap = FreeImage.GetBitmap(imageToDisplay); 
    pictureBox.Image = (Image)new Bitmap(bitmap);    
+0

J'ai modifié votre titre. S'il vous plaît voir, "[Les questions devraient inclure" tags "dans leurs titres?] (Http://meta.stackexchange.com/questions/19190/)", où le consensus est "non, ils ne devraient pas". –

+0

Merci! J'ai oublié de vérifier le titre après avoir assigné les tags! :) – user1782638

Répondre

0

pour l'affichage des fichiers TIFF, PictureBox.Image prend un System.Drawing.Image objet - et System.Drawing.Image.FromFile() prend en charge les images TIFF.

Je ne vois aucun besoin d'impliquer des dépendances de tiers ici. Tout est intégré dans le cadre.

pictureBox.Image = Image.FromFile(someImage); 

Si votre TIFF est pas un fichier (par exemple si elle est juste un tableau d'octets ou un MemoryStream) - qui est bien aussi - utiliser Image.FromStream().

Pour les formats de fichiers non pris en charge, votre travail consiste à les convertir dans un format pris en charge par System.Drawing.Image. Si ce n'est pas possible, vous ne pourrez peut-être pas utiliser le contrôle PictureBox pour ce travail. Peut-être le titre de votre question devrait être "Construire des objets d'image à partir de fichiers EXR" ou peut-être "Affichage des fichiers EXR dans Windows Forms" ou similaire.

+0

Merci pour votre aide. Malheureusement le FromFile() me manque de mémoire et le fichier fait environ 6mb .. le FromStream() me donne un paramètre invalide :(C'est pourquoi j'ai essayé d'utiliser FreeImage mais je n'ai que des bitmaps avec le type FIT_BITMAP. :( – user1782638

+0

De la documentation de 'Image.FromFile()': "Si le fichier n'a pas un format d'image valide ou si GDI + ne prend pas en charge le format de pixel du fichier, cette méthode lève une exception OutOfMemoryException." – tomfanning

+0

semble que mon tiff n'est pas supporté ... Savez-vous comment puis-je le traiter pour être traité? Parce que c'est un fichier TIF valide ... Ou bien je dois le convertir en bitmap avec freeimage ... – user1782638