过大的图片意味着用户的页面加载速度慢。如果站点曾经没有限制图像大小或者自动调整大小,那么在Linux中批量调整这些图像的大小是最佳解决办法。适合网站页面尺寸的图片大小,可以加速网页的加载速度。

本文将介绍如何在Linux中使用Imagemagick批量调整jpg和png文件的大小。

首先,需要在服务器上安装Imagemagick。

Debian或Ubuntu安装Imagemagick的方法:

sudo apt-get update

sudo apt-get install imagemagick -y

CentOS安装Imagemagick的方法:

yum install -y ImageMagick ImageMagick-devel

安装成功后,我们可以使用identify命令获取宽度(%w)和高度(%h),示例:

identify -format "%wx%h" image.jpg

将看到分辨率,前面是宽度,后面是高度,例如:

3960x2120

以下为调整单张图片尺寸的示例,将自动保留图像的纵横比。注意,这会覆盖原始文件,可先备份。

convert image.jpg -resize 600x400\> image.jpg

检查图像是否已调整大小:

identify -format "%wx%h" image.jpg

输出:

600x321

现在开始创建批量调整图片大小的脚本,执行脚本前请备份图片文件,因为会被新的尺寸图片文件覆盖。

mkdir -p ~/scripts

nano ~/scripts/batch-image-resize.sh

将脚本粘贴到下面,记得更改相应的变量!FOLDER 是图像文件夹的绝对路径,WIDTH是最大宽度,HEIGHT是最大高度。

#!/usr/bin/env bash

# Purpose: batch image resizer

# Source: https://www.zhanzhangb.com

# Author: Mike

# absolute path to image folder

FOLDER="/var/www/www.zhanzhangb.com/wp-content/uploads"

# max width

WIDTH=650

# max height

HEIGHT=500

#resize png or jpg to either height or width, keeps proportions using imagemagick

#find ${FOLDER} -iname '*.jpg' -o -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

#resize png to either height or width, keeps proportions using imagemagick

#find ${FOLDER} -iname '*.png' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

#resize jpg only to either height or width, keeps proportions using imagemagick

find ${FOLDER} -iname '*.jpg' -exec convert \{} -verbose -resize $WIDTHx$HEIGHT\> \{} \;

# alternative

#mogrify -path ${FOLDER} -resize ${WIDTH}x${HEIGHT}% *.png -verbose

Ctrl + X,Y + Enter保存并退出。

执行脚本即可开始调整新的图片尺寸:

bash ~/scripts/batch-image-resize.sh

linux批量修改图片大小,Linux中使用Imagemagick批量调整图片大小相关推荐

  1. linux 批量修改文件名中间,Linux中批量修改文件名

    Linux中批量修改文件名 有时候我们有一个目录下面的文件名都需要重新命令 如: 以下有十个学生完成的脚本,现在需要将finish改为ing [root@slave test]# touch stud ...

  2. Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口

    Linux Tomcat安装,Linux配置Tomcat,Linux Tomcat修改内存,Linux tomcat修改端口 >>>>>>>>>& ...

  3. 【Matlab 控制】批量修改大型 Simulink 模型中模块的属性

    批量修改大型 Simulink 模型中模块的属性 一.通过Simulink自带的搜索 二.通过命令行进行搜索替换 三.使用Model Explorer编辑属性 在大型Simulink建模中,需要进行某 ...

  4. shell 批量修改多个文件中的内容

    文章目录 前言 场景 ==备注== 最新脚本 操作如下 思路: 第一个版本: 第二版本: 参考文献 小结 前言 现在会议很多都是双盲评,然而又需要上传材料/实验结果,这时候需要把材料中和自己名字相关的 ...

  5. Markdown更改字体、颜色、大小,设置文字背景色,调整图片大小设置居中,插入表格等方法

    Markdown更改字体.颜色.大小,设置文字背景色,调整图片大小设置居中,插入表格等方法 Markdown 通过简单标记语法,使普通文本内容具有一定格式.但它本身不支持修改字体.字号与颜色等功能的. ...

  6. linux批量修改 文件名编码,linux下批量修改文件名

    linux下批量修改文件名 0.问题来源,想把一部分文件加上日期序.也就是在文件名称前加上当前的年月日进行输出. 获取日期格式如下 Zianed@ubuntu:~/public_web_sSmO9OU ...

  7. linux chmod修改权限失败,Linux chmod修改文件夹权限

    Linux chmod修改文件夹权限 (2008-07-02 10:29:24) 标签: 杂谈 转载:http://happyanyday.javaeye.com/blog/45823 drwxr-x ...

  8. linux 恢复修改文件内容,Linux备份及恢复及Linux文件权限详解

    Linux备份及恢复及Linux文件权限详解 概述 一个系统管理员菜鸟不小心输入"chmod -R 777 /"从而导致了巨大的悲剧,使得整个系统遭到了严重的破坏.在日常管理中,我 ...

  9. 如何批量修改Word文档中的表格样式和题注格式?

    在进行大型项目的方案文档设计时,一个文档中有可能涉及到上百个图表,在最后定稿的时候,需要进行统一的格式化处理.面对这些数目庞大的表格,挨个用格式刷进行处理,一路刷下来往往手都会刷酸,更令人奔溃的是好不 ...

  10. java读取服务器图片大小,SpringMVC中MultipartFile上传获取图片的宽度和高度详解

    SpringMVC一般使用MultipartFile来做文件的上传,通过MultipartFile的getContentType()方法判定文件的类型(MIME) ".doc":& ...

最新文章

  1. 【JVM】JVM系列之JVM体系(一)
  2. linux suse 软件管理工具 zypper 简介
  3. java jvm 参数配置_Java 从小白到大牛,JVM 不得不知的一些参数和配置
  4. oracle数据库可以存图片吗,如何往数据库(Oracle)里存储图片和文件
  5. python语言程序设计书-清华大学出版社-图书详情-《Python语言程序设计》
  6. WGAN的提出背景以及解决方案
  7. DDL与DML的区别
  8. LeetCode 110. 平衡二叉树(二叉树高度)
  9. 帝国cms搜索php分页,帝国cms V7.2自定义分页(列表分页,内容分页)样式步骤
  10. cx_Oracle怎么打包,cx_Oracle 在执行包文件 function 时有多个出参该如何获取
  11. 禁用UITabBarController双击事件
  12. UE3 基本的分析及优化技术
  13. 【Nokov】动作捕捉系统标定与机械臂各坐标系的说明
  14. LeeCode(C++):买卖股票的最佳时机
  15. linux版高德导航软件下载,高德导航2017
  16. 【1.2】基本逻辑运算
  17. Shell脚本编程基础 三 使用结构化命令
  18. AI遮天传 DL-反馈神经网络RNN
  19. 一种可以穿透还原卡和还原软件的代码一种可以穿透还原卡和还原软件的代码
  20. 在Linux系统实现PTP时钟同步,查看网卡信息后发现网卡不支持PTP软硬件时间戳

热门文章

  1. 2020校招互联网公司Offer白菜价!看完TM我酸了
  2. 电信系统服务器地址,电信高速dns服务器地址谁知道?
  3. Java mail outlook发邮件提示升级TLS1.2
  4. 第138天,我成为了CSDN博客专家,在搬砖的道路上继续努力
  5. 中国电子学会C++软件编程一级—六级历年真题模拟题题库260题及参考答案第六版 (星卯教育)TB
  6. 【Java】面向对象(二)继承
  7. 中继器、集线器、网桥、交换机、路由器、网关的超全总结
  8. 7.ratings评价列表页的实现
  9. Linux系统安装傻瓜教程
  10. 图深度学习模型进展和在阿里搜索广告中的应用创新