#!/usr/bin/perl ################################################################# # Script Perl que extrai os 'frames' de um arquivo .cgm gerado # pelo RIP, convertendo-os a figuras .PNG. # # Requer NCAR Graphics e o utilitario 'convert' do Image Magick. # # data: Jul/2006. ################################################################# use strict; use warnings; my $arqs = "figura_"; my $figures = shift @ARGV; # Verifica se o nome de algum arquivo foi passado ao script. if ( not defined $figures ) { print "\n\n\tDeve-se informar um nome de arquivo .CGM.\n\n"; exit; } elsif ( not -e $figures ) { print "\n\n\tArquivo nao existe!\n\n"; exit; } # Executa o comando ncgmstat pegando a sua saida. open NCG,"ncgmstat -c $figures |"; my @frames=split /\s+/,; # nro de frames print "\n\n\tO arquivo '$figures' contem $frames[0] figura(s)."; print "\n\tGerando arquivos individuais...\n\n"; # Usa o utilitario 'med' do NCAR Graphics para separar # os frames e arquivos individuais. if ($frames[0] > 1) { system "med -e \"1,\$ split $frames[0] $arqs\" $figures"; } else { rename $figures, "$figures\_01\.ncgm"; } # Usa utilitario 'ctrans' do NCAR Graphics para converter # os arquivos 'ncgm' em arquivos 'postscript'. my $i=1; my @cgmarqs=glob("*.ncgm"); foreach (@cgmarqs) { system "ctrans -d ps.color $_ > $arqs$i\.ps"; $i++; } # Usa utilitario 'convert' do Image Magick para # converter arquivos 'postscript' em arquivos 'png'. my @psarqs=glob("*.ps"); foreach (@psarqs) { system "convert -density 300 -trim $_ $_\.gif"; } # Apagando arquivos desnecessarios. unlink <*.ncgm>,<*.ps>;