0

我有一张可以显示折线的图像。我可以完美地显示图像,但是当我应用到不使用标题的网站时(“Content-type:image/png”);我有问题。

我可以在网站上显示用 PHP 编辑的图像而不仅仅是图像吗?

这是我的代码

<?php
$img = imagecreatefromjpeg('1967_NL_MAJENEresize.jpg'); //you can change image name

$white = imagecolorallocate($img, 255, 255, 255);
$red = imagecolorallocate($img, 255, 0, 0);
imagesetthickness($img, 4);

imagefill($img, 0, 0, $white);

imageline($img, 100, 80, 210, 380, $white); //x1, y1, x2, y2
imageline($img, 200, 80, 210, 380, $white); 
imageline($img, 200, 80, 310, 580, $white); 
imagefilledrectangle ($img, (100-5), (80-5), 100+10, 80+10, $red);
imagefilledrectangle ($img, (210-5), (380-5), 210+10, 380+10, $red);
imagefilledrectangle ($img, (200-5), (80-5), 200+10, 80+10, $red);
imagefilledrectangle ($img, (310-5), (580-5), 310+10, 580+10, $red);
header("Content-type: image/png");
imagepng($img);

imagedestroy($img);
?>
4

1 回答 1

0

您不应在现有内容中包含图像生成代码,而应使用专用脚本使用正确的标题创建图像。

使用<img>标签从您的内容链接到图像

生成-image.php:

<?php
$imagefile = preg_replace('/[^A-Za-z0-9_\-]/', '_', $_GET['filename']);
$img = imagecreatefromjpeg($imgfile); //you can change image name

$white = imagecolorallocate($img, 255, 255, 255);
$red = imagecolorallocate($img, 255, 0, 0);
imagesetthickness($img, 4);

imagefill($img, 0, 0, $white);

imageline($img, 100, 80, 210, 380, $white); //x1, y1, x2, y2
imageline($img, 200, 80, 210, 380, $white); 
imageline($img, 200, 80, 310, 580, $white); 
imagefilledrectangle ($img, (100-5), (80-5), 100+10, 80+10, $red);
imagefilledrectangle ($img, (210-5), (380-5), 210+10, 380+10, $red);
imagefilledrectangle ($img, (200-5), (80-5), 200+10, 80+10, $red);
imagefilledrectangle ($img, (310-5), (580-5), 310+10, 580+10, $red);
header("Content-type: image/png");
imagepng($img);

imagedestroy($img);
?>

索引.php:

Blah Blah
<img src='generate-image.php?filename=<?= $db->row['thumbnail']; ?>'>;
blah blah
于 2013-05-02T08:21:41.560 回答