function longLinenoise($myImage,$dimImage,$strength,$freq) { $indexWhite = imagecolorexact($myImage,255,255,255);
$indexBlack = imagecolorexact($myImage,0,0,0);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,$freq) >= 20) {
} else { $currColor = imagecolorat($myImage,$i,$j);
if(isCloseColor($myImage,$currColor,255,255,255,10)) continue;
$nb_lignes = rand(1,intval($strength/10));
$length = rand(intval($strength/5),$strength);
drawLignes($myImage,$dimImage,$currColor,$i,$j,$nb_lignes,$length);
} } } } function drawLignes($myImage,$dimImage,$color,$x,$y,$nb_lignes,$max_length) { for($i = 0 ;
$i < $nb_lignes ;
$i++) { $xmin = $x-$max_length;
if($xmin < 0) $xmin = 0;
$ymin = $y-$max_length;
if($ymin < 0) $ymin = 0;
$xmax = $x+$max_length;
if($xmax > $dimImage[0] - 1) $xmax = $dimImage[0] - 1;
$ymax = $y+$max_length;
if($ymax > $dimImage[1] - 1) $ymax = $dimImage[1] - 1;
$x2 = rand($xmin,$xmax);
$y2 = rand($ymin,$ymax);
while(sqrt(pow($x2-$x,2) + pow($y2-$y,2)) > $max_length) { $xmin = $x-$max_length;
if($xmin < 0) $xmin = 0;
$ymin = $y-$max_length;
if($ymin < 0) $ymin = 0;
$xmax = $x+$max_length;
if($xmax > $dimImage[0] - 1) $xmax = $dimImage[0] - 1;
$ymax = $y+$max_length;
if($ymax > $dimImage[1] - 1) $ymax = $dimImage[1] - 1;
$x2 = rand($xmin,$xmax);
$y2 = rand($ymin,$ymax);
} imageline($myImage,$x,$y,$x2,$y2,$color);
$x = $x2;
$y = $y2;
} } function invertnoise($myImage,$dimImage,$strength) { $indexBlack = imagecolorexact($myImage,0,0,0);
if($indexBlack == -1) $indexBlack = imagecolorclosest($myImage,0,0,0);
$indexWhite = imagecolorexact($myImage,255,255,255);
if($indexWhite == -1) $indexWhite = imagecolorclosest($myImage,255,255,255);
$currColor = imagecolorat($myImage,0,0);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,100) >= $strength) { } else { $currColor = imagecolorat($myImage,$i,$j);
if($currColor == $indexBlack) imagesetpixel($myImage,$i,$j,$indexWhite);
if($currColor == $indexWhite) imagesetpixel($myImage,$i,$j,$indexBlack);
} } } }
use strict;
use Getopt::Long;
use List::Util qw( max );
my %Symboles = ("'"=> 0, "-"=> 0, "_"=> 0, "'"=> 0, "\""=> 0, "\\"=> 0, "/"=> 0, "|"=> 0, "«"=> 0, "»"=> 0, "°"=> 0, ","=> 0, ";
"=> 0, "."=> 0, "`"=> 0, ":"=> 0, "~"=> 0, "{"=> 0, "}"=> 0, "["=> 0, "]"=> 0, "("=> 0, ")"=> 0, "+"=> 0, "="=> 0, "<"=> 0, ">"=> 0, "*"=> 0, "²"=> 0, "³"=> 0, "?"=> 0, "%"=> 0, "\$"=> 0, "@"=> 0, "±"=> 0, "^"=> 0, "¨"=> 0, "¯"=> 0, "0"=> 0, "9"=> 0, "8"=> 0, "7"=> 0, "6"=> 0, "5"=> 0, "4"=> 0, "3"=> 0, "2"=> 0, "1"=> 0, );
my %Voyelles = ("a"=> 0, "à"=> 0, "â"=> 0, "ä"=> 0, "á"=> 0, "e"=> 0, "è"=> 0, "é"=> 0, "ê"=> 0, "ë"=> 0, "i"=> 0, "î"=> 0, "ï"=> 0, "ì"=> 0, "í"=> 0, "o"=> 0, "ô"=> 0, "ö"=> 0, "ò"=> 0, "ó"=> 0, "u"=> 0, "û"=> 0, "ü"=> 0, "ù"=> 0, "ú"=> 0, "y"=> 0, "A"=> 0, "E"=> 0, "I"=> 0, "O"=> 0, "U"=> 0, "Y"=> 0, );
my %Consonnes = ("b"=> 0, "c"=> 0, "ç"=> 0, "d"=> 0, "f"=> 0, "g"=> 0, "h"=> 0, "j"=> 0, "k"=> 0, "l"=> 0, "m"=> 0, "n"=> 0, "p"=> 0, "q"=> 0, "r"=> 0, "s"=> 0, "t"=> 0, "v"=> 0, "w"=> 0, "x"=> 0, "z"=> 0, "B"=> 0, "C"=> 0, "D"=> 0, "F"=> 0, "G"=> 0, "H"=> 0, "J"=> 0, "K"=> 0, "L"=> 0, "M"=> 0, "N"=> 0, "P"=> 0, "Q"=> 0, "R"=> 0, "S"=> 0, "T"=> 0, "V"=> 0, "W"=> 0, "X"=> 0, "Z"=> 0, );
my $recueilFile;
if ( !GetOptions ( 'recueil=s' => \$recueilFile ) ) { print "!!! Erreur dans la lecture de la ligne de commande\n";
exit(-1);
} if ( !defined $recueilFile ) { print "!!! Aucun fichier spécifié (option -recueil) !!\n";
exit(-1);
} my %Recueil;
my %Mots;
print "\nOuverture du recueil...\n";
open fREC, "<$recueilFile" or die "Impossible d'ouvrir le recueil !\n";
# print "\n\nPremier passage...\n\n";
&premierPassage;
close fREC;
# print "\n\nDeuxième passage...\n\n";
my %Poetivites;
open fREC, "<$recueilFile" or die "Impossible d'ouvrir le recueil !\n";
my $logFile;
if($recueilFile =~ m/^(\S+)\.\w+$/) { $logFile = $1;
} else { $logFile = $recueilFile;
} $logFile .= "_log.txt";
open fLOG, ">$logFile" or die "Impossible de créer le fichier log !\n";
&deuxiemePassage;
close fREC;
close fLOG;