Kri*_*ers 25 c# graphics image indexed-image
我收到错误:
"无法从具有索引像素格式的图像创建图形对象."
在功能:
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();
}
Run Code Online (Sandbox Code Playgroud)
我想问你,我该如何解决?
Mic*_* DN 33
参考这个,它可以通过创建一个具有相同尺寸的空白位图和正确的PixelFormat以及该位图上的绘图来解决.
// The original bitmap with the wrong pixel format.
// You can check the pixel format with originalBmp.PixelFormat
Bitmap originalBmp = new (Bitmap)Image.FromFile("YourFileName.gif");
// Create a blank bitmap with the same dimensions
Bitmap tempBitmap = new Bitmap(originalBmp.Width, originalBmp.Height);
// From this bitmap, the graphics can be obtained, because it has the right PixelFormat
using(Graphics g = Graphics.FromImage(tempBitmap))
{
// Draw the original bitmap onto the graphics of the new bitmap
g.DrawImage(originalBmp, 0, 0);
// Use g to do whatever you like
g.DrawLine(...);
}
// Use tempBitmap as you would have used originalBmp
return tempBitmap;
Run Code Online (Sandbox Code Playgroud)
小智 6
最简单的方法是创建一个新图像,如下所示:
Bitmap EditableImg = new Bitmap(IndexedImg);
Run Code Online (Sandbox Code Playgroud)
它会创建一个与原始图像完全相同的新图像。