Home / PostsPost

Shalog - 图片处理功能

嘟噜聪2020/03/18 16:12:55 [Shalog] [Image] [七牛] 449人已阅

简介 作为个人博客或站点来使用本系统,当然需要支持图片处理功能。本系统的图片处理与七牛云的图片处理功能类似,都是在图片后面添加相应的参数对图片进行切割或压缩。若想直接使用七牛去作为镜像存储、资源处理,也

作为个人博客或站点来使用本系统,当然需要支持图片处理功能。本系统的图片处理与七牛云的图片处理功能类似,都是在图片后面添加相应的参数对图片进行切割或压缩。若想直接使用七牛去作为镜像存储、资源处理,也不用修改代码,只需在后台修改个参数就好,这个后面再讲。

项目简介

Shalog是一个基于Golang开源的轻量级内容管理系统,告别PHP类的繁琐的部署方式,超底的资源占用率,并且支持图床功能当然也可以使用七牛作为存储方式。

项目开源地址:https://github.com/icowan/shalog

站点:https://lattecake.com

Demo: https://shalog.nsini.com

图片基本处理

项目默认使用的是本地处理图片,对CPU要求比较高,若想使用七牛镜像,资源只需要将启动参数设置为:

/go/bin/shalog start -p :8080 -c /etc/shalog/app.cfg -i remote

然后在后台系统配置里配置七牛的地址,然后重启动服务。

下文来自己七牛云api说明

imageView2 提供简单快捷的图片格式转换、缩略、剪裁功能。只需要填写几个参数,即可对图片进行缩略操作,生成各种缩略图。imageView2接口可支持处理的原图片格式有jpeg、png、jpeg

注意:imageView2 接口若处理有问题,则会直接返回原图。

七牛ImageView2

接口规格

目前只实现了需要的功能。

注意:接口规格不含任何空格与换行符。

imageView2/<mode>/w/<LongEdge>
                 /h/<ShortEdge>
                 /q/<Quality>

其中 <mode> 分为如下几种情况:

模式 说明
/1/w/<Width>/h/<Height> 限定缩略图的宽最少为<Width>,高最少为<Height>,进行等比缩放,居中裁剪。转后的缩略图通常恰好是 <Width>x<Height> 的大小(有一个边缩放的时候会因为超出矩形框而被裁剪掉多余部分)。如果只指定 w 参数或只指定 h 参数,代表限定为长宽相等的正方图。
/2/w/<Width>/h/<Height> 限定缩略图的宽最多为<Width>,高最多为<Height>,进行等比缩放,不裁剪。如果只指定 w 参数则表示限定宽(高自适应),只指定 h 参数则表示限定高(宽自适应)。它和模式0类似,区别只是限定宽和高,不是限定长边和短边。从应用场景来说,模式0适合移动设备上做缩略图,模式2适合PC上做缩略图。

注意:

  • 可以仅指定w参数或h参数。
  • 新图的宽/高/长边/短边,不会比原图大,即本接口总是缩小图片。
  • 所有模式都可以只指定w参数或只指定h参数,并获得合理结果。在w、h为限定最大值时,未指定某参数等价于将该参数设置为无穷大(自适应);在w、h为限定最小值时,未指定参数等于给定的参数,也就限定的矩形是正方形。
  • 处理后的图片w和h参数不能超过9999像素,总像素不得超过24999999(2500w-1)像素。
  • 处理前的图片w和h参数不能超过3万像素,总像素不能超过1.5亿像素。
参数名称 必填 说明
/q/<Quality> 新图的图片质量 取值范围是[1, 100],默认75 七牛会根据原图质量算出一个修正值,取修正值和指定值中的小值。 注意: ● 指定值后面可以增加 !,表示强制使用指定值,如100!。 ● 支持图片类型:jpg。

<Quality>修正值算法:

  • 原图 quality <= 90: min[90, 原图quality*sqrt(原图长宽乘积/结果图片长宽乘积)]
  • 原图 quality > 90: 原图quality*sqrt(原图长宽乘积/结果图片长宽乘积)

示例

实时

  • 裁剪正中部分,等比缩小生成200x200缩略图:

    /storage/2020/03/4c/cb/7a/20200314-09f617c10276a4b5724871a5cba4cc3f.jpeg?imageView2/1/w/200/h/200/q/70
    

  • 宽度固定为200px,高度等比缩小,生成宽度为200缩略图:

    /storage/2020/03/4c/cb/7a/20200314-09f617c10276a4b5724871a5cba4cc3f.jpeg?imageView2/2/w/200/q/70
    

  • 高度固定为200px,宽度等比缩小,生成高度为200缩略图:

    /storage/2020/03/4c/cb/7a/20200314-09f617c10276a4b5724871a5cba4cc3f.jpeg?imageView2/2/h/200/q/70
    

实际渲染好的图片会与当前图片存在一个位置,并且以{image name}--x- 的规则进行存储,下次请求如果图片存在则返回,不存在则进行生成再返回。

尾巴

参考了七牛的图像处理方案,有了它以后图片处理就更加方便了。

不用我说了,大家都懂的。您的恩赐就是我更新的动力

很赞哦! (2)

文章评论

站点信息

  • 微信公众号