小程序与移动端图片上传那些事

2022年7月14日,深圳一场绝世晚霞突然出现,而随手拍的一张照片上传到相册,却发现了一些问题,于是回来继续研究,顺便对相册的文件上传做个踩坑总结。

图片上传在各种程序开发中是一个再常见不过的需求。PC端由于对文件管理比较专业和成熟,一个 <input file> 直接搞定,但在移动端,却变得复杂起来。主要来说:第一是格式增多,兼容性难保证,各厂家均有自己的转换思路。第二是出于隐私保护,索性抹去了 EXIF。即刻相簿在做这件事情的时候也是不断的摸索中前进,被坑过数次。

对于相册程序而言,我们需要的是“完整”的“原图”,这里有两层含义,第一是包含完整的 EXIF 信息,从而绘制出带相机型号以及拍摄参数的分享图,第二是未经格式转换和机内后期的原始图像,尽可能的保存原始数据,当然,这一点倒影响其次。

即刻相簿是一个以微信小程序为主的相册,自然首先用到的是微信官方提供的上传功能,即 wx.chooseImage() 和 wx.chooseMedia() 很不幸的是这两者均不能满足要求,均抹去了 EXIF,转换成了 JPG,视频经微信压缩,画质掉渣到不可接受。

后来采用内嵌 webview,通过 H5 页面来实现上传,这样 file 的选择权就完全交由手机系统来决定,随后的测试中发现,在 iOS 系统中,相机拍摄格式中选择了“高效”,即 HEIF 格式时,上传时依然会转换成 JPEG,并抹去 EXIF,但拍摄 ProRAW 格式在自动转换 JPEG 的时候又能保留 EXIF,拍摄格式选择“兼容性最佳”,同样也能保留 EXIF,真是迷之操作。

(iOS 似乎在自动转换的过程中存在 Bug,将方向6转换成1的过程中没有更改宽高像素,导致画面比例错误。在选择照片中选择大、中、小,会丢失方向,竖拍图直接横着显示。前者解决办法判断宽度是否小于高度,竖拍一般宽度小于高度,后者基本无解,估计没多少人会去选大小吧)

既然是 webview,也想过能否在前段通过 JavaScript 来预先获取 EXIF,于是使用了 exif-reader.js 来读取 EXIF,很不幸测试结果中和上述表现一致。很好理解,因为在选择文件那一刻,就已经转换一个临时的 JPEG,开发者侧是无法感知这一过程。

另外有趣的是,手机上将 HEIF 图片通过分享存储到“文件”中,再在上传页面选择“选取文件”找到刚才的文件,是可以上传原始的 HEIC 格式文件并且保留了完整的 EXIF。

综上所述,即刻相簿也提供了PC端上传方式,来避开这些“限制”,以上测试基于 iPhone 13 Pro 系统 iOS 15.5。看来迟早得上 native app。

Mavic 3 影像至上

Mavic 2 Pro 带屏套装,已有3年之久,整体还算满意,也从没发生过什么严重问题,除了一次室内飞行挂窗帘上而“炸机”,也仅仅是更换桨叶解决,机器并无大碍,当然偶尔的 App 卡死,拍照无反应,这类小问题,基本也就重启下 App,习惯就好。

Mavic 2 最大的问题还是电池鼓包,尤其是在刚飞完,未冷却状态下,非常的明显,冷却后可恢复正常。锂电池鼓包倒也不是什么新鲜事,但由于 Mavic 2 电池仓设计并没有留有冗余空间,导致鼓包后卡口容易崩开,空中电池弹出,造成严重事故,所以圈内玩 Mavic 2 的都常备橡皮筋来绑住电池。似乎大疆情愿无限次免费更换也不打算再去改进设计了。

2022年5月份的一次飞行中,才换新过不到一年的电池再次鼓包,为杜绝后患,才决定将 Mavic 2 升级到 Mavic 3,配置上没什么好选的,依旧是带屏的畅飞套装,轻车熟路。新机到手大概一个月左右,恰逢南方多雨,也没太多时间拍,熟悉的差不多了写点东西记录下,当然主要是对比和二代的差异,以及各自优劣。

1、外观

外观设计上三代漂亮了许多,顶部外露的黑色的散热鳍片特别有科幻感。机身整体流线感设计也比较美观。上一个让人眼前一亮的设计,我个人觉得还得是第一代的 Air 红色背壳,号称空中法拉利,而时间已过去4年多。

展开体积倒不太重要,这里主要说下收纳状态:体积长宽高略大于二代,包包又要跟着调整了,自带的收纳保护罩可以提供全方位的保护,二代仅能保护云台和相机,拆装略微耗时。仔细观察,云台处于无支撑状态,考验云台轴锁的耐久性了。底部略有压迫桨叶和电机,放置于摄影包中,最好是放最上层。

电池和电池仓设计好评,侧面插入,留有鼓包冗余空间,并且体积方正,收纳体积小巧,Type-C 充电,机身也可充电,省了不少充电器的空间,当然功率可能要看准了。不过带屏遥控器 RC Pro 还是差点意思,比上一代宽了许多,天线突出,一般的摄影包、内胆包横着放也不是,竖着放也不是,还不能抗压。

2、操控

其实也没想过无人机会有操控这一说,不就是个遥控玩具嘛。但这一代给人的感觉确实是进步明显,O3+ 带来的 1080p 60fps 图传,非常清晰流畅,空中旋转、环绕很上头,有助于更为细腻的运镜。新的带屏控摇杆阻尼也很舒适,没有一代的生硬感。DJI Fly 界面虽然是简化了不少,初看没有 Go 4 那么专业,但也在不断迭代中,习惯就好。

标称46分钟的续航,明显强于上一代,滞空时间更长,对于不拍延时的我来说,基本一半的电就可以返航,去下一个拍摄点了。

由于这个带屏控 Type-C 接口是全功能的,可玩性还是挺大,读取相机照片,行车记录仪视频,更新车载 SD 卡上的音乐都是可以的,之前都得靠手机、电脑,别提苹果生态的文件管理有多难用了。

3、画质

虽然是引入了 4/3 画幅,依旧是 2000w 像素,拍照上并没有感觉比二代有太大差别,主要是边缘枕形畸变明显,光斑都成椭圆了,中央画质还是一如既往的优秀。视频方面,4K 60 帧 10-bit 420 看起来也略有过时(A7M4 都加入了 10-bit 422 给调色带来更多可能,当然 Cine 版是有422的,一切加钱可得。)正真意义上的 D-Log,而不是上一代的DLog-M,个人更喜欢 HLG,简单处理下就可以在苹果手机上看到 HDR 画面,可惜很多平台、播放端还不支持。

7x 长焦相机,等效焦距高达 162mm,拍摄特写成为可能。车流,大厦,甚至人物,满满的“压迫感”。画质嘛,就别太在意了,受空气质量影响较大,由于光圈仅 f/4.4,夜间表现可以说是一片黑,但在白天解析度表现还不错。

4、总结

以上所用固件为 5月31日发布的 V01.00.0700,虽然还有不少槽点,但也是目前最佳的选择。

使用 Mavic 3 拍摄的一些照片,发布于即刻相簿:

1:https://igigm.com/post/LxVfBAxr46R6X2TxXQUm3h

2:https://igigm.com/post/TPeqDXT8cm4hy5WgKnCwJn

3:https://igigm.com/post/AucSkMZfFuuCyUYX18z8VZ

 

Mavic 3 车充那些事

不知不觉的,车载充电器也换到第四个了,终于功率突破 100w。点烟器这样一个原始的接口还能如此大放光彩。

最早买的一个大概是 5v2a 左右,印象中是还不支持快充,具体哪一年也记不清了,那时候租的车要么没有 USB 输出,要么就 500ma,导航时候,电是越冲越少。就买了便宜的凑活下,说不定哪次忘在车上也不心疼。

后来为了快充陆续换了 Anker,小米 45w,从单口到 1a1c,满足于手机+iPad。而随着 DJI Mavic 3 的到来,也全面换到 TypeC 充电,功率也一下子拉升到了65w(满载88w),于是乎寻找一个 c 口能支持 100w 的充电头又成了刚需。

市面上单口支持 100w+ 的品牌充电头并不多,目前就看了小米和倍思两家。考虑到小米的只有 1a1c,当心将来不够用,就选择了倍思,有意思的是倍思旗下有两款 100w(+) 的产品,其中一款 1a1c 是仅在 24v 输入情况下才能达到 100w,另一款 1a2c 可以在 12v 输入下通过升压到 20v ,实现 100w,并且三口合计输出标称 160w,果断选择了后者。目前刚收到货,还没时间去测试,应该是足够喂饱 DJI Mavic 3 了。

160w,几乎也达到点烟器极限了(<120w),不清楚满载是否对车辆有影响,最好还是别满载,可使用第二个点烟器,并且只在发动机启动时候使用。

用车记账那些事

关于记账这个事,在开发者眼里似乎是个永恒的话题,大体上如同todo list。

记账难就难在一个不漏的记录,对于早已习惯使用电子支付的我们,绝大多数交易都会经过微信,支付宝,这些大厂就有先天优势,无需手动记账,它们可以通过交易记录自动归类每一笔消费。例如微信官方的:微信记账本。估计也没谁能耐心的去看,就算看了也未必知道是干啥了,收单机构总会让一笔消费变的难以归类,比如你买的衣服,可能支付给了一个科技企业。

大而全,还是小而美,成为用车记账的设计核心,很显然选择了后者。

用车场景的记账,很容易就让人想到油耗,或许每个车主都关注的话题,此类的小程序app也是卷到飞起。

但要说只记录用车开销,而不关心油耗,可能只有真正的爱车人士才会需要,就恨不得每一次加油,每一次洗车,都得拍照记录的那种,最终结果也只会是得到一句:你看,今年玩车花了几个w。

一年多的时间,用了好几个记录app,包括:汽车之家的,懂车帝的,平安好车主的,前两个还是关注油耗,平安的目前最为满意,但入口安排在了一个难以找到的角落里,似乎就没打算给你用。

干脆自己做一个,也花不了多少时间,形态上还是选择了小程序,这也是小程序最适合的场景。

也没啥特点,就是简单,界面简单一看就懂,操作简单纯手动记录,随时可以补,随时看到月统计,年统计,没了。至于还能玩出什么花样,欢迎留言,拭目以待。

扫小程序码体验:

或微信搜索:“用车账本”,那个黑白跑车logo就对了。

截图如下:

iPhone 13 Pro 拍摄随测

正在使用的主力机 Xs Max 由于是最低配的 64G 存储,早已不够用,尤其作为一个喜欢摄影的人来说,存储照片视频更显紧迫。直到今年的9月27日终于迎来了新机 iPhone 13 系列发布,第一时间下单了 13 Pro 远峰蓝 256G,足足等了半个月终于到手。

作为苹果的老用户,实际上并没有太大的惊喜,反而由于屏幕从6.5寸降为6.1,稍有失落。可能最大的惊喜还是来自背后三颗“巨大”的镜头,以至于任何一款保护壳都已无法撑平整。6.1这个尺寸怎么形容呢,单手略宽,双手显娘。当然,这再也回不去更小的尺寸了。平整边框个人感觉还是没有圆形来的优雅,握持感也会比较的压迫。

重点来了,拍照确实有大幅提升,三颗镜头的配合使得创作方式有了更多的选择,我喜欢用0.5x 1x 3x 来表述这三个镜头。夜景的拍摄是对随身设备来说是极具考验的,例如手机,运动相机等。我主要考察三点:

1、可见性,是指设备应能记录下可见画面,不应该出现大面积死黑。
2、可用性,是指由于高ISO带来的噪点可被接受,手持拍摄快门慢而不糊。
3、可创作性,记录的宽容度应能满足适当的后期与裁剪。

第一晚用自带的相机来拍摄(即刻相簿第一个链接),第二晚则是用了 Camera+ 2 这个 App 来拍摄(即刻相簿第二个链接)。这个 App 的好处是可以手动切换物理镜头,而不是自带相机的“智能”判断,根据苹果的算法,暗光环境喜欢用主摄 1x digital zoom 来实现 3x。并且 App 可关闭数码变焦,以免误触。可设置的 ProRAW+ 级别的画质(但短暂的体验并未发现和自带的 RAW 肉眼可见的画质提升,倒是体积翻倍了,约 35M 提升至 80M),自带的收藏夹可以方便的临时存放原片,不至于塞满相册。原片长按分享可以快速复制到 Lightroom 进行后期,再输出为 jpg 进行分享,有了工作流的概念。

链接一:https://igigm.com/post/JCt42KjcMSUi7rE6MFTmpV
链接二:https://igigm.com/post/Taff1DNvoAY7fHTiBLYPjD

链接一的糊片确实多,主要有两点,一是 3x 大多数是digital zoom,二是容易触发夜景模式,即长爆光。链接二则干净清晰很多。

以上只是个人初略测试,不做为严谨评测,未上脚架等辅助工具,仅供参考,总结:够用。