Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP中的ImageMagick与MySQL blob一起使用的选项?_Php_Mysql_Image - Fatal编程技术网

将PHP中的ImageMagick与MySQL blob一起使用的选项?

将PHP中的ImageMagick与MySQL blob一起使用的选项?,php,mysql,image,Php,Mysql,Image,因此,我的主机在服务器上提供ImageMagick,但没有用于PHP的MagickWand或IMagick API。我可以使用PHP exec命令操作图像。但这需要完整路径文件名才能工作,我想从MySQL数据库中提取图像。每次我想这样做的时候,我都必须把它们从数据库中拉出来并放到一个文件中吗?有什么建议吗?如果您唯一可用的ImageMagick只能对文件进行操作(这是我读您的第一句话的方式),那么您确实需要从MySQL blob中创建文件,以便在其上使用ImageMagick(记住以后要清理)。

因此,我的主机在服务器上提供ImageMagick,但没有用于PHP的MagickWand或IMagick API。我可以使用PHP exec命令操作图像。但这需要完整路径文件名才能工作,我想从MySQL数据库中提取图像。每次我想这样做的时候,我都必须把它们从数据库中拉出来并放到一个文件中吗?有什么建议吗?

如果您唯一可用的ImageMagick只能对文件进行操作(这是我读您的第一句话的方式),那么您确实需要从MySQL blob中创建文件,以便在其上使用ImageMagick(记住以后要清理)。我的建议可能是切换到更好的托管服务,但我认为您有理由继续使用该服务。

如果您可以使用的唯一ImageMagick只能对文件进行操作(这是我阅读您的第一句话的方式),那么您确实必须从MySQL Blob中创建文件,才能对其使用ImageMagick(记得事后清理)。我的建议可能是切换到更好的托管服务,但我认为您有理由继续使用该服务。

一个选项是使用创建的进程的stdin/stdout运行imagemagick进程,并对其进行写入/读取

要从stdin读取imagemagick,只需输入一个破折号“-”。指定
/dev/stdout
作为输出文件。对imagemagick的调用应如下所示:

convert-scale 150x100-/dev/stdout

在由
proc_open
创建的管道上使用
fwrite
fread
将输入写入imagemagick并读取输出


我还没有试过,但我想这应该行得通。

一个选项是使用创建的进程的stdin/stdout运行imagemagick进程,并对其进行写入/读取

要从stdin读取imagemagick,只需输入一个破折号“-”。指定
/dev/stdout
作为输出文件。对imagemagick的调用应如下所示:

convert-scale 150x100-/dev/stdout

在由
proc_open
创建的管道上使用
fwrite
fread
将输入写入imagemagick并读取输出

我没有试过,但我想这应该有用。

你试过了吗?

你试过了吗