如果您在somefile.php
上生成图像,当用户试图直接访问该url时,浏览器输出将是图像,除非它们未指定包含图像本身的id /名称的变量。
要在html上使用图像,我只是做<img src='somefile.php?f=FILENAME' />
,使其更具可读性(只要您有相关的图像名称)。
确保通过重定向或显示默认图像来处理对somefile.php
的非指定访问。
关于标题,这是告诉浏览器它将处理什么类型的文件,所以请确保您指定它们总是。例如:
#somefile.php
header('content-type: image/jpeg');
$watermark = imagecreatefrompng('watermark.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$image = imagecreatefromjpeg($_GET['src']); //Path to the image file
$size = getimagesize($_GET['src']);
$dest_x = $size[0] - $watermark_width - 5;
$dest_y = $size[1] - $watermark_height - 5;
imagecopymerge($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
所以输出与HTML页面上此代码的图像,你会做以下几点:
<img src='somefile.php?src=filePath' />
注: 如果你不想JPG只是将其更改为PNG。
有关GD + PHP的更多文档可用here。
好的,所以我在PHP文件中指定头文件生成图像,然后输出图像,然后我可以从img标签调用php脚本,它会工作?此外,图像的文件名奇怪地是一个实现细节。所有的文件名都是guid,其中一些不应该被访问,所以默默无闻:) – 2010-01-06 03:59:31
你应该考虑将这些图像名称存储在数据库中,当你调用'somefile.php'时,使$ _GET变量数据库中该特定图像的索引。 – johnnyArt 2010-01-06 05:53:43
数据库中有图像元数据,但图像本身存储在磁盘上 – 2010-01-06 23:11:31