# Grafik kann nicht angezeigt werden da sie Fehler enthält



## rollerueckwaerts (7. Mai 2009)

Hallo, bei den Versuch nen dynamischen Statusbalken mit php und 2 PNG's zu schreiben scheiter ich an der Fehlermeldung aus der headline.

Die Grafik wird nicht angezeigt und ich weiß nicht warum. Die Pfade stimmen alle definitiv.

Der Code ( verkürzt )'


```
$action = $_GET["action"];
if ($action=="image")  {	

$im_0 = ImageCreateFromPNG("components/com_virtuemart/themes/ilvm_theme/templates/browse/image1.png");

header('Content-type: image/png');
imagepng($im_0); 
			
			} 		
				?>

<img src="<? echo $PHP_SELF;?>index.php?option=com_virtuemart&Itemid=69&action=image"> 		
				</div>
				<!--product details -->  
				<div class="ssmed_product_details_start">
					<div class="ssmed_product_details">
						<a href="<?php echo $product_flypage ?>">
							<?php echo $product_details ?>
						</a>
					</div>
				</div>
				<!--Customer Review -->
				<div class="ssmed_customer_review">
					<?php echo $product_rating ?>
				</div>
```

Was  mache ich falsch ? Habe bereits fleißig gegooglelt aber keine Lösung gefunden.
Könnte mir vorstellen das es davon kommt das nicht auf der gleichen Seite mit Content-Type image/png noch html qusgeben darf... aber wie das Problem lösen ?
Hoffe auf nen guten Tipp 


Lg
Tobi


----------



## Chumper (7. Mai 2009)

Das Problem liegt, wie du schon sagest, darin, dass du dem Header sagst, dass er ein Png Bild darstellen soll, du aber dann Htmlcode ausgibst. Das Problem kannst du lösen, indem du das Bild intern speicherst und dann ganz normal in den htmltag einbindest.


----------



## kuddeldaddeldu (7. Mai 2009)

Hi Tobi,



rollerueckwaerts hat gesagt.:


> Könnte mir vorstellen das es davon kommt das nicht auf der gleichen Seite mit Content-Type image/png noch html qusgeben darf...



richtig. Lager die Bilderstellung (an der ich in der Form allerdings nichts dynamisches sehe) in ein eigenes Script aus und referenzier halt das im src-Attribut des Image-Tags. Alternativ gäbe es zu if auch else. 

LG


----------



## rollerueckwaerts (7. Mai 2009)

Danke für den Rat. Habe das ganze jetzt ausgelagert.
Ergebnis ist leider immernoch kein Bild 

Anstatt der vorige Code steht jetzt nur noch

```
<img src="components/com_virtuemart/themes/ilvm_theme/templates/browse/statusbar.php">
```



Die statusbar.php :

```
$im_100 = ImageCreateFromPNG("components/com_virtuemart/themes/ilvm_theme/templates/browse/image.png"); 
$im_0 = ImageCreateFromPNG("components/com_virtuemart/themes/ilvm_theme/templates/browse/image1.png");
$zahl_aktuell = 1;
$zahl_erreicht = 4000;

		//Die koordinaten des ersten (prozent) Balken
$balken1_obenlinks_x = 95;
$balken1_obenlinks_y = 29;
$balken1_untenrechts_x = 428;
$balken1_untenrechts_y = 42;

$groesse_prozentzahl_px = 9;
$datum_start = "1/1/2009"; // TT/MM/JJJJ


//Koordinaten von dem Raum, in dem die absolute verbleibende Anzahl rein soll
$anzahl_bis_erreichen_pos_ol_x = 57;
$anzahl_bis_erreichen_pos_ol_y = 6;
$anzahl_bis_erreichen_pos_ur_x = 111;
$anzahl_bis_erreichen_pos_ur_y = 24;

//Koordinaten der Aktuellen-Stand-Zeile
$stand_pos_x = 0;
$stand_pos_y = 89;

header('Content-type: image/png');
imagepng($im_0); 
//$stand = "Stand: ".$zahl_aktuell."";
die();
```

Jetz sieht man auch schon was ich noch vorhab. Ist aber noch nicht fertig  Also es wird noch dynamisch. 

Nur warum wird das Bild immernoch nicht angezeigt ?
Gehe ich direkt auf die statusbar.php kommt wider der Fehler, das Bild sei fehlerhaft


----------



## kuddeldaddeldu (7. Mai 2009)

Hi,



rollerueckwaerts hat gesagt.:


> Gehe ich direkt auf die statusbar.php kommt wider der Fehler, das Bild sei fehlerhaft



Lass mal probehalber den Header weg. Steht da vielleicht eine Fehlermeldung mit in der Ausgabe? Alternativ kannst Du es mal mit der Debug-Methode versuchen, wie in der Doku zu [phpf]imagecreatefrompng[/phpf] vorgeschlagen.

LG


----------



## rollerueckwaerts (7. Mai 2009)

Super Danke !! Hab es jetz mit deiner Hilfe hinbekommen das das PNG angezeigt wird.

Das seltsame ist, das Bild wird nur angezeigt wenn ich die Zeile

```
$im_0 = ImageCreateFromPNG('logo_athletic_cup_farbig.png');
```
auskommentiere. Sobald ein zweites ImageCreate dazukommt, erscheint wieder der Fehler das das Bild fehlerhaft ist.

Das Problem. Mit dem Script möcht ich in der Vollendung gerne nen Statusbalken aus 2 png's ( 0 %, 100% ) anzeigen lassen und mit php die bilder so schneiden lassen das es so aussieht als wäre es ein Statusbalken. 

Wie krieg ich das denn hin ohne ein zweites ImageCreate einzusetzen ?

Nochmal super Danke für den Supi Support bisher. 
Voll klasse !!


----------



## kuddeldaddeldu (7. Mai 2009)

Hi,



rollerueckwaerts hat gesagt.:


> Das seltsame ist, das Bild wird nur angezeigt wenn ich die Zeile
> 
> ```
> $im_0 = ImageCreateFromPNG('logo_athletic_cup_farbig.png');
> ...



dann musst Du halt debuggen.



kuddeldaddeldu hat gesagt.:


> Lass mal probehalber den Header weg. Steht da vielleicht eine Fehlermeldung mit in der Ausgabe? Alternativ kannst Du es mal mit der Debug-Methode versuchen, wie in der Doku zu [phpf]imagecreatefrompng[/phpf] vorgeschlagen.



Aus der Ferne kann Dir niemand sagen, was da schief läuft.

LG


----------

