我希望能够生成图像缩略图而不将它们保存到服务器。到目前为止,我已经提出了这段代码,但我不确定如何处理$code
。
$code = system("convert galleries/13_0.jpg -resize 400x270 /dev/stdout");
我该如何将$code
插入PHP/HTML中以获得原始图像代码以显示为jpg?
我建议您不要像您所描述的那样从系统中执行此操作。
PHP有库来做这种事情。
http://www.php.net/manual/en/ref.image.php。http://php.net/manual/en/book.imagick.php。
还有一些库包装了这些用于操作图像的本地函数。https://imagine.readthedocs.org/en/latest/
这样你所有的代码都在PHP中,你不依赖于系统做任何事情(前提是PHP已经用描述的库编译了)。它们是大多数PHP构建中可用的标准库,如果没有包含它们,您可以启用它们)。
编辑:我提倡你。- 打开源图片
- 转换源图像
- 返回源图像
与想象你会这样做:
$imagine = new Imagine'Gd'Imagine();
$size = new Imagine'Image'Box(400, 270);
$imagine->open('/path/to/large_image.jpg')
->resize($size)
->show('jpg');
如果$code是原始数据,您是否可以有另一个文件getimage.php,它将写入数据,但将标题内容类型设置为image/JPEG?img src是getimage。php?image=13_0.jpg ?
我会将它保存到内存中,然后读取,然后删除。/dev/shm
在大多数Linux系统上是ramdrive .
$tmp = '/dev/shm/'.uniqid('',true).'.jpg';
system("convert galleries/13_0.jpg -resize 400x270 $tmp");
header("Content-Type: image/jpeg");
header('Content-Length: '.filesize($tmp));
readfile($tmp);
unlink($tmp);