[iOS] Las terminales de computadora Mac usan Imagemagick para modificar el valor hash de los archivos de recursos de imagen

1. Introducción

ImageMagick es un software gratuito para crear, editar y combinar imágenes. Puede leer, convertir y escribir imágenes en varios formatos. Corte de imagen, reemplazo de color, aplicación de varios efectos, rotación de imagen, combinación, texto, líneas rectas, polígonos, elipses, curvas, estiramiento y rotación adjunta a imágenes. ImageMagick es un software gratuito: todos los códigos fuente son abiertos, de uso, copia, modificación y distribución gratuitos. Cumple con el acuerdo de licencia GPL y puede ejecutarse en la mayoría de los sistemas operativos. La mayoría de las funciones de ImageMagick provienen de herramientas de línea de comandos.

https://github.com/ImageMagick/ImageMagick

2. Instalar Imagemagick

1. Instalar HomeBrew

comando de entrada de terminal

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

https://img-blog.csdnimg.cn/609535b8e0a1477a99f86e921076b86d.png

Seleccione la fuente e instálela.
Para obtener más métodos de instalación, consulte Instalación de HomeBrew (100 % correcto)

2. Instalar Imagemagick

$ brew install imagemagick

Confirme si la instalación está completa

$ magick -version
Version: ImageMagick 7.1.0-52 Q16-HDRI x86_64 20549 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC

3. Modificar archivos de recursos

Información oficial más detallada:

https://imagemagick.org/script/command-line-processing.php
ImageMagick – Herramientas de línea de comandos: Magick

1. Cambiar el tamaño de la imagen proporcionalmente

A. Ajuste de imagen única

// 语法1
// 调整尺寸为原图的150%
$ magick a.png -resize 150% b.png

// 语法2
$ magick convert a.png -resize 150% b.png

// 语法3
$ magick convert -resize 150% a.png b.png

// 语法4
// 按照限定尺寸调整图片大小。并不是将图裁剪成100x100,而是保持原图比例调整到能放入100x100的框子中。
$ magick a.png -resize 100x100 b.png

 registro

// 方式1
$ magick /Users/gamin/Desktop/pic/original/a.png -resize 150% /Users/gamin/Desktop/pic/new/b.png

// 方式2
$ magick convert /Users/gamin/Desktop/pic/original/a.png -resize 150% /Users/gamin/Desktop/pic/new/b.png

// 方式3
$ magick convert -resize 150% /Users/gamin/Desktop/pic/original/a.png /Users/gamin/Desktop/pic/new/b.png

// 方式4
$ magick /Users/gamin/Desktop/pic/original/a.png -resize 100x100 /Users/gamin/Desktop/pic/new/b.png

B. Ajuste por lotes

// 语法1
// 这种方式会重命名新图片
$ cd 资源文件所在目录
$ magick '*.png' -resize 105% b%03d.png

// 语法2
// 这种方式新图会保持原图同样的名称
$ cd 资源文件所在目录
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -resize 105% {} \;

// 语法3
// 按照限定尺寸调整图片大小。并不是将图裁剪成100x100,而是保持原图比例调整到能放入100x100的框子中。
$ cd 资源文件所在目录
$ magick '*.png' -resize 100x100 b%03d.png

// 语法4
$ cd 资源文件所在目录
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -resize 100x100 {} \;

registro

// 方式1
$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' -resize 105% /Users/gamin/Desktop/pic/new/b%03d.png

// 方式2
$ cd /Users/gamin/Desktop/pic/new 
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -resize 105% {} \;

// 方式3
$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' -resize 100x100 /Users/gamin/Desktop/pic/new/b%03d.png

// 方式4
$ cd /Users/gamin/Desktop/pic/new 
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -resize 100x100 {} \;

2. Recorta la imagen

A. Recorte de una sola imagen

// 语法1 
// 从左上角开始,按目标尺寸为单元格组成网格,网格覆盖原图会裁剪出n张图片。
$ magick a.png -crop 100x100 b.png

// 语法2
// 从左上角开始,裁剪出一张目标图片。
$ magick a.png -crop 100x100+10+5 b.png

registro

// 方式1
$ magick /Users/gamin/Desktop/pic/original/a.png -crop 100x100 /Users/gamin/Desktop/pic/new/b.png

// 方式2
$ magick /Users/gamin/Desktop/pic/original/a.png -crop 100x100+10+5 /Users/gamin/Desktop/pic/new/b.png

B. Recorte por lotes

// 语法1
// 会重命名新图片
// 从左上角开始,每张图会裁剪出n张目标图片。
$ cd 资源文件所在目录
$ magick '*.png' -crop 100x100 b%03d.png

// 语法2
// 新图会和原图同名称
$ cd 资源文件所在目录
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -crop 100x100 {} \;

// 语法3
// 从左上角开始,每张图裁剪出一个目标图片。
$ cd 资源文件所在目录
$ magick '*.png' -crop 100x100+10+5 b%03d.png

// 语法4
$ cd 资源文件所在目录
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -crop 100x100+10+5 {} \;

registro

// 方式1
$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' -crop 100x100 /Users/gamin/Desktop/pic/new/b%03d.png

// 方式2
$ cd /Users/gamin/Desktop/pic/new 
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -crop 100x100 {} \;

// 方式3
$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' -crop 100x100+10+5 /Users/gamin/Desktop/pic/new/b%03d.png

// 方式4
$ cd /Users/gamin/Desktop/pic/new
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -crop 100x100+10+5 {} \;

3. Convertir formato

A. Conversión de una sola imagen

$ magick a.png b.jpg

registro

$ magick /Users/gamin/Desktop/pic/original/a.png /Users/gamin/Desktop/pic/new/b.jpg

B. Conversión por lotes

// 语法1
// 新图片会重命名
$ cd 资源文件所在目录
$ magick '*.png' b%03d.jpg

// 语法2
// 新图片和原图同样的名称
$ cd 资源文件所在目录
$ magick mogrify -format JPEG *.png

// 语法3
$ cd 原图目录
$ magick mogrify -format JPEG -path 目标目录 *.png

registro

// 方式1
$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' /Users/gamin/Desktop/pic/new/b%03d.jpg

// 方式2
$ cd /Users/gamin/Desktop/pic/new 
$ magick mogrify -format JPEG *.png

// 方式3
$ cd /Users/gamin/Desktop/pic/original 
$ magick mogrify -format JPEG -path /Users/gamin/Desktop/pic/new *.png

4. Comprimir imágenes

A. Compresión de una sola imagen

$ magick convert -quality 90 -strip a.png b.png

registro

$ magick convert -quality 90 -strip /Users/gamin/Desktop/pic/original/a.png /Users/gamin/Desktop/pic/new/b.png

B. Compresión por lotes

// 语法1
$ cd 资源文件所在目录
$ magick '*.png' -quality 90 b%03d.png

// 语法2
$ cd 资源文件所在目录
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -quality 90 {} \;

registro

// 方式1
$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' -quality 90 /Users/gamin/Desktop/pic/new/b%03d.png

// 方式2
$ cd /Users/gamin/Desktop/pic/new 
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -quality 90 {} \;

5. Cambiar de color

A. Cambio de imagen única

// 语法1
// 只适合纯色图片,不影响alpha通道。
$ convert a.png -fill '#000000' -colorize 100 b.png

// 语法2
// 适合多种颜色组成的图片
$ convert -fuzz 40% a.png -fill '#FE003E' -opaque "#19916d" b.png

// 语法3
// 可以设置背景色
$ convert a.png +level-colors '#19916d', '#FE003E' b.png
$ convert a.png +level-colors '#19916d00', '#19916d' b.png

// 语法4
$ convert a.png -fuzz 25% -fill none -background '#FE003E' -flatten b.png
$ convert a.png -fuzz 25% -fill none -background '#FE003E00' -flatten b.png

registro

// 方式1
$ convert /Users/gamin/Desktop/pic/original/a.png -fill '#000000' -colorize 100 /Users/gamin/Desktop/pic/new/b.png

// 方式2
$ convert -fuzz 40% /Users/gamin/Desktop/pic/original/a.png -fill '#FE003E' -opaque "#19916d" /Users/gamin/Desktop/pic/new/b.png

// 方式3
$ convert /Users/gamin/Desktop/pic/original/a.png +level-colors '#19916d', '#FE003E' /Users/gamin/Desktop/pic/new/b18.png
$ convert /Users/gamin/Desktop/pic/original/a.png +level-colors '#19916d00', '#19916d' /Users/gamin/Desktop/pic/new/b20.png

// 方式4
$ convert /Users/gamin/Desktop/pic/original/a.png -fuzz 25% -fill none -background '#FE003E' -flatten /Users/gamin/Desktop/pic/new/b.png
$ convert /Users/gamin/Desktop/pic/original/a.png -fuzz 25% -fill none -background '#FE003E00' -flatten /Users/gamin/Desktop/pic/new/b.png

B. Cambio de lote

// 语法1
$ cd 资源图片目录
$ magick '*.png' 具体操作 b%03d.png

// 语法2
$ cd 资源图片目录
$ find . -iname "*.png" -exec echo {} \; -exec convert {} 具体操作 {} \;

registro

$ cd /Users/gamin/Desktop/pic/original 
$ magick '*.png' -fill '#000000' -colorize 100 /Users/gamin/Desktop/pic/new/b%03d.png

$ cd /Users/gamin/Desktop/pic/new 
$ find . -iname "*.png" -exec echo {} \; -exec convert {} -fill '#000000' -colorize 100 {} \;

4. Verifique si el valor hash del archivo de recursos ha cambiado

El terminal verifica si el valor hash ha cambiado antes y después de cambiar la imagen.

$ md5 资源文件路径

registro

$ md5 /Users/gamin/Desktop/pic/original/a.png 
MD5 (/Users/gamin/Desktop/pic/original/a.png) = 1b195e7bab6d1cf39b573f44c8504e8e

$ md5 /Users/gamin/Desktop/pic/new/a.png 
MD5 (/Users/gamin/Desktop/pic/new/a.png) = 8106f267e0871b43ae8282c746e61a7a

Supongo que te gusta

Origin blog.csdn.net/u012881779/article/details/129747222
Recomendado
Clasificación