Xamarin的Kimono以及Google的Guetzli和Draco
来源:互联网 发布:淘宝银龙裁决多少钱 编辑:程序博客网 时间:2024/06/18 11:48
Xamarin开源了用于编辑SkiaSharp对象的工具,而Google则推出了减少2D JPEG和3D图形大小的方案。
Xamarin是微软的子公司,开源了Kimono设计器,它是一个用来图形化编辑SkiaSharp对象的工具,这种对象随后可以转换为目标平台的编码。SkiaSharp是基于Skia图像库的.NET 2D API,Skia项目是由Google发起的,作为一种跨平台的图像引擎来使用,它目前用到了Chrome、Firefox、Android等平台上。Skia和SkiaSharp的问题在于开发人员需要使用类似于Java 2D的底层的API来创建2D图像。使用它来绘制贝塞尔曲线的样例可以在Skia Fiddle页面上找到。Kimono设计器能够让开发人员以图形化的方式创建2D图片,让这项任务变得更加简单。
Kimono带来了很多的特性,包括颜色调色板(Color Palettes)、可视化的渐变编辑器(Visual Gradient Editor)、已命名的样式(Named Styles)、属性链接(Linked Properties)、脚本语言等。这个工具可以为Windows (WinForms、UWP、WPF)、Android、iOS, MacOS、tvOS或跨平台生成编码。目前,Kimono只能运行在MacOS上,但是Xamarin计划提供UWP以及Android和iOS平板的版本。
而在另一方面,Google开源了Guetzli [guɛtsli],这是一个新的JPEG压缩算法和编码器,它能够提供更好的压缩比例同时保持图片的质量不受影响。按照Google的说法,Guetzli的图片相对于libjpeg产生的相同JPEG图片,在文件大小上能够小20-30%。根据这篇文章的说法,文件大小可以减少35%。在实现这项功能时,不需要改变使用JPEG的浏览器和应用的已有写法。Guetzli之所以能够实现更小的文件尺寸要归功于它能够消除图片中元素,而且不会影响图片的质量。开发Guetzli的团队这样描述到:
JPEG图片的视觉质量与其多个阶段的压缩过程直接相关:彩色空间转换(color space transform)、离散余弦转换(discrete cosine transform)以及量化(quantization)。Guetzli的目标就在量化阶段,在这个阶段,视觉质量损失得越多,所形成的文件就越小。Guetzli在最小化损失和文件大小之间取得了一种平衡,这是通过一种搜索算法来实现的,该算法试图克服JPEG格式的psychovisual模型与Guetzli的psychovisual模型之间的差异,相对于简单的色彩转换和离散余弦转换,Guetzli能够采用一种更全面和细致的方式达到近似的色彩感知和视觉效果。Guetzli做到了文件尺寸更小,但是其代价就是相对于目前可用的方法,它的搜索算法在创建压缩文件时,会耗费更长的时间。
在今年早些时候,在减少互联网数据传输方面,Google还做了另外一项工作,这次的成果是应对3D图像。Draco是一个针对3D几何网格(geometric meshes)和点云(point clouds)的压缩库。这个库支持“压缩点、连接信息、纹理坐标(texture coordinates)、颜色信息、法线(normals)以及其他与几何相关的通用属性。”按照这篇文章的说法,相对于网格文件压缩,它所能达成的结果就是3D图像能够在尺寸上减少十数倍。Draco附带了一个C++编码器,还有一个C++和JavaScript的转码器,其中JavaScript转码器瞄准的就是Web应用中的使用场景。
原文地址:http://www.infoq.com/cn/news/2017/03/kimono-guetzli-draco
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- Xamarin的Kimono以及Google的Guetzli和Draco
- Guetzli压缩rgba文件为jpg格式(google新出的压缩图片算法)
- 跳过肉眼?全面解读Google最新发布的JPEG压缩算法Guetzli
- ubuntu 16.04 尝试使用刚开源的guetzli
- [xamarin]更新xcode和xamarin后mac出现的bug
- 谷歌开源的图片算法Guetzli优化你的图片
- xamarin.forms 拍照和视频的操作
- Xamarin.Forms的ActivityIndicator和ProgressBar比较
- Google开源JPEG压缩算法--Guetzli体验
- Xamarin跨平台开发中遇到的问题以及解决方法
- Xamarin的环境搭建Xamarin.iOS
- 基于谷歌draco项目的测试---三维模型数据压缩方案
- xamarin的一些插件
- xamarin的破解安装
- xamarin遇到的问题
- Xamarin的一些设置
- Xamarin的坑
- Xamarin的坑
- 我为什么鼓励工程师写blog
- NuGet社区使用体验调查
- .NET Core开源组件:后台任务利器之Hangfire
- 微软宣布12月15日关闭开源软件托管平台CodePlex
- Visual Studio 2017通过SSH支持Git
- Xamarin的Kimono以及Google的Guetzli和Draco
- 深入浅出数据库索引原理
- Win10 Bash\/WSL调试Linux环境下的.NET Core应用程序
- javascript
- ASP.NET Core MVC 源码学习:详解 Action 的匹配
- 编写高效率的C#代码
- NuGet社区使用体验调查
- 老司机实战Windows Server Docker:5 Windows Server Dockerfile葵花宝典
- GitHub 贡献第一的微软开源软件列表