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:

#!/bin/bash<br />
#################################################<br />
#	WHAT is svg2png ?<br />
# Script to convert svg files to png<br />
# svg2png does not modify the file which you select, it creates a new file.<br />
# It cannot convert a directory but you can select several files.</p>
<p>#################################################<br />
#		INFO<br />
# Author : yeKcim - yeknan@yahoo.fr - http://yeknan.free.fr<br />
# Licence : GNU GPL<br />
# Dependency<br />
#		zenity<br />
#		inkscape<br />
# Based on<br />
#		WOM_audioconverter<br />
# History<br />
#		15.01.2006 : v0.1 : First public version<br />
# Install<br />
# 		Put on ~/.gnome2/nautilus-scripts/<br />
#		In a console : chmod u+x ~/.gnome2/nautilus-scripts/svg2png</p>
<p>version="0.1"<br />
#################################################<br />
#	TRADUCTIONS<br />
		###### Default = English #####<br />
		title="svg2png "$version""<br />
		pleasesel="Please select at least one file."<br />
		noselec=""$title" converts svg to png. "$pleasesel""<br />
		nobin="Program inkscape is not installed, please install !"<br />
		warning="Warning"<br />
		choix="Export type ?"<br />
		drawing="Drawing"<br />
		canvas="Canvas"<br />
		exportof="Picture to convert :"<br />
		Resolution="Resolution"<br />
		Working="Working"<br />
		Done="Done!"<br />
	case $LANG in<br />
		######## Français ########<br />
		fr* )<br />
		title="svg2png "$version""<br />
		pleasesel="Merci de sélectionner au moins un fichier."<br />
		noselec=""$title" permet de convertir des svg en png. "$pleasesel""<br />
		warning="Attention"<br />
		nobin="Le programme inkscape n'est pas installé, veuillez l'installer !"<br />
		choix="Type d'export ?"<br />
		drawing="Dessin"<br />
		canvas="Page"<br />
		exportof="Image à convertir :"<br />
		Resolution="Resolution"<br />
		Working="Working on"<br />
		Done="Done" ;;<br />
	######## Magyarul #########<br />
		hu* )<br />
		title="svg2png "$version""<br />
		pleasesel="Kérlek válassz ki legalább 1 fájlt!"<br />
		noselec=""$title" export script svg-ből png-be."$pleasesel""<br />
		warning="Figyelem"<br />
		nobin="Az inkscape nem található, telepítsd!"<br />
		choix="Exportálás típusa?"<br />
		drawing="Csak_a_rajz"<br />
		canvas="Rajzlap"<br />
		exportof="Az exportált terület legyen: "<br />
		Resolution="Felbontás (dpi)"<br />
		Working="Készül a"<br />
		Done="Az exportálás kész!" ;;<br />
	esac</p>
<p>#################################################<br />
#	PROGRAMME<br />
######## Test dépendance ########<br />
which inkscape 2>/dev/null<br />
if [ $? != 0 ]<br />
then<br />
	zenity --error --title="$title" --text="$nobin"<br />
	exit 0<br />
fi</p>
<p>#### Pas de fichiers sélectionné ###<br />
if [ $# -eq 0 ]; then<br />
	zenity --error --title="$warning" --text="$noselec"<br />
	exit 1<br />
fi</p>
<p>######## Page/image ? ########<br />
while [ ! "$choixutilisateur" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix<br />
do<br />
	choixutilisateur=`zenity --title "$title" --list --radiolist --column="" --column="$exportof" TRUE "$canvas" FALSE "$drawing" --text "$choix"`<br />
	###### Choix -> Sortie boucle ######<br />
	if  [ $? != 0 ]; then<br />
		exit 1<br />
	fi<br />
	[ $? -ne 0 ] && exit 2 # Annulation<br />
done</p>
<p>if  [ $choixutilisateur == $drawing ]; then<br />
	type="--export-area-drawing";<br />
fi</p>
<p>######## Résolution ? ########<br />
while [ ! "$resolution" ] # Réafficher la fenêtre tant que l'utilisateur n'a pas fait de choix<br />
do<br />
######	resolution=`zenity --entry --title "$title" --text "$Resolution:" --entry-text "90"`<br />
	resolution=`zenity --title="$title" --list --radiolist --column="" --column="$Resolution:" FALSE "90" FALSE "120" TRUE "300" FALSE "600" FALSE "1200"`<br />
	###### Choix -> Sortie boucle ######<br />
	if  [ $? != 0 ]; then<br />
		exit 1<br />
	fi<br />
	[ $? -ne 0 ] && exit 2 # Annulation<br />
done</p>
<p>######## Export png ########<br />
while [ $# -gt 0 ]; do<br />
	picture=$1<br />
	png_file=`echo "$picture" | sed 's/\.\w*$/.png/'`<br />
	inkscape $type --export-dpi="$resolution" --export-png="$png_file" "$picture" | zenity --progress --text="$Working $png_file" --pulsate --auto-close && zenity --info --text="$Done"<br />
	shift<br />
done<br />