写成你的代码:
Bitmap:=TBitmap.Create;
Bitmap.PixelFormat:=pf24Bit;
Bitmap.Handle:=BHandle;
//Bitmap.PixelFormat:=pf8bit;
BitMap.SaveToStream(BmpStream);
BmpStream.Position:=0;
LeftSize:=BmpStream.Size;
....
jpg := TJPEGImage.Create;
Jpg.assign(bitmap);
jpg.SaveToFile('temp.jpg');//就是jpg格式
jpg.Free;
Bitmap.Free;
2.
image1.Picture.LoadFromFile('temp.jpg')别忘了加入jpeg单元
RightPos,BottomPos:integer);
var
RectWidth,RectHeight:integer;
SourceDC,DestDC,Bhandle:integer;
Bitmap:TBitmap;
jpg1,Jpg:TJpegImage;
begin
RectWidth:=RightPos-LeftPos;
RectHeight:=BottomPos-TopPos;
SourceDC:=CreateDC('DISPLAY','','',nil);
DestDC:=CreateCompatibleDC(SourceDC);
Bhandle:=CreateCompatibleBitmap(SourceDC,
RectWidth,RectHeight);
SelectObject(DestDC,Bhandle);
BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC,
LeftPos,TopPos,SRCCOPY);
Bitmap:=TBitmap.Create;
Bitmap.Handle:=BHandle; jpg:=TJpegImage.Create;
jpg1:=TJpegImage.Create;
jpg1.Assign(BitMap);
jpg1.SaveToFile('c:\2211.jpg');
jpg.LoadFromFile('c:\2211.jpg');
jpg.SaveToStream(BmpStream);
BmpStream.Position:=0;
LeftSize:=BmpStream.Size;
Bitmap.Free;
Jpg.Free;
jpg1.Free;
DeleteDC(DestDC);
ReleaseDC(Bhandle,SourceDC);
end;这样抓到的图象是空的,2211.jpg文件是0K
这里存为文件的时候可以指定分辨率吗?
property PixelFormat: TJPEGPixelFormat;}自己看DEMO,写的很好。Borland\delphi5\help\examples\jpeg