【1】请问如何让这个窗体读取根目录下的bmp文件并显示到该窗体的picture框中
(条件是0.2秒读一次)
【2】窗体中有一副400×300的图片,请问如何点击一个按钮实现将该图片的中间例如从x=100,y=100象素开始,向右下角的【长=250】【高=100】的图片截取并保存成根目录下的一个bmp文件??
┌─────────────┐
│ │
│ ┌─────────┐│
│ │ ││
│ │ B图 ││
│ │ ││
│ └─────────┘│
│ │
│ A图 │
└─────────────┘
(条件是0.2秒读一次)
【2】窗体中有一副400×300的图片,请问如何点击一个按钮实现将该图片的中间例如从x=100,y=100象素开始,向右下角的【长=250】【高=100】的图片截取并保存成根目录下的一个bmp文件??
┌─────────────┐
│ │
│ ┌─────────┐│
│ │ ││
│ │ B图 ││
│ │ ││
│ └─────────┘│
│ │
│ A图 │
└─────────────┘
2。GZ
愿意帮忙:QQ:22715859
{
CBmpDoc* pDoc = GetDocument();
BYTE * pBuffer,* temp;
CFile bmp;
bmp.Open ("*.bmp",CFile::modeRead)
bmp.Read (&(pDoc->bmpHeader_Source),14);
bmp.Read (&(pDoc->infoHeader_Source),40);
bmp.Seek(pDoc->bmpHeader_Source.bfOffBits ,CFile::begin);
pBuffer = new BYTE[pDoc->bmpHeader_Source .bfSize - pDoc->bmpHeader_Source .bfOffBits ];
bmp.Read (pBuffer,
pDoc->bmpHeader_Source .bfSize - pDoc->bmpHeader_Source .bfOffBits );
temp = pBuffer;
bmp.Close (); bmpInfo.bmiHeader = pDoc->infoHeader_Source ;
CClientDC dc(this);/////建立客户区
int x ,y;
int r,g,b;
for(y=239 ;y>=0;y--)
for( x = 0;x<320;x++)
{
r = * temp;
g = * (temp + 1);
b = * (temp + 2);
temp = temp + 3;
pDoc->bmpRGB [x][y][0] = r;
pDoc->bmpRGB [x][y][1] = g;
pDoc->bmpRGB [x][y][2] = b;
pDoc->bmpSource [x][y] = (r+ g+ b)/3;
dc.SetPixel (x+100,y+100,
RGB(pDoc->bmpRGB [x][y][0],
pDoc->bmpRGB [x][y][1],
pDoc->bmpRGB [x][y][2]));
}
}第二个问题只需对temp截取就可。