Z-blog PHP插件:保存远程图片并压缩

Time:

Author:漠漠睡

因为自己站点的需要(也就是采集站),常常会碰到需要对站点远程图片进行压缩的流程,但是自己找遍了Z-blog PHP应用中心也没用找到该插件,因此只能自己编写一款。




其他说明

1.保存并替换文章中远程图片到本地,启用插件后新建文章生效。
2.图片宽度/高度大于指定宽则压缩;
3.图片大小大于指定大小则压缩(不保证一定低于该大小,测试数据为:当设定宽度低于800时,超过200K的图片均会被压缩);
4.可自定义保存图片质量。
5.默认gif动态图片仅作远程下载,不做压缩
6.默认png图片以jpeg形式(图片质量)压缩,不影响实际png后缀


已知问题:

1.暂时无法与其他保存远程图片共同使用
2.暂未开启最大高度限制;(已处理)
3.图片压缩流程为:先下载→再修改压缩→再保存图片→再保存文章。对服务器带宽较低但图片较大数量较多的容易造成500,建议提升带宽或者提高PHP超时限制或者仅使用免费版保存远程图片,地址:https://app.zblogcn.com/?id=390
4.当远程图片不能被访问(40X或50X)时,压缩会报错
5.当图片为非正常后缀(JPG、JPEG、PNG、GIF)结尾时,将无法进行远程图片下载,因此无法进行压缩.
(例如:<img src=" http://i1.chuimg.com/9f697940aec545d4919396ea8ebb195f_1124w_1682h.jpg@2o_50sh_1pr_1l_490w_260h_1c_1e_90q_1wh " \>   图片为JPG图片,但是必须去除参数,仅保留图片地址<img src="http://i1.chuimg.com/9f697940aec545d4919396ea8ebb195f_1124w_1682h.jpg" \>才可进行正常远程下载并压缩。)

因此问题引发的不能下载/压缩,不做解释,等解决技术问题后会自然修复



收费插件应有良好的售后服务,售后QQ:3577270034,备注“图片压缩插件”。
请打开开发模式截图,或直接提交报错的文章源代码。


1.4更新:(本次更新后,请重新更新缓存)

1.增加刷新缓存机制

2.增加最大高度判定

3.增加远程图片是否已损坏判定,当远程图片损坏时,仅做空白图片下载


1.3更新:

1.新增最大图片大小判定,对于低于预设最大宽度的图片,但是大小大于指定大小的,同样进行压缩,但压缩方式为仅处理图片质量


1.2更新:(本次更新主要依托《保存远程图片》插件)

1.调整插件接口为文章发布完成接口,避免影响文章的保存

2.更新图片获取方法为zbp内置的GetHttpContent


1.1更新:

1.新增图片压缩质量,进一步压缩图片大小

2.放弃对GIF图片的裁剪压缩

3.对PNG图片进行JPEG压缩,保留原PNG后缀格式


已初步确定优化方式,将在下一次更新时处理以下问题:

1.优化调整保存方式为下载后直接保存

2.优化完成速度,提升约一倍,所短时间约为原来的50%

3.新增最大高度作为判定标准之一(虽然可能并没有什么用)

3.新增修改远程图片保存目录


注意事项:

  1. 与七牛云存储、阿里云OSS等其他第三方云存储工具不相容,似乎这个的优先级更高,可能是因为调用发布成功的接口,关于对接第三方云存储将会在以后做测试(若可行)。



压缩后:(图片质量85,压缩后大小54K)

9.jpg

压缩后:(图片质量75,压缩后大小39K)

2.jpg

标签: 插件 zblogphp