给相机设备党撸了一个加水印的小程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
joyqi
V2EX    分享创造

给相机设备党撸了一个加水印的小程序

  •  
  •   joyqi
    joyqi 2024-04-01 18:05:32 +08:00 3222 次点击
    这是一个创建于 556 天前的主题,其中的信息可能已经有所发展或是发生改变。

    从小米还有华为手机自动加徕卡 Logo 边框的功能得到的启发,简单的说就是读取照片的 EXIF 信息,然后加上水印边框生成一个下面这样的

    加水印边框以后的效果

    现在市面上已经有一些 App 可以实现这个效果了,我做的这个特点是:

    1. 我做到小程序里了,不需要去下载 App
    2. 完全在本地处理,基于微信小程序的 Canvas ,图片不经过服务器
    3. 功能简洁,不花里胡哨

    目前能识别的主要是相机的 Logo ,手机只做了少量适配,所以可能出现无法识别。

    我做这个的初衷是自己身为一个伪摄影师真设备党,花这么多钱买个相机,不能静静地装一下简直太难受了,而现存的应用不是要下载,就是要经过服务器处理,于是自己动手撸了一个。这算是我自己从头开始写的第一个微信小程序,顺便也练练手,有几个经验也顺便总结下:

    1. 考察了大部分小程序框架(比如 Taro ,uniapp 等等),在操作原生 Canvas 时都不好使,所以干脆组件都自己写了,所幸就俩页面也挺简单
    2. 微信现在在推它的 Skyline 渲染,这些框架或多或少都有一些 Bug ,或者干脆不可用
    3. 事实证明微信的 Canvas 目前已经基本做到了和 Web 标准的兼容
    4. 顺便还尝试了一把 wasm ,用 wasm-bindgen 参考网上的教程写出来的代码,基本没遇到大的坑

    小程序名称是:相机水印助手,欢迎扫码使用

    相机水印助手小程序二维码

    6 条回复    2024-04-03 13:42:14 +08:00
    leexiaolang
        1
    leexiaolang  
       2024-04-01 20:50:00 +08:00
    iOS 最新版本从相册选择照片生成失败了,要是走会话文件还是有点麻烦的
    Fish1024
        2
    Fish1024  
       2024-04-01 21:05:24 +08:00
    iOS 几乎不可用,太麻烦了。
    joyqi
        3
    joyqi  
    OP
       2024-04-01 21:39:32 +08:00 via iPhone
    @leexiaolang
    @Fish1024

    确实 iOS 如果从相册读取就会丢失 exif ,这是微信的限制目前没有太好的办法。
    musi
        4
    musi  
       2024-04-02 08:43:08 +08:00
    大概五年前就有这小程序了
    后面微信砍了读取 exif 功能后都死了
    所以就注定了你这小程序做不起来
    还不如做个网页
    tysb777
        5
    tysb777  
       2024-04-02 08:48:46 +08:00
    ios 有快捷指令可以实现
    flyPig9527
        6
    flyPig9527  
       2024-04-03 13:42:14 +08:00   1
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3534 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:08 PVG 13:08 LAX 22:08 JFK 01:08
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86