Thread [Image::Magick] Rahmen um Text (12 answers)
Opened by GUIfreund at 2013-10-13 19:01

GUIfreund
 2013-10-14 19:51
#171154 #171154
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
Hab's jetzt fast fertig. Fehlt nur noch die Zeilenhöhe. Die muss ich mit Query(Multiline)FontMetrics holen. Hier der aktuelle Zustand meines Tests:
more (9.4kb):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use strict;
use warnings;
use feature 'say';
use Image::Magick;

my $err;

# Objekt für Bilder erzeugen
my $img = Image::Magick->new();

 # Bildgröße setzen
$err = $img->Set(size=>'300x200');
die "$err" if "$err";

 # Bild mit Farbe erzeugen
$err = $img->ReadImage("xc:orange");
die "$err" if "$err";

#my $text = "aaaaaaaaa";
my $text = "aaaaaaaaa\nbbbb\nccccccccccc\nllll";
    $err = $img->Annotate(text => $text,
                    x => 40, y => 120,
                    pointsize => 20,
#                   undercolor=>'white',
                    undercolor=>'green',
                    );
die "$err" if "$err";

$img->Trim();

my $w = $img->Get('width');   # ok
say "width: $w";

$err = $img->Draw(primitive=>'line', points=>'0,0 0,99',
    strokewidth => 3, 
    stroke=>'blue',
);
die "$err" if "$err";

$err = $img->Draw(primitive=>'line', points=>"$w,0 $w,99", 
    strokewidth => 3, 
    stroke=>'blue',
);
die "$err" if "$err";

$err = $img->Write("farbiges_rechteck.gif");
warn "$err" if "$err";

'hight' kann ich nicht mit Get() holen (liefert "undef"), und 'pointsize' liefert 0 (ist eh unbrauchbar, da kleiner als die Zeilenhöhe). Die Breite wollte (und bekomme) ich möglichst exakt, damit nicht unnötig was vom Foto wegfällt.

Edit: Anmerkung: Als ich deine Antwort las, war wieder der riesige Positionsbalken dabei. Scheint gar nicht so selten zu sein.
Last edited: 2013-10-14 19:55:04 +0200 (CEST)
Gruß
GUIfreund

View full thread [Image::Magick] Rahmen um Text