Simple script for generating graphics from text. https://www.instagram.com/write.as/
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

89 linhas
2.6 KiB

  1. #!/bin/bash
  2. #echo "It looks like it worked!" > temp_image_text.txt
  3. #cat temp_image_text.txt | convert -background white -fill black -font $HOME/.local/share/fonts/Lora-Regular.ttf -size 900x900 -pointsize 48 -gravity center -interline-spacing 10 caption:@- $1
  4. #convert $1 -gravity center -extent 1024x1024 $1
  5. final=$1
  6. font=$2
  7. author=$3
  8. if [ -z "$final" ]; then
  9. read -p "Output filename [writeas.png]? " final
  10. if [ -z "$final" ]; then
  11. final=writeas.png
  12. fi
  13. fi
  14. if [ -z "$font" ]; then
  15. read -p "Font (norm,sans,mono) [norm]? " font
  16. if [ -z "$font" ]; then
  17. font="norm"
  18. fi
  19. fi
  20. if [ -z "$author" ]; then
  21. read -p "Author/username []? " author
  22. fi
  23. read -p "Subdomain (y/N)? " answer
  24. case ${answer:0:1} in
  25. y|Y )
  26. sub="sub"
  27. ;;
  28. * )
  29. sub=""
  30. ;;
  31. esac
  32. read -p "Post content []? " msg
  33. if [ -z "$msg" ]; then
  34. echo "Need some kind of content. Bye."
  35. exit 1
  36. fi
  37. echo "Thanks. Generating image..."
  38. DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
  39. font_reg=$DIR/fonts/Lora-Regular.ttf
  40. if [ "$font" = "mono" ]; then
  41. font_reg=$DIR/fonts/Hack-Regular.ttf
  42. elif [ "$font" != "norm" ]; then
  43. font_reg=$DIR/fonts/OpenSans-Regular.ttf
  44. fi
  45. write_bold=$DIR/fonts/Lora-Bold.ttf
  46. write_reg=$DIR/fonts/Lora-Regular.ttf
  47. # Generate post text
  48. if [ $(echo "$msg" | wc -m) -lt 40 ]; then
  49. convert -background white -fill black -font $font_reg -size 900x900 -pointsize 48 -gravity center -interline-spacing 10 caption:"$msg" $final
  50. else
  51. convert -background white -fill black -font $font_reg -size 900x900 -pointsize 48 -gravity west -interline-spacing 10 caption:"$msg" $final
  52. fi
  53. # Generate footer
  54. if [ -z "$author" ]; then
  55. # No author provided, just show "write.as"
  56. convert -background white -fill black -size x50 -gravity center -font $write_bold -pointsize 32 label:'write.as' -font $write_reg footer.png
  57. else
  58. # Author provided
  59. if [ "$sub" = "sub" ]; then
  60. convert -background white -fill black -size x50 -gravity center -font $write_reg -pointsize 32 label:"$author." -font $write_bold -pointsize 32 label:'writeas' +append -font $write_reg -pointsize 32 label:".com" +append footer.png
  61. else
  62. convert -background white -fill black -size x50 -gravity center -font $write_bold -pointsize 32 label:'write.as' -font $write_reg -pointsize 32 label:"/$author/" +append footer.png
  63. fi
  64. fi
  65. # Expand footer width
  66. convert footer.png -gravity center -extent 900x50 footer.png
  67. # Combine text and footer
  68. convert $final footer.png -append $final
  69. # Expand canvas size
  70. convert $final -gravity center -extent 1024x1024 $final
  71. echo "Cleaning up..."
  72. rm footer.png
  73. echo "DONE."
  74. echo "See $(pwd)/$final"