| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 346 人关注过本帖
标题:VB6裁剪图片问题,求帮忙修改好
只看楼主 加入收藏
yuma
Rank: 10Rank: 10Rank: 10
来 自:银河系
等 级:青峰侠
威 望:3
帖 子:1271
专家分:1850
注 册:2009-12-22
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:3 
VB6裁剪图片问题,求帮忙修改好
我想把红方框裁剪并保存下来。但保存下来的总是有多余部分。



程序代码:
Private Sub Form_Load()
Me.Show
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
Picture1.Picture = LoadPicture("1.BMP")
Picture2.PaintPicture Picture1.Image, 0, 0, Picture1.Width, Picture1.Height, 1100, 0, Picture2.Width, Picture2.Height
sFile = "C:\" & Format(Now, "yyyymmddhhmmss") & ".BMP"
SavePicture Picture2.Image, sFile
MsgBox "当前屏幕图像已经保存到" & sFile, 64
End Sub




[此贴子已经被作者于2020-11-4 14:52编辑过]

附件: 游客没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: 保存 图片 VB6 裁剪 修改 
2020-11-04 13:02
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:104
专家分:570
注 册:2006-6-25
收藏
得分:20 
不知道你的裁剪是作什么的。
这样改试试看。
Picture2.PaintPicture Picture1.Image, 0, 0, 3475, 3255, 1100, 0, 3475, 3255
Picture2.Width = 3475
Picture2.Height = 3255

3475,3255是红色图形的大小,你保存的是picture2,所以,这个控件也要改变大小。
2020-11-05 09:41
yuma
Rank: 10Rank: 10Rank: 10
来 自:银河系
等 级:青峰侠
威 望:3
帖 子:1271
专家分:1850
注 册:2009-12-22
收藏
得分:0 
回复 2楼 cwa9958
我想问一下,前面一个3475, 3255,和后面的一个3475, 3255,分别代表什么意思?

前面的3475, 3250是不是必须的?

[此贴子已经被作者于2020-11-5 15:13编辑过]

附件: 游客没有浏览附件的权限,请 登录注册

心生万象,万象皆程序!   敲敲代码更健康!   
2020-11-05 12:06
cwa9958
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:104
专家分:570
注 册:2006-6-25
收藏
得分:0 
前面的数据是代表要在p2里显示的大小,后面的数据是要截取的大小。只要前面的数据大于后面的数据就可以。

你也可以用鼠标来截图。
代码实例:

程序代码:
Dim w1 As Integer, h1 As Integer

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    w1 = X
    h1 = Y

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

    Picture1.Cls
    If Button = 1 Then
        Picture1.Line (w1, h1)-(X, h1)
        Picture1.Line (w1, h1)-(w1, Y)
        Picture1.Line (X, h1)-(X, Y)
        Picture1.Line (w1, Y)-(X, Y)
    End If

End Sub

Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim w2 As Integer, h2 As Integer
    On Error Resume Next

    w2 = X - w1
    h2 = Y - h1
    
    Picture2.PaintPicture Picture1.Image, 0, 0, w2, h2, w1, h1, w2, h2
    Picture2.Width = Abs(w2)
    Picture2.Height = Abs(h2)
    
    Picture1.Cls

End Sub


[此贴子已经被作者于2020-11-6 08:20编辑过]

2020-11-06 07:58
快速回复:VB6裁剪图片问题,求帮忙修改好
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.082432 second(s), 8 queries.
Copyright©2004-2020, BCCN.NET, All Rights Reserved