Foxtable(狐表)用户栏目专家坐堂 → 怎样设置图片的分辩率,达到控制图片文件大小的效果?


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

主题:怎样设置图片的分辩率,达到控制图片文件大小的效果?

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


加好友 发短信
等级:一尾狐 帖子:498 积分:4605 威望:0 精华:0 注册:2013/4/25 8:02:00
怎样设置图片的分辩率,达到控制图片文件大小的效果?  发帖心情 Post By:2015/4/20 8:30:00 [只看该作者]

怎样设置图片的分辩率,达到控制图片文件大小的效果?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:20154201392622425.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/20 8:34:00 [只看该作者]


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


加好友 发短信
等级:一尾狐 帖子:498 积分:4605 威望:0 精华:0 注册:2013/4/25 8:02:00
  发帖心情 Post By:2015/4/20 8:55:00 [只看该作者]

 

Public Sub AdjustImageSize(ByVal paraImg As Image, ByVal ParaIntWidth As Integer, ByVal ParaIntHeight As Integer, ByVal ParaStrSaveLoc As String)

'参数说明:paraImg 原始图象; ParaIntWidth 调整的宽度; ParaIntHeight 调整的高度; ParaStrSaveLoc 保存路径

Dim Bmp As New Bitmap(ParaIntWidth, ParaIntHeight)

Dim Gr As Graphics

Gr = Graphics.FromImage(Bmp)

'设置 System.Drawing.Graphics对象的SmoothingMode属性为HighQuality

Gr.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed

'下面这个也设成高质量

Gr.CompositingQuality = Drawing2D.CompositingQuality.HighSpeed

'下面这个设成High

Gr.InterpolationMode = Drawing2D.InterpolationMode.Low

'把原始图像绘制成上面所设置宽高的缩小图

Dim rectDestination As Rectangle = New System.Drawing.Rectangle(0, 0, ParaIntWidth, ParaIntHeight)

Gr.DrawImage(paraImg, rectDestination, 0, 0, paraImg.Width, paraImg.Height, GraphicsUnit.Pixel)

Dim Ep As Imaging.EncoderParameters = New Imaging.EncoderParameters(1)

Ep.Param(0) = New System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100)

Dim myImageCodecInfo As ImageCodecInfo

myImageCodecInfo = GetEncoderInfo("image/jpeg")

If myImageCodecInfo Is Nothing Then

    Bmp.Save(ParaStrSaveLoc, Imaging.ImageFormat.Jpeg)

Else

    Bmp.Save(ParaStrSaveLoc, myImageCodecInfo, Ep)

End If

Bmp.Dispose()

End Sub

 

Public Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo

Dim j As Integer

Dim encoders() As ImageCodecInfo

encoders = ImageCodecInfo.GetImageEncoders()

For j = 0 To encoders.Length - 1 '(j = 0; j < encoders.Length; ++j)

    If encoders(j).MimeType = mimeType Then

        Return encoders(j)

    Else

        Return Nothing

    End If

Next

End Function


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


加好友 发短信
等级:一尾狐 帖子:498 积分:4605 威望:0 精华:0 注册:2013/4/25 8:02:00
  发帖心情 Post By:2015/4/20 8:56:00 [只看该作者]

上面哪一个是设置分辩率的参数?


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/4/20 9:02:00 [只看该作者]

Gr.DrawImage(paraImg, rectDestination, 0, 0, paraImg.Width, paraImg.Height, GraphicsUnit.Pixel)

 回到顶部