Foxtable(狐表)用户栏目专家坐堂 → [求助]picturebox控件显示成横向


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

主题:[求助]picturebox控件显示成横向

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
[求助]picturebox控件显示成横向  发帖心情 Post By:2019/3/26 21:55:00 [只看该作者]


老师,把图片经过压缩上传后,原竖向的图片会横向保存。原横向的图片不会变化。这个怎么解决呢
这是选择图片时是竖向图片,宽度小于高度

图片点击可在新窗口打开查看此主题相关图片如下:上传选择的图片是竖向的.png
图片点击可在新窗口打开查看

这是压缩代码
Dim file As String = "d:\test.jpg"
Dim img As image = getImage(file)
Dim bmp As bitmap
If img.width > 800 Then
    If 800 * (img.height / img.width) > 600 Then
        bmp = new bitmap(img, 800*(600/(800*(img.height/img.width))), 600)
    Else
        bmp = new bitmap(img, 800, 800 * (img.height / img.width))
    End If
End If
bmp.save("d:\缩略图.jpg")
bmp.Dispose
压缩后
保存的图片是横向的

图片点击可在新窗口打开查看此主题相关图片如下:选择图片压缩后就横向显示.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107648 积分:547549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/26 22:35:00 [只看该作者]

1楼代码我测试没有问题。是不是图片本来就是横的。上传图片测试

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/26 22:46:00 [只看该作者]

原始图片就是竖向的,我把原始图截图也上传了,第二张截图是压缩后显示的,就变成了横向的了

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107648 积分:547549 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/26 22:52:00 [只看该作者]

1楼的图片宽度不够800,使用1楼的代码不符合条件,不需要压缩。我把分辨率改大后测试没有问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/27 10:23:00 [只看该作者]

你加一个图片旋转的功能,即可,如

 

Dim bmp As New bitmap("d:\test.jpg")
bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)
bmp.save("d:\test2.jpg")

 

------------------

顺时针旋转90度     RotateFlipType.Rotate90FlipNone
逆时针旋转90度 RotateFlipType.Rotate270FlipNone
水平翻转 RotateFlipType.Rotate180FlipY
垂直翻转 RotateFlipType.Rotate180FlipX

 


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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
回复:(有点蓝)1楼的图片宽度不够800,使用1楼的代码...  发帖心情 Post By:2019/3/27 15:54:00 [只看该作者]

谢谢!!!
[此贴子已经被作者于2019/3/27 15:55:38编辑过]

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/27 18:00:00 [只看该作者]

老师,如何判断原始图片是竖向或横向,我只需把原始图片为竖向显示时转90°,原始图像为横向显示时保持显示方向,无需转向

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/27 18:28:00 [只看该作者]

 

不应该有问题的。元素图片发上来测试。

 

 


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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/27 19:47:00 [只看该作者]

Dim bmp As New bitmap("d:\test.jpg")
bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)
bmp.save("d:\test2.jpg")

顺时针旋转90度     RotateFlipType.Rotate90FlipNone
逆时针旋转90度     RotateFlipType.Rotate270FlipNone
水平翻转    RotateFlipType.Rotate180FlipY
垂直翻转    RotateFlipType.Rotate180FlipX


这个代码没有问题,能转,关键是它把原本是横向的图片也旋转了.所以才需要判断一下,那个图片需要旋转,那个图片不需要旋转,例如原本横向的图片保持横向,原本竖向的图片转换后会变成横向的,这个才需要进行旋转的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/27 22:14:00 [只看该作者]

1、原始图片发上来测试。

 

2、试试

 

Dim img As Image = Image.FromFile("c:\test.jpg")
Dim pt As PropertyItem() = img.PropertyItems
For i As Integer = 0 To pt.Length - 1
    Dim p As PropertyItem = pt(i)
    Select Case pt(i).Id
        Case 274
            Dim s  = p.value(0)
            msgbox("方向:  " & s)
            Select Case s
                Case 2
                    img.RotateFlip(RotateFlipType.RotateNoneFlipX)
                Case 3
                    img.RotateFlip(RotateFlipType.Rotate180FlipNone)
                Case 4
                    img.RotateFlip(RotateFlipType.RotateNoneFlipY)
                Case 5
                    img.RotateFlip(RotateFlipType.Rotate90FlipX)
                Case 6
                    img.RotateFlip(RotateFlipType.Rotate90FlipNone)
                Case 7
                    img.RotateFlip(RotateFlipType.Rotate270FlipX)
                Case 8
                    img.RotateFlip(RotateFlipType.Rotate270FlipNone)
            End Select
    End Select
Next


 


 回到顶部
总数 16 1 2 下一页