我希望能够在不将其保存到服务器的情况下生成图像缩略图。到目前为止,我已经提出了这个代码,但我不确定如何处理$code
。
$code = system("convert galleries/13_0.jpg -resize 400x270 /dev/stdout");
我如何将$code
插入PHP / HTML以使原始图像代码显示为jpg?
答案 0 :(得分:1)
我建议你不要像你所描述的那样从系统中做到这一点。
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');
答案 1 :(得分:0)
如果$ code是原始数据,你是否可以使用另一个文件getimage.php来写出数据但是将标题内容类型设置为image / JPEG?所以你的img src会是getimage.php?image = 13_0.jpg例如?
答案 2 :(得分:0)
我会把它保存到内存中,然后读取它,然后删除它。 /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);