Kryptische Zeichen statt JPG! imagejpeg() funtzt net...

methodus

Erfahrenes Mitglied
Kann mal jemand nachsehen was hier falsch ist? wenn ich versuche das script zu testen kommen nur kryptische zeichen aber kein bild

PHP:
<?php
  $text = "testtext";
  $size = 12;
  $image = "button_01.jpg";
  $font = "comicbd.ttf";
  $im_size = getimagesize($image);
  $button = imagecreatefromjpeg($image);
  $textcords = imagettfbbox($size,0,$font,$text);
  $hoehe = abs($textcords[4] - $textcords[0]);
  $breite = abs($textcords[5] - $textcords[1]);
  $textcolor = imagecolorallocate($button,255,255,255);
  $abstand_x = round($im_size[1] / 2) - round($hoehe / 2);
  $abstand_y = round($im_size[0] / 2) - round($breite / 2);
  imagettftext($button, $size, 0, $abstand_x, $abstand_y, $textcolor, $font, $text);
  header("Content-type: image/jpeg");
  imagejpeg($button);

?>

die bilbiotheken stimmen alle und es kommt nur eine fehlermeldung:

Warning: Cannot add header information - headers already sent by (output started at e:\foxserv\www\admin\test.php:6) in e:\foxserv\www\admin\test.php on line 20

linie 20 ist header("...");
 
Danke erstmal, klappt genauso wenig...ich hab jetzt mal versucht den krempel als ne andere .php-Datei zu speichern und dann in einer html-seite als Bildsource anzugeben ( <img src="test.php"></img> ) da hats geklappt, seltsamer weiße. Ich wollte aber diese PHP bereits in eine exisitierende seite einbinden und da sich der dateiname der php jedesmal ändert ist die lösung mit <img> auch unnütz

also bis jetzt schauts so aus:

<html>
<head>
<title>php testdatei</title>
</head>
<body bgcolor="#FFFFFF">
<?php

$text = "testtext";
$size = 12;
$image = "button_01.jpg";
$font = "comicbd.ttf";
$im_size = getimagesize($image);
$button = imagecreatefromjpeg($image);
$textcords = imagettfbbox($size,0,$font,$text);
$hoehe = abs($textcords[4] - $textcords[0]);
$breite = abs($textcords[5] - $textcords[1]);
$textcolor = imagecolorallocate($button,255,255,255);
$abstand_x = round($im_size[1] / 2) - round($hoehe / 2);
$abstand_y = round($im_size[0] / 2) - round($breite / 2);
imagettftext($button, $size, 0, $abstand_x, $abstand_y, $textcolor, $font, $text);
if ($button) {
imagejpeg($button);
}
?>
</body>
</html>

Alles wass er ausspuckt ist der kryptische text und nen header kann ich auch net reinnehmen da mir sonst das script wieder an die gurgel springt und schreit, dass der bereits gesendet wurde.

ok, aber das härteste problem is jetzt auch noch dass die funktion imagettftext nichts ausgibt, weder fehlermeldung noch text, die .ttf datei ist im selben ordner wie die php-datei also da kanns keine probleme geben, die anderen parameter stimmen auch, so weit ich das gesehen habe, aber wo liegt dan der fehler?
 
<?php
header("Content-Type: image/jpeg");
?>
<html>
<head>
<title>php testdatei</title>
</head>
<body bgcolor="#FFFFFF">
<?php
...
?>

ich habs jetzt so stehen, da kommt der selbe müll (aber diesmal ohne fehlermeldung ;-) ), geändert hat sich nichts.... :( das kann doch net so schwer sein... meine ganzen bücher hab ich auch schon durch und da stehts genauso drin....nich mal nen header war benötigt

*seufz*
 
-

Also den Header brauchst du auf jeden Fall. Versuch ihn einfach über allen Output zu setzen. Ansonsten gib mal den genauen Pfad zu deiner TTF Datei an. So wie jetzt dürfte es damit nicht funktionieren.
 
der header steht da und die kryptischen zeichen immer noch, wo soll ich denn diesen verdammten header hinknallen wenn nicht schon in zeile 1 im editor! und das mit der ttf-file is nen ganz anderes problem, da ich so oder so kryptische zeichen erhalte, egal ob ich nun imagecreate mit oder ohne texte mache, kann mir nicht jemand mal nen script geben das funktioniert und das man in html einbetten kann ohne extra php-files machen zu müssen... :mad:
 
-

PHP:
header("Content-type: image/png");
$hoehe = 17;
$breite = 250;
$text = "Teststring";
$image = imagecreate( $breite, $hoehe );
$weiss = imagecolorallocate( $image, 255,255,255);
$black = imagecolorallocate( $image, 0,0,0);
$fontsize = 14;
$font = "/is/htdocs/*****/URL/test/ARIAL.TTF";

imagettftext( $image, $fontsize, 0, 1, 13 , $black, $font, $text);
imagecolortransparent( $image, $weiss );
imagepng($image);
 
Ich lasses jetzt, dass was mir Caminus geschickt hat, funktioniert in html eingebettet genauso wenig wie das andere, schöne viele kryptische zeichen, aber funktionieren tut nichts. An der PHP-Version kanns net liegen, da ich die selbe habe wie fast alle anderen und am browser genauso wenig, der IE6 dürfte doch wohl wissen was ein jpg oder ein png ist und seltsamer weiße funktioniert das bescheuerte script wen ich das ohne html einbinde, sobald irgendwo mal ein <BR> oder ein <BODY> auftaucht is das script fehler haft und bereit in die tonne getreten zu werden. wenn es dennoch jemand geben sollte der ein script hat das bereits in html drin ist und funktioniert (das komplette teil (MIT HTML), nich bloß den php-kram, von dem ich hab so schon genug), ich bekomms echt nicht gebacken!
 
kontrollier mal die 6. zeile in deinem script..

Warning: Cannot add header information - headers already sent by (output started at e:\foxserv\www\admin\test.php:6) in e:\foxserv\www\admin\test.php on line 20
 
Zurück