php动态创建不同图像大小版本的好主意?
最近,我听说可以通过php的php动态创建不同图像大小版本的好主意?,php,image-processing,header,Php,Image Processing,Header,最近,我听说可以通过php的标题(“Content-Type:image/jpeg”)动态获取上传图像的不同版本 因此,不是: <img src="files/myimage-thumb.jpg"> <img src="files/myimage-midsized.jpg"> <img src="files/myimage-original.jpg"> 你可以做: <img src="script/getimage.php?v=thumb">
标题(“Content-Type:image/jpeg”)动态获取上传图像的不同版本代码>
因此,不是:
<img src="files/myimage-thumb.jpg">
<img src="files/myimage-midsized.jpg">
<img src="files/myimage-original.jpg">
你可以做:
<img src="script/getimage.php?v=thumb">
<img src="script/getimage.php?v=midsized">
<img src="script/getimage.php?v=original">
然后脚本运行并通过头('Content-Type:image/jpeg')代码>它返回在服务器(客户端?)上生成的映像。。暂时
这是个好主意吗?
我有点怀疑,因为我可以想象它需要更多的时间和性能 我会创建一个新图像并存储在缓存文件夹中,然后下次如果该图像已经存在,我会检索或创建它
大概是这样的:
function resize_image($filename, $width, $height)
{
if (!file_exists($filename) || !is_file($filename))
{
return false;
}
$info = pathinfo($filename);
$extension = $info['extension'];
$new_image = 'cache/' . utf8_substr($filename, 0, strrpos($filename, '.')) . '-' . $width . 'x' . $height . '.' . $extension;
if (file_exists($new_image))
{
return $new_image;
}
return new_iamge($filename, $width, $height);
}
不会。为每个请求动态创建这些图像可能是个坏主意,因为生成它们需要更长的时间。最好的选择是调整图像大小并将调整大小的图像保存在Web服务器上。这样一来,图像只需调整一次大小,它们就成为“常规”图像。我假设您可以动态创建图像一次,保存它们,然后在以下请求中使用保存的版本,但除非您在显示图像之前必须进行某种逻辑测试(访问控制、从数据库检索等)那么通过PHP来提供图像就没有意义了。@YourCommonSense也许我误读了,你链接到的问题是“在飞行中”调整大小应该一直使用,直到你有太多的访问者或者它会导致你的服务器“过热”@cernunnos一个选项是创建一个mod_重写规则,如果请求的(缩放的)图像不存在,它将只指向php脚本,否则缩放并创建它