是否可以在php中将.jpg、.jpeg或.gif图像转换为.png而不将图像保存在计算机中?
类似于:
function read_image($filename, $extension) {
switch($extension) {
case '.png':
$image = imagecreatefrompng($filename);
break;
case '.jpg': case '.jpeg':
$unTransformed = imagecreatefromjpeg($filename);
$image = transform($unTransformed);
break;
case '.gif':
$unTransformed = imagecreatefromgif($filename);
$image = transform($unTransformed);
break;
return $image;
}
}
function transform($unTransformed) {
// Some magic here without actually saving the image to your machine when transforming
return $transformed;
}
我真的找不到答案。还要注意,gd是强制性的。
最佳答案
使用输出缓冲和捕获imagepng的输出应该可以工作,如下所示:
function transform($unTransformed) {
ob_start();
imagepng($unTransformed);
$transformed = ob_get_clean();
return $transformed;
}
当然,这是假设您实际上需要一个包含图像文件的png bytestream的变量。如果唯一的目的是输出它无论如何,不要麻烦和做马蒂麦克弗里建议。