注册 登录
编程论坛 Delphi论坛

图片的放大和缩小问题

Evenchao 发布于 2013-03-28 21:32, 902 次点击
//放大
    if MImageBoolean = true then
    begin
      SetStretchBltMode(ImagePaint.Canvas.Handle,STRETCH_DELETESCANS);//防止图片严重损失
      StretchBlt(ImagePaint.Canvas.Handle, ImagePaint.Left, ImagePaint.Top, ImagePaint.Width * 2, ImagePaint.Height * 2, ImagePaint.Canvas.Handle, ImagePaint.Left, ImagePaint.Top, ImagePaint.Width , ImagePaint.Height, SRCCOPY);
      ImagePaint.Refresh;
    end
    else
    begin
       //还原图片大小
      SetStretchBltMode(ImagePaint.Canvas.Handle,STRETCH_DELETESCANS);//防止图片严重损失
      StretchBlt(ImagePaint.Canvas.Handle, ImagePaint.Left, ImagePaint.Top, ImagePaint.Width, ImagePaint.Height, ImagePaint.Canvas.Handle, ImagePaint.Left, ImagePaint.Top, ImagePaint.Width * 2, ImagePaint.Height* 2, SRCCOPY);
      ImagePaint.Refresh;
      ImagePaint.Repaint;
    end;
    MImageBoolean := not MImageBoolean;

按照这样写的话,当图片放大后,再把它缩小时,在画布上会显示放大的图片和缩小的图片(本来应该只显示缩小后的图片,结果放大后的那张图片也在画布上)。请教,该怎么处理?
2 回复
#2
wp2319572013-03-28 22:34
不太懂  先清空画布呢
#3
Evenchao2013-03-30 10:04
回复 2楼 wp231957
如果在缩小前,先清空画布的话,那么之前在画布上画的图形也就没有了,再缩小就什么都没有了。画布是空的
1