1.将大图用二进制流的方式读取到内存中,然后对读取的字节数进行计数,分成10块,然后把每块输出保存为bmp文件.
2.用图像操作,整副读取位图,用BitBlt将图分成10块,然后保存为小图文件.
不知道这两种方法可行否,请给出代码,谢谢.
5 个解决方案
#1
将位图分块
http://www.cnblogs.com/strinkbug/archive/2007/02/15/651212.html
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]++ ;
}
}
................
其它分块类似直接做下去就可以了.
这里只给出了实现你要求的主要部分.
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
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]++ ;
}
}
................
其它分块类似直接做下去就可以了.
这里只给出了实现你要求的主要部分.
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里面没有