2009-05-13 14 views
2

Bonjour à tous,Comment recadrer une partie de l'image gif?

J'ai écrit du code pour recadrer une grande image en petite.

Tout est OK, mais quand je l'ai essayé images GIF i obtenir l'exception suivante

"Un objet graphique ne peut être créé à partir d'une image qui a un format de pixel indexé."

J'utilise Classe graphique pour ce faire

Graphics gfx = Graphics.FromImage(croppedBitmap) 

merci.

Répondre

2

Les pixels des images GIF ne sont pas des valeurs RVB, ce sont des index d'une matrice de tables de couleurs stockée dans l'en-tête du fichier. Les objets graphiques prennent uniquement en charge le format de pixel non indexé. Si vous souhaitez utiliser l'objet graphique, vous devez convertir votre image en un format de pixel non indexé.

C'est exactement ce que ce gars a fait: http://www.codeproject.com/KB/cs/WriteTextToGif.aspx?display=PrintAll

+0

Merci u; Mais je veux le faire sans changer le type d'image et la résolution. –

+1

Ensuite, je voudrais faire le travail avec un objet Bitmap: Rectangle rect = new Rectangle (cropX, cropY, cropWidth, cropHeight); Bitmap cropped = bitmap.Clone (rect, bitmap.PixelFormat); retourné; –