English 中文(简体)
输出原始图像流而不是jpeg, 实时图像调整大小
原标题:Outputting raw image stream rather than jpeg, on-the-fly image resizing

我有一个 PHP 函数, 用于对缩略图创建进行实时图像调整大小 。

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

我的代码使用一个叫做缩略图的函数 :

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

我试过把:

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

然而,这只是希望整页是一张图像。 我完全不知道从这里往何处走, 工作了一段时间。 我宁可不要将图像保存到磁盘上, 尽管看起来有必要这样做 。

问题回答

你也一样

Do it the normal way

这意味着您指向 one url, 服务于 one 图像的内容 :

<img src="myimage.php">

myimage.php 是一个看起来像 :

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

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

Output the image inline

使用>data uris 将内容输出为 < a href="http://php.net/manual/en/work.base64-encode.php" rel=“noreferr'> base64 编码字符串

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

使用小图象,这一技术最为合适。

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

Being normal is easier

关于问题中的这一说法:

然而,这只期望整页是一幅图像

s right - 如果您按您想要的正常方式在您的php 脚本上指向图像标记的 src 属性, 服务器 only a image - 即与您用浏览器指向图像文件一样的响应 。

除非你有很好的理由 做事情的方式不同 - "正常"的方式是一个好开始的地方。

您可以将 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");

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

image.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
?>

myWebpage.html

<img src="image.php" />




相关问题
CSS working only in Firefox

I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....

image changed but appears the same in browser

I m writing a php script to crop an image. The script overwrites the old image with the new one, but when I reload the page (which is supposed to pickup the new image) I still see the old one. ...

Firefox background image horizontal centering oddity

I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签