本文告诉大家如何在 UWP 通过修改图片的质量减少图片大小,这个方法只支持输出 jpg 文件
通过创建 BitmapEncoder 的时候指定 BitmapPropertySet 可以设置图片的质量,只有对 JPG 格式才能设置图片质量
图片质量的值是从 0 到 1 其中 1 表示质量最好
这里的 imageQuality 就是图片质量,这个需要传入
从一个图片文件压缩图片大小的方法可以这样写,创建一个方法传入原图文件,和需要输出的文件,和图片质量
先获取图片大小,这样可以知道压缩了多少,对比原图的文件大小和压缩之后的图片大小
获取文件大小更简单的方法是通过 WinRTXamlToolkit 的 StorageItemExtensions.GetSizeAsync 拿到文件大小
读取原图文件,需要先解码原图,然后通过编码的时候修改图片质量
解码的方法是不需要知道图片的格式
打开输出文件,进行编码
在创建编码的时候设置图片质量
将编码写入到文件
拿到压缩只有的文件的大小,对比一下
这个压缩图片的方法的代码虽然看起来很多,但是看起来还是很简单先打开原来的图片文件对原图进行解密然后输出到新的文件
于是下面写一个测试的程序
在界面创建一个按钮
在按钮拿到一个文件,然后在自己的临时文件夹里面创建输出文件,如果真的需要用这个程序压缩图片那么请让用户再选一个文件
现在尝试运行代码,点击界面的按钮,就可以看到点击按钮选择
代码放在 github
这个代码参考了Alex Sorokoletov的代码
How to convert image to JPEG and specify quality parameter in UWP C# XAML
BitmapEncoder options reference - Windows UWP applications
Create, edit, and save bitmap images - Windows UWP applications
原文链接: http://blog.lindexi.com/post/win10-uwp-%E4%BF%AE%E6%94%B9%E5%9B%BE%E7%89%87%E8%B4%A8%E9%87%8F%E5%8E%8B%E7%BC%A9%E5%9B%BE%E7%89%87
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。