correction
This commit is contained in:
parent
87b2b9f9e6
commit
a13f18f867
153
perl/antipixel/MyWrapper.pm
Normal file → Executable file
153
perl/antipixel/MyWrapper.pm
Normal file → Executable file
@ -1,3 +1,5 @@
|
|||||||
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
package MyWrapper;
|
package MyWrapper;
|
||||||
use GD;
|
use GD;
|
||||||
use strict;
|
use strict;
|
||||||
@ -8,67 +10,80 @@ use MooX::Options;
|
|||||||
|
|
||||||
has qw[couleurs is ro builder _build_colors];
|
has qw[couleurs is ro builder _build_colors];
|
||||||
|
|
||||||
option distance_entre_mots => ( is => 'rw',
|
option distance_entre_mots => ( is => 'rw'
|
||||||
doc => 'distance en pixels de chaque mot du message',
|
, doc => 'distance en pixels de chaque mot du message'
|
||||||
short => 'dem',
|
, short => 'dem'
|
||||||
format => 'i', default => sub { 5 }
|
, format => 'i', default => 5
|
||||||
);
|
);
|
||||||
option extends => ( is => 'rw',
|
|
||||||
doc => 'si la taille du message est importante, on peut agrandir le cadre à volonté',
|
option etendu => (is => 'rw'
|
||||||
short => 'ext'
|
, doc => 'si la taille du message est importante, on peut agrandir le cadre à volonté'
|
||||||
);
|
, short => 'ext'
|
||||||
option progress_bar => ( is => 'rw',
|
);
|
||||||
doc => 'si vous souhaitez utiliser le script pour gérer une barre de progression, il faut indiquer un pourcentage',
|
|
||||||
format => 'i', short => 'pb'
|
option progress_bar => ( is => 'rw'
|
||||||
);
|
, doc => 'si vous souhaitez utiliser le script pour gérer une barre de progression, il faut indiquer un pourcentage'
|
||||||
option debug => ( is => 'rw',
|
, format => 'i', short => 'pb'
|
||||||
doc => 'si vous souhaitez utiliser le script pour gérer une barre de progression',
|
);
|
||||||
short => 'd'
|
|
||||||
);
|
option debug => ( is => 'rw'
|
||||||
option couleurs_dispo => ( is => 'rw',
|
, doc => 'si vous souhaitez utiliser le script pour gérer une barre de progression'
|
||||||
doc => 'affiche les couleurs disponibles',
|
, short => 'd'
|
||||||
short => 'cd'
|
);
|
||||||
);
|
|
||||||
option output => ( is => 'rw',
|
option couleurs_dispo => ( is => 'rw'
|
||||||
doc => 'fichier généré : fichier image (ex: image.png)',
|
, doc => 'affiche les couleurs disponibles'
|
||||||
short => 'o',
|
, short => 'cd'
|
||||||
format => 's', default => sub { 'image.png' }
|
);
|
||||||
);
|
|
||||||
option message => ( is => 'rw',
|
option output => ( is => 'rw'
|
||||||
doc => 'message',
|
, doc => 'fichier généré : fichier image (ex: image.png)'
|
||||||
short => 'm',
|
, short => 'o'
|
||||||
format => 's', default => sub { 'message à afficher' }
|
, format => 's', default => 'image.png'
|
||||||
);
|
);
|
||||||
option couleur_externe => ( is => 'rw',
|
|
||||||
doc => 'couleur externe',
|
option message => ( is => 'rw'
|
||||||
short => 'ce',
|
, doc => 'message'
|
||||||
format => 's', default => sub { 'bleu' }
|
, short => 'm'
|
||||||
);
|
, format => 's', default => 'message à afficher'
|
||||||
option couleur_contour => ( is => 'rw',
|
);
|
||||||
doc => 'couleur contour',
|
|
||||||
short => 'cc',
|
option couleur_externe => ( is => 'rw'
|
||||||
format => 's', default => sub { 'noir' }
|
, doc => 'couleur externe'
|
||||||
);
|
, short => 'ce'
|
||||||
option couleur_interne => ( is => 'rw',
|
, format => 's', default => 'bleu'
|
||||||
doc => 'couleur interne',
|
);
|
||||||
short => 'ci',
|
|
||||||
format => 's', default => sub { 'rouge' }
|
option couleur_contour => ( is => 'rw'
|
||||||
);
|
, doc => 'couleur contour'
|
||||||
option couleur_background => ( is => 'rw' ,
|
, short => 'cc'
|
||||||
doc => 'couleur du fond (écriture)',
|
, format => 's', default => 'noir'
|
||||||
short => 'cb',
|
);
|
||||||
format => 's', default => sub { 'noir' }
|
|
||||||
);
|
option couleur_interne => ( is => 'rw'
|
||||||
option taille_x => ( is => 'rw',
|
, doc => 'couleur interne'
|
||||||
doc => 'taille X', format => 'i',
|
, short => 'ci'
|
||||||
short => 'x',
|
, format => 's', default => 'rouge'
|
||||||
default => sub { 150 }
|
);
|
||||||
);
|
|
||||||
option taille_y => ( is => 'rw',
|
option couleur_background => ( is => 'rw'
|
||||||
doc => 'taille Y', format => 'i',
|
, doc => 'couleur du fond (écriture)'
|
||||||
short => 'y',
|
, short => 'cb'
|
||||||
default => sub { 30 }
|
, format => 's', default => sub { 'noir' }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
option taille_x => ( is => 'rw'
|
||||||
|
, doc => 'taille X', format => 'i'
|
||||||
|
, short => 'x'
|
||||||
|
, default => sub { 150 }
|
||||||
|
);
|
||||||
|
|
||||||
|
option taille_y => ( is => 'rw'
|
||||||
|
, doc => 'taille Y', format => 'i'
|
||||||
|
, short => 'y'
|
||||||
|
, default => sub { 30 }
|
||||||
|
);
|
||||||
|
|
||||||
sub _build_colors {
|
sub _build_colors {
|
||||||
{
|
{
|
||||||
bleu => [0, 0, 255],
|
bleu => [0, 0, 255],
|
||||||
@ -84,6 +99,7 @@ sub _build_colors {
|
|||||||
blanc => [255, 255, 255]
|
blanc => [255, 255, 255]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub afficher_couleurs {
|
sub afficher_couleurs {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
my %couleurs = %{$self->couleurs};
|
my %couleurs = %{$self->couleurs};
|
||||||
@ -93,10 +109,11 @@ sub afficher_couleurs {
|
|||||||
say "La couleur $key est : " . join(', ' , @$value);
|
say "La couleur $key est : " . join(', ' , @$value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub afficher_valeurs_actuelles {
|
sub afficher_valeurs_actuelles {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
say "Message : " . $self->message;
|
say "Message : " . $self->message;
|
||||||
say "Peut être étendu" if $self->extends;
|
say "Peut être étendu" if $self->etendu;
|
||||||
say "Output file : " . $self->output;
|
say "Output file : " . $self->output;
|
||||||
say "Distance entre mots : " . $self->distance_entre_mots;
|
say "Distance entre mots : " . $self->distance_entre_mots;
|
||||||
say "couleur_interne : " . $self->couleur_interne;
|
say "couleur_interne : " . $self->couleur_interne;
|
||||||
@ -107,19 +124,22 @@ sub afficher_valeurs_actuelles {
|
|||||||
say "taille_y : " . $self->taille_y;
|
say "taille_y : " . $self->taille_y;
|
||||||
say "taille_x calculée: " . $self->calcul_taille_x;
|
say "taille_x calculée: " . $self->calcul_taille_x;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub calcul_taille_x {
|
sub calcul_taille_x {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
my $taille_x = $self->taille_x;
|
my $taille_x = $self->taille_x;
|
||||||
my @mots = split / /, $self->message;
|
my @mots = split / /, $self->message;
|
||||||
if( $self->extends ) {
|
if( $self->etendu ) {
|
||||||
$taille_x += 3 * length $_ for( @mots ) ;
|
$taille_x += 3 * length $_ for( @mots ) ;
|
||||||
}
|
}
|
||||||
return $taille_x;
|
return $taille_x;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub calcul_taille_y {
|
sub calcul_taille_y {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
return $self->taille_y;
|
return $self->taille_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub enregistrement_image {
|
sub enregistrement_image {
|
||||||
my ($self, $im) = @_;
|
my ($self, $im) = @_;
|
||||||
# We record the image file
|
# We record the image file
|
||||||
@ -128,6 +148,7 @@ sub enregistrement_image {
|
|||||||
print DISPLAY $im->png;
|
print DISPLAY $im->png;
|
||||||
close DISPLAY;
|
close DISPLAY;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub allocation_des_couleurs {
|
sub allocation_des_couleurs {
|
||||||
my ($self, $im) = @_;
|
my ($self, $im) = @_;
|
||||||
|
|
||||||
@ -141,18 +162,21 @@ sub allocation_des_couleurs {
|
|||||||
}
|
}
|
||||||
return %couleurs_allouees ;
|
return %couleurs_allouees ;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub options_sortie_image {
|
sub options_sortie_image {
|
||||||
my ($self, $im) = @_;
|
my ($self, $im) = @_;
|
||||||
# make the background transparent and interlaced
|
# make the background transparent and interlaced
|
||||||
#$im->transparent($couleurs_allouees{'blanc'});
|
#$im->transparent($couleurs_allouees{'blanc'});
|
||||||
$im->interlaced('true');
|
$im->interlaced('true');
|
||||||
}
|
}
|
||||||
|
|
||||||
sub do_progress_bar{
|
sub do_progress_bar{
|
||||||
my ($self, $im, $couleurs_allouees, $x, $y) = @_;
|
my ($self, $im, $couleurs_allouees, $x, $y) = @_;
|
||||||
my $taille_progress_bar = $self->progress_bar * ($x - 1) / 100;
|
my $taille_progress_bar = $self->progress_bar * ($x - 1) / 100;
|
||||||
my %couleurs_allouees = %$couleurs_allouees;
|
my %couleurs_allouees = %$couleurs_allouees;
|
||||||
$im->filledRectangle(2, 2, $taille_progress_bar, $y -3, $couleurs_allouees{$self->couleur_interne});
|
$im->filledRectangle(2, 2, $taille_progress_bar, $y -3, $couleurs_allouees{$self->couleur_interne});
|
||||||
}
|
}
|
||||||
|
|
||||||
sub do_antipixel_button {
|
sub do_antipixel_button {
|
||||||
my ($self, $im, $couleurs_allouees, $mots, $x, $y) = @_;
|
my ($self, $im, $couleurs_allouees, $mots, $x, $y) = @_;
|
||||||
my %couleurs_allouees = %$couleurs_allouees;
|
my %couleurs_allouees = %$couleurs_allouees;
|
||||||
@ -164,6 +188,7 @@ sub do_antipixel_button {
|
|||||||
$current_position += length($i) * 6 + 15;
|
$current_position += length($i) * 6 + 15;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub do_img {
|
sub do_img {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
my @mots = split / /, $self->message;
|
my @mots = split / /, $self->message;
|
||||||
@ -185,12 +210,14 @@ sub do_img {
|
|||||||
|
|
||||||
$self->enregistrement_image( $im );
|
$self->enregistrement_image( $im );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub mode_debug {
|
sub mode_debug {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
say "ENTER DEBUG MODE";
|
say "ENTER DEBUG MODE";
|
||||||
$self->afficher_valeurs_actuelles unless $self->couleurs_dispo;
|
$self->afficher_valeurs_actuelles unless $self->couleurs_dispo;
|
||||||
$self->afficher_couleurs if $self->couleurs_dispo;
|
$self->afficher_couleurs if $self->couleurs_dispo;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my ($self) = @_;
|
my ($self) = @_;
|
||||||
$self->mode_debug if $self->debug;
|
$self->mode_debug if $self->debug;
|
||||||
|
@ -3,6 +3,5 @@ use strict;
|
|||||||
use warnings;
|
use warnings;
|
||||||
use MyWrapper;
|
use MyWrapper;
|
||||||
my $wrapper = MyWrapper->new_with_options();
|
my $wrapper = MyWrapper->new_with_options();
|
||||||
#$wrapper->tests();
|
#$wrapper->afficher_valeurs_actuelles;
|
||||||
$wrapper->run();
|
$wrapper->run();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user