如何从调整大小的文件中获取md5,然后再将其保存到新文件中


How can i get md5 from resized file before saving it to new file?

我正在对jpg进行调整大小,之后我想从中获取md5,然后用md5名称保存新图像。代码看起来是这样的:

$extension = 'jpg';
$img = imagecreatefromjpeg($source);
$tmp_img = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $newWidth, $newHeight, $plik[0], $plik[1]);
//$md5 - here i need to get md5...
imagejpeg($tmp_img, $md5.;'.'.$extension);
imagedestroy($img);

是否可以不先保存tmp文件?

你能在顶部做。。。

$md5 = md5_file($source);

我还看到了一种技术,可以将图像文件流式传输到输出缓冲区并捕获它。

ob_start();
imagejpeg($tmp_img);
$data = ob_get_clean();
$md5 = md5($data);

然后,您可以使用创建文件。。。

file_put_contents($md5 . '.' . $extension, $data);