我用下面的语句将image1里面选择的矩形区域的图像拷贝到image2中
image2.Canvas.CopyRect(rect1,image1.Canvas,rect2);
image2中只显示矩形选择框中的图像区域,然而在后续处理中,不能将image2中显示的矩形区域当bitmap使用
(30分)
  
我在image1中选择举行区域的时候图像出现闪烁,且矩形区域的选择不能想windows画图里面那样,
画的时候出现许多矩形,而我只想要最后画的那个矩形.(70分)

解决方案 »

  1.   

    >>不能将image2中显示的矩形区域当bitmap使用
    訪問 image2.picture.graphic
      

  2.   

    LockWindow(..);LockWindow(NIL);or Invalidate;
      

  3.   

    闪烁问题:
    如果你的Image1是直接放在Form1上的,Form1.DoubleBuffered:=true;建议将Image1放到一个Panel1上,Panel1.DoubleBuffered:=true;
      

  4.   

    我想你应该是用 Canvas.DrawFocusRect 画矩形框这个函数采用了XOR方法,也就是你在同样的 Rect 上画两次,第一次的矩形框就没有了
      

  5.   

    关于存储矩形选择框的部分的问题:
    建议使用一个TBitMap对象var
     Form1: TForm;
     myBmp: TBitMap;....
     myBmp:= TBitMap.Create;然后就可以用了,比Image控件肯定方便,用完了别忘了 myBmp.Free;
      

  6.   

    设置DoubleBuffered。解决闪烁问题。