Steff: GD Bild einfügen

Hi!

kann jetzt endlich mit dem modul GD rumspielen und schon hänge ich wieder fest :-(
ich möchte ein bild als hintergrund haben, dazu benutze ich folgenden code:

#!/usr/bin/perl  
  
use strict;  
use GD;  
  
print "Content-type: image/jpeg\n\n";  
  
my $grafik = new GD::Image(574, 150);  
  
open (bild, "../privat/bg_c_test.jpg");  
my $rein = newFromJpeg GD::Image(\*bild);  
close (bild);  
  
$grafik->setTile($rein);  
  
binmode STDOUT;  
  
print $grafik->jpeg(100);

der pfad stimmt zu 100% jedoch wird nicht das bild angezeigt sondern nur schwarz. warum? was mach ich falsch?

  1. hi,

    der pfad stimmt zu 100% jedoch wird nicht das bild angezeigt sondern nur schwarz. warum? was mach ich falsch?

    Na, Du musst Dich schon entscheiden, ob Du das Bild im Dateisystem haben willst oder im Browser. Sofern Dein Pfad stimmt, sollte das Bild im Dateisystem so aussehen wie Du es erwartest. Wenn Du es im Browser sehen willst: entweder aus dem FS einlesen oder gleich aus dem Script heraus auf STDOUT schicken.

    Content-Type... # ok
    binmode STDOUT; # auch ok

    hier entweder Bild aus FS lesen oder aus Script erzeugen

    close STDOUT;

    Hotti

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. Hi hotti! danke.

      Tut mir leid ich verstehe es nicht, was meinst du mit FS? was muss ich machen?

      1. FS = file system = Dateisystem

  2. der pfad stimmt zu 100% jedoch wird nicht das bild angezeigt sondern nur schwarz. warum? was mach ich falsch?

    Warum prüfst du nicht einfach nach? So wie dein Skript jetzt ist, kannst du unmöglich eine Fehleranalyse machen. Du solltest den Header erst senden, wenn du 100% sicher bist, dass du ein Bild ausgibst (was in deinem Skript nie passiert) und prüfen ob die Funktionen erfolgreich waren (das ist eine übliche Methoden um Fehlerquelllen zu finden), wenn nicht, dann eine Fehlermeldung ausgeben mit dem entsprechenden Header.

    Struppi.

    1. Hi Struppi! danke.

      ich kann das nicht nachprüfen weil ich mich mit den methoden von dem modul GD nicht richtig auskenne und finde auch keine gute anleitung, auch perldoc hilft mir nicht richtig.
      wieso gebe ich in meinem script kein bild aus? ich mache es genauso wie hier http://www.infos24.de/perle/handbuch/23_gd_modul.htm#8 und da klappt es doch auch?

      ich hab absolut keine ahnung wo das problem ist :-(

      1. ich hab absolut keine ahnung wo das problem ist :-(

        use warnings or die;

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Hi Beat! danke.

          use warnings habe ich generell an warum es zum zeitpunkt beim kopieren hier rein nicht drin war weiss ich nicht. jedenfalls bekomme ich keine fehlermeldung auch nicht wenn ich die fehlermeldungen in eine datei umleite. wenn ich use warnings or die; benutze bekomme ich einen error 500.

        2. ich hab absolut keine ahnung wo das problem ist :-(

          use warnings or die;

          Das hilft ihm wenig wenn er ein Bild augibt:
          print "Content-type: image/jpeg\n\n";

          Struppi.

          1. ich hab absolut keine ahnung wo das problem ist :-(
            use warnings or die;
            Das hilft ihm wenig wenn er ein Bild augibt:
            print "Content-type: image/jpeg\n\n";

            Ich weiss. Aber EVA misshandelt man nicht schadlos.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
      2. ich kann das nicht nachprüfen weil ich mich mit den methoden von dem modul GD nicht richtig auskenne und finde auch keine gute anleitung, auch perldoc hilft mir nicht richtig.

        wieso kannst du das nicht nachprüfen? Du kannst z.b mit open ... or die "...." nachprüfen, ob die Datei wirklich  geöffnet werden konnte. Genauso kannst du überprüfen ob die GD Funktionen ordnungsgemäß aufgerufen wurden. Du musst nur dafür sorgen, dass dir die Meldungen auch angezeigt werden. So wie du das Skript jetzt hast geht das gar nicht, da du immer einen Bildheader ausgibst, auch bei einem Fehler.

        wieso gebe ich in meinem script kein bild aus? ich mache es genauso wie hier http://www.infos24.de/perle/handbuch/23_gd_modul.htm#8 und da klappt es doch auch?

        Nicht ganz, ich kenn mich aber mit dem Modul auch nicht aus, da ich - wie ich schon mal ewrwähnte - convert verwende das eine wesntlich bessere Qualität hat.

        ich hab absolut keine ahnung wo das problem ist :-(

        Wir auch nicht, deshalb musst du dafür sorgen, dass du auch etwas siehst, wenn es Probleme im Skript gibt.

        Struppi.