利用 LibWebP-NET 解码与编码 WebP 格式图片
WebP 格式是谷歌开发并发展的一种最新的网络图片格式,具有压缩率高、解码快、免版权、开源等优点。
大部分先进的网页浏览器、图片浏览器都支持该格式,Windows用户可以通过安装 WebP Codec for Windows 在系统中查阅WebP图片。
虽然 WebP 是开源格式,但目前 .NET 平台对 WebP 的支持并不好,只能依靠第三方的类库来加载 WebP 格式。
在这里我推荐 LibWebP-NET 这个开源类库,可以在 .NET 中对 WebP 图片进行解码和编码。
LibWebP-NET 只是简单的对于WebP的C++类库的一个.NET封包,其核心代码仍在 libwebp.dll 这个动态链接库文件中,因此不支持在普通的ASP.NET空间中运行。
并且因为动态链接库对于系统的限制,因此有x86和x64两个版本的C++类库文件,应用于不同的操作系统。
我个人推荐您在.NET工程属性的编译选项中,使用x86兼容模式,这样只需要附上x86版的 libwebp.dll 文件即可。
下面的测试代码,为我修改版的 LibWebPNET 源码的类库文件,您可以 点击这里下载 。
我仅将其中快速编码和解码函数设置为静态方法(原版需要实例化相关的解码类,很繁琐)。
使用前,记得引用 Imazen.WebP.dll 类库,并将 libwebp.dll 动态链接库释放到主程序的运行目录。
解码方式非常简单
Dim bs As Byte() = IO.File.ReadAllBytes("指定的WebP图片") Dim img As Bitmap = Imazen.WebP.SimpleDecoder.DecodeFromBytes(bs, bs.Length)
这样即可解码 WebP 图片为.NET可识别的图片对象,应用于其他各种操作。
编码方式则略微复杂
Dim pic As Image = Image.FromFile("原图片位置")' WebP只支持 Format32bppArgb 和 Format32bppRgb 两种像素格式 ' 所以有时候需要改码,重绘一个图像 Using bmp As New Bitmap(pic.Width, pic.Height, Imaging.PixelFormat.Format32bppArgb)' 将图片重绘到新画布Using g As Graphics = Graphics.FromImage(bmp)g.DrawImage(pic, 0, 0, pic.Width, pic.Height)End Using' 转码并保存文件Using fs As IO.FileStream = IO.File.Create("新图片位置.webp")Imazen.WebP.SimpleEncoder.Encode(bmp, fs, 100)End UsingEnd Using
WebP 编码仅支持 Format32bppArgb 和 Format32bppRgb,而目前主流的网络图片格式并非这两种像素格式,所以我们在转换前,需要自己将图片转码。
通过 LibWebP-NET,我们可以很容易的拥抱 WebP 这种未来的网络图片格式。希望 .NET 以后也可以内置对于 WebP 的支持,而不再需要第三方的类库。
转载于:https://www.cnblogs.com/lonelyxmas/p/9122478.html
利用 LibWebP-NET 解码与编码 WebP 格式图片相关推荐
- 使IE浏览器支持webp格式图片显示
webp是一种图像压缩格式,由谷歌推出,开源免费.webp格式图片具有很多优势,相比于传统的png.jpg等在同等图像质量下面,它的图像占有空间更少,因此,可以广泛用于各种对存储空间要求较高的场景中, ...
- Ubuntu 把 webp 格式图片转换成 jpeg/png 格式
据统计,目前互联网上传输的数据有65%都是图片,为了减少数据量.加速网络传输.谷歌(google)于2010年推出的新一代图片格式 -- WebP 格式. WebP 格式是一种旨在加快图片加载速度的图 ...
- Android将webp格式图片转换为png格式方法
最近项目优化的时候发现app上选择的部分图片上传到服务器后无法显示或者直接上传失败,经过跟踪发现问题出现在webp图片格式上,说到webp格式的图片,这是google自己发明的一种图片格式,在网络上使 ...
- webp格式图片怎么转换成jpg?
如何将webp格式转换成jpg格式呢?当下网路上使用比较广泛的图像格式一种就是jpg,因为它基本上不具有图像格式的权限限制,可以在任意软件和平台中进行上传.查看.下载等操作,因此当大家遇到其他因格式限 ...
- 通过浏览器,将webp格式图片转jpg格式
概述 我们网络上下载的图片,很多的是webp格式的图片,而目前支持这种图片格式的软件较少,比如Windows 照片查看器,是不能直接打开图片的.安装其他专业图像软件又麻烦. 因此,本文介绍利用电脑常用 ...
- web前端入门学习 css(10)移动端布局(学到DPG格式图片与webp格式图片停了)
https://www.bilibili.com/video/BV14J4114768?p=390 代码:https://gitee.com/xiaoqiang001/html_css_materia ...
- android webview webp,iOS WebView中使用webp格式图片的方法
webp格式图片 webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格式的图片占用空间更小,在像电商这样图片比较多的App中,使用webp格式图片会很有优势 ...
- anywebp jpg png 转换webp格式图片 免费在线转换
最近很多网站也开始支持webp格式的图片了,webp格式的图片简单说来,比目前常用的JPG同体积下更清晰,同清晰度下,体积更小. 最近也在找怎么才能将JPG PNG等文件转换为webp格式,今天终于找 ...
- java解析webp格式图片宽高;java解析webp图片转png格式
java解析webp格式图片宽高:java解析webp图片转png格式 package 你的包名:***.***.***.***;import java.io.FileInputStream; imp ...
最新文章
- MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'root'
- 基于Windows 2008 R2 Core的SQL Server 2008 R2 Cluster部署(Step by Step)
- vs2005sp1安装加速
- Webpack入门教程三
- 段式存储、页式存储。
- Android自定义ViewGroup的OnMeasure和onLayout详解
- 使用Boost.Compute的STL 在GPU上添加两个向量的实现
- LINUX内核之普通自旋锁
- 《网站性能监测与优化》一2.4 软件服务应用网站
- Pandas Series interpolate
- mysql异机备份脚本_mysqldump使用rsync异地全量备份数据库
- 小米手机android目录在哪里设置字体,[小米手机]小米手机MIUI自己制作.MTZ字体包方法 无需ROOT权限...
- 将心比心,我要有点骨气
- win7休眠设置在哪里_电脑休眠好不好,在哪里开启?
- 安卓的权限大全和动态使用安卓权限
- DO447协调滚动更新--委派任务和事实
- java导出Excel(POI模式 Ajax下载 Post传参) bootstrap table getVisibleColumns获取显示的列
- End-to-End Object Detection with Fully Convolutional Network
- linux忽略大小写 grep,linux grep不区分大小写查找字符串方法
- IntelliJ IDEA java开发环境