我正在使用此 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)
工作正常。
问题
我需要知道如何在将图像存储在服务器之前调整其大小/裁剪它们。否则它会保持相同的大小(巨大图像时出现问题)
调整图像大小可能是一项成本高昂的操作,应由专门的库来处理。过去,默认指针是 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)