vb6.0 怎么把纯文本框里面的内容保存为图片
vb吧
全部回复
仅看楼主
level 1
睡了阿兰 楼主
这段代码 把整个vb窗体都保存为图片了 包括标题栏和菜单栏 我如果只想把文本框里的音符内容 保存为简谱图片 要怎么做呢
2022年03月10日 08点03分 1
吧务
level 14
如果窗口在前台的话,不妨试试全屏幕截图,然后再根据文本框的位置裁剪图片
2022年03月10日 23点03分 2
level 11
Private Sub Command1_Click()
Dim hCDC&
Dim dwW&, dwH&
hCDC = GetDC(tb.hWnd)
dwW = 网页链接
dwH = 网页链接
With pb
.Width = dwW
.Height = dwH
End With
Call BitBlt(pb.hDC, 0, 0, dwW, dwH, hCDC, 0, 0, vbSrcCopy)
pb . refresh
Call SavePicture(pb.Image, "d:\test.bmp")
End Sub
2022年03月11日 01点03分 6
tb为TextBox, pb为PictureBox, Form缩放设为3 - Pixel, pb自动重绘设为真, 至于那两个被**搞成网页链接的分别为tb的width和height属性
2022年03月11日 01点03分
这个仅供参考,有一定缺陷,比如保持tb显示部分图片,另,两个API在API管理器找到复制声明进来就可以了
2022年03月11日 01点03分
level 1
睡了阿兰 楼主
我把你发的代码 截图发上来 不会知道会不会被删
2022年03月11日 01点03分 7
level 11
算了,我发了4次了,发不出来,思路也说了
通过TextBox的hWnd句柄,获取TextBox的hDC句柄
然后就TextBox的hDC上内容绘制到PictureBox的hDC上
最后通过SavePicture函数保存图片
2022年03月11日 02点03分 10
谢谢 懂了 有了思路 就好办了
2022年03月11日 02点03分
level 1
睡了阿兰 楼主
我用大佬的代码 试了一下 保存的图片是空白 不知道怎么回事
2022年03月11日 02点03分 11
PictureBox的AutoRedraw设为真
2022年03月11日 02点03分
@余思培 Picture1.AutoRedraw = True 加上这句代码 就行了 谢谢 我已经从谷歌找到答案了 不过还是要要谢谢你
2022年03月11日 02点03分
level 1
睡了阿兰 楼主
回复 #(reply,tb.1.28ca8f12.6AeFjmBPXCiYPZrlEsPLyA,余思培) :Picture1.AutoRedraw = True 加上这句代码 就行了 谢谢 我已经从谷 歌找到答案了 不过还是要要谢谢你
2022年03月11日 02点03分 12
level 13
我来说下GetDC,记得GetDC后ReleaseDC下,否则会导到内存泄漏(反复多次调用GetDC,不释放就会发现程序占的内存越来越多)
2022年03月11日 02点03分 14
谢谢 我把ReleaseDC这句代码 加上
2022年03月11日 03点03分
level 1
睡了阿兰 楼主
这样好像还是不行 picturebox在下面 textbox在上面 貌似就是两者的宽和高不一样
2022年03月11日 03点03分 15
所以我的代码中有两句是设置picturebox的宽和高的,对了,记得Form的缩放设为3 - Pixel
2022年03月11日 03点03分
@余思培 谢谢 这样还是不行 差一点
2022年03月11日 03点03分
level 1
睡了阿兰 楼主
我把窗体的scalemode设为3 也不行 保存的图片有多余的边 最重要的 保存的图片有185MB 无法正常上传 我只能把图片用画板打开 截图并上传上来
2022年03月11日 03点03分 16
保存大小......你电脑这么高分辨率?8k*9k?你把图片分辨率调整一下,再保存为png或jpge格式会小很多
2022年03月11日 03点03分
@余思培 同一台电脑 我用我原来的代码 保存的图片 只有804kb 我用你的代码 保存的图片就有158mb 不知道怎么回事 同样的问题 行数保存不全 只能保存textbox里面的 后面几行都没了
2022年03月11日 03点03分
level 1
睡了阿兰 楼主
还有我写了15行 保存图片 只能保存到11行 最后几行 没了 不能像滚动条那样 保存全了
2022年03月11日 03点03分 17
level 11
这个保存不全,只能textbox显示的部分,如果你要完整的,可以考虑自己写一个控件
2022年03月11日 03点03分 18
谢谢大佬 我再查查资料
2022年03月11日 03点03分
level 1
睡了阿兰 楼主
同一台电脑 我用我原来的代码 保存的图片 只有804kb 我用你的代码 保存的图片就有158mb 不知道怎么回事 同样的问题 行数保存不全 只能保存textbox里面的 后面几行都没了
2022年03月11日 03点03分 19
上面说了,画图编辑,调整大小,另存为PNG/jpge,我保存的BMP是对图像数据不压缩的,另外获取HDC后,不必要通过picturebox中转,可以通过一系列技术手段直接保存为png或BMP,但是我不会,所以我示例的代码就是上述这样,后面也说了仅供参考
2022年03月11日 04点03分
level 11
你的这个需求,核心解决主要有两个方向:
1.自绘,不一定是控件,你计算好字体大小、布局等等,创建一个兼容DC直接用TextOut绘制,然后保存图片
2.获取TextBox的hDC,然后保存hDC上的图像数据,无论是通过picturebox还是利用GDI/GDI+都是这条思路
至于图片保存后,大小等问题都好解决(只要最终不保存为bmp,图片大小不会很大,因为图片上颜色很少,能够压缩到很小)
2022年03月11日 04点03分 20
至于保存不全......用第二种思路是基于TextBox的hDC的,TextBox也只绘制需要显示的那部分,没有显示的部分在需要显示的时候才进行绘制(不然对内存的占用,对于处理器时间片的占用都太大了),解决方案也有几个:1.直接用第一种方式绘制,2.逐页绘制,最后在保存,3.控制SCR的基础上,结合思路2绘制保存
2022年03月11日 04点03分
level 5
调用API 句柄截图保存
2022年03月11日 15点03分 21
1 2 尾页