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

wasm-vips libvips webassembly 实现

时间:2023-11-05 22:46:56浏览次数:41  
标签: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();

效果

原始图

生成图片

 

说明

以上是一个简单的使用,实际上也有基于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://www.cnblogs.com/rongfengliang/p/17811411.html

相关文章

  • 基于 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创建简单项目......
  • Go每日一库之132:wasm与tinygo
    WASM的概念,这几年还是挺火的,新的语言,比如Rust、Go、Swift等,都对WASM提供支持。相比之下,Go语言的简单性,使得对WASM的支持,使用起来也较简单。本文是目前公开资料中为数不多较完整的教程,希望能对你有帮助。WASM是什么标题说:“Golang中的Wasm太棒了。”,但请用几句话来说......
  • Xmake v2.8.3 发布,改进 Wasm 并支持 Xmake 源码调试
    Xmake是一个基于Lua的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了Lua运行时。它使用xmake.lua维护项目构建,相比makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。我们......
  • WebAssembly实践指南——C++和Rust通过wasmtime实现相互调用实例
    C++和Rust通过wasmtime实现相互调用实例1wasmtime介绍wasmtime是一个可以运行WebAssembly代码的运行时环境。WebAssembly是一种可移植的二进制指令集格式,其本身与平台无关,类似于Java的class文件字节码。WebAssembly本来的设计初衷是想让浏览器可以运行C语言这种编译型语言的......
  • Wasm软件生态系统安全分析
     演讲嘉宾 | 王浩宇回顾整理 | 廖   涛排版校对 | 李萍萍嘉宾简介王浩宇,华中科技大学教授,博士生导师,华中科技大学OpenHarmony技术俱乐部主任。研究关注于新兴软件系统中的安全、隐私和可靠性问题,近五年发表CCF A类和CSRankings顶会论文近70篇,在软件安全和系统......
  • 编译wasm Web应用
    刚学完WebAssembly的入门课,卖弄一点入门知识。首先我们知道wasm是目标语言,是一种新的V-ISA标准,所以编写wasm应用,正常来说不会直接使用WAT可读文本格式,更不会用wasm字节码;而是使用其他高级语言编写源代码,经过编译后得到wasm应用。课程中使用了C++来编写源代码,所以这里我也用C++来......
  • 要构建此项目,必须安装以下工作负载: wasm-tools
    要构建此项目,必须安装以下工作负载:wasm-tools要安装这些工作负载,请运行以下命令:dotnetworkloadrestore AdminAPP C:\ProgramFiles\dotnet\sdk\7.0.306\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.ImportWorkloads.targets 38在项目的目录cmd运行命令dotnetwor......