怎样 将 Image2 所覆盖的 Image1 区域的曲线复制到 Image2上,拜托!!!(5分)

  • 主题发起人 主题发起人 philips
  • 开始时间 开始时间
P

philips

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序 是先在image1上画线, 当鼠标在Image1上拖动时,动态绘制巨型橡

皮线,松开鼠标后,确定了Image2的位置和大小,我将 Image2 所覆盖的

Image1区域的曲线复制到 Image2上, 然而,不能按照 Image2 的大小画线。

问题就是这样, 请大侠关注以下。拜托!!!


哪里有我想要的答案???我已倾家荡产了,Wu............
 
愿提前支付半年的分数(180分)
 
真可怜!!
 
philips: 怎么,为这个问题开了三个贴子呀!

用一个中间变量存放被image2覆盖的区域,当在image2上画图时调用
StretchDraw(),如image2改变大小再次用该方法从变量中调图。
StretchDrew(): 图象延伸改变大小以适应矩形.
 
to philips:

好消息,我已将你贴上代码转换在delphi上修改并测试通过了.
把Image1MouseUp事件中的
if( Image1->Canvas->Pixels[i+ileft][j+itop]!=clRed )
改为
if( Image1->Canvas->Pixels[i+image2->left][j+image2->top]!=clRed )

如想要image2的移动更新可在image2mousemove事件中
for a := 0 to image2.Width do
for b := 0 to image2.Height do
if (Image1.Canvas.Pixels[a + Image2.left, b + Image2.top] <>clred) then
Image2.Canvas.Pixels[a, b] := clGreen
else
Image2.Canvas.Pixels[a, b] := clRed;

不知显示效果符合你的要求吗?
 
我明晚12点多会来,如有问题在探讨 .
 

非常感谢您 Fudei 大侠 及来访众群侠,!!!

发了三个贴子,都为寻求答案!!!

你的方法我试过了,但不知您是否试过在后一次拖出比前一次更大的区域,

所绘图象和用鼠标拖动所确定区域大小相同吗?,每次在 Image2 内 所复

制的图象(这里是 所画的正玄曲线)和 Image1 上的形状完全相同(颜色

是人为设定与Image1上的 不同)吗? 好象有时会多出些,有时又少一些?

StretchDraw(): 是画位图的,在这里不知是否用的上?



 
to fudei:

可否将你的例程寄给我?

philip1@yeah.net
 
philips: 已寄出, 请查收.
 
这个问题已在另一贴中由 Dreamtiger解决。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
782
import
I
后退
顶部