ALK Armando Leopoldo Keller


JSFL para converter png e jpg para swf (até 92% de compressão)
20 Dezembro, 2008, 11:22 am
Arquivado em: Flash geral, JSFL

Aproveitando as ferias da faculdade e essa parada de final de ano para trazer mais um JSFL desta vez realmente util.

O que ele faz:

- Abre 3 janelas, a primeira para escolher em que pasta estão as imagens a serem convertidas, a segunda para ver onde vão ser salvos os swf , e a terceira para ver onde vão ser salvos os flas (essa pode ser cancelada caso não precise dos flas)

- Para cada imagem da pasta selecionada na primeira janela, ele vai criar um fla novo, importar a imagem, redimensionar o palco, colocar allowsmooth, e exportar o swf, se optou por salvar so flas, ele ira salvar o fla na pasta selecionada, caso contrario ira fechar o fla e ir para a proxima imagem.

Resultados:

- Com alguns testes que eu fiz nas ultimas semanas a compressão dos arquivos chegou até 92% (isso faz uma boa diferença em qualquer site).

- Está facil de usar, qualquer um consegue usar, pois o jsfl faz tudo praticamente sozinho.

O JSFL:

Salve o codigo a seguir em como um arquivo jsfl:

/*
* JSFL para converter imagens para swf
* Importa a imagem em um fla novo, e exporta o swf com a imagem. (redução de até 92% no "peso do arquivo")
* @author Armando Leopoldo Keller (alkeller@live.de) http://alkeller.wordpress.com
*
* Quem utilizar esta classe, favor enviar um email para ALKELLER@LIVE.DE com o "peso" das imagens antes e depois de serem exportadas.
*
*/

var fotosURI = fl.browseForFolderURL("Armando Leopoldo Keller(alkeller@live.de)\n \nSelecione a pasta das imagens.\n ");
var swfsURI = fl.browseForFolderURL("Armando Leopoldo Keller(alkeller@live.de)\n \nSelecione a pasta dos swfs.\n ");
var flasURI = fl.browseForFolderURL("Armando Leopoldo Keller(alkeller@live.de)\n \nSelecione a pasta dos flas.\n ");

var fileMask1 = "*.png";
var fileMask2 = "*.jpg";

var list1 = FLfile.listFolder(fotosURI + "/" + fileMask1, "files");
var list2 = FLfile.listFolder(fotosURI + "/" + fileMask2, "files");

function converte(list)
{
for(var i in list)
{
var doc = fl.createDocument();
doc.importFile(fotosURI+"/"+list[i],true);
var it = doc.library.items[0];
it.quality = 80;
it.allowSmoothing = true;
doc.addItem({x:0,y:0},it);
var selecionado = doc.getTimeline().layers[0].frames[0].elements[0];
selecionado.x = 0;
selecionado.y = 0;
doc.width = parseInt(selecionado.width);
doc.height = parseInt(selecionado.height);
doc.frameRate = 1;
if(flasURI)
{
fl.saveDocument(doc,(flasURI+'/')+list[i].split(".png").join("").split(".jpg").join("")+'.fla',false);
}
doc.exportSWF(swfsURI+'/'+list[i].split(".png").join("").split(".jpg").join("")+'.swf',true);
doc.close(false);
}
}

if(fotosURI && swfsURI)
{
if(list1.length > 0)converte(list1); // png
if(list2.length > 0)converte(list2); // jpg
}
else
{
alert("Você deve selecionar todas as pastas.(a de .flas é opcional)")
}

Claro que ainda pode ser otimizado, assim que tiver mais tempo quero ver se otimizo ele.

Observaçoes importantes:

- Quando for converter pngs, exporte todos eles como interlaced (faça um batch no photoshop) assim ele não fica perguntando se quer importar como um bitmap flateado.

- Quem utilizar ele, favor mandar um email ou colocar aqui nos comentarios o tamanho dos arquivos convertidos antes e depois de converter (a soma de todos os arquivos) para motivos de estatistica e para ver se ainda tem como reduzir mais sem perder a qualidade da imagem.

Qualquer duvida é só colocar nos comentarios que eu respondo assim que tiver tempo.


1 Comentário até o momento
Deixe um comentário

preciso fazer conversao de imagem jpg para flazh

Comment por MAURICIO RIBEIRO




Deixe um comentário
Linhas e parágrafos quebram automaticamente, endereços de email não serão mostrados, HTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>