如题,在VB工程中的Form中添加一个图片框Pic,然后加载图片,然后使用
hRgn = CreateRoundRectRgn(0, 0, pic.width, pic.height, pic.height*0.3, pic.height*0.3)
SetWindowRgn Pic.hWnd, hRgn, True
将图片框Pic裁剪为圆角矩形,然后使用
ImgData = GetWindowBmp(Pic, Pic.hWnd, BITMAPINFO, 32&) 
获取Pic窗口上显示的位图数据保存入数组ImgData()中,然后再将数组数据再写入Pic中,
SetDIBits 0, Pic.Image, 0, BITMAPINFO.bmiHeader.biHeight, ImgData(0), BITMAPINFO, BI_RGB
最后再保存 SavePicture Pic.image,app.path & "\test.bmp"有趣的事情发生了:如果所加载的图片文件的尺寸小于等于pic的尺寸,则保存出来的为圆角矩形图像;但当所加载的图片文件的尺寸大于pic的尺寸或者大于屏幕的尺寸之后,或者将pic隐藏之后,则保存出来的图像,要么是一片黑,或者多出黑边区域,或者将屏幕中本来不属于pic中的内容也一起保存起来了。
如何才能确保在图片尺寸大于图片框的尺寸,或者图片框处在隐藏状态下,能完整准确地保存圆角矩形裁剪后的图像呢?我有工程实例,想研究的朋友,留下联系方式,我发给你看看。
vb 图像 裁剪 保存图像