i n v i d a t i o n    v5

___________________________________________________________________________________________________________
__ lab transmedia numérique __ grappe de cerveaux connectés __ multiprocessing poétique __ zone de scrypt.#rt __

__ avec __
g.cl4renko
Mathias Richard
Nikola Akileus
Awkwardist

__ arrière-plan __
compendium invidation_v[<5] avec AC Hello, g.Cl4renko, Mathias Richard, Awkwardist & Nikola Akileus

___________________________________________________________________________________________________________
__ digital transmedia lab __ brain cluster __ poetic multiprocessing __ scrypt.#rt area __

__ featuring __
g.cl4renko
Mathias Richard
Nikola Akileus
Awkwardist

__ background __
compendium invidation_v[<5] feat. AC Hello, g.Cl4renko, Mathias Richard, Awkwardist & Nikola Akileus


___________________________________________________________________________________________________________
webscrypted by atomeases __ powered by PluXml
now on hystereodrome
___________________

Mushin
R3PLYc4N
Jim Delarge
Tajiaphragm / Memory 3
Ichtyor Tides
mon équipement : une bouteille de bière
mon territoire, un coin de rue

La vie est un livre dont vous n'êtes pas le héros.

La machine se branche sur un humain en train de rêver et pète un plomb.

ainsi c'est la fin (soudain), soyons sludge mes amis

s'ennuivre
you êtes grièvement baisé.
dijital





 sub retournementPoetivites { 	my $poeme = $_[0];
foreach my $mot (keys(%{$Recueil{$poeme}{"Mots"}})) { my $poetivite = 0;
my $nbpoetivites = scalar(@{$Recueil{$poeme}{"Mots"}{$mot}});
while( scalar(@{$Recueil{$poeme}{"Mots"}{$mot}}) > 0) { $poetivite += shift(@{$Recueil{$poeme}{"Mots"}{$mot}});
} $poetivite = int($poetivite / $nbpoetivites);

$Recueil{$poeme}{"Mots"}{$mot} = $poetivite;
push(@{$Poetivites{$poeme}{$poetivite}},$mot);
push(@{$Poetivites{"recueil"}{$poetivite}},$mot);

} } sub nettoieMot { my $mot = $_[0];

while($mot =~ m/(\.|,)$/) {chop $mot;
}
return $mot;
}

 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;

  sub deuxiemePassage {  	my $ligne;
my $indLigne;
my $lastRatio;
my $compteur = 0;
my $poeme = undef;

while(<fREC>) {
chomp;
$ligne = $_;
my @Ligne = split(/\s+/,$ligne);

if($poeme) { &retournementPoetivites ($poeme);
}
$poeme = $1;

$compteur++;
print fLOG "\tPoeme " . $compteur . " : " . $poeme . "\n";
$indLigne = 0;
$lastRatio = undef;
next;
}
my $nbMotsLigne = scalar(@Ligne);

if($nbMotsLigne == 0) { next;
}
my $mot;

$indLigne++;

for(my $indMot = 1 ;
$indMot <= $nbMotsLigne ;
$indMot++) {
$mot = $Ligne[$indMot-1];

if(exists($Symboles{$mot})) { next;
} if(length($mot) == 1 && !exists($Symboles{$mot}) && !exists($Voyelles{$mot}) && !exists($Consonnes{$mot})) { next;
}
$mot = &nettoieMot($mot);


my $poetivite = 0;

$poetivite += max(values(%Mots)) / $Mots{$mot};

my $nbLettresMot = length($mot);
$poetivite *= abs($nbLettresMot - $Recueil{$poeme}{"longueur_mot_moyenne"});

$poetivite *= 1 + $indLigne / $Recueil{$poeme}{"nombre_lignes"};

$poetivite *= 1 + $indMot / $nbMotsLigne;

my @Mot = split(//,$mot);
my $nbVoyelles = 0;
my $nbConsonnes = 0;
my $nbSymboles = 1;
foreach my $lettre (@Mot) { if (exists $Voyelles{$lettre}) { $Voyelles{$lettre}++;
$nbVoyelles ++;
} else { if (exists $Consonnes{$lettre}) { $Consonnes{$lettre}++;
$nbConsonnes ++;
} else { if (exists $Symboles{$lettre}) { $Symboles{$lettre}++;
$nbSymboles ++;
} else { print "Lettre $lettre non identifiable dans $mot à la ligne $indLigne\n";
next;
} } } } if($mot =~ m/au/) {$nbVoyelles--;
}
my $ratio = $nbVoyelles / $nbLettresMot;

if($ratio == 0 || $ratio == 1) { $poetivite *= $nbLettresMot;
if($lastRatio) { if(($lastRatio - $ratio) == 0) { $poetivite *= $nbLettresMot * $nbLettresMot;
} } } else { if($ratio < (1/3)) { $poetivite *= 1/$ratio;
if($lastRatio) { if($ratio <= $lastRatio) { $poetivite *= $lastRatio / $ratio + 1;
} } } else { if($ratio > (2/3)) { $poetivite *= 1/(1-$ratio);
if($lastRatio) { if($ratio >= $lastRatio) { $poetivite *= $ratio / $lastRatio + 1;
} } } else {$poetivite *= 1;
} } } $lastRatio = $ratio;


if($mot =~ /'/) {$nbSymboles--;
} $poetivite *= 1 + $nbSymboles;

if (exists $Symboles{$Mot[0]}) { $poetivite *= 1 + $nbSymboles;
}
$poetivite = int($poetivite + 0.5);
push(@{$Recueil{$poeme}{"Mots"}{$mot}},$poetivite);

}
}
&retournementPoetivites($poeme);
}

  sub spectromie {  	my $ligne;
my $compteur = 0;
my $ligne_poeme = 0;
my $poeme = undef;

while(<fREC>) {
chomp;
$ligne = $_;
$ligne_poeme++;
my @Ligne = split(/\s+/,$ligne);

$poeme = $1;
$ligne_poeme = 0;
$compteur++;
print fSPEC "\tPoeme " . $compteur . " : " . $poeme . "\n";
next;
}
my $nbMotsLigne = scalar(@Ligne);

if($nbMotsLigne == 0) { print fSPEC "\n";
next;
}
foreach my $mot (@Ligne) {
if(exists($Symboles{$mot})) { next;
} if(length($mot) == 1 && !exists($Symboles{$mot}) && !exists($Voyelles{$mot}) && !exists($Consonnes{$mot})) { next;
}
$mot = &nettoieMot($mot);

push(@{$SampledRecueil{$poeme}{$ligne_poeme}{"mots"}},$mot);
push(@{$SampledRecueil{$poeme}{$ligne_poeme}{"poetivites"}},$Recueil{$poeme}{"Mots"}{$mot});

print fSPEC $Recueil{$poeme}{"Mots"}{$mot} . "\t";

}
print fSPEC "\n";

}
}

 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);
} } } }

 sub poedilation { 	my $poeme = $_[0];
my $degre = $_[1];

open fPOE, ">" . $poeme . ".txt" or die "Impossible d'ouvrir le fichier $poeme.txt !\n";
open fPTE, ">" . $poeme . "_pte.txt" or die "Impossible d'ouvrir le fichier $poeme.txt !\n";

foreach my $ligne (sort( {$a <=> $b} keys(%{$SampledRecueil{$poeme}}))) {
if(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) == 0) { print fPOE "\n";
next;
}
if(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) == 1) { print fPOE ${$SampledRecueil{$poeme}{$ligne}{"mots"}}[0] . "\n";
print fPTE ${$SampledRecueil{$poeme}{$ligne}{"poetivites"}}[0] . "\n";
next;
}
my @finalLine;
my @finalPoe;
for (my $i = 0 ;
$i < $degre ;
$i++) {
my @newLine;
my @newPoetivites;

while(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) > 1) {
my $motAvant = shift(@{$SampledRecueil{$poeme}{$ligne}{"mots"}});
my $poeAvant = shift(@{$SampledRecueil{$poeme}{$ligne}{"poetivites"}});
my $interpol = int(($poeAvant + ${$SampledRecueil{$poeme}{$ligne}{"poetivites"}}[0]) / 2);

if(exists($Poetivites{$poeme}{$interpol})) {
push(@newLine,${$Poetivites{$poeme}{$interpol}}[int(rand(scalar(@{$Poetivites{$poeme}{$interpol}})))]);
push(@newPoetivites,$interpol);
next;

}
if(exists($Poetivites{$poeme}{$interpol-1})) {
push(@newLine,${$Poetivites{$poeme}{$interpol-1}}[int(rand(scalar(@{$Poetivites{$poeme}{$interpol-1}})))]);
push(@newPoetivites,$interpol-1);
next;

}
if(exists($Poetivites{$poeme}{$interpol+1})) {
push(@newLine,${$Poetivites{$poeme}{$interpol+1}}[int(rand(scalar(@{$Poetivites{$poeme}{$interpol+1}})))]);
push(@newPoetivites,$interpol+1);
next;

}
my @poetivikeys = sort( {$a <=> $b} keys(%{$Poetivites{"recueil"}}));
my $avant = $poetivikeys[0];
my $apres = 0;
foreach my $poetivitest (@poetivikeys) {
next if($poetivitest == $avant);
if($poetivitest > $interpol) { $apres = $poetivitest;
last;
} $avant = $poetivitest;

}
if(($interpol - $avant) > ($apres - $interpol)) { push(@newLine,${$Poetivites{"recueil"}{$apres}}[int(rand(scalar(@{$Poetivites{"recueil"}{$apres}})))]);
push(@newPoetivites,$apres);
} else { push(@newLine,${$Poetivites{"recueil"}{$avant}}[int(rand(scalar(@{$Poetivites{"recueil"}{$avant}})))]);
push(@newPoetivites,$avant);
}
}
if(scalar(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}) > 0) { push(@newLine,shift(@{$SampledRecueil{$poeme}{$ligne}{"mots"}}));
push(@newPoetivites,shift(@{$SampledRecueil{$poeme}{$ligne}{"poetivites"}}));
} @{$SampledRecueil{$poeme}{$ligne}{"mots"}} = @newLine;
@finalLine = @newLine;
@{$SampledRecueil{$poeme}{$ligne}{"poetivites"}} = @newPoetivites;
@finalPoe = @newPoetivites;

}
foreach my $motfinal (@finalLine) { print fPOE $motfinal . " ";
} foreach my $poefinale (@finalPoe) { print fPTE $poefinale . " ";
} print fPOE "\n";
print fPTE "\n";

}
print "\n\npoedilation OK ! (voir " . $poeme . ".txt, " . $poeme . "_pte.txt pour le spectre)\n";
close fPOE;
close fPTE;

}

     print "\n\nSpectromie...\n\n";
open fREC, "<$recueilFile" or die "Impossible d'ouvrir le recueil !\n";
my $specFile;
if($recueilFile =~ m/^(\S+)\.\w+$/) { $specFile = $1;
} else { $specFile = $recueilFile;
} $specFile .= "_spec.txt";
open fSPEC, ">$specFile" or die "Impossible de créer le fichier log !\n";
my %Poetivites;
my %SampledRecueil;
&spectromie;
close fREC;
close fSPEC;
print "\n\nPoedilation...\n\n";
my @choix = sort( {$a <=> $b or $a cmp $b} keys(%SampledRecueil));
my $num_choix = 1;
foreach my $choice (@choix) { print "[" . sprintf("%2s",$num_choix) . "] " . $choice . "\n";
$num_choix++;
} my $zeChoix = "non";
while (!($zeChoix =~ m/^\d+$/ && $zeChoix >= 1 && $zeChoix <= scalar(@choix))) { print "\nentrer le numero du poeme choisi pour la poedilation :\n";
$zeChoix = <STDIN>;
} chomp($zeChoix);
$zeChoix--;
my $poeme_choisi = $choix[$zeChoix];
my $total_mots = 0;
foreach (keys(%{$SampledRecueil{$poeme_choisi}})) { $total_mots += scalar @{$SampledRecueil{$poeme_choisi}{$_}{"mots"}};
} print "\npoedilation de \"" . $poeme_choisi . "\" (" . $total_mots . " mots)...\n";
my $degreP = "non";
while (!($degreP =~ m/^\d+$/ && $degreP >= 1)) { print "\nEntrer le degre de poedilation :\n";
$degreP = <STDIN>;
} chomp($degreP);
&poedilation($poeme_choisi,$degreP);
open fPOE, ">poetivites.txt" or die;
foreach my $poetivite (sort( {$a <=> $b} keys(%{$Poetivites{"recueil"}}))) { print fPOE $poetivite . "\t";
foreach my $mot (@{$Poetivites{"recueil"}{$poetivite}}) { print fPOE $mot . "\t";
} print fPOE "\n";
} close fPOE;
exit(0);

 function copyAndPasteWithNoise($myImageSrc,$myImageDest,$dimImage,$strength) { 
$maxNoise = $dimImage[0]*$dimImage[1];
$noise = intval(rand(0.1*$maxNoise,$maxNoise));
for($i = 0 ;
$i < $noise ;
$i++) { $width = rand(1,$strength);
$height = rand(1,$strength);
$srcX = rand(0,$dimImage[0]-$strength);
$srcY = rand(0,$dimImage[1]-$strength);

$currColor = imagecolorat($myImageSrc,$srcX,$srcY);
if(isCloseColor($myImageSrc,$currColor,255,255,255,2)) continue;

$destX = rand($srcX - $strength,$srcX + $strength);
$destY = rand($srcY - $strength,$srcY + $strength);

$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];

if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;

$dxplusw = $destX + $width;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $height;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];

imagecopy($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$width,$height);
} } function copyAndPasteNormal($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = rand(intval($strength/2),intval($strength*5));
if($maxNoise == 0) $maxNoise = 1;
for($i = 0 ;
$i < $maxNoise ;
$i++) { $width = rand(5,intval($dimImage[0]/5));
$height = rand(5,intval($dimImage[1]/5));
$srcX = rand(0,$dimImage[0]-5);
$srcY = rand(0,$dimImage[1]-5);

$destWidth = $width;
$destHeight = $height;
$ratioX = $destWidth/$width;
$ratioY = $destHeight/$height;
$destX = rand($srcX - intval(5*$ratioX),$srcX + intval(5*$ratioX));
$destY = rand($srcY - intval(5*$ratioY),$srcY + intval(5*$ratioY));

$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];

if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;

$dxplusw = $destX + $destWidth;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $destHeight;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];

imagecopy($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$width,$height);
} } function copyAndPasteDeform($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = rand(intval($strength/2),intval($strength*5));
if($maxNoise == 0) $maxNoise = 1;
for($i = 0 ;
$i < $maxNoise ;
$i++) { $width = rand(5,intval($dimImage[0]/5));
$height = rand(5,intval($dimImage[1]/5));
$srcX = rand(0,$dimImage[0]-5);
$srcY = rand(0,$dimImage[1]-5);

$destWidth = rand($width,intval(2.5*$width));
$destHeight = rand($height,intval(2.5*$height));
$ratioX = $destWidth/$width;
$ratioY = $destHeight/$height;
$destX = rand($srcX - intval(5*$ratioX),$srcX + intval(5*$ratioX));
$destY = rand($srcY - intval(5*$ratioY),$srcY + intval(5*$ratioY));

$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];

if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;

$dxplusw = $destX + $destWidth;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $destHeight;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];

imagecopyresized($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$destWidth,$destHeight,$width,$height);
} } function check_extension($file,$extensions) { $extension = strrchr($file, '.');

return in_array($extension, $extensions);
}

 function isCloseColor($myImage,$myColor,$rref,$gref,$bref,$rmax) { 	$myRGBColor = array();
$myRGBColor = imagecolorsforindex($myImage,$myColor);
return (sqrt(pow($myRGBColor["red"]-$rref,2)+pow($myRGBColor["green"]-$gref,2)+pow($myRGBColor["blue"]-$bref,2)) < $rmax);
} function horizonoise($myImage,$dimImage,$strength) { $currColor = imagecolorat($myImage,0,0);
for($i = 0 ;
$i < $dimImage[1] ;
$i++) { for($j = 0 ;
$j < $dimImage[0] ;
$j++) {
if(rand(1,100) >= $strength) { $currColor = imagecolorat($myImage,$j,$i);
} else { imagesetpixel($myImage,$j,$i,$currColor);
}
} if($i != $dimImage[1] - 1) $currColor = imagecolorat($myImage,0,$i+1);
} } function vertinoise($myImage,$dimImage,$strength) { $currColor = imagecolorat($myImage,0,0);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,100) >= $strength) { $currColor = imagecolorat($myImage,$i,$j);
} else { imagesetpixel($myImage,$i,$j,$currColor);
} } if($i != $dimImage[0] - 1) $currColor = imagecolorat($myImage,$i+1,0);
} } function detoureAndPaste($myImage,$myImageOrigin,$dimImage) { $backColor = imagecolorat($myImageOrigin,1,1);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { $currColor = imagecolorat($myImageOrigin,$i,$j);
if($currColor != $backColor) { $aRGB = array();
$aRGB = imagecolorsforindex($myImageOrigin,$currColor);
imagesetpixel($myImage,$i,$j,imagecolorclosest($myImage,$aRGB["red"],$aRGB["green"],$aRGB["blue"]));
} } } } function licqefacnoise($myImage,$dimImage) { $currColor = imagecolorat($myImage,0,0);
for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,$dimImage[1]) >= intval($j*1.0)) { $currColor = imagecolorat($myImage,$i,$j);
} else { imagesetpixel($myImage,$i,$j,$currColor);
} } if($i != $dimImage[0] - 1) $currColor = imagecolorat($myImage,$i+1,0);
} } function linenoise($myImage,$dimImage,$strength,$freq) { $indexWhite = imagecolorexact($myImage,255,255,255);
if($indexWhite == -1) $indexWhite = imagecolorclosest($myImage,255,255,255);
$indexBlack = imagecolorexact($myImage,0,0,0);
if($indexBlack == -1) $indexBlack = imagecolorclosest($myImage,0,0,0);

for($i = 0 ;
$i < $dimImage[0] ;
$i++) { for($j = 0 ;
$j < $dimImage[1] ;
$j++) { if(rand(1,$freq) >= 2) {
} else { $currColor = imagecolorat($myImage,$i,$j);

if($currColor == $indexWhite) continue;

$nb_lignes = rand(1,$strength);
drawLignes($myImage,$dimImage,$currColor,$i,$j,$nb_lignes,$strength);
} } } }

 function copyAndPasteWithNoise($myImageSrc,$myImageDest,$dimImage,$strength) { 
$maxNoise = $dimImage[0]*$dimImage[1];
$noise = intval(rand(0.1*$maxNoise,$maxNoise));
for($i = 0 ;
$i < $noise ;
$i++) { $width = rand(1,$strength);
$height = rand(1,$strength);
$srcX = rand(0,$dimImage[0]-$strength);
$srcY = rand(0,$dimImage[1]-$strength);

$currColor = imagecolorat($myImageSrc,$srcX,$srcY);
if(isCloseColor($myImageSrc,$currColor,255,255,255,2)) continue;

$destX = rand($srcX - $strength,$srcX + $strength);
$destY = rand($srcY - $strength,$srcY + $strength);

$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];

if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;

$dxplusw = $destX + $width;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $height;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];

imagecopy($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$width,$height);
} } function copyAndPasteNormal($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = rand(intval($strength/2),intval($strength*5));
if($maxNoise == 0) $maxNoise = 1;
for($i = 0 ;
$i < $maxNoise ;
$i++) { $width = rand(5,intval($dimImage[0]/5));
$height = rand(5,intval($dimImage[1]/5));
$srcX = rand(0,$dimImage[0]-5);
$srcY = rand(0,$dimImage[1]-5);

$destWidth = $width;
$destHeight = $height;
$ratioX = $destWidth/$width;
$ratioY = $destHeight/$height;
$destX = rand($srcX - intval(5*$ratioX),$srcX + intval(5*$ratioX));
$destY = rand($srcY - intval(5*$ratioY),$srcY + intval(5*$ratioY));

$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];

if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;

$dxplusw = $destX + $destWidth;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $destHeight;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];

imagecopy($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$width,$height);
} } function copyAndPasteDeform($myImageSrc,$myImageDest,$dimImage,$strength) {
$maxNoise = rand(intval($strength/2),intval($strength*5));
if($maxNoise == 0) $maxNoise = 1;
for($i = 0 ;
$i < $maxNoise ;
$i++) { $width = rand(5,intval($dimImage[0]/5));
$height = rand(5,intval($dimImage[1]/5));
$srcX = rand(0,$dimImage[0]-5);
$srcY = rand(0,$dimImage[1]-5);

$destWidth = rand($width,intval(2.5*$width));
$destHeight = rand($height,intval(2.5*$height));
$ratioX = $destWidth/$width;
$ratioY = $destHeight/$height;
$destX = rand($srcX - intval(5*$ratioX),$srcX + intval(5*$ratioX));
$destY = rand($srcY - intval(5*$ratioY),$srcY + intval(5*$ratioY));

$xplusw = $srcX + $width;
if($xplusw >= $dimImage[0]) $width -= $xplusw - $dimImage[0];
$yplush = $srcY + $height;
if($yplush >= $dimImage[1]) $height -= $yplush - $dimImage[1];

if($destX < 0) $destX = 0;
if($destY < 0) $destY = 0;

$dxplusw = $destX + $destWidth;
if($dxplusw >= $dimImage[0]) $destX -= $dxplusw - $dimImage[0];
$dyplush = $destY + $destHeight;
if($dyplush >= $dimImage[1]) $destY -= $dyplush - $dimImage[1];

imagecopyresized($myImageDest,$myImageSrc,$destX,$destY,$srcX,$srcY,$destWidth,$destHeight,$width,$height);
} } function check_extension($file,$extensions) { $extension = strrchr($file, '.');

return in_array($extension, $extensions);
}

 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;

     print "\n\nSpectromie...\n\n";
open fREC, "<$recueilFile" or die "Impossible d'ouvrir le recueil !\n";
my $specFile;
if($recueilFile =~ m/^(\S+)\.\w+$/) { $specFile = $1;
} else { $specFile = $recueilFile;
} $specFile .= "_spec.txt";
open fSPEC, ">$specFile" or die "Impossible de créer le fichier log !\n";
my %Poetivites;
my %SampledRecueil;
&spectromie;
close fREC;
close fSPEC;
print "\n\nPoedilation...\n\n";
my @choix = sort( {$a <=> $b or $a cmp $b} keys(%SampledRecueil));
my $num_choix = 1;
foreach my $choice (@choix) { print "[" . sprintf("%2s",$num_choix) . "] " . $choice . "\n";
$num_choix++;
} my $zeChoix = "non";
while (!($zeChoix =~ m/^\d+$/ && $zeChoix >= 1 && $zeChoix <= scalar(@choix))) { print "\nentrer le numero du poeme choisi pour la poedilation :\n";
$zeChoix = <STDIN>;
} chomp($zeChoix);
$zeChoix--;
my $poeme_choisi = $choix[$zeChoix];
my $total_mots = 0;
foreach (keys(%{$SampledRecueil{$poeme_choisi}})) { $total_mots += scalar @{$SampledRecueil{$poeme_choisi}{$_}{"mots"}};
} print "\npoedilation de \"" . $poeme_choisi . "\" (" . $total_mots . " mots)...\n";
my $degreP = "non";
while (!($degreP =~ m/^\d+$/ && $degreP >= 1)) { print "\nEntrer le degre de poedilation :\n";
$degreP = <STDIN>;
} chomp($degreP);
&poedilation($poeme_choisi,$degreP);
open fPOE, ">poetivites.txt" or die;
foreach my $poetivite (sort( {$a <=> $b} keys(%{$Poetivites{"recueil"}}))) { print fPOE $poetivite . "\t";
foreach my $mot (@{$Poetivites{"recueil"}{$poetivite}}) { print fPOE $mot . "\t";
} print fPOE "\n";
} close fPOE;
exit(0);

  sub deuxiemePassage {  	my $ligne;
my $indLigne;
my $lastRatio;
my $compteur = 0;
my $poeme = undef;

while(<fREC>) {
chomp;
$ligne = $_;
my @Ligne = split(/\s+/,$ligne);

if($poeme) { &retournementPoetivites ($poeme);
}
$poeme = $1;

$compteur++;
print fLOG "\tPoeme " . $compteur . " : " . $poeme . "\n";
$indLigne = 0;
$lastRatio = undef;
next;
}
my $nbMotsLigne = scalar(@Ligne);

if($nbMotsLigne == 0) { next;
}
my $mot;

$indLigne++;

for(my $indMot = 1 ;
$indMot <= $nbMotsLigne ;
$indMot++) {
$mot = $Ligne[$indMot-1];

if(exists($Symboles{$mot})) { next;
} if(length($mot) == 1 && !exists($Symboles{$mot}) && !exists($Voyelles{$mot}) && !exists($Consonnes{$mot})) { next;
}
$mot = &nettoieMot($mot);


my $poetivite = 0;

$poetivite += max(values(%Mots)) / $Mots{$mot};

my $nbLettresMot = length($mot);
$poetivite *= abs($nbLettresMot - $Recueil{$poeme}{"longueur_mot_moyenne"});

$poetivite *= 1 + $indLigne / $Recueil{$poeme}{"nombre_lignes"};

$poetivite *= 1 + $indMot / $nbMotsLigne;

my @Mot = split(//,$mot);
my $nbVoyelles = 0;
my $nbConsonnes = 0;
my $nbSymboles = 1;
foreach my $lettre (@Mot) { if (exists $Voyelles{$lettre}) { $Voyelles{$lettre}++;
$nbVoyelles ++;
} else { if (exists $Consonnes{$lettre}) { $Consonnes{$lettre}++;
$nbConsonnes ++;
} else { if (exists $Symboles{$lettre}) { $Symboles{$lettre}++;
$nbSymboles ++;
} else { print "Lettre $lettre non identifiable dans $mot à la ligne $indLigne\n";
next;
} } } } if($mot =~ m/au/) {$nbVoyelles--;
}
my $ratio = $nbVoyelles / $nbLettresMot;

if($ratio == 0 || $ratio == 1) { $poetivite *= $nbLettresMot;
if($lastRatio) { if(($lastRatio - $ratio) == 0) { $poetivite *= $nbLettresMot * $nbLettresMot;
} } } else { if($ratio < (1/3)) { $poetivite *= 1/$ratio;
if($lastRatio) { if($ratio <= $lastRatio) { $poetivite *= $lastRatio / $ratio + 1;
} } } else { if($ratio > (2/3)) { $poetivite *= 1/(1-$ratio);
if($lastRatio) { if($ratio >= $lastRatio) { $poetivite *= $ratio / $lastRatio + 1;
} } } else {$poetivite *= 1;
} } } $lastRatio = $ratio;


if($mot =~ /'/) {$nbSymboles--;
} $poetivite *= 1 + $nbSymboles;

if (exists $Symboles{$Mot[0]}) { $poetivite *= 1 + $nbSymboles;
}
$poetivite = int($poetivite + 0.5);
push(@{$Recueil{$poeme}{"Mots"}{$mot}},$poetivite);

}
}
&retournementPoetivites($poeme);
}

 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);
} } } }

Je veux vous parler lorsque vous dormez.
Je veux vous parler lorsque vous conduisez.
Je veux vous parler lorsque vous baisez.
Je veux vous parler lorsque vous mangez.
Je veux vous parler lorsque vous ne pensez à rien.
Je veux vous parler lorsque vous regardez une série.
Je veux vous parler lorsque vous marchez.
Je veux vous parler lorsque vous vivez.

inVidé par saihtaM :: 03032013