Leser: 20
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
#!/usr/bin/perl -w use strict; no strict 'refs'; use warnings; use Fcntl qw(:DEFAULT :flock); my @data; use String::Random; for (my $z = 100; $z <= 400; $z += 50) { my $begriff = String::Random::random_string ( '10101022',[ split //, uc 'aei' ],[ split //, uc 'bdfghklmnprstwxz' ],[ split //, '23456789' ]); print "Begriff: >$begriff<\n"; push @{$data[0]},$begriff; push @{$data[1]},$z; } eval "use GD::Graph::pie; 1;"; my $grafikmodul = ''; die 'kein Font' if !-f 'fonts/angelina.ttf'; # Projekt my $mygraph = GD::Graph::pie -> new (300,300); # Größe des Images $mygraph = set_label_font ('fonts/angelina.ttf',12); $mygraph -> set ( 'title' => 'Browserverteilung', # Überschrift '3d' => 1, # 3D Darstellung 0=nein; 1=ja 'textclr' => '#4E8DB3', # Farbe für 'title' 'axislabelclr' => '#4E8DB3', # Farbe für die Beschriftung in @{$data[0]} 'accentclr' => '#000000', # Randfarbe für Kuchen ) or $grafikmodul = $mygraph -> error; my $grafik = $mygraph -> plot (\@data) -> png or $grafikmodul = $mygraph -> error; # /Projekt sysopen (my $fh,"test.png",O_WRONLY|O_TRUNC|O_CREAT) or die $!; binmode $fh; print $fh $grafik; close $fh;
1
2
3
4
5
6
7
8
9
C:\Arbeit>perl testkuchen.pl
Begriff: >SIPEMA64<
Begriff: >HAWEZA26<
Begriff: >ZEGIME87<
Begriff: >MIRETA65<
Begriff: >ZEKELI88<
Begriff: >XIXENA55<
Begriff: >LIMEZA74<
Undefined subroutine &main::set_label_font called at testkuchen.pl line 20.
QuoteSchau Dir das nochmal ganz genau an... Tipp: set_label_font ist eine Objektmethode...Code (perl): (dl )$mygraph = set_label_font ('fonts/angelina.ttf',12);
2010-02-09T11:03:30 biancaGenau so hab ich es gemacht.
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
#!/usr/bin/perl -w use strict; no strict 'refs'; use warnings; use Fcntl qw(:DEFAULT :flock); my @data; use String::Random; for (my $z = 100; $z <= 400; $z += 50) { my $begriff = String::Random::random_string ( '10101022',[ split //, uc 'aei' ],[ split //, uc 'bdfghklmnprstwxz' ],[ split //, '23456789' ]); # print "Begriff: >$begriff<\n"; push @{$data[0]},$begriff; push @{$data[1]},$z; } eval "use GD::Graph::pie; 1;"; my $grafikmodul = ''; die 'kein Font' if !-f 'fonts/tahomabd.ttf'; # Projekt my $mygraph = GD::Graph::pie -> new (300,300); # Größe des Images $mygraph -> set ( 'title' => 'Browserverteilung', # Überschrift '3d' => 1, # 3D Darstellung 0=nein; 1=ja 'textclr' => '#4E8DB3', # Farbe für 'title' 'axislabelclr' => '#4E8DB3', # Farbe für die Beschriftung in @{$data[0]} 'accentclr' => '#000000', # Randfarbe für Kuchen ) or $grafikmodul = $mygraph -> error; $mygraph->set_title_font("fonts/tahomabd.ttf",30); $mygraph->set_value_font("fonts/tahomabd.ttf",30); $mygraph->set_label_font("fonts/tahomabd.ttf",30); my $grafik = $mygraph -> plot (\@data) -> png or $grafikmodul = $mygraph -> error; # /Projekt sysopen (my $fh,"test.png",O_WRONLY|O_TRUNC|O_CREAT) or die $!; binmode $fh; print $fh $grafik; close $fh;
2010-02-09T11:13:28 biancaWo hab ich jetzt -> und = falsch gemacht?
2010-02-09T11:14:57 reneeNaja, wenn Du uns geänderten Code vorenthältst... Schau Dir den Code aus Deiner ersten Antwort an, den ich dann auch zitiert habe...
2010-02-09T11:03:30 biancaHmmm, Objekt? Irgendwie kann ich damit nichts anfangen.
2010-02-09T11:03:30 biancaD.h.?? Wo liegt Dein Skript, wo liegt die Schrift?Liegt das vielleicht an meiner ttf Datei? Muss die spezielle Anforderungen erfüllen?
Hatte jetzt mal eine aus dem Windows Fonts Ordner einfach rüber kopiert.
2010-02-09T11:18:05 renee2010-02-09T11:03:30 biancaD.h.?? Wo liegt Dein Skript, wo liegt die Schrift?Liegt das vielleicht an meiner ttf Datei? Muss die spezielle Anforderungen erfüllen?
Hatte jetzt mal eine aus dem Windows Fonts Ordner einfach rüber kopiert.
$mygraph = set_label_font ('fonts/angelina.ttf',12);
2010-02-09T11:00:02 GwenDragonVorher hast du mit dem Handle $mygraph auf die Methoden von GD::Graph zugegriffen. Warum muss das sein? Weißt du es? ;)
2010-02-09T11:15:15 GwenDragonNa komm. Das musste doch sehen.
1
2
libgd was not built with FreeType font support
...propagated at testkuchen.pl line 32.
2010-02-09T13:13:01 GwenDragonDa ist wohl eine etwas ältere LibGD //EDIT: (Grafik-Systembibliothek für Linux). Oder wirklich ohne Freetype-Unterstützung kompiliert, kann ich mir aber nicht vorstellen, warum das.
Und die wird meistens durch den Serverbetreiber installiert.
2010-02-09T13:13:01 GwenDragonDa ist wohl eine etwas ältere LibGD
QuoteGD is an open source code library for the dynamic creation of images by programmers. [...]
GD is written in C and various binding are available. [...]
Downloads
QuoteWhere can I get a compiled DLL of gd for Windows?
A compiled DLL of gd with all features enabled is now available from the gd home page.
QuoteMeint Ihr wirklich, ich soll mir das alte Zeugs jetzt drauf knallen?
2010-02-09T15:45:05 pqmeinst du mit dem 27.1. etwa das änderungsdatum der datei?
ausschlaggebend ist die version. das änderungsdatum der datei ist im zweifel eben nur das datum, wann die datei auf deinem system erstellt wurde.
2010-02-09T16:57:56 pqich frag mich ehrlich gesagt sowieso, ob die GD.dll im perl-ordner wirklich die libGD sein soll
2010-02-09T16:57:56 pq[...]aber ich würd erstmal gucken, was in der aktuellen zip-datei so drin ist[...]
2010-02-09T16:57:56 pqbzw. was in der doku steht
2010-02-09T16:57:56 pqvermutlich ist die dll der libGD ganz woanders zu finden.
QuoteFor Windows
Use the DLL version! See the paragraph at the beginning of this section. If you really want to compile it yourself [...]
QuoteWin32 DLL users: if you are using MSVC, use the provided batch file makemsvcimport.bat to make a bgd.lib import library corresponding to the provided bgd.dll. Copy bgd.dll to your application directory, or to your Windows sytem directory. In the settings of your MSVC project, you MUST choose the "multithreaded DLL" library option under "code generation." mingw32 and cygwin users can simply link with the provided libbgd.a stub library in order to use the DLL.
2010-02-09T16:57:56 pqRichtig. Die GD.dll sollte nur das Binding sein.ich frag mich ehrlich gesagt sowieso, ob die GD.dll im perl-ordner wirklich die libGD sein soll. das ist doch eigentlich nur das binding. die libGD selbst hat ja erstmal nix mit perl zu tun.
2010-02-09T16:57:56 pqich kenn mich da mit windows nicht aus, aber ich würd erstmal gucken, was in der aktuellen zip-datei so drin ist bzw. was in der doku steht. vermutlich ist die dll der libGD ganz woanders zu finden.
2010-02-09T17:21:29 reneeEine Suche sollte da helfen ;-)
2010-02-09T16:45:12 murphyWas hindert Dich eigentlich daran, von der installierten DLL eine Sicherungskopie zu machen oder sie einfach umzubenennen und testweise die heruntergeladene Version zu installieren?
2010-02-09T12:49:49 pqhier klappt das ansonsten jedenfalls wunderbar.
2010-02-09T16:56:59 biancaWürdest Du oder ein anderer mir zum Test eine bei Dir/Euch funktionierende TrueType Schriftart bei einem Filesharer hochladen?
Dann kann ich mal testen, ob es daran liegt.
2010-02-10T09:06:56 GwenDragonLade dir mal DejaVu herunter und teste es damit.
2010-02-10T16:10:01 GwenDragonGibt es einen bestimmten Grund, dass du Tahoma nehmen musst?
1
2
libgd was not built with FreeType font support
...propagated at testkuchen.pl line 32.