problem mit gd und imagepng

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • problem mit gd und imagepng

    Hallo

    Ich habe folgendes Problem:
    Ich lasse ein Bild mit imagepng ausgeben. Im Header is auch der Richtige Content-type drinnen.
    Aber wenn ich mit Rechtsklick "Bild speichern Unter" klicke bietet er mir nur BMP an.
    Bei Rechtsklick Eigenschaften steht bei Größe (bytes) Unbekannt!

    Ich hab es extra nochmal mit einem kleinen Testbild probiert, dort wird es korrekt als PNG erzeugt!

    Das einzige was anders im Bild ist, ist dass ich Sessions verwende und auch Datenbankabrufe verewende sowie ein include mache.

    Ich schätze mal das Problem liegt da!

    Das Bild wird wie gesagt korrekt erzeugt, nur ist es halt eben ein Großen unkomprimiertes BMP statt ein PNG.

    Hat jemand eine Idee?

    MFG
    BY Tschebel!

  • #2
    Re: problem mit gd und imagepng

    hilft http://www.wintotal.de/Tipps/Eintrag...ID=412&URBID=3 weiter?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      nope

      alle anderen bilder und auch das andere test gd bild werden korrekt abgespeichert

      wobei aber zu sagen wenn ich noch nen filename dazu eingabe klappt es

      aber das ist für meine zwecke ein bisschen aufwendig wenn ich jedesmal wenns aufgerufen wird ein bild aufn webspace abspeicher

      wenns keine anderen möglichkeit gibt werde ich es so machen müssen, aber lieber wär mir wenn ich es weiterhin einfach mit
      <img src="show_way_pic.php"> anzeigen könnte

      Comment


      • #4
        dann prüfe doch bitte mal mit http://www.schroepl.net/cgi-bin/http_trace.pl o.ä., ob und in wie fern sich die response-header unterscheiden, wenn du ein mal ein wirklich physisch existentes PNG von deinem webspace abrufen lässt, und einmal ein "per script" erzeugtes.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment


        • #5
          ok beim echten image is er image/png
          beim vom script erzeugten ist es text/html

          das wundert mich jetzt was weil das bild schon korrekt angezeigt wird, halt nur als gmp

          ich poste mal den code des scripts:

          PHP Code:

          include("../../inc/db.inc.php");
          dbconnect();
            
          session_start();
            
          $weg $_SESSION["key"];
            
          session_unregister("key");
            
          $anz count($weg);
            
          $x=Array();
            
          $y=Array();
            for(
          $i=0;$i<$anz;$i++)
            {
              
          array_push($x,get_mysql_value("SELECT x FROM system WHERE name='".$weg[$i]."'"));
              
          array_push($y,get_mysql_value("SELECT y FROM system WHERE name='".$weg[$i]."'"));
              if(
          $i<$anz-1)
              {
                
          $where_clause=$where_clause." name='".$weg[$i]."' OR";
              }
              else
              {
                
          $where_clause=$where_clause." name='".$weg[$i]."'";
              }
            }
            
          $coord get_mysql_row("SELECT MAX(x) as maxx, MAX(y) as maxy, MIN(x) as minx, MIN(y) as miny
            FROM system WHERE"
          .$where_clause);
            if(
          $coord[minx]<100$minx=0;
            else 
          $minx=$coord[minx]-100;
            if(
          $coord[miny]<100$miny=0;
            else 
          $miny=$coord[miny]-100;
            if(
          $coord[maxy]>1672$maxy=1772;
            else 
          $maxy=$coord[maxy]+100;
            if(
          $coord[maxx]>1400$maxx=1500;
            else 
          $maxx=$coord[maxx]+100;
            
          dbclose();
            
            
          header("Content-type:image/png");
            
          $image imagecreate($maxx-$minx,$maxy-$miny);
            
          $black imagecolorallocate($image,0,0,0);
            
          $red imagecolorallocate($image,255,0,0);
            
          $karte imagecreatefromgif("cache.gif");
            
          imagecopy($image$karte,0,0,$minx,$miny,$maxx-$minx,$maxy-$miny);
            
          imagedestroy($karte);
            for(
          $i=0;$i<count($x)-1;$i++)
            {
              
          $j $i+1;
              
          $x_1 $x[$i]-$minx;
              
          $y_1 $y[$i]-$miny;
              
          $x_2 $x[$j]-$minx;
              
          $y_2 $y[$j]-$miny;
              
          imageline($image,$x_1,$y_1,$x_2,$y_2,$red);
              
          imageline($image,$x_1+1,$y_1+1,$x_2+1,$y_2+1,$red);
              
          imageline($image,$x_1-1,$y_1-1,$x_2-1,$y_2-1,$red);
            }
            
          imagepng($image); 

          Comment

          Working...
          X