打开一bmp/jpg图片用image来显示出来,然后用鼠标在图片中选择一定的区域,然后将所选择区域中的图片保存为bmp/jpg文件。应用:某程序要用到一些图片,但图片中边框太大,想通过鼠标选择区域来取所需要的图片内容并保存为图片文件。

解决方案 »

  1.   

    Procedure TForm1.PictureIt;
    Var
      LeftX,LeftY,Width,Height:Integer;  FTempCanvas:TCanvas;
      FTempImage:TBitMap;
    Begin
      FTempCanvas := TCanvas.Create;
      FTempImage := TBitMap.Create;  FTempCanvas.Handle := GetDC(Image1.Handle);
      FTempImage.Width := Width;
      FTempImage.Height := Height;
      FTempImage.Canvas.CopyRect(Rect(LeftX, LeftY, FTempImage.Width, FTempImage.Height),FTempCanvas, Rect(0, 0, Width,Height));  //...加入保存图像的代码【复制或另存为】  TempImage.Free;
      ReleaseDC(0,TempCanvas);
      TempCancas.Free;
    End;
      

  2.   

    Procedure TForm1.PictureIt;
    Var
      LeftX,LeftY,Width,Height:Integer;  FTempCanvas:TCanvas;
      FTempImage:TBitMap;
    Begin
      FTempCanvas := TCanvas.Create;
      FTempImage := TBitMap.Create;  FTempCanvas.Handle := GetDC(Image1.Handle);
      FTempImage.Width := Width;
      FTempImage.Height := Height;
      FTempImage.Canvas.CopyRect(Rect(LeftX, LeftY, FTempImage.Width, FTempImage.Height),FTempCanvas, Rect(0, 0, Width,Height));  //...加入保存图像的代码【复制或另存为】
      //FTempImage.SaveToFile('C:\abc\cba\img1.bmp');  FTempImage.Free;
      FReleaseDC(0,TempCanvas);
      FTempCancas.Free;
    End;