使用 php 调整大小或裁剪 Base64 图像

Dan*_*Dan 2 php

我正在使用此 php 代码将图像从电脑上传到服务器

  $ImageToLoad=mysql_real_escape_string($_POST['image_attached']);

if($ImageToLoad){

$token=$token;//variable
$ImageToLoad = str_replace('data:image/png;base64,', '', $ImageToLoad);
$ImageToLoad = str_replace('data:image/jpeg;base64,', '', $ImageToLoad);
$ImageToLoad = str_replace(' ', '+', $ImageToLoad);
$fileData = base64_decode($ImageToLoad);    


$destino_path="/images/$token/image.png";

file_put_contents($destino_path, $fileData);

}
Run Code Online (Sandbox Code Playgroud)

工作正常。

问题

我需要知道如何在将图像存储在服务器之前调整其大小/裁剪它们。否则它会保持相同的大小(巨大图像时出现问题)

wp7*_*8de 7

调整图像大小可能是一项成本高昂的操作,应由专门的库来处理。过去,默认指针是 ImageMagick 的Imagick::resizeImage。然而,这个包并不适合所有人,同时其他解决方案也出现了。

我建议使用gumlet 的php-image-resize。调整 Base64 编码图像的大小可以如此简单:

$image = ImageResize::createFromString(base64_decode('R0lGODlhAQABAIAAAAQCBP///yH5BAEAAAEALAAAAAABAAEAAAICRAEAOw=='));
$image->scale(50);
$image->save('image.jpg');
Run Code Online (Sandbox Code Playgroud)

  • 这并不难。只需使用 Composer(如果可用),或者将 lib 源文件放在服务器上并包含 `'/path/to/ImageResize.php';` (2认同)