Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Check number of inputs
- if [ $# -lt 2 -o $# -gt 3 ]; then
- echo "Needs two or three input arguments"
- exit 0;
- fi
- # Split hair image
- convert "$1" -crop 40x40 +repage zzztmp.png
- # Get row to use
- n=`ls -1 zzztmp*.png | wc -l`
- nrows=`echo "$n/3" | bc`
- if [ $# -eq 3 ]; then
- if [ $3 -gt $nrows ]; then
- echo "Chosen row does not exist, selecting row 1"
- row="1"
- else
- row="$3"
- fi
- else
- row="-1"
- fi
- # this function takes:
- # (1) the image number of the front-facing hair in the row you want to use
- # (2) the output image name
- disthair () {
- # Distribute hair from the chosen row
- front=`echo "("$1"-1)*3" | bc`
- back=`echo "$front+1" | bc`
- right=`echo "$back+1" | bc`
- left="r$right"
- # Make a left-facing hair image
- convert zzztmp-$right.png -flop zzztmp-$left.png
- # Create blank convas
- convert -size 576x256 canvas:none "$2"
- # Now place the hair on the blank canvas where needed.
- # Rear-facing
- composite -geometry +12+8 zzztmp-$back.png "$2" "$2"
- composite -geometry +76+8 zzztmp-$back.png "$2" "$2"
- composite -geometry +140+8 zzztmp-$back.png "$2" "$2"
- composite -geometry +204+9 zzztmp-$back.png "$2" "$2"
- composite -geometry +268+8 zzztmp-$back.png "$2" "$2"
- composite -geometry +332+8 zzztmp-$back.png "$2" "$2"
- composite -geometry +396+8 zzztmp-$back.png "$2" "$2"
- composite -geometry +460+9 zzztmp-$back.png "$2" "$2"
- composite -geometry +524+8 zzztmp-$back.png "$2" "$2"
- # Left-facing
- composite -geometry +14+72 zzztmp-$left.png "$2" "$2"
- composite -geometry +78+73 zzztmp-$left.png "$2" "$2"
- composite -geometry +142+73 zzztmp-$left.png "$2" "$2"
- composite -geometry +206+72 zzztmp-$left.png "$2" "$2"
- composite -geometry +270+72 zzztmp-$left.png "$2" "$2"
- composite -geometry +334+73 zzztmp-$left.png "$2" "$2"
- composite -geometry +398+73 zzztmp-$left.png "$2" "$2"
- composite -geometry +462+72 zzztmp-$left.png "$2" "$2"
- composite -geometry +526+72 zzztmp-$left.png "$2" "$2"
- # Front-facing
- composite -geometry +12+135 zzztmp-$front.png "$2" "$2"
- composite -geometry +76+135 zzztmp-$front.png "$2" "$2"
- composite -geometry +140+135 zzztmp-$front.png "$2" "$2"
- composite -geometry +204+136 zzztmp-$front.png "$2" "$2"
- composite -geometry +268+135 zzztmp-$front.png "$2" "$2"
- composite -geometry +332+135 zzztmp-$front.png "$2" "$2"
- composite -geometry +396+135 zzztmp-$front.png "$2" "$2"
- composite -geometry +460+136 zzztmp-$front.png "$2" "$2"
- composite -geometry +524+135 zzztmp-$front.png "$2" "$2"
- # Right-facing
- composite -geometry +10+200 zzztmp-$right.png "$2" "$2"
- composite -geometry +74+201 zzztmp-$right.png "$2" "$2"
- composite -geometry +138+201 zzztmp-$right.png "$2" "$2"
- composite -geometry +202+200 zzztmp-$right.png "$2" "$2"
- composite -geometry +266+200 zzztmp-$right.png "$2" "$2"
- composite -geometry +330+201 zzztmp-$right.png "$2" "$2"
- composite -geometry +394+201 zzztmp-$right.png "$2" "$2"
- composite -geometry +458+200 zzztmp-$right.png "$2" "$2"
- composite -geometry +522+200 zzztmp-$right.png "$2" "$2"
- }
- # Finally, run disthair on the selected row (or all rows)
- if [ "$row" -ne "-1" ]; then
- disthair "$row" "$2"
- echo "Converted row $row into $2"
- else
- for (( k=1; k<=$nrows; k++ ))
- do
- fn=${2%.*}
- ex=${2##*.}
- outname="$fn-$k.$ex"
- disthair "$k" "$outname"
- echo "Converted row $k into $outname"
- done
- fi
- rm zzztmp-*.png
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement