Changeset 6

Show
Ignore:
Timestamp:
05/04/08 13:45:20 (8 months ago)
Author:
jms
Message:

[popip] Nouvelle option : -o (préfixe des fichiers en sortie)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/popip/popip

    r3 r6  
    33#                               popip 
    44# ======================================================================== 
    5 # Jean-Michel Sarlat                               dimanche 7 octobre 2007 
     5# Jean-Michel Sarlat                                   dimanche 4 mai 2008 
    66# ======================================================================== 
    7 package GS; 
     7$VERSION = "0.1.2";package GS; 
    88 
    99use File::Basename; 
    1010### --- Commandes GhostScript ----------------------------------------------- 
    11 my $GSBBOX = "gs -sDEVICE=bbox -dBATCH -dNOPAUSE -c save pop -f "; 
    12 my $GSPIPE = " 2>&1 1>/dev/null |"; 
    13 my $GSPSPDF = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dNOSAFER "; 
    14 my $GSPNMRAW  = "gs -sDEVICE=pnmraw -dBATCH -dNOPAUSE -dMaxBitmap=500000000 "; 
    15    $GSPNMRAW .= "-dAlignToPixels=0"; 
    16 my $GSPNM  = ""; 
    17 my $GSPNMP = " 2>&1 1>/dev/null"; 
     11my $GSBBOX     = "gs -sDEVICE=bbox -dBATCH -dNOPAUSE -c save pop -f "; 
     12my $GSPIPE     = " 2>&1 1>/dev/null |"; 
     13my $GSPSPDF    = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dNOSAFER "; 
     14my $GSPNMRAW  = "gs -sDEVICE=pnmraw -dBATCH -dNOPAUSE -dMaxBitmap=500000000 "; 
     15   $GSPNMRAW   .= "-dAlignToPixels=0"; 
     16my $GSPNM      = ""; 
     17my $GSPNMP     = " 2>&1 1>/dev/null"; 
    1818### --- Paramètres ---------------------------------------------------------- 
    19 my $GSPNMRES = 144 ; # Résolution initiale pour la fabrication des images. 
    20 my $GSPNMTAB = 4   ; # TextAlphaBits 
    21 my $GSPNMGAB = 4   ; # GraphicsAlphaBits 
     19my $PNGCNF      = "png8:"; 
     20my $GSPNMRES    = 144 ; # Résolution initiale pour la fabrication des images. 
     21my $GSPNMTAB    = 4   ; # TextAlphaBits 
     22my $GSPNMGAB    = 4   ; # GraphicsAlphaBits 
    2223sub SetGSPNMCMD { 
    23     $GSPNM  = "$GSPNMRAW -dGraphicsAlphaBits=$GSPNMGAB -dTextAlphaBits=$GSPNMTAB"; 
    24     $GSPNM .= " -r$GSPNMRES"; 
     24    $GSPNM     = "$GSPNMRAW -dGraphicsAlphaBits=$GSPNMGAB -dTextAlphaBits=$GSPNMTAB"; 
     25    $GSPNM     .= " -r$GSPNMRES"; 
    2526} 
    2627SetGSPNMCMD(); 
     
    4344    bless($self,$classe); 
    4445    $self->{FICHIER} = shift; 
     46    $self->{PREFIXE} = shift; 
    4547    $self->Initialisation(@_); 
    4648    return $self; 
     
    5456    my ($n,$d,$e) = fileparse($self->{FICHIER},qw{\..*}); 
    5557    $self->{EXTENSION} = $e; 
    56     $self->{PREFIXE} = $n; 
     58    $self->{PREFIXEINI} = $n; 
    5759    $self->{REPERTOIRE} = $d; 
    5860    $self->{BASE} = $ENV{PWD}; 
     
    192194        my $W = sprintf("%d",($w * $fact * 72) / $GSPNMRES); 
    193195        my $H = sprintf("%d",($h * $fact * 72) / $GSPNMRES); 
    194         my $cmd = "convert $pre-temp.pnm -colors 256 -resize ${W}x${H}! $pre.png"; 
     196        my $cmd = "convert $pre-temp.pnm -resize ${W}x${H}! $PNGCNF$pre.png"; 
    195197        $self->execution($cmd); 
    196198    }  
     
    235237            my $img = sprintf("$pre-%03d.pnm",$i); 
    236238            # Image finale 
    237             my $png = sprintf("$repertoire/image%03d.png",$i); 
     239            my $png = sprintf("$PNGCNF$repertoire/image%03d.png",$i); 
    238240            # Commandes chaînées  
    239241            my $cmd = "convert $img $crop $$.pnm"; 
    240             $cmd .= " && convert $$.pnm $resize $border -colors 256 $png"; 
     242            $cmd .= " && convert $$.pnm $resize $border $png"; 
    241243            $cmd .= " && rm $$.pnm"; 
    242244            $self->execution($cmd); 
     
    381383eop 
    382384} 
    383 ### --- FIN GS ---------------------------------------------------------------package main; 
     385### --- FIN GS --------------------------------------------------------------- 
     386package main; 
     387 
     388use File::Basename; 
     389 
     390### --- Paramètres de la ligne de commande ----------------------------------- 
     391use Getopt::Std; 
     392getopts("Bb:f:g:i:lp:o:r:Tt:x:"); 
     393my $fichier = shift; 
    384394 
    385395### --- Valeurs par défaut --------------------------------------------------- 
     
    393403my $forcex  = -1;  # valeur de xmin pour chaque page, forcé si >=0 
    394404my $forcedx = -1;  # valeur de xmax - xmin pour chaque page, forcé si >=0 
    395  
    396 ### --- Paramètres de la ligne de commande ----------------------------------- 
    397 use Getopt::Std; 
    398 getopts("Bb:f:g:i:lp:r:Tt:x:"); 
    399 my $fichier = shift; 
     405my $preout = (fileparse($fichier,qw{\..*}))[0]; 
     406 
     407 
     408### -- Ajustements suivant la ligne de commande. 
    400409$opt_b and $bordure = $opt_b; 
    401410$opt_f and $facteur = $opt_f; 
     
    405414$opt_t and $text_ab = $opt_t; 
    406415$opt_l and $efface_log = 0; 
     416$opt_o and $preout = $opt_o; 
    407417 
    408418if ($opt_x) { 
     
    418428 
    419429### -------------------------------------------------------------------------- 
    420 my $f = GS->new($fichier); 
     430my $f = GS->new($fichier,$preout); 
    421431if ($opt_B) { 
    422432    print join("\n",$f->BBox());