30 天用 Rust 打包 WASM,做出 3 個可直接在瀏覽器用的外掛:Markdown 超速轉換、圖片壓縮/縮放、超大 CSV 串流解析。提供 React/Next 範例與 Web Worker 版本,一行 import 即用。
寫完銳化、卷積之後,下一步就是「如何找出邊緣」。Sobel 幾乎是所有影像處理教材裡的第一個邊緣偵測器。它的概念很簡單~用兩個小小的 3×3 卷積核,分別測量水...
到目前為止,我們把重心放在一些酷酷的地方(寫了很多功能與演算法)但錯誤可觀測性也重要。WASM 這一端如果只是 return Err(JsValue::from...
到目前為止,我們所有的影像處理都在瀏覽器 主執行緒 上跑。這代表 UI、事件、排版、繪圖,還有那堆重計算,全都擠在同一條線。結果就是:一旦你對一張 4K 圖片做...
Day 12 我們已經把影像管線搬進 Web Worker,讓主執行緒只管 UI,所有運算交給 Worker,不卡 UI。但單工有個問題:如果你在 UI 快速連...
前幾天我們把功能越寫越多(多個濾鏡、錯誤格式、Worker 版…),結果 pkg/*.wasm 越來越胖。今天把體重管理講清楚:哪裡在長肉、誰負責減肥、怎麼操作...
做這個套件,算子本身通常是 O(wh) 的線性時間;真正拖慢的東西之前有發現不是演算法,而是搬來搬去的過程,在 JS 與 Wasm 兩個記憶體世界來回拷貝像素。...
到這裡,我們已經把資料流關在 Wasm,互動操作幾乎不再跨界拷貝。接下來的現實問題是:這些像素會住多久、住在哪裡、什麼時候要請它們搬家。如果不把「生命週期」講清...
到目前為止,我們的 API 大致長這樣: Rust 端暴露一堆 #[wasm_bindgen] 函式,直接跑影像管線; 前端可以同步呼叫,拿到 Uint8Ar...
到目前為止,我們把 API 的錯誤訊息改成 { code, message } 格式,這樣 UI 可以更好地分流處理。但這只是「能看懂」。如果再往前一步,錯誤就...
今天我們把首頁做成一個單頁 Demo,選圖、三顆按鈕(灰階/模糊/銳化)、即時顯示尺寸與處理時間,並且沿用前幾天做好的零拷貝資料流與錯誤訊息協議。可以把下面整包...