TYPECHO WIKI
每一个作品都值得被记录

敬告读者,感谢您对本站的支持,在今年10月份因Racknerd机房硬盘事故,导致本站静态文件全部丢失,包含主题插件网站图片等文件,TypechoWiki经过几次更换站长,凝结了多位站长的心血,如今因为大意只备份了数据库未及时备份静态文件而导致严重数据丢失事故,现已无力回天,经过深思我决定后续可能永久停更该网站,请各位读者寻求其它Typecho周边下载站,另外如果你对本站感兴趣也欢迎报价,我们愿意出售该站联系邮箱[email protected],目前该站的静态文件仅为2019年以前的版本,2019年以后的各位站长精心维护的插件和主题压缩包以及站内图片全部丢失!

Typecho 图片压缩上传插件 MyUpload(支持本地压缩和 TinyPNG 远程压缩)

Typecho维基君插件列表 • 2008次浏览 • 发布 2022-04-17 • 更新 2022-04-17

🖼️Typecho图片压缩上传插件,Typecho图片压缩上传插件,支持本地压缩和 TinyPNG 远程压缩。这款插件比之前分享的Typecho 基于Tinypng的图片压缩插件 TinyPNG更加全面。

69824169-ee671d80-1245-11ea-9600-2eaf2092cf25.gif

使用方法

下载压缩包,将MyUpload文件夹上传到你的博客的usr/plugins/目录下,在后台启用,然后在插件设置里根据自己的需求设置插件:

插件配置界面

如果是云主机,须需要安装jpegoptimpngquant

Ubuntu系统下安装方法:

$ sudo apt install jpegoptim pngquant

RHEL、CentOS系统下:

$ yum install jpegoptim pngquant

MAC系统下:

$ brew install jpegoptim pngquant

如果是虚拟主机,可以采用远程压缩,须先到https://tinypng.com/developers注册一个 API Key:

API Key

图片远程压缩速度很慢,请耐心等待(有可能超时导致压缩失败)。

说明

写博客时,如果不压缩图片,既比较费主机存储空间,还会非常拖慢页面加载速度,特别是对于带宽小的主机。可是,如果要压缩好图片后再上传又比较麻烦,放到对象存储上还另外要钱。于是乎,就撸了这个插件,在上传时自动压缩图片。压缩图片采用的方法是调用jpegoptim压缩jpg图片,调用pngquant压缩png图片,我觉得压缩效果挺好的,可以基本不降低清晰度且大幅降低图片占用空间。

UPDATE1:由于部分人反映希望能支持虚拟主机,那就加上远程压缩的功能吧,使用 TinyPNG 远程图片压缩服务,一个月免费压缩500张,应该是够用的。

除此之外,由于Typecho默认的图片重命名方式理论上可能出现重名覆盖,而且个人觉得把图片按月分文件夹有点麻烦,喜欢按年分文件夹。因此,对图片的重命名方式做了修改,不会出现重名覆盖,并且图片文件名也还是很短的,图片可以按年分文件夹,也按月分文件夹(和Typecho默认一样)。当然,这个需求比较小众,默认是保持Typecho默认的方式。

注意:

如果出现服务器已成功安装jpegoptim、pngquant两个软件包,但是后台添加附件一直在转圈圈,有可能是因为shell_exec函数没有开启的缘故。

宝塔后台删除禁用shell_exec即可开启:

开启shell_exec函数

开启后记得同时注意做好防护措施。

补充资料:

JpegOptim是用于优化jpeg文件的实用程序。提供无损优化(基于优化霍夫曼表)和基于设置最大品质因数的“有损”优化。
通过运行SSH命令执行压缩:
jpegoptim --max=90 --preserve --all-progressive xxx.jpg
参数可以是传统的POSIX一个字母选项,也可以是。GNU风格长选项。 POSIX风格选项以一个“-”开头,而GNU的长选项以''--'开头。

-d<path>, --dest=<path> 设置备份目标目录,以便保存优化(默认是覆盖原始文件)。
-f, --force 强制优化,即使结果大于原始文件。
-m<quality>, --max=<quality> 设置最大图像质量因子(禁用无损优化)。
-n, --noaction 模拟优化(就是测试压缩比但不执行优化)。
-S<size>, --size=<size> 尝试优化文件大小(KB或百分比的原始文件大小)。
-o, --overwrite 覆盖目标文件
-p, --preserve 保存文件修改时间
--all-progressive 强制所有输出文件都是渐进的。
--strip-all 去除所有(Comment  & Exif)删除标记。

Pngquant是一款免费的开源和跨平台命令行PNG压缩器,它基于可移植的libimagequant库,用C99编写,通过将PNG图像转换为更高效的8位PNG格式并保留完整的Alpha透明度,它可以显着减小文件大小。8位PNG文件通常比24/32位PNG文件小60-80%,使用Pngquant压缩的图像与所有Web浏览器和操作系统完全兼容,Pngquant可以一次压缩一个或多个图像。

通过运行shell命令执行压缩:
pngquant --skip-if-larger --ext .png --force --quality=60-90 xxx.png

--force 强制覆盖现有的输出文件(短选项:-f)
--skip-if-larger 在压缩时仅保存小于原始的文件
--output file    输出文件目标文件路径,而不是--ext (短命令: -o)
--ext 设置输出文件名的自定义后缀/扩展名
--quality 设置图片颜色范围,值为0-100
--speed   设置速度和图片质量,速度越快质量越差。参数:1=slow, 3=default, 11=fast & rough
--nofs    禁止Floyd-Steinberg抖动

注意:由于本地压缩是执行一句shell命令运行的,在PHP中shell_exec函数运行,而默认PHP是禁止这个函数的,别忘了在配置中开启。

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。
厂商投放

【腾讯云】🎉五一云上盛惠!云服务器99元/月续费同价!

腾讯云五一劳动节海量产品 · 轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。快来腾讯云选购吧!

广告
添加新评论 »