需要图片的业务
- 某个业务的图片,比如汽车logo。
- 页面元素图片,比如切图/icon。
- 广告图片。
- banner。
- 手动上传的一些分享图片。
存储路径和命名。
- 不能反推出原图路径,防抓。
- 不能反推出同类型其它图片,uuid不用连续数字id。
- 尺寸信息。
- 缩略标准信息。
- 根据图片id能计算出存储路径和命名。
- 业务线/模块。适用于切图。
- 推导出其它尺寸文件名。根据1个命名就可以反推出其它尺寸的图片名。
- 类型当作路径。
- 头像。avatar。
命名。
版本1~16 userId二进制的后8位 时间微妙0~999 随机数0~256 + uuid:md5(key+长+宽) + 长 + 宽 + 后缀 存储的云 原图后缀1~16
版本0000,userId后几位00000000,时间微秒0000000000,随机数00000000,原图后缀0000,md5(key + 前面部分 + 长 + 宽)
例:0001100000011000000001100000011001
大厂的图片地址
- https://inews.gtimg.com/newsapp_ls/0/6929117233_640330/0
- https://inews.gtimg.com/newsapp_ls/0/6929117233_640330/0
- https://p0.meituan.net/400.0/shaitu/331a0ae53ff72acabdd5fb69c57a3365123428.jpg
- https://img.meituan.net/122.74/avatar/3026f577b9bb0166aa242f94254e0edb6360.jpg
- https://p0.meituan.net/60.0/shaitu/1989b15db5b6dbabb136d3bba241c27491069.jpg
- https://vfile.meituan.net/120.0/joymerchant/5897674793189569076-36314761-1517480500813.jpg
- https://p0.meituan.net/120.0/deal/__14096544__6031471.png
- https://p1.meituan.net/200.0/deal/b2a507fff7dc5c7ab90d88f7882ee06d244683.jpg@262_0_809_809a%7C267h_267w_2e_90Q
- https://p1.meituan.net/jungle/c1048e334022a93221b0e63bbfb998b18861.png
- https://img.alicdn.com/tfs/TB1UDHOcwoQMeJjy0FoXXcShVXa-286-118.png
- https://img.alicdn.com/tfs/TB1tyFSXm_I8KJjy0FoXXaFnVXa-48-1194.png
- https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_50x50.jpg
- https://img.alicdn.com/i2/2/TB12K2gSpXXXXbNaFXXXXXXXXXX?abtest=&pos=4&abbucket=&acm=03014.1003.1.765824&scm=1007.13143.56636.100200300000000_170x170q90.jpg
- https://img.alicdn.com/bao/uploaded/TB2b1EmoC0mpuFjSZPiXXbssVXa_!!1824371009-2-daren.png_360x360xzq90.jpg_.webp
- https://gma.alicdn.com/bao/uploaded/i2/47786901/O1CN01EohTiz20qhjf21NYU_!!0-saturn_solar.jpg_200x200.jpg_.webp
- https://gma.alicdn.com/bao/uploaded/i4/118887069/TB29LaIoRjTBKNjSZFDXXbVgVXa_!!0-saturn_solar.jpg_200x200.jpg_.webp
- https://img.alicdn.com/imgextra/i2/6000000001761/TB2v6eYX8USMeJjy1zjXXc0dXXa_!!0-tbCommonAudio.jpg_320x320q90.jpg_.webp
格式的需求
- 图标。客户端内图片,需要图片是清晰的,格式用无损和不用压缩。
- 手机照片的格式。jpeg,HEIC(iphone)。
- base64图片。
格式。
- 矢量图片。体积小。渲染时间长。适合小图片。
- webp。支持透明度,压缩比比JPEG高,显示效果不输于JPEG,官方评测quality75均衡最佳。Android从4。0起支持。Android 4。2。1+支持透明度。
- png。压缩工具:pngcrush,pngquant,zopflipng。
- pngcrush在PNG过滤器和zlib(Deflate)参数上迭代,使用过滤器和参数的每个组合来压缩图像。然后选择产生最小压缩输出的配置。
-
jpg。压缩工具guetzli,packJPG。
存储和性能。
- CDN。
- 浏览器缓存。header头。
- 客户端缓存。已有大图时不下载小图,直接用大图。已有小图,要加载大图时,加载前用小图占位。
- 低频存储。低频使用的冷数据存储。
- 压缩。图片大小限制。客户端压缩。
- 格式转换。
- 渐进显示。
- 多域名。用于浏览器并发请求。
- 开发/测试/预发布环境的图片。
安全
- 上传次数限制。
- 防盗链。防止别的网站内使用自己的图片。
- 黑名单。
- 白名单。
- referer。是否允许referer为空。
- 动态签名,可以设置签名的有效时间。阿里云支持,需要bucket是私有读。
- 鉴黄。
图片美化和编辑。
- 一键美化。
- 锐度。
- 亮度。
- 对比度。
- 模糊。
- 马赛克。
- 贴纸。
- 裁剪。
- 内切圆裁剪。
- 圆角矩形裁剪。
- 水印
客户端功能。
- SDK。
- 选图片。
- 裁剪。
- 上传。
- 贴纸。
web端功能。
- 上传。批量上传。
服务端功能。
- 临时密钥,用于上传。
- 删除图片。
兼容不同的云服务。
- 随机云服务。
- 指定云服务。
- 多个云服务。