gpt4 book ai didi

bash - 如何将 ImageMagick 输出存储到 Bash 变量中(然后使用它)?

转载 作者:行者123 更新时间:2023-11-29 09:23:31 25 4
gpt4 key购买 nike

我使用 ImageMagick,需要根据条件调整图像大小。

为此,我将 identify 工具的结果存储到变量中。

$infile='test.jpg'
width=$(identify -ping -format %w $infile)
height=$(identify -ping -format %h $infile)

但在调整大小之前,我想做一些改变图像大小的转换:-trim-shave。所以我需要在修剪和调整大小之间计算图像大小。而且我只想做一次修剪操作来做一点优化。

所以,我想:

  1. 做修剪和刮 mustache
  2. [二进制]结果存储在一个变量中(例如:$data)
  3. $data 变量值作为输入传递给 identify 工具并存储其结果以进行条件调整
  4. $data传递给convert工具并完成处理

像这样:

data=$(convert logo: -shave 1x1 gif:-)
width=$(echo $data | identify -ping -format %w gif:-)
echo $data | convert -resize "$width"

但是 echo 不能按需要工作。

P. S.convertidentifytools from ImageMagick suite

最佳答案

Bash 不能存储可能包含 NULL 终止字符的数据 block 。但是您可以将数据转换为 base64 ,并使用 ImageMagick 的 fd:协议(protocol)。

# Store base64-ed image in `data'
data=$(convert logo: -shave 1x1 gif:- | base64)
# Pass ASCII data through decoding, and pipe to stdin file descriptor
width=$(base64 --decode <<< $data | identify -ping -format %w fd:0)
base64 --decode <<< $data | convert -resize "$width" -

关于bash - 如何将 ImageMagick 输出存储到 Bash 变量中(然后使用它)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30873962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com