.net里对图片文件进行质量压缩以及即时预览

.net 里可以轻松对图片文件进行质量压缩

look

 '***********************************************************
    '即时预览保存图片质量
    'wgscd (c) 2005 QQ 153964481,Email: wgscd@126.com
    Dim PulicImageCodecInfo As ImageCodecInfo '定义全局变量提高效率
    Dim myImageCodecInfo As System.Drawing.Imaging.ImageCodecInfo
    Dim myEncoder As System.Drawing.Imaging.Encoder = System.Drawing.Imaging.Encoder.Quality
    Dim myEncoderParameter As System.Drawing.Imaging.EncoderParameter
    Dim myEncoderParameters As System.Drawing.Imaging.EncoderParameters

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Text = "保存文件"
        Me.Label2.Text = "即时预览保存图片质量   wgscd  (c) 02005            利用ImageCodecInfo,System.Drawing.Imaging.Encoder"
        Me.HScrollBar1.Cursor = Cursors.Hand
        PulicImageCodecInfo = GetEncoderInfo("image/jpeg") '获取ImageCodecInfo
        Me.PictureBox2.Image.Save("c:/wgscd.jpg")
        Me.PictureBox3.Image = Image.FromFile("c:/wgscd.jpg")

        Dim fi As New FileInfo("c:/wgscd.jpg")
        fi = New FileInfo("c:/wgscd.jpg")
        Label1.Text = HScrollBar1.Value & "大小:" & (fi.Length / 1024).ToString("0.00") & "KB"
        Me.PictureBox3.Refresh() '必须释放
        Me.PictureBox3.Image.Dispose()
        Me.PictureBox3.Image = Me.PictureBox2.Image
    End Sub


    Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll

        ' Dim MyMemoryStream As IO.MemoryStream = New IO.MemoryStream
        myImageCodecInfo = PulicImageCodecInfo '用全局保存的ImageCodecInfo来设置

        myEncoderParameters = New System.Drawing.Imaging.EncoderParameters(1)
        ' myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, EncoderValue.TransformRotate90)
        myEncoderParameter = New System.Drawing.Imaging.EncoderParameter(myEncoder, CLng(Me.HScrollBar1.Value))
        myEncoderParameters.Param(0) = myEncoderParameter
        ' Me.PictureBox2.Save(MyMemoryStream, myImageCodecInfo, myEncoderParameters)‘ 写如内存流
        Try
            Me.PictureBox2.Image.Save("c:/wgscd.jpg", myImageCodecInfo, myEncoderParameters)
            Me.PictureBox3.Image = Image.FromFile("c:/wgscd.jpg")
            Dim fi As New FileInfo("c:/wgscd.jpg")
            fi = New FileInfo("c:/wgscd.jpg")
            Label1.Text = " 保存质量: " & HScrollBar1.Value & " % 大小:" & (fi.Length / 1024).ToString("0.00") & "KB"
            Me.PictureBox3.Refresh() '必须释放
            Me.PictureBox3.Image.Dispose()
            '  myEncoderParameters.Dispose()
            ' MyMemoryStream.Flush()
        Catch ex As Exception
            '如果有必要处理错误,可加代码
            ' MsgBox(ex.ToString)

        End Try
    End Sub '

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

    '可以获得系统的ImageEncoders
    Sub GetImageEncoders()
        Dim i As Integer
        Dim encoders As System.Drawing.Imaging.ImageCodecInfo() = Imaging.ImageCodecInfo.GetImageEncoders
        For i = 0 To (encoders.Length - 1)
            MsgBox(encoders(i).MimeType)
        Next i
    End Sub

    Private Function GetEncoderInfo(ByVal MYmimeType As String) As ImageCodecInfo
        Dim i As Integer
        Dim encoders As System.Drawing.Imaging.ImageCodecInfo() = Imaging.ImageCodecInfo.GetImageEncoders()
        For i = 0 To (encoders.Length - 1)
            If (encoders(i).MimeType = MYmimeType) Then
                '   MsgBox(encoders(i).MimeType)
                Return encoders(i)
            End If
        Next i
    End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值