'***********************************************************
    '即时预览保存图片质量
    '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

转载于:https://www.cnblogs.com/xzcastle/archive/2006/01/12/316201.html

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

  1. shell grep 变量_Shell应用:巧用xargs 轻松实现上万文件的筛选压缩

    背景 Linux 下某个目录下有小文件好几万个,命名规则按日期每小时 N 个,想要过滤出指定日期的文件并添加到压缩文件中,记录下脚本化的过程如下. 正则过滤存在的问题 首先,直接进入该目录,由于文件数 ...

  2. 如何将S/4HANA系统存储的图片文件用Java程序保存到本地

    我在S/4HANA的事务码MM02里为Material维护图片文件作为附件: 通过如下简单的ABAP代码即可将图片文件的二进制内容读取出来: REPORT zgos_api.DATA ls_appl_ ...

  3. 怎么把图片文件压缩到20k以下

    你知道怎么把图片文件压缩到20K以下吗?现在很多的网站都不可以上传大的图片,不管是报名考试还是其它的一些事情,图片超过网站特定的上传大小就不可以进行上传,那么我们怎么才能将图片文件压缩到20K以下进行 ...

  4. 简单的压缩图片的方法,压缩图片大小的步骤

    我们在日常生活中也会遇到比较大的图片,比较大的图片文件比较麻烦,上传到网站论坛做头像都传不上去,大家可以将图片文件进行简单的压缩,然后进行上传,教给大家一种简单的压缩图片的方法. 1:先要将自己的图片 ...

  5. 图片转svg标注_两个免费网站轻松搞定图片文件压缩转化!

    关注· 点击蓝字,关注我吧 图片压缩 文件转格式 两个免费网站轻松搞定 免费处理图片文字网站 前几天做公号的时候,上传图片遇到了图片过大无法上传的问题.这两个网站可以看做是兄弟俩,今天推荐给大家,省去 ...

  6. 使用CAJViewer截取PDF文件里的文字和图片

    在阅读PDF文件或caj文件时,常常需要截取或摘录里面的部分文字和图片,这时就可以使用CAJViewer. 1.下载并安装CAJViewer软件 地址:http://cajviewer.cnki.ne ...

  7. 轻松获取图片和视频文件的Exif信息-Java篇

    前言 随着现在实景地图的如火如荼建设,无人机等航拍测绘手段的不断升级,我们在获取全景照片或者正射影像,全景视频等数据上更加快速.便捷.由于无人机本身不进行相关数据的处理,比如全景地图的生成.视频的信息 ...

  8. 图片文件损坏如何修复?只需这样操作

    图片文件是常见的,出现图片文件损坏是谁也不希望遇到的,特别是在我们剪切粘贴过程中传输的所有图片全部都损坏了,文件大小啥的都没变,都能打开只是会出现一些彩条.当我们遇到这样的事,这些图片文件损坏如何修复 ...

  9. 3个方法轻松将图片导出Mac电脑照片程序

    苹果设备中如果你开启了同步功能,用其他设备拍摄的照片,会自动同步到Mac电脑的照片程序里储存,这样方便我们再电脑上处理照片.那么,如何将照片导出Mac照片程序呢?下面分享3个方法. 方法一 1.打开M ...

最新文章

  1. 如何用R语言在机器学习中建立集成模型?
  2. VTK:PolyData之AlignTwoPolyDatas
  3. HDU2011 多项式求和
  4. 在IE环境下用javascript触发ABAP event
  5. xxx征集系统项目目标文档
  6. ArcGIS将CAD等高线转换为TIN/DEM数据
  7. Hadoop教程(三)HDFS文件系统Shell命令
  8. 《成为顶级JAVA架构师的必备书籍》
  9. java类型提升_java表达式中类型的自动提升(转)
  10. 单进程程序怎样在linux运行,linux下C程序:运行单个实例
  11. 拓端tecdat|中国消费者共享汽车使用情况调查
  12. C++ 单元测试框架 Boost Test BOOST_AUTO_TEST_CASE
  13. C语言 常用标准库函数 初学者常用
  14. android+蓝牙手柄+驱动+win10,jetion手柄驱动万能版
  15. UPS电源扩展功能一UPS干节点通讯接口扩展板,你了解吗?
  16. 二维码生成器微信小程序源码
  17. 深度学习#tensorflow进阶
  18. [二分+最大流]51 Nod——1757 大灾变
  19. 使用python包scanpy读取单细胞h5ad文件
  20. 目标定位(Object localization)

热门文章

  1. 一个好的硬件工程师应该具备哪些基本知识和能力呢?
  2. jQuery--属性操作(attr、removeAttr、prop、removeProp)详解
  3. Mac-brew报错error: could not lock config file .git/config: Permission denied
  4. 在如何提高产品的页面和宝贝转化率上
  5. web前端中快速切换图片实现视频播放效果
  6. cocos2d-x 3.4 vs+cocostudio类神经猫三消游戏《Rabbit Escape》
  7. Linux 查看php进程命令
  8. 【笔记】我的markdown格式记录
  9. Haproxy-2.X版本学习笔记记录
  10. 像企业账号一样分发安装应用