Hajo Schuetz: dyn.Line erzeugen

Hi NG,

ich moechte ueber ein Script eine gestrichelte line erzeugen, die dann innerhalb einer Tabellenzelle auf meiner Seite positioniert werden soll.
Das Script hier:
<?
$line = ImageCreate(250,250);
$weiss = ImageColorAllocate($line,255,255,255);
$blau = ImageColorAllocate($line,0,0,255);
imagedashedline($line,1,80,249,80,$blau);
header("Content-type: image/jpeg");
ImageJPEG($line);
Imagedestroy($line);
?>

Nun zum Problem:
rufe ich das Script als eigene Datei auf, wird es ausgefuehrt.
Versuche ich es aber ueber einen include-befehl in einer Tabelle einzubinden, bekomme ich ein Warning.
->
Warning: Cannot add header information - headers already sent by (output started at C:\wwwP\tests\tabline.php:8) in C:\wwwP\tests\linie.php on line 6

Kommentiere ich die header-Informationen in dem Script, s.o., aus wird mir dieser Hinweis angezeigt.
->ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ....

Die php_gd_dll habe ich in der PHP.ini als extension angegeben und sie liegt auch in dem mit 'extension_dir=' angegebenen Pfad.

Ich moechte diese gestrichelte Linie als horizontale Trennung innerhalb des Contentbereiches verwenden. Deshalb die Integration in einer Tabelle.
Danke fuer alle hilfreichen Hinweise.
Gruss Hajo

  1. Hallo,

    Kommentiere ich die header-Informationen in dem Script, s.o., aus wird mir dieser Hinweis angezeigt.
    ->ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ....

    Das sind die Bilddaten (roh.)

    Die php_gd_dll habe ich in der PHP.ini als extension angegeben und sie liegt auch in dem mit 'extension_dir=' angegebenen Pfad.

    Das passt ja anscheinend auch. (sonst würdest Du nie ein Bild sehen)

    Ich moechte diese gestrichelte Linie als horizontale Trennung innerhalb des Contentbereiches verwenden. Deshalb die Integration in einer Tabelle.

    Du machst den falschen Ansatz. Statt dass Du die Datei, die das Bild ausgibt, includest, musst Du folgendes ausgeben:

    <img src="/pfad/zur/php/datei/die/das/bild/ausgibt" alt="-------" width="soundsoviel" height="soundsoviel" />

    Du kannst ja schließlich nicht die Bilddaten direkt in HTML einbinden. [1]

    Grüße,

    Christian

    [1] Ja, ich habe den Feature-Artikel über Inline-Images gelesen, aber ich schätze mal, ihre Seiten sollen auch im IE laufen.

    1. [1] Ja, ich habe den Feature-Artikel über Inline-Images gelesen, aber ich schätze mal, ihre Seiten sollen auch im IE laufen.

      Hallo,
      welchen Artikel meinst Du?

      1. Hallo,

        welchen Artikel meinst Du?

        Zu faul zum Suchen, was? ;)

        http://aktuell.de.selfhtml.org/artikel/grafik/inline-images/index.htm

        Grüße,

        Christian

    2. Hallo Christian,

      <img src="/pfad/zur/php/datei/die/das/bild/ausgibt" alt="-------" width="soundsoviel" height="soundsoviel" />

      daran habe ich garnicht gedacht, mache das auch zum ersten mal.
      Vielen Dank fuer den Tipp.
      Gruss Hajo

  2. Moin!

    Nun zum Problem:
    rufe ich das Script als eigene Datei auf, wird es ausgefuehrt.
    Versuche ich es aber ueber einen include-befehl in einer Tabelle einzubinden, bekomme ich ein Warning.

    Du machst einen Denkfehler. Dein PHP-Skript mit der Linie ist wie ein Bild zu behandeln. Tatsächlich kommt es nämlich wie ein Bild beim Browser an. Entsprechend mußt du es wie ein Bild in der Tabelle einbinden.

    Es scheint mir für diesen Zweck allerdings sinnvoller, wenn du einfach statisch ein GIF oder PNG-Bild auf dem Server speicherst und damit arbeitest - das erzeugt weniger Serverlast. Und GIF bzw. PNG ist für scharfe Liniendarstellung wesentlich besser geeignet und erzeugt mit Sicherheit auch kleinere Bilder, als JPG in diesem Fall.

    - Sven Rautenberg

    1. Hallo Sven,

      Es scheint mir für diesen Zweck allerdings sinnvoller, wenn du einfach statisch ein GIF oder PNG-Bild auf dem Server speicherst und damit arbeitest - das erzeugt weniger Serverlast. Und GIF bzw. PNG ist für scharfe Liniendarstellung wesentlich besser geeignet und erzeugt mit Sicherheit auch kleinere Bilder, als JPG in diesem Fall.

      danke auch dir fuer den Hinweis, werde ich ausprobieren.
      Gruss Hajo