在我的Laravel控制器中,我尝试获取一串png图像数据,然后将其另存为png
并使用put
进行存储:
$image_string = $request->get('image_string', false);
$filename = 'temp_image';
if ($image_string) {
$resource = imagecreatefromstring($image_string);
Log::debug("Storing image");
if ($resource !== false) {
Storage::put('public/' . $filename . '.png', imagepng($resource));
} else {
Log::error("Failed to get resource from string");
}
}
如果仅分解imagecreatefromstring($image_string)
和imagepng($resource)
部分,则会按预期创建文件。但是图像在Storage::put
中的某个位置已损坏或丢失,因为尽管存在具有正确文件名和扩展名的图像,但它没有数据,并且在查看时显示为黑框。
处理图像存储例程是否需要其他方式?
答案 0 :(得分:0)
我认为问题在于您不能以这种方式更改每种图像的图像扩展名。
检查以下PHP图像处理库:http://image.intervention.io/getting_started/introduction
您可以轻松地将其集成到Laravel中,并且有一个API可以转换不同格式的图像:http://image.intervention.io/api/encode
答案 1 :(得分:0)
感谢@Stefano Cortese和@sykez-解决方案融合了这两种想法。
11223 112312 4123123 6423 123124 563456 123123 35734562 34526 3452 346
123412 51341 12341 473567 11234 45746 578957 23523 3452 32435 3 32452346
23453 23462 234532 54245 345 4563 6573456 23452345 367 4523 45 2345234