Strona 1 z 1

Pakiet convert centerowanie napisu w obrazku

: 14 kwie 2023, 12:15
autor: PawelG
Mam taki skrypt, który z pliku csv (plik logu łączności radioamatorów) tworzy plik jpg z tekstem z pliku csv
Skrypt działa ładnie. Ma tylko jeden defekt. Tekst jest po lewej stronie obrazka. Pytanie jak wycentrować tekst w obrazku.

Kod: Zaznacz cały

#!/usr/bin/perl -w
use Data::Dumper;
use strict;
use warnings;

use Text::CSV;
my $csv = Text::CSV->new({ sep_char => ',' });
 
my $file = $ARGV[0] or die "Need to get CSV file on the command line\n";
 
my $wyp_mal = '          ';
my $wyp_duz = '                    ';
open(my $data, '<:encoding(utf8)', $file) or die "Could not open '$file' $!\n";
while (my $line = <$data>) {
    chomp $line;
    if ($csv->parse($line)) {
    my @fields = $csv->fields();
    my $nazwa = $fields[4];
    $nazwa =~ tr#/#_#;


system "convert qsl2.png  -font Arial -pointsize 20 -gravity southwest -fill navyblue -stroke none  -annotate 0 ' To radio: $fields[3]\n Date: $fields[0] $fields[1] GMT\n Band: $fields[5] MHz \n Mode: $fields[4]\n Sent: $fields[6]/Rcvd: $fields[7]\n Tnx: for QSO $fields[4]!!!\n Plis card QSL via Biuro PZK OT20' qsl_ok/$fields[3].jpg";
  } else {
        warn "Line could not be parsed: $line\n";
         }
}
Uruchamianie

Kod: Zaznacz cały

./qsl.pl test.csv
Efekt końcowy:
Obrazek
sp5smy@linux.pl
email: sp5smy@linux.pl

Re: Pakiet convert centerowanie napisu w obrazku

: 15 kwie 2023, 21:43
autor: 320

Kod: Zaznacz cały

-gravity southwest
Spróbuj zamienić po gravity z southwest na south.

Dokumentacja Imagemagick
https://www.imagemagick.org/Usage/annotating/