Multimédia scriptek III.

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

Akár az előző scriptet kiegészítendő, akár más esetben, szükség lehet egy bitkép -> jpeg konverterre. Az itt következő image/graphicsmagick alapú script beállítható tömörítéssel és felbontással (dpi) konvertál bármely támogatott formátumot jpeg-be. A felület szintén zenity. Alapesetben rádiólistán választható a minőség, és graphicsmagick-et használ, de a kódban ott a kommentezett sorokban a lehetőség csúszkás beállításra, és imagemagick használatára.
A kód:

  1. #!/bin/bash<br />
  2. #################################################<br />
  3. # Script to convert image files to jpg<br />
  4. # script does not modify the file which you select, it creates a new file.<br />
  5. # It cannot convert a directory but you can select several files.<br />
  6. # </p>
  7. <p>#################################################<br />
  8. version="0.1"<br />
  9. #<br />
  10. ###### Default = English #####<br />
  11. title="any2jpg "$version""<br />
  12. pleasesel="Please select at least one file."<br />
  13. noselec=""$title" convert images to jpg. "$pleasesel""<br />
  14. nobin="Program Imagemagick/Graphicsmagick is not installed, please install !"<br />
  15. warning="Warning"<br />
  16. qsel="Quality (%)"<br />
  17. exportof="jpeg quality setting"<br />
  18. Resolution="Resolution"<br />
  19. Working="Working"<br />
  20. Done="Done!"<br />
  21. case $LANG in<br />
  22. ######## Magyarul #########<br />
  23. hu* )<br />
  24. title="any2jpg "$version""<br />
  25. pleasesel="Kérlek válassz ki legalább 1 fájlt!"<br />
  26. noselec=""$title" export script bitképekből jpg-be."$pleasesel""<br />
  27. warning="Figyelem"<br />
  28. nobin="Az Imagemagick/Graphicsmagick nem található, telepítsd!"<br />
  29. qsel="Minőség (%)"<br />
  30. exportof="jpeg minőség beállítása"<br />
  31. Resolution="Felbontás (dpi)"<br />
  32. Working="Készül a"<br />
  33. Done="Az exportálás kész!" ;;<br />
  34. esac</p>
  35. <p>#################################################<br />
  36. # PROGRAM<br />
  37. ######## Test dependency ########<br />
  38. which convert 2>/dev/null<br />
  39. if [ $? != 0 ]<br />
  40. then<br />
  41. zenity --error --title="$title" --text="$nobin"<br />
  42. exit 0<br />
  43. fi</p>
  44. <p>#### File selection check ###<br />
  45. if [ $# -eq 0 ]; then<br />
  46. zenity --error --title="$warning" --text="$noselec"<br />
  47. exit 1<br />
  48. fi</p>
  49. <p>######## quality settings ########<br />
  50. while [ ! "$quality" ]<br />
  51. do<br />
  52. # quality=`zenity --scale --title "$title" --text="$qsel" --min-value="60" --max-value="100" --value="90" --step 1`<br />
  53. quality=`zenity --title "$title" --list --radiolist --column="%" --column="$exportof" FALSE "75" FALSE "80" FALSE "85" TRUE "90" FALSE "92" FALSE "94" FALSE "96" FALSE "100" --text "$qsel"`<br />
  54. if [ $? != 0 ]; then<br />
  55. exit 1<br />
  56. fi<br />
  57. [ $? -ne 0 ] && exit 2<br />
  58. done</p>
  59. <p>######## resolution settings ########<br />
  60. while [ ! "$sample" ]<br />
  61. do<br />
  62. sample=`zenity --title="$title" --list --radiolist --column="" --column="$Resolution:" FALSE "90x90" FALSE "120x120" TRUE "300x300" FALSE "600x600" FALSE "1200x1200"`<br />
  63. if [ $? != 0 ]; then<br />
  64. exit 1<br />
  65. fi<br />
  66. [ $? -ne 0 ] && exit 2<br />
  67. done</p>
  68. <p>######## Export jpg ########<br />
  69. while [ $# -gt 0 ]; do<br />
  70. picture=$1<br />
  71. jpg_file=`echo "$picture" | sed 's/\.\w*$/.jpg/'`<br />
  72. # when use imagemagick, you can uncomment the next line, and comment it another. ##<br />
  73. # /usr/bin/convert -quality "$quality" -set density "$sample" "$picture" -background white -flatten jpeg:"$jpg_file" | zenity --progress --text="$Working $picture" --percentage=0 --auto-close && zenity --info --text="$Done"<br />
  74. /usr/bin/gm convert -quality "$quality" -set density "$sample" "$picture" -background white -flatten jpeg:"$jpg_file" | zenity --progress --text="$Working $picture" --pulsate --auto-close && zenity --info --text="$Done"<br />
  75. shift<br />
  76. done<br />