在 Format8bppIndexed 格式的 Bitmap 上画直线和圆 出错,求高手

问题描述

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

在 Format8bppIndexed 格式的 Bitmap 上画直线和圆 出错,求高手的相关文章

怎么用ARCGIS画一张校园地图~~求高手指点~~最好带详细步骤~

问题描述 怎么用ARCGIS画一张校园地图~~求高手指点~~最好带详细步骤~ 解决方案 解决方案二:没有原始数据,谁能画出来,真心牛逼,要是只有ArcGIS就能画出来某个地方的地图,那搞测绘的不早失业啦.解决方案三:建议使用Mapinfo来做,从百度地图或谷歌地图的卫星图上下个卫星图,然后用mapinfo配准后,自己画吧,电子地图也就是这样做出来的解决方案四:过来参观学习,是这样做出来的解决方案五:你可以在百度或者高德地图上截取一张你学校的地图,然后再在arcmap里进行矢量化,前提是你只需要你

在qt5 pieview中画条形图,有代码 求高手讲解一下,急求!!!!!

问题描述 在qt5 pieview中画条形图,有代码 求高手讲解一下,急求!!!!! #include "pieview.h" #include PieView::PieView(QWidget *parent) : QAbstractItemView(parent) { } void PieView::paintEvent(QPaintEvent *) { QPainter painter(viewport()); painter.setPen(Qt::black); int x0=

求教 怎么样才能在bitmap上画带cleartype的文本

问题描述 g=Graphics.FromImage(bmp)'ClearTypeg.PixelOffsetMode=Drawing2D.PixelOffsetMode.HighQualityg.TextRenderingHint=Drawing.Text.TextRenderingHint.ClearTypeGridFitg.SmoothingMode=Drawing2D.SmoothingMode.HighQualityg.DrawString(text,_font,NewSolidBrush

web页面里一个图片上画直线

问题描述 如题:我数据库里存的有:卡号,卡所在的位置(即信号站).卡是分配给某一个人的,然后人移动,卡的信号就会变,也就是卡的位置在变.这个时候对应的信号站就变了.我要在信号站上显示卡的信息.每天的某一时刻我要生成一个图,就是卡经过的位置,用线标注.请问谁有什么思路没有? 解决方案 解决方案二:楼主看看flex相关的知识,flash去做绘制线路这块,至于点点之间的位置需要服务端提供坐标信息至flash上.解决方案三:flash或者SL实现

java画直线被其他panel遮挡,寻求解决

问题描述 java画直线被其他panel遮挡,寻求解决 我在主panel上画直线,但是一部分直线被主panel上的子panel给遮住了,我把子panel设置成透明也不行,求解决方案,多谢 解决方案 把布局换成边界布局~~

WORD中如何在相交的直线交点上画上圆点

问题:WORD中如何在相交的直线交点上画上圆点?有没有什么工具能够实现? 解答:先选中画贺工具.把鼠标的指针尖放在两条相交的直线的交点上然后按住Ctrl和Shift键就可以画出圆点.最好是放大来画这样会更精确. 其中Ctrl的作用是从中心向外扩散.要是画直线,会从线中心同时向两边扩展.Shift键的作用是画正圆.正方形用的.也能画出以45度角的直线.你可以试一下.

编程-想在窗口客户区上画很多条直线,该怎么做?

问题描述 想在窗口客户区上画很多条直线,该怎么做? 当我画完一条线后准备要画下一条线时,这条线消失了,有没有什么办法把刚画完的直线留下来,我想在这窗口上画很多条直线,如何修改代码才能实现? 解决方案 那个InvalidateRect()函数,最后一个参数写NULL就好了. 解决方案二: 弄一个数据结构,譬如数组,把每次画线的坐标存储起来,然后在PAINT中需要绘画的是每根直线

Photoshop用直线工具画直线后怎样设置直线由淡到浓的渐变

  Photoshop用直线工具画直线后,设置直线由淡到浓的渐变的具体方法如下: 1.把它变成选区,填充渐变色,选前景色到渐变透明. 2.在直线上添加蒙版,用羽化喷枪把尾部喷淡,也可达到由淡到浓的渐变. 分类: PS入门教程

imageview-Android中点击ImageView 如何知道 点击坐标是否在控件中的Bitmap上

问题描述 Android中点击ImageView 如何知道 点击坐标是否在控件中的Bitmap上 如题,imageview的onTouchEvent事件中获得点击坐标,但是view中的bitma并不是和imageview等大小的,而且用矩阵将Bitmap动态旋转.缩放了,想要知道点击的坐标是否位于bitmap上.目前的解决方案是,获取坐标点的Imageview的颜色值,看那是否登录0,但是Imageview点击获取颜色值有点卡,体验不好.我想应该可以用数学的方法来解决这个问题的.希望大神们帮助一