C#下PICTRUEBOX拖动残影,双缓存无效!——接( 图像处理(旋转)_基于EMGUCV(一))

如题,接本人前文!


图像处理(旋转)_基于EMGUCV(一)中的内容,模板匹配后将模板图旋转,旋转后生成新的PNG(旋转多出的部分透明)载入新的picturebox,然后这个picturebox显示在底图上方,设置其parent为底图。

                this.pictureBox当前图像_系统标定_显示模板图.Parent = this.pictureBox当前图像;

随后:PictureBox当前图像_系统标定_显示模板图_MouseMove时间中重定义Location达到鼠标跟随的效果。

但会发生的问题是,透明的部分会有很严重的流动视觉效果,就像火焰上方的空气一样,透明部分会残留底图的纹路。

设置整个Form的 this.DoubleBuffered = true;(单独的PictureBox没有这个属性),即双缓存开启后效果依旧不好。

最终尝试先放空控件内图,拖动到位置后重新载入的方式解决:

                    this.pictureBox当前图像_系统标定_显示模板图.Image = null;
                    this.pictureBox当前图像_系统标定_显示模板图.Location = picLayerLocation;
                    this.pictureBox当前图像_系统标定_显示模板图.Image = t_newBitmap2;
                   

以上,解决了扭曲的问题,但拖动后会新产生残影的问题(四个角)!

有更好的解决办法的高手,期待指教。

新开博客,目的为学习交流,本人QQ:273651820。

猜你喜欢

转载自blog.csdn.net/qq_26996385/article/details/79303403