各位师兄你们请帮看看:
  打开图像后,用鼠标圈定所要切割的部分图像,然后将切下来的该图像生成一幅新图像。用于面积测量计算
具体算法我知道大概了  定义一个和要处理的图一样大小的图(名字就叫图2吧)->先把图2的背景画成黑色 各个色素位为0(CBrush(RGB(0,0,0)->FillRect把图在内存中染黑)  
然后中间要抠出的部分在图2中相应范围定义为白色(各个色素位为1)方法如下(CBrush(255,255,255)->定义区域待处理区域CRgn范围... 用FillRect把待处理区域染白)
然后和原图像进行与运算  因为像素值为零的地方与运算后结果为零就被处理掉了  但值为1的地方与运算后  就被保留下来了   进而对其进行面积计算的算法进行计算   直接切割我更没谱 如哪位前辈有此程序和相关建议,请不吝指教,恳请尽快答复!小弟感激不尽!!!
最好要可以运行的源代码 我才学vc的狠菜时间又急我来不及摸索了!!!!!!!!!!    先给50解决了好说....还给加分  急死了

解决方案 »

  1.   

    我找到了明白了图形区域切割的方法但它的里面对图形的去留都是用
    dc.BitBlt((0),(0),nWidth,nHeight,&memDCBack,0,0,SRCAND);对屏幕上的窗体区域进行与运算和掩码来实现的  有什么方法对内存中的bmp进行类似的运算?
    请教了各位师兄.
      

  2.   

    这个好像不象你说得那么复杂吧首先你有要切割的坐标范围,然后生成一个相应范围的HBITMAP,通过BitBlt将相应范围的原图copy过去,最后把新生成的HBITMAP保存到文件,就可以了用得着你的黑白黑白的填充嘛?
      

  3.   

    内存中的bmp是什么?不是HBITMAP句柄?
      

  4.   

    师兄您的意思是dc.BitBlt((0),(0),nWidth,nHeight,&memDCBack,0,0,SRCAND);里的&memDCBack可以是HBITMAP 详细些好吗 我刚学vc很菜 所以最好有代码说说我才可能搞得清?可以给我您的oicq号码吗现在这个样子解决起来太慢了我很急