Foxtable(狐表)用户栏目专家坐堂 → 图片剪切


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

主题:图片剪切

美女呀,离线,留言给我吧!
漂亮美眉vszh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:869 积分:7854 威望:0 精华:0 注册:2013/5/30 11:27:00
图片剪切  发帖心情 Post By:2020/7/9 15:15:00 [只看该作者]

老师:在FOXTABLE内画了一个图,然后另存在一个图片,后续此图片会粘贴至EXCEL内,但图片太长了,需要用代码剪掉一部分,代码如何写?
图片点击可在新窗口打开查看此主题相关图片如下:1234.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:106017 积分:539172 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/9 15:32:00 [只看该作者]

Dim file As String = "E:\问题\123.png"
Dim img As Image = getimage(file)
Dim bmpOut As new Bitmap(290, 185, PixelFormat.Format24bppRgb) '290为裁剪区域宽度,185为高度
Dim myGraphics As Graphics = Graphics.FromImage(bmpOut)
myGraphics.Clear(Color.White)
myGraphics.DrawImage(img, new Rectangle(0, 0, 290, 185), new Rectangle(270, 100, 290, 185), GraphicsUnit.Pixel) '270为原图需要裁剪的区域的左边距,100为上边距
myGraphics.Dispose()
bmpOut.Save("E:\问题\123_1.png")

 回到顶部
美女呀,离线,留言给我吧!
林月
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:18 积分:253 威望:0 精华:0 注册:2021/8/10 17:38:00
  发帖心情 Post By:2021/8/11 6:49:00 [只看该作者]

这个代码应该是按照指定宽度290,指定高度185来裁剪的。 那要是想宽与高比例4:3剪切呢,如何操作呢 这里就会出现两种情况,一种是宽比高度大,就应该是以高度为标准按照三分之四倍确定宽度的值。 另外一种宽度比高度小,那就是以宽度的四分之三确定高度的值,不知道代码怎么实验,好像我的思路有点复杂,请老师指点
[此贴子已经被作者于2021/8/11 6:55:35编辑过]

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


加好友 发短信
等级:超级版主 帖子:106017 积分:539172 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/11 8:41:00 [只看该作者]

先比较宽度和高度,如果宽大,就按比例计算高度;否则按比例计算宽度

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


加好友 发短信
等级:童狐 帖子:241 积分:2569 威望:0 精华:0 注册:2018/1/11 14:52:00
  发帖心情 Post By:2021/8/11 9:22:00 [只看该作者]

以这个代码为例,我们如何获取get到图片的宽度和高度,new Rectangle这里第一、二个参数270、100如何设置,是留空吗?



Dim file As String = "E:\问题\123.png"
Dim img As Image = getimage(file)

                                                             ‘如何获取宽度?
                                                             ‘如何获取高度?

Dim bmpOut As new Bitmap(290, 185, PixelFormat.Format24bppRgb) '290为裁剪区域宽度,185为高度
Dim myGraphics As Graphics = Graphics.FromImage(bmpOut)
myGraphics.Clear(Color.White)
myGraphics.DrawImage(img, new Rectangle(0, 0, 290, 185), new Rectangle(270, 100, 290, 185), GraphicsUnit.Pixel) '270为原图需要裁剪的区域的左边距,100为上边距
myGraphics.Dispose()
bmpOut.Save("E:\问题\123_1.png")

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


加好友 发短信
等级:超级版主 帖子:106017 积分:539172 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/8/11 9:25:00 [只看该作者]


 回到顶部