小米 12S Utra 莱卡水印生成在线工具
前言
最近看到小米 12S Utra 的发布,看了下详情页面,发现演示的照片都好看的,包含了品牌、设备、镜头、位置等信息,如下图所示:
作为一个摄影爱好者,也希望把自己的照片也输出这些信息。
但目前此类水印好像只在小米 12S Utra 的编辑器里有,没有其他途径。
于是就写了这个小工具。
水印工具
- 地址:https://lecepin.github.io/gen-brand-photo-pictrue/
- Github 仓库地址:https://github.com/lecepin/gen-brand-photo-pictrue
支持:
- 自动读取照片 exif 数据,并自动填写到图片中,包括型号、品牌、焦距、光圈、快门、ISO、拍摄时间、GPS 信息。
- 可手动编辑水印参数。
- 目前支持 苹果、佳能、大疆、富士、华为、莱卡、小米、尼康、索尼 品牌。
实现
实现上比较容易,就是读取照片数据的前 4KB 数据,获取照片的基本信息,也就是 Exif 数据。
最近刚好在用 Rust,于就是就 Rust 写了 WebAssembly 进行 Exif 数据的读取,代码如下:
#[wasm_bindgen]
pub fn get_exif(raw: Vec<u8>) -> JsValue {let mut exif_data: Vec<ExifData> = Vec::new();let exifreader = exif::Reader::new();let mut bufreader = std::io::Cursor::new(raw.as_slice());let exif = exifreader.read_from_container(&mut bufreader).unwrap();for field in exif.fields() {if let Some(_) = field.tag.to_string().find("Tag(Exif") {continue;}if ["Make", "Model"].contains(&field.tag.to_string().as_str()) {exif_data.push(ExifData {tag: field.tag.to_string(),value: field.display_value().to_string().replace(|item: char| ["\"", ","].contains(&item.to_string().as_str()),"",).trim().to_string(),value_with_unit: field.display_value().with_unit(&exif).to_string().replace('"', ""),});continue;}exif_data.push(ExifData {tag: field.tag.to_string(),value: field.display_value().to_string(),value_with_unit: field.display_value().with_unit(&exif).to_string(),});}JsValue::from_serde(&exif_data).unwrap()
}
测试了一下用 Rust Exif 与 npm exif 的执行速度:
- Rust WebAssembly:0.6ms
- Npm exif 包:5.6ms
大约快 10倍左右,还是很夸张的。
其它示例
最后看下,使用这个工具生成的照片吧。
小米 12S Utra 莱卡水印生成在线工具相关推荐
- 在线生成ascii字符画,字符图案生成在线工具,springboot banner启动字符图设置
文字生成字符图 http://patorjk.com/software/taag http://www.network-science.de/ascii/ 根据图像生成字符图 http://www.d ...
- 一个好用的基于若干静态图片生成gif图片的在线工具
在线工具,无需安装,浏览器即可使用. 网址:http://www.atoolbox.net/ 添加想要生成gif的图片素材,支持批量上传: 延时的意思是,如果上传了三张图片A,B,C,前两张图片的延时 ...
- 在线图片水印平铺工具
在线图片水印平铺工具 在线图片水印平铺工具 本工具可以为图片添加自定义的平铺文本水印,可以用于给证件添加水印,隐私图片添加水印等,方便快捷,工具仅支持较新的浏览器版本. 工具为纯客户端处理,数据将不会 ...
- 基于新浪微博API生成短链接的几款在线工具
需求背景 很多人在营销推广中都要使用到短链接,新浪短链接则是大家最先接触到的,服务也很稳定,所以需求量也很大.据不完全统计,大概每天有几十亿条t.cn短链接生成.如此巨大的数量,难道都是先登录新浪微博 ...
- 自媒体必备工具:免费的音文对齐生成SRT字幕,快速打轴匹配声音及文字的在线工具
对一个自媒体来说,制作字幕是一件非常令人头疼的问题.当然,网易见外工作台是一个很好的工具,可以免费进行语音识别生成字幕. 但是问题也来了,有时候由于普通话不标准,或者语速过快,导致出现很多的错别字的情 ...
- JavaScript实现在线生成高强度随机密码工具-toolfk程序员在线工具网
2019独角兽企业重金招聘Python工程师标准>>> 本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装 ...
- 推荐 | GIF转换工具(无水印)|在线视频转gif网站
推荐 | GIF转换工具(无水印)|在线视频转gif网站 https://convertio.co/zh/video-converter/ 个人推荐这个,还可以安装 谷歌插件,最好还是挂着VPN等,不 ...
- carbon- 一个能生成漂亮的代码分享图的在线工具
本篇转载自https://juejin.im/post/5a82c27f5188257a76632cc0 carbon是一个在线工具,它负责生成更加漂亮不同风格的代码图片,绝对比截图工具更加搞逼格. ...
- 白嫖我常用的 11 个超火的前端必备在线工具,终于有时间上班摸鱼了
大家好,我是你们的 猫哥,一个不喜欢吃鱼.又不喜欢喵 的超级猫 ~ 前言 猫哥是一个常年混迹在 GitHub 上的猫星人,所以发现了不少好的前端开源项目,在此分享给大家. 公众号:前端GitHub,专 ...
- Steve:AI创建视频和动画的在线工具
[产品介绍] steve.ai是一款利用人工智能技术创建视频和动画的在线工具,可以让任何人在几分钟内把文字转换成吸引人的视频.核心功能是根据用户输入的文本,自动选择合适的素材.音乐.字幕和动效,生成高 ...
最新文章
- numpy list df tensor的相互转换
- 关于jinja2的{{...|safe}}过滤器
- 苹果手机mov文件如何复制到电脑_如何在手机上访问电脑上的文件(超详细步骤) iPhone版...
- 函数的基本知识,定义,调用,参数,返回值,说明文档,函数的嵌套及应用
- ubuntu使用python opencv_Ubuntu中“利用Opencv + python进行特征匹配”的环境搭建
- 【职业发展记录-05】地图服务发布-几种方式
- WDK10+VS2015 驱动环境搭建
- matlab水蒸气焓值计算_暖通干货,巧析焓湿图,焓湿图如何应用?一读就懂不容错过...
- 电子科大《模拟集成电路分析与设计》(罗萍)2020期末考试重难点整理
- SketchUp Pro 2019下载|SketchUp Pro 2019(草图大师)免安装绿色精简版下载
- [bzoj3481]dzy loves math III 解题报告
- junos pulse_IT怪胎:如何使用DHCP中继(JUNOS)
- repaire mysql_mysql检查数据表和修复数据表
- 阿越-临江仙:见《十字-声名雀起》
- PaddleHub一键视频动漫化
- 人工智能在教育方面应用的思考(一)
- IOS积分墙:末落贵族与新兴势力PK
- 计算机毕业设计,这6个网站早知道,太牛了
- 【IT-Windows】某些设置由你的组织来管理
- 优先级反转的经典案例——火星拓荒者
热门文章