vb 中用DIB 方法复制图像失败。在窗体中创建了picture1,picture2,以及command1.

vb 中用DIB 方法复制图像失败。在窗体中创建了picture1,picture2,以及command1.
按下command1后picture2应该显示的是picture1,但为何总是只显示屏幕的左上角的图像?代码后续
按下command1后期望picture2显示的是picture1的图像,但为何总是只显示屏幕的左上角的图像?如何修改?代码在我空间中《vb 中用DIB获取图像》。望高手指点迷津,谢谢!
我不知道你想实现什么样的效果,总之光从你描述的情况来看,用VB本身的功能就能实现啊,比如
Picture2.Picture = Picture1.Picture
或者
Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight
建议用第二陪友纳种方法,可以任意放大缩小图芦没像。

你的代码太长了,我没看完,估计是把屏幕的设备场景误作为Picture1的设备场景了。告早
如果没须要就别用DIB这个真不如GDIp的LockBitmap好用
原来你也看他的文章,那个代码除了那个调稿桐对比度的方法没问题外段肢其它的都有问题,先说第一个问题
在你握敬世SetDIBitsToDevice时可以调节图像的X,Y做坐的。
第一个是数组问题,这个问题骗了我好久,在你SetDIBitsToDevice时你会发现图像的边缘有一条黑边不知道你有没有发现
最后还有一点,当你做多次图像读取之后你会发现VB6.exe这个进程特别占用内存,而且无法释放,这是因为数组没有释放的原因。
DibGet这个过程的数组问题在这里
W = InPutWid + 1
H = InPutHei + 1
'+++++
I = (Bits / 8) - 1
ReDim ColVal(I, InPutWid, InPutHei)
当然,如果要改的话输出(DibPut)也要改。
← 上一篇: 下一篇: →