Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 1999 Teil von Juni

SELFHTML Forumsarchiv
Probleme mit GD

Informationsseite
  1. Seite (PERL) Probleme mit GD von Chris Weber, 30. 06. 1999, 15:01
nach unten

Probleme mit GD

Die folgende Nachricht zum Thema stammt von: Chris Weber, 30. 06. 1999, 15:01

Hallo,

ich versuche mich gerade in GD einzuarbeiten und habe das kleine einleitende Beispiel abgeschrieben, das man in der Doku zu GD findet.  Hier der Quelltext:

use GD;

# create a new image
$im = new GD::Image(100,100);

# allocate some colors
$white = $im->colorAllocate(255,255,255);
$black = $im->colorAllocate(0,0,0);      
$red = $im->colorAllocate(255,0,0);      
$blue = $im->colorAllocate(0,0,255);

# make the background transparent and interlaced
$im->transparent($white);
$im->interlaced('true');

# Put a black frame around the picture
$im->rectangle(0,0,99,99,$black);

# Draw a blue oval
$im->arc(50,50,95,75,0,360,$blue);

# And fill it with red
$im->fill(50,50,$red);

# make sure we are writing to a binary stream
binmode STDOUT;

$gif_data = $im->gif;
open(OUT, ">test.gif");
print OUT $gif_data;
close(OUT);


Ich habe nur die letzten 4 Zeilen geändert so daß alles in eine Datei geschrieben und nicht auf der Kommandozeile ausgegeben wird.  So und jetzt zum Problem:  Die Datei "test.gif" kann von keinem Grafikprogramm geoeffnet werden !  Wenn ich das Bild in eine HTML-Seite einfüge wird es zwar angezeigt, jedoch verzerrt, d.h. mit vielen seltsagen roten Streifen drin.  Was soll das ?  Ich habe das ganze mit ActivePerl versucht und auch GD von ActiveState runtergeladen für den Fall das das relevant ist.

Danke
  Chris Weber

nach obennach unten

Probleme mit GD

Die folgende Nachricht zum Thema stammt von: Hansi, 30. 06. 1999, 17:51

Hallo auch,

Ich arbeite auch mit GD und lasse Images erstellen, die ich dann speichere. Auf diese Dateien referenziere ich dann mit einer URL. Im Vergleich zu meinem Skript fallen mir folgende Unterscheide auf.

»» binmode STDOUT;
Diese Zeile muß man löschen. Diese ist nur wichtig, wenn das Image direkt an den Browser geschickt werden soll.

»» $gif_data = $im->gif;
Dieses umkopieren ist nicht notwendig. Sollte aber nichts mit Deinem Problem zu tun haben.

»» print OUT $gif_data;
Bei mir sieht das So aus
print OUT $im->gif;

Ich denke, daß es nur was mit der Zeile binmode STDOUT zu tun hat.

Gruß Hansi

nach obennach unten

Probleme mit GD

Die folgende Nachricht zum Thema stammt von: Cheatah, 30. 06. 1999, 20:49

Hi,

»» »» binmode STDOUT;
»» Diese Zeile muß man löschen. Diese ist nur wichtig, wenn das Image direkt an den Browser geschickt werden soll.

sie schadet aber nicht. Wenn nach STDOUT nichts geschickt wird, naja, dann ist es doch egal, welcher Modus gerade vorliegt :-)

»» »» print OUT $gif_data;
»» Bei mir sieht das So aus
»» print OUT $im->gif;
»»
»» Ich denke, daß es nur was mit der Zeile binmode STDOUT zu tun hat.

Ich denke eher, daß ein
binmode OUT;
_vor_ der print-Zeile fehlt. Auf "archaischen" Systemen (bei Perl ist damit alles außer Linux gemeint *g*) ist dieser binmode wichtig, weil sonst alle Umbrüche umgewandelt werden.

Cheatah

nach obennach unten

Probleme mit GD

Die folgende Nachricht zum Thema stammt von: Chris Weber, 30. 06. 1999, 21:01

Hallo Cheatah,

»» Ich denke eher, daß ein
»» binmode OUT;
»» _vor_ der print-Zeile fehlt. Auf "archaischen" Systemen (bei Perl ist damit alles außer Linux gemeint *g*) ist dieser binmode wichtig, weil sonst alle Umbrüche umgewandelt werden.
»»
»» Cheatah

danke fuer den Tip.  Das mit binmode OUT; hat geklappt und das tolle mit rot gefüllte Oval glotzt mich jetzt auch an *g*.


Danke noch mal
  Chris Weber

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 1999 Teil von Juni

© 1998-2006 Seite Impressum, Software: Classic Forum