Les graphiques sur l'image indexée
J'obtiens l'erreur:
"Un objet Graphique ne peut pas être créé à partir d'une image qui a indexé
format de pixel."
en fonction:
public static void AdjustImage(ImageAttributes imageAttributes, Image image)
{
Rectangle rect = new Rectangle(0, 0, image.Width, image.Height);
Graphics g = Graphics.FromImage(image);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, imageAttributes);
g.Dispose();
}
Je voudrais vous demander, comment puis-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Se référant à cette, il peut être résolu en créant une nouvelle image avec les mêmes dimensions et le bon PixelFormat et le tirage au sort sur l'image bitmap.
Dim rect As New System.Drawing.Rectangle(0, 0, bm.width, bm.height) : g.DrawImage(bm, rect, 0, 0, bm.width, bm.Height, GraphicsUnit.Pixel)
Bitmap originalBmp = new (Bitmap)Image.FromFile("YourFileName.gif");
nouveau près de fromfile donnant erreur.Bitmap Clone(Rectangle rect, PixelFormat format)
La façon la plus simple est de créer une nouvelle image comme ceci:
Il crée une nouvelle image exactement comme l'original était avec tout son contenu.
IndexedImg
?Dans l'ensemble, si vous voulez travailler avec des images indexées et en fait de préserver leur couleur, de la profondeur et de la palette, ce sera toujours dire de l'écriture explicite des contrôles et un code spécial pour eux.
Graphics
ne peuvent tout simplement pas travailler avec eux, car il manipule les couleurs et la taille réelle des pixels des images indexées contiennent pas de couleurs, seulement des indices.Pour ceux qui sont encore en voyant cela, toutes ces années plus tard... la validité de la façon de peindre une image sur un existant (8 bits) image indexée, est-ce:
Ce n'est pas une tâche facile, mais c'est certainement possible. Si l'image collée est également indexées, et contient plus de 256 pixels, vous pouvez accélérer le processus en faisant la correspondance des couleurs sur la palette, plutôt que sur les données réelles de l'image, puis obtenir le soutien d'octets à partir de l'autre image indexée, et de reconfiguration aide à la création de la cartographie.
Noter que tout cela ne s'applique qu'à huit bits. Si votre image est de quatre bits ou un peu, la façon la plus simple de le gérer est de le convertir en 8 bits d'abord de sorte que vous pouvez le manipuler comme un octet par pixel, et de le convertir en arrière par la suite.
Pour plus d'informations, voir Comment puis-je travailler avec 1 bits et 4 bits des images?