# miniprogram-gifmaker **Repository Path**: imjesson/miniprogram-gifmaker ## Basic Information - **Project Name**: miniprogram-gifmaker - **Description**: 微信小程序GIF动画制作 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-08-18 - **Last Updated**: 2021-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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代码。