Basquiat,支持IPFS的图像大小调整工具 现代的网站设计必须针对各种设备进行优化。为了在不牺牲显示质量的情况下最大程度地降低页面加载速度,请根据设备的特性调整图像的大小。在集中式Web中,这是通过非常快速的图像处理库(如libvips)在服务器端实现的,libvips是流行的imgproxy 1 服务的基础。 我们如何将这一功能转化为IPFS的世界?在本文中,我将为您快速浏览basquiat 6 ,这是一个新项目,提出了元数据规范和简单实现,作为对这一新问题的可能解决方案的首次探索。 底漆 IPFS将所有数据存储为有向非循环图(DAG),这实际上是一棵树,其中给定节点可能具有多个父级。该树结构用于将文件分区为更小和更易于管理的块。通过其内容标识符(CID)指向节点,该标识符是从其内容的哈希派生的字符串。这意味着任何CID都引用静态对象。然后,每个节点都是类似于JSON的字典,可能包含data存储原始数据的属性以及包含其余数据的其他节点的CID。 IPLD详细定义了这种类似JSON的数据结构,这是一个不断发展的规范。首先,类似JSON的意思是json,然后是protobuf,最后是cbor。但是,由于有了IPLD规范,当我们在此数据结构层之上构建自己的规范时,可以抽象化实现上的差异。 从很早开始,IPFS就使用了一个称为UnixFS的实际文件系统。通过将命名链接添加到节点内的其他资源来实现目录。例如,cat.jpg目录中的文件cid0可以由达到cid0/cat.jpgURI除了自身的CID。 巴斯奎特 basquiat是在Rust中实现的CLI工具,并基于go-ipfs和libvips库构建。作为输入,它采用图像的路径以及描述目标图像尺寸的配置文件。然后,basquiat输出一个CID,该CID指向原始图像,但包含指向所生成版本的命名链接。 $ basquiat -q ~/Pictures/yaks.jpg -c basquiat.cfgQmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F QmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F 1 是示例输出basquiat。直接打开此CID将产生原始图像。可以通过将thumbnails.html 3 附加到CID 来探索生成的不同版本。 例如,给定的配置会生成一个601x400版本,可以通过以下三种方式访问该版本: QmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F/601x400.jpgQmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F/601x_.jpgQmfPYe4JzhcG41bXNnGUfCDZMLJ74KdQtZzniSz56t6i4F/_x400.jpg 所述_通配符意味着应用程序不必知道原始图像的尺寸或长宽比,以请求特定的尺寸。实际上,basquiat它不仅是CLI工具,而且还提出了一种灵活且可扩展的链接命名方案,以确保最终实现不同实现之间的兼容性。basquiat的配置解析器也是此规范的实现。 未来发展 该项目有几种不同的前进方式: 现在,basquiat获取一个枚举每个所需版本的静态配置文件。为了使其更有用,重要的一步将是简化从目标设备特征以及相对图像显示尺寸的配置文件的生成。 元数据规范可扩展到不同的操作,例如裁剪。为其实现插件系统 basquiat将使这种可扩展性体现在实现中。 Fission CLI中的集成。 使用pica 1 库和js-ipfs 1的 浏览器就绪的实现。 请不要犹豫,通过在basquiat 仓库6 !上发布问题来请求功能。 —- 编译者/作者:星际大陆 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
Basquiat支持IPFS的图像大小调整工具
2020-05-12 星际大陆 来源:区块链网络
LOADING...
相关阅读:
- 硬核技术+节点商业两翼齐飞:公链黑马SEA的未来可期?2020-08-05
- 硬核技术+节点商业两翼齐飞:黑马公链SEA未来可期?2020-08-05
- 三分钟读懂Allocate Dividend技术构架之拜占庭容错算法(PBFT)2020-08-04
- USDN代币发行关于USDN代币2020-08-04
- 驴把头社区详解Nerve节点+质押2020-08-03