2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

图像方面的新闻:Xamarin 的 Kimono 以及 Google 的 Guetzli 和 Draco

  • 2017-03-30
  • 本文字数:1307 字

    阅读完需:约 4 分钟

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 应用中的使用场景。

查看英文原文 News in Graphics: Xamarin Kimono, Google Guetzli and Draco

2017-03-30 19:002031

评论

发布
暂无评论
发现更多内容

纳瓦尔宝典:财富与幸福指南

石云升

读书笔记 财务自由 幸福 8月月更

数据结构——队列

工程师日月

8月月更

使用 JavaScript Promise 读取 Github 某用户的数据

汪子熙

JavaScript Promise 异步编程 Javascript框架 8月月更

MobTech ShareSDK 使用简介

MobTech袤博科技

开发者 sdk MobTech袤博科技

GitLab 自动删除项目?仅需四步,丝滑迁移至极狐GitLab

极狐GitLab

git DevOps gitlab 敏捷开发 极狐GitLab

企业中的知识管理价值是怎样体现的

Baklib

SRv6在SFC中的应用

穿过生命散发芬芳

8月月更 SRv6

离线渲染与实时渲染杂谈——从发布会上的产品展示说起

3DCAT实时渲染

开源一夏 | 腾讯云对象存储cos获取图片像素信息

六月的雨在InfoQ

腾讯云 开源 COS 8月月更

Java避坑指南:Java中 java.lang.String你真的以为是不可变的吗?java11和java17是相同的结果吗?

崔认知

云原生(十五) | Kubernetes篇之深入了解Pod

Lansonli

云原生 k8s 8月月更

MyBatis(一、快速入门)

开源 springmvc Mybati 8月月更

王熙凤穿越到 2022 年,一定会采购的单点登录服务

Authing

企业与团队怎样建立一个有效的、切实可行的知识管理系统

Baklib

企业为何要实行知识管理?

Baklib

《Effective Java》第9条:try-with-resources优先于try-finally

okokabcd

Java

鸿蒙设备开发之从0到1联网上云-概述篇

愚公搬代码

签约计划第三季

一篇文章让你重学HTTP!

Albert Edison

https 计算机网络 HTTP 8月月更

架构师第一课,一文带你玩转ruoyi架构

小鲍侃java

框架 Java web 构架 spring-boot 签约计划第三季

使用 Google Breakpad 来助力解决程序崩溃

HelloWorld杰少

ios 游戏开发 崩溃分析 google_breakpad 8月月更

每日一R「05」生命周期

Samson

学习笔记 8月月更 ​Rust

大数据技术生态,不懂你捶我

大数据指北

大数据 大数据开发

为什么我们需要关注基于 EIP-3664 标准的可拆分,可组合的NFT?

股市老人

Redis 基础

武师叔

8月月更

Spring Cloud Stream简介

阿泽🧸

spring cloud stream 8月月更

RocketMQ顺序消息之消息消费

急需上岸的小谢

8月月更

Mysql命令大全

跳楼梯企鹅

MySQL #数据库

(WebFlux)002、如何打印日志与链路ID

编号94530

spring 日志 aop SpringWebflux Reactor3

《Effective Java》第16条:要在仅有类中使用访问方法而非公有域

okokabcd

Java

图像方面的新闻:Xamarin的Kimono以及Google的Guetzli和Draco_.NET_Abel Avram_InfoQ精选文章