【发布时间】:2015-09-08 12:48:15
【问题描述】:
我有一个PHP函数,它接受任意字符串并从中创建图像资源,自动检测图像格式,如下:
$im = imagecreatefromstring($image_data_string);
您肯定知道,当$image_data_string 包含任何受支持的图像类型(如 JPG、PNG 等)时,这会创建 $im 图像资源。
在对 $im 资源进行一些操作(修改一些像素等)之后,我想以相同的格式再次返回图像字符串。也就是说,如果数据字符串包含PNG图像,我想返回生成的PNG图像字符串。如果是 JPG,那么我想将它作为 JPG 以字符串形式返回。
PHP 支持imagejpeg() 或imagepng() 等功能,所以如果我知道如何检测$im 资源的图像类型,那我就万事大吉了。有像imagesx() 和imagesy() 这样的函数返回$im 资源的宽度和高度,但我找不到合适的函数来返回$im 资源的图像类型。
我想到的唯一方法是分析原始$image_data_string 的第一个字节以找出图像类型。但我更喜欢为此目的使用本机 PHP 函数,该函数适用于 $im 资源参数。有这样的吗?
谢谢
【问题讨论】:
-
为什么不使用额外的变量来保存图片扩展名?
-
你是如何获得 $image_data_string 变量的?您是否也可以在此阶段存储文件类型?