webForumDet fria alternativet

Problem att visa bild

11 svar · 303 visningar · startad av lillebror

lillebrorMedlem sedan apr. 20041 597 inlägg
#1

Hej,

Jag har ett litet skrip som applicerar ett tidsvärde på en bild jag har på min hemsida samt gör texten anti-aliased. När jag använder mig enbart av php-kod i filen fungerar det bra men när jag lägger in html före och efter får jag bara skräpkod plus ett felmeddelande. Någon som vet vad detta beror på?

Warning: Cannot modify header information - headers already sent by (output started at sökväg/imagetext.php:4) in /sökväg/imagetext.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at sökväg/imagetext.php:4) in sökväg/imagetext.php on line 6

<HTML>
<HEAD><TITLE>Exempel 6 - Selektion</TITLE></HEAD>
<BODY bgcolor=#FFFFFF>
<?php 
header("Content-type: image/jpeg"); 
header("Content-Disposition: inline; filename=skiss01.jpg");

$im = imagecreatefromjpeg('skiss01.jpg'); 
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);

$string = "00:39 UTC";

imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string); 
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);

imagejpeg($im, '', 90); 
imagedestroy($im); 
?> 
</BODY></HTML>
tronezMedlem sedan juli 2001728 inlägg
#2

du får inte ha några tecken utskrivna innan du skickar headern

lillebrorMedlem sedan apr. 20041 597 inlägg
#3

Hur menar du? :)

tronezMedlem sedan juli 2001728 inlägg
#4

Mja, du får alltså inte skicka något tecken innan du skickar headern, om du har minsta mellenslag i koden så kommer du få det felet. Men nu är det ju för att du har html kod i början av dokumentet.

Du kan prova med att sätta ob_start(); innan du skriver ut html koden, samt sätta ob_end_flush(); när i slutet av koden.

Nån mer lite kunnig kanske har nåt mer råd.

/r:lite förtydligande kanske.... mellanslag få du givetvis ha, men det första som måste skickas är alltså headern och innan det får inget tecken förekomma

lillebrorMedlem sedan apr. 20041 597 inlägg
#5

Denna kod har jag prövat...

<?php
header("Content-type: image/jpeg"); 
header("Content-Disposition: inline; filename=skiss01.jpg");
?>

<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY bgcolor=#FFFFFF>

<?php
$im = imagecreatefromjpeg('skiss01.jpg'); 
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);

$string = "00:39 UTC";

imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string); 
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);

imagejpeg($im, '', 90); 
imagedestroy($im); 
?> 

</BODY></HTML>

Felmeddelandena jag skrev innan har försvunnit...Nu kommer detta upp...

ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90 ÿÛC.....
tronezMedlem sedan juli 2001728 inlägg
#6

prova detta:

<?php

ob_start();

?>
<HTML>
<HEAD><TITLE>Test</TITLE></HEAD>
<BODY bgcolor=#FFFFFF>

<?php

header("Content-type: image/jpeg"); 
header("Content-Disposition: inline; filename=skiss01.jpg");

$im = imagecreatefromjpeg('skiss01.jpg'); 
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);

$string = "00:39 UTC";

imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string); 
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);

imagejpeg($im, '', 90); 
imagedestroy($im); 
?> 

</BODY></HTML>
<?php

ob_end_flush();

?>
dectgapMedlem sedan sep. 20021 655 inlägg
#7

Om du ska skicka en bild hör inte HTML-taggarna hemma där.

<?php

header("Content-type: image/jpeg"); 
header("Content-Disposition: inline; filename=skiss01.jpg");

$im = imagecreatefromjpeg('skiss01.jpg'); 
$white = imagecolorallocatealpha($im, 255, 255, 255, 75);
$black = imagecolorallocate($im, 0, 0, 0);

$string = "00:39 UTC";

imagettftext($im, 20, 0, 560, 60, $white, "arialbi.ttf", $string); 
//imagestring ($im, 5, 10, imagesy($im)-20, $string, $black);

imagejpeg($im, '', 90); 
imagedestroy($im); 

?>
lillebrorMedlem sedan apr. 20041 597 inlägg
#8

Jag har precis börjat med PHP och jag kanske har missat någon vital del i hur just PHP och denna funktion är uppbyggd?! :)

Vad vill jag åstadkomma? Jo, jag vill stämpla en tid som finns i $string-variabeln på skiss01.jpg. Denna bild som blir resultatet vill jag sedan ha placerad högst upp på min sida eftersom den ska utgöra själv headern! Någon idé då? :)

lillebrorMedlem sedan apr. 20041 597 inlägg
#9

Jag vill enbart exekvera koden inom PHP-taggarna så att det hamnar på en vanlig HTML-sida högst upp? Hur åstadkommer man det?

tronezMedlem sedan juli 2001728 inlägg
#10

<img src="bild.php" /> borde funka

lillebrorMedlem sedan apr. 20041 597 inlägg
#11

Prövade med att klippa in denna del av det tidigare skriptet:

<img src="<?php imagejpeg($im, '', 90); ?>" />

Men det fungerade visst inget vidare...Prövade även den metod du skrev. Det jag vill är att få den omgjorda bilden att bli inklistrad på en vanlig HTML-sida. Jag kan inte förstå att detta ska vara så knepigt! :OO

lillebrorMedlem sedan apr. 20041 597 inlägg
#12

Jag förstod inte riktigt vad du menade först. Men sedan slog det mig hur det måste vara. imagetext.php som filen heter som skapar bilden anropas från exempelvis filen index.php.

Denna kod löste problemet:

<HTML>
<HEAD><TITLE>Logo</TITLE></HEAD>
<link rel="stylesheet" href="flygfyren.css" type="text/css" />
<BODY bgcolor=#FFFFFF>

<img src="imagetext.php" alt="Logo" /> 

</BODY></HTML>

:) :)

Tack för hjälpen!!!

140 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)