multimédia scriptek II.

batyu küldte be szo, 2010-01-16 17:18 időpontban

Jöjjön a következő: svg2png. Inkscape-t használ parancsmódban meghívva, zenity felületen paraméterezhető, exportált terület és a kimeneti felbontás állítható.
A kód:

  1. #!/bin/bash<br />
  2. #################################################<br />
  3. # WHAT is svg2png ?<br />
  4. # Script to convert svg files to png<br />
  5. # svg2png does not modify the file which you select, it creates a new file.<br />
  6. # It cannot convert a directory but you can select several files.</p>
  7. <p>#################################################<br />
  8. # INFO<br />
  9. # Author : yeKcim - yeknan@yahoo.fr - http://yeknan.free.fr<br />
  10. # Licence : GNU GPL<br />
  11. # Dependency<br />
  12. # zenity<br />
  13. # inkscape<br />
  14. # Based on<br />
  15. # WOM_audioconverter<br />
  16. # History<br />
  17. # 15.01.2006 : v0.1 : First public version<br />
  18. # Install<br />
  19. # Put on ~/.gnome2/nautilus-scripts/<br />
  20. # In a console : chmod u+x ~/.gnome2/nautilus-scripts/svg2png</p>
  21. <p>version="0.1"<br />
  22. #################################################<br />
  23. # TRADUCTIONS<br />
  24. ###### Default = English #####<br />
  25. title="svg2png "$version""<br />
  26. pleasesel="Please select at least one file."<br />
  27. noselec=""$title" converts svg to png. "$pleasesel""<br />
  28. nobin="Program inkscape is not installed, please install !"<br />
  29. warning="Warning"<br />
  30. choix="Export type ?"<br />
  31. drawing="Drawing"<br />
  32. canvas="Canvas"<br />
  33. exportof="Picture to convert :"<br />
  34. Resolution="Resolution"<br />
  35. Working="Working"<br />
  36. Done="Done!"<br />
  37. case $LANG in<br />
  38. ######## Français ########<br />
  39. fr* )<br />
  40. title="svg2png "$version""<br />
  41. pleasesel="Merci de sélectionner au moins un fichier."<br />
  42. noselec=""$title" permet de convertir des svg en png. "$pleasesel""<br />
  43. warning="Attention"<br />
  44. nobin="Le programme inkscape n'est pas installé, veuillez l'installer !"<br />
  45. choix="Type d'export ?"<br />
  46. drawing="Dessin"<br />
  47. canvas="Page"<br />
  48. exportof="Image à convertir :"<br />
  49. Resolution="Resolution"<br />
  50. Working="Working on"<br />
  51. Done="Done" ;;<br />
  52. ######## Magyarul #########<br />
  53. hu* )<br />
  54. title="svg2png "$version""<br />
  55. pleasesel="Kérlek válassz ki legalább 1 fájlt!"<br />
  56. noselec=""$title" export script svg-ből png-be."$pleasesel""<br />
  57. warning="Figyelem"<br />
  58. nobin="Az inkscape nem található, telepítsd!"<br />
  59. choix="Exportálás típusa?"<br />
  60. drawing="Csak_a_rajz"<br />
  61. canvas="Rajzlap"<br />
  62. exportof="Az exportált terület legyen: "<br />
  63. Resolution="Felbontás (dpi)"<br />
  64. Working="Készül a"<br />
  65. Done="Az exportálás kész!" ;;<br />
  66. esac</p>
  67. <p>#################################################<br />
  68. # PROGRAMME<br />
  69. ######## Test dépendance ########<br />
  70. which inkscape 2>/dev/null<br />
  71. if [ $? != 0 ]<br />
  72. then<br />
  73. zenity --error --title="$title" --text="$nobin"<br />
  74. exit 0<br />
  75. fi</p>
  76. <p>#### Pas de fichiers sélectionné ###<br />
  77. if [ $# -eq 0 ]; then<br />
  78. zenity --error --title="$warning" --text="$noselec"<br />
  79. exit 1<br />
  80. fi</p>
  81. <p>######## Page/image ? ########<br />
  82. while [ ! "$choixutilisateur" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix<br />
  83. do<br />
  84. choixutilisateur=`zenity --title "$title" --list --radiolist --column="" --column="$exportof" TRUE "$canvas" FALSE "$drawing" --text "$choix"`<br />
  85. ###### Choix -> Sortie boucle ######<br />
  86. if [ $? != 0 ]; then<br />
  87. exit 1<br />
  88. fi<br />
  89. [ $? -ne 0 ] && exit 2 # Annulation<br />
  90. done</p>
  91. <p>if [ $choixutilisateur == $drawing ]; then<br />
  92. type="--export-area-drawing";<br />
  93. fi</p>
  94. <p>######## Résolution ? ########<br />
  95. while [ ! "$resolution" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix<br />
  96. do<br />
  97. ###### resolution=`zenity --entry --title "$title" --text "$Resolution:" --entry-text "90"`<br />
  98. resolution=`zenity --title="$title" --list --radiolist --column="" --column="$Resolution:" FALSE "90" FALSE "120" TRUE "300" FALSE "600" FALSE "1200"`<br />
  99. ###### Choix -> Sortie boucle ######<br />
  100. if [ $? != 0 ]; then<br />
  101. exit 1<br />
  102. fi<br />
  103. [ $? -ne 0 ] && exit 2 # Annulation<br />
  104. done</p>
  105. <p>######## Export png ########<br />
  106. while [ $# -gt 0 ]; do<br />
  107. picture=$1<br />
  108. png_file=`echo "$picture" | sed 's/\.\w*$/.png/'`<br />
  109. inkscape $type --export-dpi="$resolution" --export-png="$png_file" "$picture" | zenity --progress --text="$Working $png_file" --pulsate --auto-close && zenity --info --text="$Done"<br />
  110. shift<br />
  111. done<br />