首页 > 其他分享 >wasm-vips libvips webassembly 实现

wasm-vips libvips webassembly 实现

时间:2023-11-29 11:37:12浏览次数:32  
标签:emscripten libvips 320 wasm https vips

wasm-vips 是利用了emscripten将libvips 编译为webassembly 可以实现在node 以及浏览器中使用libvips 强大的图片处理处理
以下是一个简单的试用

参考试用

  • app.js

 

const Vips = require('wasm-vips');
 
async function init() {
    const vips = await Vips();
    vips.Image.newFromFile('test.png')
    .smartcrop(320, 320,{
        interesting: vips.Interesting.attention
    }).writeToFile('test2.png');
 
    const thumbnail = vips.Image.thumbnail('test.png', 320, {
        height: 320,
        no_rotate: true,
        crop: vips.Interesting.attention // 'attention'
      });
      thumbnail.writeToFile('test3.png');
}
init();

 

效果

原始图

wasm-vips libvips webassembly 实现_github

生成图片

wasm-vips libvips webassembly 实现_图片处理_02

 

说明

以上是一个简单的使用,实际上也有基于node 的包装sharp 是一个很不错的选择,但是基于webwaasmbly 也是一个不错的选择,至少不需要对于
libvips 的依赖了,sharp 是使用的预编译好的依赖

参考资料

https://github.com/kleisauke/wasm-vips
https://www.libvips.org/
https://github.com/libvips/libvips
https://emscripten.org/
https://github.com/lovell/sharp
https://github.com/emscripten-core/emscripten

标签:emscripten,libvips,320,wasm,https,vips
From: https://blog.51cto.com/rongfengliang/8612814

相关文章

  • wasmer 基于webassembly 的平台
    wasmer基于webassembly的平台,目前包含了runtime,registry,edge等组件说明wasmer属于一个插件化的设计,目前支持wasix,wasi以及Emscripten,同时还提供了不少语言sdk方便代码嵌入同时wasmer也提供了就很不错的性能,很值得学习试用下参考资料https://docs.wasmer.io/https://do......
  • 在 Blazor WASM 中手撸一个.NET MD5类
    最近.net8blazorauto大火,我也玩了一下,发现ssr能用的代码MD5类在wasm是没法用的.于是搜索了一下互联网,找到了一份代码,分享给大家.我找到的帖子作者原话:代码不是我的,但我确实稍微修改了它以使其与System.Security.Cryptography.MD5类更加一致。publicstaticclass......
  • wasmedge 轻量&可扩展&可移植的webassembly 运行时
    wasmedge是一个cncf的沙箱项目,提供了一个强大的webassembly运行时包含的特性高性能 利用了llvm进行AOT编译优化云原生的扩展 提供了非阻塞的网络以及webservice能力的rust,c,jssdk,包含了mysql数据库驱动,keyvalue存储,同时包含了ai的推理支持提供了比较完备的js支......
  • Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力
    WebAssembly(通常缩写为Wasm)是一种为网络浏览器设计的低级编程语言。它旨在提供一种比传统的JavaScript更快、更高效的方式来执行代码,以弥补JavaScript在性能方面的不足。通过使用二进制格式,WebAssembly能够提供比传统JavaScript更快的解析和执行速度。原文链接:https......
  • Golang简单使用wasm
    go代码packagemainimport( "syscall/js")funcaddxxxx(thisjs.Value,args[]js.Value)interface{}{ iflen(args)!=2{ return"Invalidnumberofarguments.Expected2." } num1:=args[0].Float() num2:=args[1].Float() res......
  • wasm-vips libvips webassembly 实现
    wasm-vips是利用了emscripten将libvips编译为webassembly可以实现在node以及浏览器中使用libvips强大的图片处理处理以下是一个简单的试用参考试用app.js constVips=require('wasm-vips'); asyncfunctioninit(){constvips=awaitVips......
  • 基于 tesseract-wasm+ fastify 开发一个简单的中文ocr 服务
    以前我简单介绍过tesseract-wasm,基于此wasm包我们可以直接基于nodejs调用tesseract的方法实现ocr处理,以下是一个简单的demo基于fastify开发了一个简单的api,同时包含了一个简单的web可以测试项目结构package.json {"name":"tesseract","versio......
  • tesseract-wasm 基于webassembly 的tesseract npm 包
    tesseract是一个开源的ocr工具,社区提供可一个基于webassembly的tesseract-wasm,可以方便直接基于浏览器的ocr识别以下是一个简单的试用项目代码package.json {"name":"tesseract","version":"1.0.0","main":"index.js"......
  • opencv wasm 试用
    基于webassembly的opencvnodejs开发是一个很不错的体验,不用考虑nodeaddon的各种问题,而且性能也不错以下是基于echamudi/opencv-wasm构建的4.8.1版本的试用,代码来自opencv-wasm的示例demo试用pacakge.json {"name":"opencv-wasm","version":......
  • wasm-pack 基于rust 的 WebAssembly 开发工具
    目前基于WebAssembly的应用是越来越多了,同时周边工具以及生成也越来越强大了,wasm-pack是rust周边一个很强大的工具,以下是一个简单的试用参考使用安装 curlhttps://rustwasm.github.io/wasm-pack/installer/init.sh-sSf|sh创建简单项目......