首页 > 其他分享 >【gpt搬运】bash脚本压缩png,jpg图片,当图片大小大于60kb或者尺寸大于500px*500px的时候

【gpt搬运】bash脚本压缩png,jpg图片,当图片大小大于60kb或者尺寸大于500px*500px的时候

时间:2024-10-12 09:25:45浏览次数:5  
标签:500px 压缩 compress jpg file 大于 png 图片

在这个任务中,Bash 脚本需要检查图片的文件大小和尺寸(宽度和高度),然后决定是否压缩图片。我们可以继续使用 jpegoptimpngquant 来压缩 .jpg.png 图片。为了检查图片的尺寸,使用 imagemagickidentify 命令来获取宽度和高度。

准备工具:

  • 安装 imagemagick:用于检查图片的宽高和处理图片。
  • 安装 jpegoptim:用于压缩 .jpg 图片。
  • 安装 pngquant:用于压缩 .png 图片。

安装命令(适用于 Debian/Ubuntu 系列 Linux):

sudo apt-get update
sudo apt-get install imagemagick jpegoptim pngquant

脚本内容:

#!/bin/bash

# 压缩JPG图片
compress_jpg() {
    local file="$1"
    echo "压缩JPG文件: $file"
    jpegoptim --max=85 "$file"  # 将质量降低到85%,根据需要调整
}

# 压缩PNG图片
compress_png() {
    local file="$1"
    echo "压缩PNG文件: $file"
    pngquant --ext .png --force 128 "$file"  # 将颜色数量减少到128
}

# 检查文件大小和尺寸
check_and_compress() {
    local file="$1"
    
    # 获取文件大小
    filesize=$(stat -c%s "$file")
    
    # 获取图片的宽高信息 (使用ImageMagick的identify)
    dimensions=$(identify -format "%w %h" "$file")
    width=$(echo $dimensions | cut -d' ' -f1)
    height=$(echo $dimensions | cut -d' ' -f2)
    
    # 检查文件大小是否大于60KB,或者宽高是否大于500px
    if [ $filesize -gt 61440 ] || [ $width -gt 500 ] || [ $height -gt 500 ]; then
        echo "文件大小或尺寸超过限制,进行压缩: $file"
        
        # 根据文件类型调用不同的压缩方法
        if [[ $file == *.jpg || $file == *.jpeg ]]; then
            compress_jpg "$file"
        elif [[ $file == *.png ]]; then
            compress_png "$file"
        fi
    else
        echo "$file 大小和尺寸均符合要求,无需压缩"
    fi
}

# 查找并处理图片
find . \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" \) -type f | while read file; do
    check_and_compress "$file"
done

echo "压缩完成!"

脚本说明:

  1. check_and_compress 函数

    • 获取图片文件大小(字节为单位)。
    • 使用 identify 获取图片的宽度和高度。
    • 检查图片的大小是否大于 60KB,或宽度/高度是否大于 500px。
    • 如果条件满足,调用 compress_jpgcompress_png 进行压缩。
  2. 压缩函数

    • .jpg 文件使用 jpegoptim 进行压缩,降低质量到 85%。
    • .png 文件使用 pngquant 进行压缩,颜色减少到 128 色。
  3. 查找和处理

    • 使用 find 查找当前目录下的 .jpg, .jpeg, .png 文件。
    • 对每个文件调用 check_and_compress 进行检查和压缩。

使用方法:

将脚本保存为 compress_images.sh,然后给予执行权限并运行:

chmod +x compress_images.sh
./compress_images.sh

脚本执行结果:

该脚本会自动处理当前目录下的图片,判断文件大小和分辨率是否超出规定,并对超出限制的图片进行压缩处理。

 

标签:500px,压缩,compress,jpg,file,大于,png,图片
From: https://www.cnblogs.com/imzhi/p/18459812

相关文章

  • 【gpt搬运】bash脚本压缩png,jpg图片,当图片大小大于100kb的时候
    可以编写一个Bash脚本,使用find命令查找图片文件并利用imagemagick或jpegoptim以及pngquant等工具来压缩图片。如果图片大小大于100KB,就进行压缩。下面是一个示例脚本:准备工具:安装imagemagick:用于转换图片格式安装jpegoptim:用于压缩.jpg图片安装pngquant:用于......
  • sld样式之根据id展示不同样式,大于10000展示标注
    sld样式之根据id展示不同样式,大于10000展示标注<?xmlversion="1.0"encoding="GBK"?><sld:StyledLayerDescriptorxmlns="http://www.opengis.net/sld"xmlns:sld="http://www.opengis.net/sld"xmlns:gml="http://www.opengis.net/......
  • 修改图片的DPI为300,图片格式转换成jpg,nodejs脚本
    //用sharp转换图片格式constSharp=require('sharp');//引入fs库用于文件操作constfs=require('fs');//引入path库用于处理文件路径constpath=require('path');//引入exiftool库用于处理图片元数据constexiftool=require('exiftool-vendored').exifto......
  • 【heic转jpg】heic图片怎么转换成jpg?
     ​想要将heic图片转换成其他格式,分享5个方法,希望能够帮助到大家。方法一:我们可以在iPhone设置中进行修改,修改以后在拍摄出的iPhone图片变为jpg格式的了,但是之前已经生成的图片不会改变格式,设置如下:设置-相机-格式-兼容性最佳,之后图片格式就默认为jpeg格式了。方法......
  • 如何使用简鹿格式工厂将DNG格式图片转换为JPG格式
    DNG(Digital Negative)是一种由Adobe公司开发的用于存储数字照片的原始图像文件格式。它是一种开放式、非专有的文件格式,旨在提供一种替代传统RAW格式(如CR2、NEF等)的解决方案。DNG文件可以包含来自不同相机和镜头的原始图像数据,以及一些重要的元数据,如曝光设置、白平衡、I......
  • heic转jpg python代码
    做深度学习时,为了减少空间占用,会在拍照时使用heic格式,但是labelimg不能识别这个格式,所以还要转成jpg。搜了一圈没有合适的,怒写这份代码 fromPILimportImageimportpillow_heifimportpiexiffromglobimportglobimportsysdefheic_to_jpg(img_path,save_path): na......
  • 在xml文件中 大于|小于|等于 的使用
    字符名称sql符号转义字符大于号>>小于号<<不等于<><>大于等于号>=>=小于等于号<=<=......
  • 约定大于配置
       默认配置,应用配置到可扩展配置 。 配置文件的体现方式是XML 文件或者是 Properties 文  件 。现在springboot  框架的配置框架数据参数的提现方式是yml 文件和注解参数 。配置文  件是应用程序参数化解耦的一种方式。程序员项目组开发好应用程序的框架......
  • JPGC批量图片压缩神器!绝了,仅仅几百K!
    JPGC是一款专为图片批量处理设计的工具,它能够帮助用户快速将JPG/JPEG格式的图片进行压缩,以减小文件大小,同时尽量保持图片质量。这款软件特别适合处理数码相机拍摄的照片,压缩效果显著,文件大小可减少至原来的20%-30%左右。软件支持多线程操作,大幅提升了批量处理的效率,并且界面设......
  • jQuery中的大于等于(>=)操作符使用技巧
    jQuery中的大于等于(>=)操作符使用技巧在jQuery中,常常需要对元素的某个属性或数值进行比较,判断是否大于等于某个特定的值。在这种情况下,使用大于等于(>=)操作符是非常常见的。本文将介绍如何在jQuery中使用大于等于操作符的技巧,帮助您更好地进行数据处理和交互操作。基本语法大于等于(>=......