我已经在内存中新建了2个位图:
// 写文件头 
BITMAPFILEHEADER bfh1;
BITMAPFILEHEADER bfh2;
BYTE* pBit1
BITMAPINFOHEADER bih1;
BITMAPINFOHEADER bih2;
 pBit2
都有数据了,现在想合并(左右方式)到一个新的位图内存中去,并返回hbitmap.咋弄?能否就把她们合起来不另外开辟内存,而至今返回HBITMAP?

解决方案 »

  1.   

    好,
    如何根据已有信息:
    BITMAPFILEHEADER bfh1; 
    BITMAPFILEHEADER bfh2; 
    BYTE* pBit1 
    BITMAPINFOHEADER bih1; 
    BITMAPINFOHEADER bih2; 
    pBit2 构造HBitmap1,HBitmap2?因为我在内存中创建,没有cdc传进来哦。
      

  2.   

    1.首先你得确认这两个文件的像素格式是否一样,如果不一样要以其中一个为准,在合并的时候将另一个转化为标准.
    2.你是左右合并,需要确认两张图片的高度是否相同,如果不相同合并完成之后要以什么方法填充高度短的图片的缺少部分.
    3.计算出新图片所需内存大小,创建一个新的Bitmap对象.
    4.根据1和2的条件把两张图片的内容拷贝进去.注意,左右合并需要像素一行一行的拷贝,因为左右合并左边图片的每一行紧接着的是另一张的图片的象素,所以实际在内存排列的时候两张图片的像素在内存中是交替出现的
      

  3.   

    用bitblt需要DC参与,直接操作数据可以省掉很多麻烦