您的位置:程序门 -> vc/mfc -> 图形处理/算法



图象输出的问题???谢谢。急急急急急~~~~~


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


图象输出的问题???谢谢。急急急急急~~~~~
发表于:2007-05-22 20:44:06 楼主
我想讲讲的困惑。
是这样的。我的目的是对读入的图象进行处理然后输出到view窗口中。

由于应该的需要,我将读入的图象数据按象素寸放在自己建二维的二维数组中了,经过一系列的缩放处理后,产生了新的图象数据,此时保存象素数据的是另外一个二维的数组(仅仅是二值的数据,1为黑,0为白)。

现在的问题是如何对这些数据进行显示呢?
我的想法有一、将图象数据重新写入读入的图象文件中(但是我不需要最后保存图象,而且也不知道如何写,知道的提下建议啊);二、直接将图象数据以类似setpixel()的方式在view中绘制出图象,但是又苦于不知如何在view中绘制。


希望大家给我出点建议!谢谢大家了。
发表于:2007-05-22 21:12:141楼 得分:0
是显示黑白图象?
发表于:2007-05-22 21:23:572楼 得分:0
是的,
就是黑白的。

我不知道如何在view上输出。
发表于:2007-05-22 22:39:113楼 得分:0
一个像素一个像素的画?
可以这样:
1   黑色:创建黑色的画笔,画一个点
0   白色:创建白色的画笔,画一个点
发表于:2007-05-22 22:39:424楼 得分:0
通过重载ondraw()
发表于:2007-05-23 08:48:165楼 得分:0
根据图象宽度和高度构建bitmap,并将行数据2字节对齐:例如
void   csingledocview::ondraw(cdc*   pdc)
{
static   bitmap   bitmap   =   {   0,   4,   4,   2,   1,   1   }   ;//4行4列
static   byte     bits   []               =   {0xaa,   0xaa,   0x55,   0x55,   0xaa,   0xaa,   0x55,   0x55     }   ;
// static   bitmap   bitmap   =   {   0,   2,   2,   2,   1,   1   }   ;//2行2列
// static   byte     bits   []               =   {0x80,   0x00,   0x40,   0x00     }   ;

static   hbitmap   hbitmap   ;
static   int           cxsource,   cysource   ;
hdc                         hdcmem   ;

bitmap.bmbits   =   bits   ;
hbitmap   =   createbitmapindirect   (&bitmap)   ;
cxsource   =   bitmap.bmwidth   ;
cysource   =   bitmap.bmheight   ;

hdcmem   =createcompatibledc   (*pdc)   ;
selectobject   (hdcmem,   hbitmap)   ;

stretchblt   (*pdc,   0,   0,   50,   50,   hdcmem,   0,   0,   cxsource,   cysource,   srccopy)   ;
deletedc   (hdcmem)   ;
}


快速检索

最新资讯
热门点击