<!--
DVD authoring suite
makesottotitoli.wsf
(c) copyright 2007 Roberto Ceccarelli
-->
<job>
<runtime>
<named name="filename" helpstring="Il nomefile del filmato" required="true" type="string" />
<named name="font" helpstring="Eventuale tipo di carattere (default: verdana)" required="false" type="string" />
<named name="pointsize" helpstring="Eventuale dimensione del carattere (default: 35)" required="false" type="string" />
<named name="vpos" helpstring="Eventuale distanza dal fondo pagina (default: 35)" required="false" type="string" />
<named name="color" helpstring="Eventuale colore del carattere (default: white)" required="false" type="string" />
<named name="language" helpstring="Eventuale lingua (default: it)" required="false" type="string" />
</runtime>
<script language="JScript">
// dichiarazione variabili
var filename, font, pointsize, vpos, color, language ;
var oSPU, oXML;
var spuel, spuList, spuItem;
var lista, langList;
var imgname, txt;
var im;
// controllo che esista l'argomento principale
if( !WScript.Arguments.Named.Exists("filename"))
{
WScript.Arguments.ShowUsage();
WScript.Quit();
}
filename = WScript.Arguments.Named("filename");
// controlli e impostazione default argomenti facoltativi
if( WScript.Arguments.Named.Exists("font") )
{
font = WScript.Arguments.Named("font");
}
else
{
font = "verdanab.ttf";
}
if( WScript.Arguments.Named.Exists("pointsize") )
{
pointsize = WScript.Arguments.Named("pointsize");
}
else
{
pointsize = "35";
}
if( WScript.Arguments.Named.Exists("vpos") )
{
vpos = WScript.Arguments.Named("vpos");
}
else
{
vpos = "35";
}
if( WScript.Arguments.Named.Exists("color") )
{
color = WScript.Arguments.Named("color");
}
else
{
color = "white";
}
if( WScript.Arguments.Named.Exists("language") )
{
language = WScript.Arguments.Named("language");
}
else
{
language = "it";
}
// lettura del file di configurazione
var oXML = new ActiveXObject("msxml2.domdocument.4.0");
oXML.async = false;
oXML.load(filename + ".xml");
var lista = oXML.getElementsByTagName("caption")
// inizializzazione ImageMagick
im = WScript.CreateObject("ImageMagickObject.MagickImage.1");
// carico il template del file di controllo di spumux
oSPU = WScript.CreateObject("Msxml2.DOMDocument.4.0");
oSPU.loadXML("<subpictures><stream/></subpictures>");
// inserisco i parametri
spuList = oSPU.getElementsByTagName("stream");
for(var i=0; i<lista.length; i++) {
// estraggo il nodo dalla lista fornita in input
spuItem = lista.item(i);
// creo l'elemento spu per il file di controllo di spumux
spuel = oSPU.createElement("spu");
spuel.setAttribute("start",spuItem.getAttribute("start"));
spuel.setAttribute("end",spuItem.getAttribute("end"));
imgname = "temp\\"+filename+"_"+i+"_"+language+".png";
spuel.setAttribute("image",imgname);
spuList.item(0).appendChild(spuel);
// ricerco il testo tra gli elementi del nodo
langList = spuItem.getElementsByTagName(language);
txt = langList.item(0).text;
// creo l'immagine
im.Convert( "-type", "palette", "-colors", "3", "+antialias", "xc:transparent", "-resize", "720x576!", "-font", font, "-pointsize", pointsize, "-draw", "gravity south stroke black fill "+color+" text 0,"+vpos+" '"+txt+"'", "png8:"+imgname);
}
// salvataggio del file di controllo di spumux
oSPU.save("temp\\"+filename+"_spu_"+language+".xml");
</script>
</job>