Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # sample output for fred warren 0 96
- #
- # Metrics: text: fred warren; width: 483; height: 110; ascent: 87; descent: -20; max advance: 192; bounds: 0,-1 68.5781,69.75; origin: 484,0; pixels per em: 96,96;
- # underline position: -4.5625; underline thickness: 2.34375
- #
- # Expects Name to be 2 words and will find the correct font and kerning with a max of 96px 12.9 kerning
- # Will fit in 720px wide
- # Start at 96px and work down to 60px / stop when width is under 702
- name="Johnny Doe"
- px=97
- width=999
- max=702
- while [[ $width -gt $max ]]
- do
- ((px = px - 1 ))
- output=`convert -debug annotate xc: -font .fonts/alpha_echo.ttf -pointsize $px -kerning 0 -annotate 0 "$name" null: 2>&1 | grep Metrics:`
- width=`echo $output|cut -d " " -f6,8|cut -d ";" -f1`
- height=`echo $output|cut -d " " -f6,8|cut -d ";" -f2`
- done
- # Start at 12.0 kerning down to 0.0 kerning / stop when width is under 702 / steps 12 to 0
- kern=13
- width=999
- while [[ $width -gt $max ]]
- do
- ((kern = kern - 1 ))
- output=`convert -debug annotate xc: -font .fonts/alpha_echo.ttf -pointsize $px -kerning $kern -annotate 0 "$name" null: 2>&1 | grep Metrics:`
- width=`echo $output|cut -d " " -f6,8|cut -d ";" -f1`
- height=`echo $output|cut -d " " -f6,8|cut -d ";" -f2`
- done
- # Starting at $KERING.9 to $KERING.0 / stop when width is under 702 / steps 9 to 0
- krn=10
- width=999
- while [[ $width -gt $max ]]
- do
- ((krn = krn - 1 ))
- output=`convert -debug annotate xc: -font .fonts/alpha_echo.ttf -pointsize $px -kerning $kern.$krn -annotate 0 "$name" null: 2>&1 | grep Metrics:`
- width=`echo $output|cut -d " " -f6,8|cut -d ";" -f1`
- height=`echo $output|cut -d " " -f6,8|cut -d ";" -f2`
- done
Advertisement
Add Comment
Please, Sign In to add comment