以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]picturebox控件显示成横向 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132659)
|
-- 作者:无限5180
-- 发布时间:2019/3/26 21:55:00
-- [求助]picturebox控件显示成横向
老师,把图片经过压缩上传后,原竖向的图片会横向保存。原横向的图片不会变化。这个怎么解决呢这是选择图片时是竖向图片,宽度小于高度 ![dvubb 图片点击可在新窗口打开查看](skins/default/filetype/png.gif) 此主题相关图片如下:上传选择的图片是竖向的.png ![dvubb 图片点击可在新窗口打开查看](UploadFile/2019-3/201932621541679287.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 压缩后 保存的图片是横向的 ![dvubb 图片点击可在新窗口打开查看](skins/default/filetype/png.gif) 此主题相关图片如下:选择图片压缩后就横向显示.png ![dvubb 图片点击可在新窗口打开查看](UploadFile/2019-3/201932621541690123.png)
|
-- 作者:有点蓝
-- 发布时间:2019/3/26 22:35:00
--
1楼代码我测试没有问题。是不是图片本来就是横的。上传图片测试
|
-- 作者:无限5180
-- 发布时间:2019/3/26 22:46:00
--
原始图片就是竖向的,我把原始图截图也上传了,第二张截图是压缩后显示的,就变成了横向的了
|
-- 作者:有点蓝
-- 发布时间:2019/3/26 22:52:00
--
1楼的图片宽度不够800,使用1楼的代码不符合条件,不需要压缩。我把分辨率改大后测试没有问题
|
-- 作者:有点甜
-- 发布时间: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
-- 发布时间:2019/3/27 15:54:00
-- 回复:(有点蓝)1楼的图片宽度不够800,使用1楼的代码...
谢谢!!!
[此贴子已经被作者于2019/3/27 15:55:38编辑过]
|
-- 作者:无限5180
-- 发布时间:2019/3/27 18:00:00
--
老师,如何判断原始图片是竖向或横向,我只需把原始图片为竖向显示时转90°,原始图像为横向显示时保持显示方向,无需转向
|
-- 作者:有点甜
-- 发布时间:2019/3/27 18:28:00
--
不应该有问题的。元素图片发上来测试。
|
-- 作者:无限5180
-- 发布时间: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
这个代码没有问题,能转,关键是它把原本是横向的图片也旋转了.所以才需要判断一下,那个图片需要旋转,那个图片不需要旋转,例如原本横向的图片保持横向,原本竖向的图片转换后会变成横向的,这个才需要进行旋转的
|
-- 作者:有点甜
-- 发布时间: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
|