0

我想知道是否可以将图像(从任何格式)转换为 jpeg 而无需写入磁盘?

$im = new imagick($url . $image);
$im->setImageFormat('jpg');
$im->writeImage($image .".png"); 
// I dont want this..I want to use a variable or
// something to get that image in jpeg format.

我的观点很简单。我有 JPEG 和 PNG 格式的图像。如您所知,PNG 在使用的​​长度方面要大得多。因此,我应该将图像转换为 JPEG,然后获取它的 bytes[]。

目前,我正在将所有图像(无论扩展名)转换为 bytes[] 没有任何问题。但我只想转换 JPEG 格式的图像,这样说,我需要将不是 JPEG 的图像转换为 JPEG。

// My current code to convert to bytes
$url_final = 'C:\\xampp\\htdocs\\MyExample\\image\\' . $image;
// The var $image comes from Database with extension
$fp = fopen($url_final, 'r');
$data = fread($fp, filesize($url_final));
fclose($fp);
$final_data = base64_encode($data);

只能选择这样做,写入临时图像文件吗?

4

0 回答 0