Skip to main content
Commonmark migration
Source Link

I use ImageMagick to crop image, encapsulate the related code to functions.

Here is the code:

convertc2(){
  convert $1 -crop $2 "two.png"
}


converto3(){


  Delimeter="placeHolder"

  if [[ $2 == *"x"* ]]; then
    Delimeter="x"
  else
    Delimeter="X"
  fi

  First="${2%$Delimeter*}"
  Fourth="${2##*+}"
  Lhs="${2%%+*}"
  Rhs="${2#"$Lhs+"}"

  Second="${Lhs##*$Delimeter}"
  Third="${Rhs%+*}"

  One=$(echo "scale=0 ; $First * 1.5" | bc)
  One=${One%.*}
  Two=$(echo "$Second * 1.5" | bc)
  Two=${Two%.*}
  Three=$(echo "$Third * 1.5" | bc)
  Three=${Three%.*}
  Four=$(echo "$Fourth * 1.5" | bc)
  Four=${Four%.*}

  Final=$One"X"$Two"+"$Three"+"$Four

  echo $Final

  convert $1 -crop $Final "three.png"
}

Usage like this:

convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png   300X300+0+0 
  
converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png    300X300+0+0                  

I need the image size of @2X and @3X. So the function converto3 use convertc2 's size and transform to its size.

Delimeter="placeHolder"
    
if [[ $2 == *"x"* ]]; then
    Delimeter="x"
else
    Delimeter="X"
fi

I really care about how to improve the above code. The "x" , I may type "X" or "x".

how to use this "${2%$Delimeter*}" insensitive?

And the calculation code in converto3() is very ugly.

I use ImageMagick to crop image, encapsulate the related code to functions.

Here is the code:

convertc2(){
  convert $1 -crop $2 "two.png"
}


converto3(){


  Delimeter="placeHolder"

  if [[ $2 == *"x"* ]]; then
    Delimeter="x"
  else
    Delimeter="X"
  fi

  First="${2%$Delimeter*}"
  Fourth="${2##*+}"
  Lhs="${2%%+*}"
  Rhs="${2#"$Lhs+"}"

  Second="${Lhs##*$Delimeter}"
  Third="${Rhs%+*}"

  One=$(echo "scale=0 ; $First * 1.5" | bc)
  One=${One%.*}
  Two=$(echo "$Second * 1.5" | bc)
  Two=${Two%.*}
  Three=$(echo "$Third * 1.5" | bc)
  Three=${Three%.*}
  Four=$(echo "$Fourth * 1.5" | bc)
  Four=${Four%.*}

  Final=$One"X"$Two"+"$Three"+"$Four

  echo $Final

  convert $1 -crop $Final "three.png"
}

Usage like this:

convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png   300X300+0+0 
 converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png    300X300+0+0                  

I need the image size of @2X and @3X. So the function converto3 use convertc2 's size and transform to its size.

Delimeter="placeHolder"
    
if [[ $2 == *"x"* ]]; then
    Delimeter="x"
else
    Delimeter="X"
fi

I really care about how to improve the above code. The "x" , I may type "X" or "x".

how to use this "${2%$Delimeter*}" insensitive?

And the calculation code in converto3() is very ugly.

I use ImageMagick to crop image, encapsulate the related code to functions.

Here is the code:

convertc2(){
  convert $1 -crop $2 "two.png"
}


converto3(){


  Delimeter="placeHolder"

  if [[ $2 == *"x"* ]]; then
    Delimeter="x"
  else
    Delimeter="X"
  fi

  First="${2%$Delimeter*}"
  Fourth="${2##*+}"
  Lhs="${2%%+*}"
  Rhs="${2#"$Lhs+"}"

  Second="${Lhs##*$Delimeter}"
  Third="${Rhs%+*}"

  One=$(echo "scale=0 ; $First * 1.5" | bc)
  One=${One%.*}
  Two=$(echo "$Second * 1.5" | bc)
  Two=${Two%.*}
  Three=$(echo "$Third * 1.5" | bc)
  Three=${Three%.*}
  Four=$(echo "$Fourth * 1.5" | bc)
  Four=${Four%.*}

  Final=$One"X"$Two"+"$Three"+"$Four

  echo $Final

  convert $1 -crop $Final "three.png"
}

Usage like this:

convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png   300X300+0+0 
 
converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png    300X300+0+0                  

I need the image size of @2X and @3X. So the function converto3 use convertc2 's size and transform to its size.

Delimeter="placeHolder"
    
if [[ $2 == *"x"* ]]; then
    Delimeter="x"
else
    Delimeter="X"
fi

I really care about how to improve the above code. The "x" , I may type "X" or "x".

how to use this "${2%$Delimeter*}" insensitive?

And the calculation code in converto3() is very ugly.

edited tags; edited title
Link
200_success
  • 144.2k
  • 22
  • 188
  • 473

Bash function , extract word from stringto produce variants of images at 2X and code adjustment3X resolutions

added 2 characters in body
Source Link
janos
  • 111.7k
  • 15
  • 152
  • 391

I use ImageMagick to crop image, encapsulate the related code to functions.

Here is the code:

convertc2(){
  convert $1 -crop $2 "two.png"
}


converto3(){


  Delimeter="placeHolder"

  if [[ $2 == *"x"* ]]; then
    Delimeter="x"
  else
    Delimeter="X"
  fi

  First="${2%$Delimeter*}"
  Fourth="${2##*+}"
  Lhs="${2%%+*}"
  Rhs="${2#"$Lhs+"}"

  Second="${Lhs##*$Delimeter}"
  Third="${Rhs%+*}"

  One=$(echo "scale=0 ; $First * 1.5" | bc)
  One=${One%.*}
  Two=$(echo "$Second * 1.5" | bc)
  Two=${Two%.*}
  Three=$(echo "$Third * 1.5" | bc)
  Three=${Three%.*}
  Four=$(echo "$Fourth * 1.5" | bc)
  Four=${Four%.*}

  Final=$One"X"$Two"+"$Three"+"$Four

  echo $Final

  convert $1 -crop $Final "three.png"
}

Usage like this:

$: convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png 300X300+0+0

convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png   300X300+0+0 

$: converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png 300X300+0+0

converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png    300X300+0+0                  

I need the image size of @2X and @3X. So the function converto3 use convertc2 's size and transform to its size.

Delimeter="placeHolder"
    
if [[ $2 == *"x"* ]]; then
    Delimeter="x"
else
    Delimeter="X"
fi

I really care about how to improve the above code. The "x" , I may type "X" or "x".

how to use this "${2%$Delimeter*}" insensitive?

And the calculation code in converto3() is very ugly.

I use ImageMagick to crop image, encapsulate the related code to functions.

Here is the code:

convertc2(){
  convert $1 -crop $2 "two.png"
}


converto3(){


  Delimeter="placeHolder"

  if [[ $2 == *"x"* ]]; then
    Delimeter="x"
  else
    Delimeter="X"
  fi

  First="${2%$Delimeter*}"
  Fourth="${2##*+}"
  Lhs="${2%%+*}"
  Rhs="${2#"$Lhs+"}"

  Second="${Lhs##*$Delimeter}"
  Third="${Rhs%+*}"

  One=$(echo "scale=0 ; $First * 1.5" | bc)
  One=${One%.*}
  Two=$(echo "$Second * 1.5" | bc)
  Two=${Two%.*}
  Three=$(echo "$Third * 1.5" | bc)
  Three=${Three%.*}
  Four=$(echo "$Fourth * 1.5" | bc)
  Four=${Four%.*}

  Final=$One"X"$Two"+"$Three"+"$Four

  echo $Final

  convert $1 -crop $Final "three.png"
}

Usage like this:

$: convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png 300X300+0+0

$: converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png 300X300+0+0

I need the image size of @2X and @3X. So the function converto3 use convertc2 's size and transform to its size.

Delimeter="placeHolder"
    
if [[ $2 == *"x"* ]]; then
    Delimeter="x"
else
    Delimeter="X"
fi

I really care about how to improve the above code. The "x" , I may type "X" or "x".

how to use this "${2%$Delimeter*}" insensitive?

And the calculation code in converto3() is very ugly.

I use ImageMagick to crop image, encapsulate the related code to functions.

Here is the code:

convertc2(){
  convert $1 -crop $2 "two.png"
}


converto3(){


  Delimeter="placeHolder"

  if [[ $2 == *"x"* ]]; then
    Delimeter="x"
  else
    Delimeter="X"
  fi

  First="${2%$Delimeter*}"
  Fourth="${2##*+}"
  Lhs="${2%%+*}"
  Rhs="${2#"$Lhs+"}"

  Second="${Lhs##*$Delimeter}"
  Third="${Rhs%+*}"

  One=$(echo "scale=0 ; $First * 1.5" | bc)
  One=${One%.*}
  Two=$(echo "$Second * 1.5" | bc)
  Two=${Two%.*}
  Three=$(echo "$Third * 1.5" | bc)
  Three=${Three%.*}
  Four=$(echo "$Fourth * 1.5" | bc)
  Four=${Four%.*}

  Final=$One"X"$Two"+"$Three"+"$Four

  echo $Final

  convert $1 -crop $Final "three.png"
}

Usage like this:

convertc2 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png   300X300+0+0 
converto3 /Users/dengjiangzhou/Desktop/Simulator\ Screen\ Shot\ -\ iPhone\ 8\ -\ 2019-02-20\ at\ 14.39.02.png    300X300+0+0                  

I need the image size of @2X and @3X. So the function converto3 use convertc2 's size and transform to its size.

Delimeter="placeHolder"
    
if [[ $2 == *"x"* ]]; then
    Delimeter="x"
else
    Delimeter="X"
fi

I really care about how to improve the above code. The "x" , I may type "X" or "x".

how to use this "${2%$Delimeter*}" insensitive?

And the calculation code in converto3() is very ugly.

Source Link
black_pearl
  • 220
  • 1
  • 10
Loading