PHP和ImageMagick -图像代码到图像


PHP & ImageMagick - image code into image?

我希望能够生成图像缩略图而不将它们保存到服务器。到目前为止,我已经提出了这段代码,但我不确定如何处理$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);