怎样将大bmp位图文件分成若干副bmp小位图文件

时间:2020-11-29 11:48:39
硬盘上有一副很大的bmp位图文件,我想把它按宽度等比例分成10副bmp小位图文件,不需要在前台显示,只保存在硬盘上即可.现在我考虑两种做法,不知道是否可行.
1.将大图用二进制流的方式读取到内存中,然后对读取的字节数进行计数,分成10块,然后把每块输出保存为bmp文件.
2.用图像操作,整副读取位图,用BitBlt将图分成10块,然后保存为小图文件.
不知道这两种方法可行否,请给出代码,谢谢.

5 个解决方案

#1


将位图分块 
http://www.cnblogs.com/strinkbug/archive/2007/02/15/651212.html

#2


谢谢老兄的两度回答,会及时给分的.

#3


工具条按钮上面的小图片就是从一张大的bmp拆分得,lz可以研究一下

#4


没你说的那么复杂,直接对图象分快就可以了,你看下我的5*5=25分快部分
这里只给出了实现你要求的主要部分.

       WORD Imgwidth = image.getWidth(); //得到关键图的宽度
       WORD Imgheight = image.getHeight(); //得到关键图的高度
                 RGBQUAD c;
BYTE r,g,b;
int x = 0;
int y = 0;
//关键图第一个分块
for(x=0; x<Imgwidth*3/5; x++)
{
  for(y=0; y<Imgheight*3/5; y++)
  {
   image.getPixelColor(x,y,&c);
   r = c.rgbRed;
    g = c.rgbGreen;
   b = c.rgbBlue;
   double H,S,V;
  RGB2HSV(r, g, b, H, S, V);
  int code = 16*H + 4*S + V;
  array.keycount1[code]++ ;
  }
}
................
其它分块类似直接做下去就可以了.

#5


getPixelColor这个函数怎么在bitmap里面没有

#1


将位图分块 
http://www.cnblogs.com/strinkbug/archive/2007/02/15/651212.html

#2


谢谢老兄的两度回答,会及时给分的.

#3


工具条按钮上面的小图片就是从一张大的bmp拆分得,lz可以研究一下

#4


没你说的那么复杂,直接对图象分快就可以了,你看下我的5*5=25分快部分
这里只给出了实现你要求的主要部分.

       WORD Imgwidth = image.getWidth(); //得到关键图的宽度
       WORD Imgheight = image.getHeight(); //得到关键图的高度
                 RGBQUAD c;
BYTE r,g,b;
int x = 0;
int y = 0;
//关键图第一个分块
for(x=0; x<Imgwidth*3/5; x++)
{
  for(y=0; y<Imgheight*3/5; y++)
  {
   image.getPixelColor(x,y,&c);
   r = c.rgbRed;
    g = c.rgbGreen;
   b = c.rgbBlue;
   double H,S,V;
  RGB2HSV(r, g, b, H, S, V);
  int code = 16*H + 4*S + V;
  array.keycount1[code]++ ;
  }
}
................
其它分块类似直接做下去就可以了.

#5


getPixelColor这个函数怎么在bitmap里面没有