我希望能够生成图像缩略图而不将它们保存到服务器。到目前为止,我已经想出了这段代码,但我不确定如何处理$code
.
$code = system("convert galleries/13_0.jpg -resize 400x270 /dev/stdout");
我将如何插入$code
PHP/HTML 以将原始图像代码显示为 jpg?
我希望能够生成图像缩略图而不将它们保存到服务器。到目前为止,我已经想出了这段代码,但我不确定如何处理$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);