Changeset 6
- Timestamp:
- 05/04/08 13:45:20 (8 months ago)
- Files:
-
- trunk/popip/popip (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/popip/popip
r3 r6 3 3 # popip 4 4 # ======================================================================== 5 # Jean-Michel Sarlat dimanche 7 octobre 20075 # Jean-Michel Sarlat dimanche 4 mai 2008 6 6 # ======================================================================== 7 package GS;7 $VERSION = "0.1.2";package GS; 8 8 9 9 use File::Basename; 10 10 ### --- 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";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"; 18 18 ### --- Paramètres ---------------------------------------------------------- 19 my $GSPNMRES = 144 ; # Résolution initiale pour la fabrication des images. 20 my $GSPNMTAB = 4 ; # TextAlphaBits 21 my $GSPNMGAB = 4 ; # GraphicsAlphaBits 19 my $PNGCNF = "png8:"; 20 my $GSPNMRES = 144 ; # Résolution initiale pour la fabrication des images. 21 my $GSPNMTAB = 4 ; # TextAlphaBits 22 my $GSPNMGAB = 4 ; # GraphicsAlphaBits 22 23 sub SetGSPNMCMD { 23 $GSPNM = "$GSPNMRAW -dGraphicsAlphaBits=$GSPNMGAB -dTextAlphaBits=$GSPNMTAB";24 $GSPNM .= " -r$GSPNMRES";24 $GSPNM = "$GSPNMRAW -dGraphicsAlphaBits=$GSPNMGAB -dTextAlphaBits=$GSPNMTAB"; 25 $GSPNM .= " -r$GSPNMRES"; 25 26 } 26 27 SetGSPNMCMD(); … … 43 44 bless($self,$classe); 44 45 $self->{FICHIER} = shift; 46 $self->{PREFIXE} = shift; 45 47 $self->Initialisation(@_); 46 48 return $self; … … 54 56 my ($n,$d,$e) = fileparse($self->{FICHIER},qw{\..*}); 55 57 $self->{EXTENSION} = $e; 56 $self->{PREFIXE } = $n;58 $self->{PREFIXEINI} = $n; 57 59 $self->{REPERTOIRE} = $d; 58 60 $self->{BASE} = $ENV{PWD}; … … 192 194 my $W = sprintf("%d",($w * $fact * 72) / $GSPNMRES); 193 195 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"; 195 197 $self->execution($cmd); 196 198 } … … 235 237 my $img = sprintf("$pre-%03d.pnm",$i); 236 238 # Image finale 237 my $png = sprintf("$ repertoire/image%03d.png",$i);239 my $png = sprintf("$PNGCNF$repertoire/image%03d.png",$i); 238 240 # Commandes chaînées 239 241 my $cmd = "convert $img $crop $$.pnm"; 240 $cmd .= " && convert $$.pnm $resize $border -colors 256$png";242 $cmd .= " && convert $$.pnm $resize $border $png"; 241 243 $cmd .= " && rm $$.pnm"; 242 244 $self->execution($cmd); … … 381 383 eop 382 384 } 383 ### --- FIN GS ---------------------------------------------------------------package main; 385 ### --- FIN GS --------------------------------------------------------------- 386 package main; 387 388 use File::Basename; 389 390 ### --- Paramètres de la ligne de commande ----------------------------------- 391 use Getopt::Std; 392 getopts("Bb:f:g:i:lp:o:r:Tt:x:"); 393 my $fichier = shift; 384 394 385 395 ### --- Valeurs par défaut --------------------------------------------------- … … 393 403 my $forcex = -1; # valeur de xmin pour chaque page, forcé si >=0 394 404 my $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; 405 my $preout = (fileparse($fichier,qw{\..*}))[0]; 406 407 408 ### -- Ajustements suivant la ligne de commande. 400 409 $opt_b and $bordure = $opt_b; 401 410 $opt_f and $facteur = $opt_f; … … 405 414 $opt_t and $text_ab = $opt_t; 406 415 $opt_l and $efface_log = 0; 416 $opt_o and $preout = $opt_o; 407 417 408 418 if ($opt_x) { … … 418 428 419 429 ### -------------------------------------------------------------------------- 420 my $f = GS->new($fichier );430 my $f = GS->new($fichier,$preout); 421 431 if ($opt_B) { 422 432 print join("\n",$f->BBox());
