2010-10-12 18 views
0

J'ai accroché à la question située à "Replace image in word doc using OpenXML". J'ai remarqué qu'il y a plusieurs types ImagePartType. Y a-t-il une manière "intégrée" facile de déterminer quel type d'image spécifique devrait être autre que de passer par son extension? Le enum ImagePartType est également utilisé dans PowerPoint est beaucoup de structures WORDPROCESSINGML.,Existe-t-il une fonction permettant de savoir de quel type est une image en C# utilisant OpenXML?

Par exemple, ImagePartType.Bmp sur Image1.bmp
ImagePartType.Emf sur image1.emf
ImagePartType.Gif sur image1.gif ImagePartType.Icon sur image1.ico ImagePartType.Jpeg sur image1.jpeg ou image1.jpg ImagePartType.Pcx sur image1.pcx
ImagePartType.Png sur image1.png
ImagePartType.Tiff sur image1.tiff ou image1.tif
ImagePartType.Wmf sur image1.wmf

+0

Tout d'abord, bienvenue à stackoverflow! Deuxièmement, pourquoi ne pouvez-vous pas aller par extension de fichier? Si les données sont incorrectes, vous devez alerter l'utilisateur d'une manière ou d'une autre. –

+0

En fait, pas de raison particulière. Je cherchais surtout à voir s'il y avait une façon plus «officielle» de faire les choses. Et merci pour l'accueil chaleureux –

+0

En outre, je saisis des éléments d'une URL. Cela fait partie d'une API. Il est difficile de prévoir le contenu de l'utilisateur. J'ai l'impression que PowerPoint ne s'en souciera pas trop, si le pire se produit, je peux vérifier le type mime ou quelque chose de similaire. –

Répondre

0

Il n'y a pas - parce que vous pouvez avoir filename.png qui est en fait un fichier bmp et tout fonctionne très bien. La seule façon de savoir avec certitude est de lire le fichier bitmap réel et de voir dans quel format il se trouve.

Vous pouvez le faire en le chargeant dans une classe Image, ou simplement lire les deux premiers octets et chercher la signature de chacun des formats.

+0

donc en regardant essentiellement le type mime. je t'ai eu. Je suppose que j'aurais pu vérifier ça. –

+0

Pas le type MIME - cela peut aussi être faux. Vous devez lire le fichier bitmap réel. La plupart des formats bitmap ont une valeur unique pour les 2 premiers octets. –