猛击mac和image magick

时间:2016-10-28 18:42:39

标签: bash macos imagemagick imagemagick-convert

我在osx mac中有一个.sh来在app中生成图标上下文,但是当我运行脚本时,我收到一条消息

convert: unable to open image `c.png': No such file or directory @ error/blob.c/OpenBlob/2709.
convert: unable to open file `c.png' @ error/png.c/ReadPNGImage/3917.
convert: no images defined `mipmap-mdpi/c.png' @ error/convert.c/ConvertImageCommand/3210.

和文件c.png保留在文件夹

read original
read nombre_resultante
read size


Resize () {

  if [ "$size" == "1" ]; then
    SIZE_MDPI="48x48"
    SIZE_HDPI="72x72"
    SIZE_XHDPI="96x96"
    SIZE_XXHDPI="144x144"
    SIZE_XXXHDPI="192x192"
  elif [ "$size" == "2" ]; then
    SIZE_MDPI="24x24"
    SIZE_HDPI="36x36"
    SIZE_XHDPI="48x48"
    SIZE_XXHDPI="72x72"
    SIZE_XXXHDPI="96x96"
  fi

  rm -rf mipmap-mdpi/*
  rm -rf mipmap-hdpi/*
  rm -rf mipmap-xhdpi/*
  rm -rf mipmap-xxhdpi/*
  rm -rf mipmap-xxxhdpi/*

  convert $original -resize "$SIZE_MDPI" mipmap-mdpi/$nombre_resultante
  convert $original -resize "$SIZE_HDPI" mipmap-hdpi/$nombre_resultante
  convert $original -resize "$SIZE_XHDPI" mipmap-xhdpi/$nombre_resultante
  convert $original -resize "$SIZE_XXHDPI" mipmap-xxhdpi/$nombre_resultante
  convert $original -resize "$SIZE_XXXHDPI" mipmap-xxxhdpi/$nombre_resultante
}

Resize $size

1 个答案:

答案 0 :(得分:1)

错误消息表示文件c.png不存在。我可以使用不存在的文件重现您的错误消息:

$ convert nonexistent.png -resize 48x48 a/b/whatever.png
convert: unable to open image `nonexistent.png': No such file or directory @ error/blob.c/OpenBlob/2702.
convert: unable to open file `nonexistent.png' @ error/png.c/ReadPNGImage/3913.
convert: no images defined `a/b/whatever.png' @ error/convert.c/ConvertImageCommand/3241.

运行脚本时,可能是在错误的目录中。 cd到文件所在的正确目录,以及子目录mipmap-*dpi的存在位置。

您可以在调用调整大小函数之前添加一个检查,如下所示:

if [ ! -f "$original" ]; then
    echo fatal: file does not exist: $original
    exit 1
fi