8000 GitHub - fireyang/miniprogram-gifmaker: 微信小程序GIF动画制作
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

fireyang/miniprogram-gifmaker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

miniprogram-gifmaker

GIF动画制作微信小程序

其中GIF生成的功能是用Rust实现的,使用stdweb和gif两个库,将Rust代码编译成asmjs

本来打算到Webassembly,性能更好,但是发现微信对wasm支持有问题:第一、在开发者工具中测试没问题,真机调试以后,只要杀死小程序,第二次进入,重新执行require,Webassembly重新编译的时候就过不去了。在android中没有任何提示,Promise的catch和then方法都不会调用;在iOS中提示:Error: Out of executable memory at import0。使用最简单的代码、第二次编译一份不同的代码也都不行。第二、android5.1中不支持Webassemlby。所以只能选择asmjs的编译目标。

编译到Webassembly:用stdweb编译到wams和js文件以后,微信小程序中不能直接用,首先HelloWorld代码中的alert()不支持,可以在生成的js中实现一个alert函数,其中调用微信的wx.showModal来实现弹窗。其次微信小程序中没有fetch方法,可以在生成的js中实现一个返回Promise的fetch函数,或者直接修改Webassemlby编译那一块的代码,使用小程序API的FileSystemManager.readFile来读取wasm文件。参考https://github.com/planet0104/miniprogram-rust-wasm

编译到asmjs:使用stdweb编译到asmjs的js文件在微信小程序中也不能直接使用,在build.cmd 中使用node recheck.js调整以后使用。

https://crates.io/crates/stdweb

https://crates.io/crates/gif

/ministdweb Rust代码(生成GIF)

/program 微信小程序代码

program中的代码可以直接在微信开发工具编译运行,/workers/ministdweb.js是编译好的Rust代码。

About

微信小程序GIF动画制作

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 91.8%
  • Rust 5.3%
  • HTML 2.8%
  • Batchfile 0.1%
0