2012-04-13 3 views
0

Je sais, je sais ... il y a beaucoup d'autres messages comme celui-ci. Je n'ai pas trouvé ce que je cherchais, passons à autre chose.Le paramètre n'est pas une erreur valide sur le constructeur bitmap

Je casser un PDF en images à l'aide this GhostScript implementation for C# puis essayez de charger chaque image en bitmap, parfois, il me donne un Parameter is not valid error sur cette ligne:

[...]new Bitmap((Image)Image.FromFile(imagePath))[...] 


Image.FromFile(imagePath) retourne avec succès une image (bien que je pense qu'il renvoie un bitmap) mais le constructeur de Bitmap me donne l'erreur. Qu'est-ce que je fais mal?

P.S.
Je lance le résultat à Image parce que quand je regarde rapidement le résultat de Image.FromFile (...) il le montre comme un System.Drawing.Bitmap (de toute façon, cast, non cast, donne le même résultat) .

+1

Etes-vous sûr Image.FromFile chargement fait quelque chose? Quelle version de .net utilisez-vous? Avez-vous essayé de faire 'new Bitmap (imagePath)'? Il y a un constructeur en Bitmap qui prend un chemin – Jaime

+0

J'ai utilisé le constructeur Bitmap comme vous l'avez suggéré et il semble fonctionner correctement. Je corrige d'autres bugs mineurs et je vais tester à nouveau. – PedroC88

+0

Ecrivez une réponse, c'était tout. – PedroC88

Répondre

2

Essayez d'utiliser le constructeur Bitmap qui reçoit un chemin vers l'image comme ceci:

var b = new Bitmap(imagePath); 
3

Vous ne devez pas créer une nouvelle image à partir du bitmap, juste jeter la référence au bitmap que vous avez déjà:

Bitmap b = (Bitmap)Image.FromFile(imagePath); 

Si vous créez une nouvelle image à partir du bitmap que vous chargez du fichier , vous n'obtenez aucune référence à l'image que vous avez chargée. Comme vous ne pouvez pas disposer ce bitmap, vous les laisserez au garbage collector pour finaliser, et si cela n'arrive pas assez vite, vous risquez de manquer de mémoire.

Questions connexes