问题描述
GraphicsobjGraphis;//若设置为PixelFormat.Format32bppArgb,可正常运行BitmapobjBitMap=newBitmap(400,300,PixelFormat.Format8bppIndexed);objGraphis=Graphics.FromImage(objBitMap);//在这行出错System.Drawing.Penpen=newSystem.Drawing.Pen(Brushes.Blue,1);//lineobjGraphis.DrawLine(pen,0,0,50,50);
以下为报错内容:"AGraphicsobjectcannotbecreatedfromanimagethathasanindexedpixelformat."由于后面算法要求bitmap格式为Format8bppIndexed,请问各位有没有在8位bitmap上画直线或者圆的方法。试过先在Format32bppArgb格式下画,再转为Format8bppIndexed,但是图像失真太严重。
解决方案
本帖最后由 yaoxiaofei1220 于 2015-11-17 15:11:55 编辑
解决方案二:
如果说你图片都不保存用32画和8画又有什么区别?。。反正在内存中都是以rgb的形式存在的
解决方案三:
搜索你那个错误的原文,原因和答案都在那里了
解决方案四:
引用1楼crystal_lz的回复:
如果说你图片都不保存用32画和8画又有什么区别?。。反正在内存中都是以rgb的形式存在的
图像是要不存下来后,再算法处理,所以要求要8画的
解决方案五:
引用2楼xdashewan的回复:
搜索你那个错误的原文,原因和答案都在那里了
查过了,都是在32画下进行绘图的,这样的话保存下来的图像文件也是32位,但是算法处理需要8位图像
时间: 2024-09-22 18:10:38