5

我有一个 PHP 函数可以即时调整图像大小以创建缩略图。

我遇到了麻烦,因为它只是显示原始图像流而不是实际图像。

我的代码使用了一个名为 thumbnail 的函数:

$thumbnail = thumbnail($item['filename'], 209, 137);
imagejpeg($thumbnail);

我试过投入:

header("Content-type: image/jpeg");

但是,这只是期望整个页面是图像。我完全不知道从这里去哪里,已经工作了一段时间。我宁愿不将图像保存到磁盘,尽管看起来这可能是必要的。

4

3 回答 3

14

你要么

正常方式进行

这意味着您指向一个url,并提供一张图片的内容:

<img src="myimage.php">

并且myimage.php是一个看起来像这样的脚本:

header('Content-type: image/jpeg');
imagejpeg($thumbnail);
die;

这种技术的优点是......正常的做事方式。

或者

内联输出图像

使用data uris将内容输出为base64 编码的字符串

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot">

这种技术最适合小图像。

它的优点是所有图像都在主要的 http 请求中 - (可能相当大的)缺点是使页面更难编辑/构建,并可能否定浏览器缓存的好处(除非 html 页面本身被缓存)。

正常更容易

关于问题中的这个陈述:

但是,这只是希望整页是图像

没错-如果您以正常方式执行此操作,则希望src使用图像标记的属性指向您的php 脚本,并且提供图像-即,与您使用浏览器指向图像文件的响应完全相同。

除非你有充分的理由以不同的方式做事——“正常”的方式是一个很好的起点。

于 2012-05-22T20:25:10.520 回答
2

您可以将 html img 标签指向 php 文件。

<img src='thumbnail.php?file=<?php echo $item['filename']; ?>' />

然后在您的 php 文件上显示图像并更改标题,因为它所做的只是显示图像。

$thumbnail = thumbnail($_GET['filename'], 209, 137);
imagejpeg($thumbnail);

header("Content-type: image/jpeg");
于 2012-05-22T20:23:45.483 回答
0

您需要像在 HTML 中插入普通图像一样插入图像,并在单独的 PHP 文件中创建图像:

图像.php

<?php
$img = imagecreate(100,100); //Create an image 100px x 100px
imagecolorallocate($img, 255,0,0); //Fill the image red
header('Content-type: image/jpeg'); //Set the content type to image/jpg
imagejpeg($img); //Output the iamge
imagedestroy($img); //Destroy the image
?>

我的网页.html

<img src="image.php" />
于 2012-05-22T20:26:16.203 回答