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


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

主题:[求助]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
图片点击可在新窗口打开查看

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
无限5180
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/27 23:30:00 [显示全部帖子]

请老师帮忙看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:图片旋转.foxdb


[此贴子已经被作者于2019/3/27 23:30:36编辑过]

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/28 17:21:00 [显示全部帖子]

谢谢老师,换个思路,采用你提供的代码解决了.

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/28 17:47:00 [显示全部帖子]

老师现在又出现了一种报错,原始图片为横向显示的,

msgbox显示为:"方向 :1"

出现报错内容:

.NET Framework 版本:2.0.50727.9035
Foxtable 版本:2018.10.9.1
错误所在事件:窗口,上传永久素材,图片旋转,Click
详细错误信息:
GDI+ 中发生一般性错误。



我的代码如下:
Dim pbx As WinForm.PictureBox = e.form.Controls("PictureBox3")
Dim pth as string = ProjectPath & "Attachments\wx_images_tptw\"
Dim bh1 As String = "100.png"
If FileSys.FileExists(pth & bh1) Then
    Dim bmp As Image = Image.FromFile(pth & bh1)
    Dim pt As PropertyItem() = bmp.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
                        bmp.RotateFlip(RotateFlipType.RotateNoneFlipX)
                    Case 3
                        bmp.RotateFlip(RotateFlipType.Rotate180FlipNone)
                    Case 4
                        bmp.RotateFlip(RotateFlipType.RotateNoneFlipY)
                    Case 5
                        bmp.RotateFlip(RotateFlipType.Rotate90FlipX)
                    Case 6
                        bmp.RotateFlip(RotateFlipType.Rotate90FlipNone)
                    Case 7
                        bmp.RotateFlip(RotateFlipType.Rotate270FlipX)
                    Case 8
                        bmp.RotateFlip(RotateFlipType.Rotate270FlipNone)
                End Select
                
        End Select
    Next
    bmp.save(pth & bh1)
    pbx.image = GetImage(pth & bh1)
End If

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


加好友 发短信
等级:童狐 帖子:283 积分:2776 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/3/28 21:19:00 [显示全部帖子]

谢谢,成功了!

 回到顶部