PROJECT.01 / ANDROID / OPEN SOURCE
Open EOS Control
Canon EOS 相機控制
非官方開源專案,提供即時取景、曝光設定、對焦、拍攝與媒體下載
相機連線、拍攝操作與媒體管理,集中在同一個介面。可用功能依機身、連線方式與拍攝狀態而異。
- 即時取景
- 曝光與對焦
- 拍攝與媒體下載
Development Preview

INTERFACE / DEVELOPMENT NOTE
轉個方向,
文字也要完整
相機介面的旋轉與大字體
手機旋轉後,操作區維持位置,文字與圖示跟著轉向。寬度一變,曝光值、錄影時間和長名稱就可能被截斷。
按鈕放得下,還要確認文字排得下。字級、行高、父容器和觸控範圍需要一起檢查。
check([
"旋轉方向", "系統字級",
"長名稱", "文字與容器邊界"
]);- 快門
- 1/125
- ISO
- 6400
縮窄操作區、放大文字,看看長名稱如何換行,數值如何保持完整。這是網頁排版示意。
PROJECT.02 / PHOTOGRAPHY / LOCAL-FIRST
Serein
照片管理與 RAW 顯影
以本機儲存為主的攝影工作空間,整合照片匯入、整理、非破壞性編輯與匯出。目前持續開發中。
從匯入一張照片,到整理、編輯,再輸出結果;每一步都需要清楚的狀態與持續可用的預覽
const workflow = [
"匯入", "整理",
"編輯", "匯出"
];- 01
匯入
照片進入本機工作空間
- 02
整理
回到相簿,找到要處理的影像
- 03
編輯
RAW 顯影與非破壞性調整
- 04
匯出
將調整完成的結果輸出
IMAGE PROCESSING / DEVELOPMENT NOTE
持續調整,
也持續看見結果
快速回應與精細預覽之間
曝光滑桿會連續產生新值。如果每次輸入都取消上一個 render,拖動期間可能沒有任何一幀能完成。
讓一個工作先完成,同時只保留最新待處理值。拖動時更新快速預覽,放開後再完成精細結果;兩者也需要一致的亮度基礎。
while (latest) {
const next = latest;
latest = null;
await render(next);
}拖動時更新待處理值,執行中的工作先完成;放開後再排入精細預覽。這裡使用模擬時間,不是 Serein 的實際效能。
TOOLS / IN THE BROWSER
線上工具
可以直接打開使用
影片網址下載器
貼上公開直連影片網址,確認格式與檔案大小,再下載到自己的裝置
公開直連影片 · 上限 500 MBMARKET EXPLORER股票 K 線圖
查詢歷史日線、成交量與 5、10、20 日移動平均線
台股與美股 · 歷史資料const tools = ["/lab/video", "/stock"];DEVELOPMENT NOTES
開發記錄
實作遇到的問題,與處理方式
Android:旋轉與大字體下的文字裁切
檢查控制項邊界、文字排版與父容器裁切,驗證相機介面在旋轉及字體放大後的顯示
Serein:RAW 預覽延遲與更新排程
處理 RAW 編輯器首次開啟的等待、連續調整時的更新中斷,以及快速與精細預覽的亮度差異
Open EOS Control:功能與開發狀態
非官方 Canon EOS 開源控制專案,提供即時取景、相機設定、拍攝與媒體管理
// 從問題,回到實作
notes.map(note => "/blog/" + note.slug);