【Rust日报】image 0.25.5 大幅改进了对AVIF图像格式的解码能力

科技   2024-11-09 15:32   加拿大  

image 0.25.5 大幅改进了对AVIF图像格式的解码能力

主要更新包括:

  1. 大幅改进了对AVIF图像格式的解码能力,现在支持10位和12位AVIF图像,并修复了许多AVIF解码方面的bug。这些改进由@awxkee贡献。

  2. rayon特性现在可以正确切换AVIF编码时是否使用并行处理。但对于EXR格式,由于会破坏后向兼容性,所以暂时没有切换并行处理的选项。

  3. 现在可以识别极少使用的".jfif"作为JPEG文件扩展名。

  4. AVIF解码目前仍然依赖于C语言库dav1d,而不是Rust版本rav1d,因为rav1d还没有提供Rust API。未来希望能够迁移至rav1d以摆脱对dav1d的依赖。

总的来说,这个版本主要侧重于增强对AVIF格式的支持和解码能力,同时修复了一些bug,并对少数其他特性做了完善。

https://old.reddit.com/r/rust/comments/1gk3v7i/image_v0255_brings_much_improved_avif_decoding/

MinPin - 一种pin的新提案

这篇文章介绍了一个名为 MinPin 的新的 Pin 提案,其目标是以一种"最小破坏性"的方式将 Pin 集成到语言中,同时保持完全向后兼容性。与 Overwrite 提案不同,MinPin 没有试图让 Pin 和 &mut 很好地协作,但它为将来添加 Overwrite 留下了空间。

MinPin 的主要设计决策包括:

  1. 使用 pinned 关键字获取 Pin 变体,如 pinned &mut T 等同于 Pin<&mut T>。
  2. Drop trait 修改为 fn drop(pinned &mut self)而不是 fn drop(&mut self)。
  3. 对于实现了 Unpin 的字段类型,始终允许投影。
  4. 对于未实现 Unpin 的字段类型,投影规则取决于结构体是否实现 Unpin 及是否有 fn drop(&mut self)方法。
  5. 引入 struct Unpinnable始终实现 Unpin。

文章还列出了一些设计原则,如 Pin 是语言的一部分、Pin 应有零概念成本、应该显式使用等。最后,作者回答了一些常见问题,比较了 MinPin 与 UnpinCell 提案之间的异同。

https://smallcultfollowing.com/babysteps/blog/2024/11/05/minpin/

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章