Foxtable(狐表)用户栏目专家坐堂 → 如何保持截剪框比例


  共有2356人关注过本帖树形打印复制链接

主题:如何保持截剪框比例

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/15 21:16:00 [显示全部帖子]

添加一个图片框,控件宽高比例保持两寸照比例3.4:5.2。然后添加图片,运行窗口,可以使用鼠标移动图片合适的位置,再截图。可以通过按钮放大缩小图片

窗口afterlload
dim d as double = 1
vars("w")= d

放大按钮
Dim pic As WinForm.PictureBox = e.Form.Controls("PictureBox1")
pic.Image = Nothing
Dim file As String = "D:\1.png"
Dim img As image = getimage(file)
Dim w As Integer = img.width * vars("w")
vars("w") += 0.5 '放大倍数自己控制
Dim bmp As bitmap
bmp = new bitmap(img, w, w * (img.height / img.width))
pic.Image = bmp

缩小按钮
Dim pic As WinForm.PictureBox = e.Form.Controls("PictureBox1")
pic.Image = Nothing
Dim file As String = "D:\1.png"
Dim img As image = getimage(file)
Dim w As Integer = img.width * vars("w")
vars("w") -= 0.5
Dim bmp As bitmap
bmp = new bitmap(img, w, w * (img.height / img.width))
pic.Image = bmp

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/15 22:23:00 [显示全部帖子]

这种情况没有办法控制。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/16 9:34:00 [显示全部帖子]


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/16 15:52:00 [显示全部帖子]

如果是使用6楼的用法,直接照抄确定按钮代码即可

如果是其它方法,一样还是使用一楼的方式打开截图,然后根据红框的范围选择不就行了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/17 20:36:00 [显示全部帖子]

请上传可以测试的实例

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/17 20:56:00 [显示全部帖子]

我也不懂。建议还是使用截图处理。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 9:31:00 [显示全部帖子]

截图按钮

Dim Lineleft As WinForm.Line = e.Form.Controls("Lineleft")
Dim Linetop As WinForm.Line = e.Form.Controls("Linetop")
Dim Lineright As WinForm.Line = e.Form.Controls("Lineright")
Dim Linebottom As WinForm.Line = e.Form.Controls("Linebottom")
Dim PictureBox5 As WinForm.PictureBox = e.Form.Controls("PictureBox5")
Dim point As Point = e.Form.panel.PointToScreen(new point(Lineleft.Left+10,Lineleft.Top))

Lineleft.Visible = False
Linetop.Visible = False
Lineright.Visible = False
Linebottom.Visible = False
Application.Doevents

Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(Linetop.Width, Lineleft.Height) '截取的大小
Dim bit As New Bitmap(s.Width, s.Height , myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x, point.y, 0, 0, s) '截取的开始位置,坐标(100, 200)
bit.save(ProjectPath & "123.jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose
Application.Doevents
e.Form.Controls("PictureBox2").image = getimage(ProjectPath & "123.jpg")


Lineleft.Visible = True
Linetop.Visible = True
Lineright.Visible = True
Linebottom.Visible = True

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/18 20:13:00 [显示全部帖子]

图片压缩后在放入box5

 回到顶部