如何在一image显示的图象里任意截取一块保存到另一image里

解决方案 »

  1.   

    我这有一段代码,应该有用.procedure ScreenCap(FileName: string);
    var
     RectWidth,RectHeight: integer;
     SourceDC,DestDC,Bhandle: integer;
     Bitmap:TBitmap;
    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,Screen.Width,Screen.Height,SourceDC,0,0,SRCCOPY);
     Bitmap:=TBitmap.Create;
     Bitmap.Handle:=BHandle;
     image1.Picture.Bitmap.Assign(bitmap);
     BitMap.SaveToFile(FileName);
     Bitmap.Free;
     DeleteDC(DestDC);
     ReleaseDC(Bhandle,SourceDC);
    end;
      

  2.   

    var r: TRect;
    begin
      r := Rect(50, 50, 100, 100);
      Image2.Canvas.CopyRect(r, Image1.Canvas, r);
    end;