Intervention Image + Хранение файлов Laravel: Храните измененное / декодированное изображение base64 (Intervention Image encode () не работает)

  • я использую Croppie плагин jQuery, который возвращает обрезанное изображение закодировано в base64.

  • После отправки формы (с обрезанным изображением закодировано в base64) — декодирую & изменить его размер с помощью Изображение вмешательства библиотека:

    public function decodeResizeAndStore(Request $request)
    {
    $croppie_code = $request->croppie_code;
    
    // https://stackoverflow.com/a/11511605/4437206
    if (preg_match('/^data:image\/(\w+);base64,/', $croppie_code, $type)) {
    $encoded_base64_image = substr($croppie_code, strpos($croppie_code, ',') + 1);
    $type = strtolower($type[1]);
    
    $decoded_image = base64_decode($encoded_base64_image);
    
    $resized_image = Image::make($decoded_image)->resize(300, 200);
    
    // AND NOW I WANT TO STORE $resized_image using Laravel filesystem BUT...
    }
    }
    

Наконец, я хочу сохранить измененное изображение, используя Файловая система Laravel (Файловое хранилище) и вот где я застрял — когда я пытаюсь это:

Storage::put($path, (string) $resized_image->encode());

… это не работает На самом деле, это работает что-то — похоже, что есть какая-то утечка памяти или что-то, вкладка браузера зависает, моя оперативная память & Загрузка процессора идет высоко …

Итак, я просто попробовал:

dd($resized_image->encode());

… и да, это то, где он определенно падает — при использовании кодировать () метод.

Я не уверен, почему, может быть, это происходит потому, что я работаю не со стандартной загрузкой изображений, а с декодированной base64?

Но, с другой стороны, Intervention Image может создать новый экземпляр изображения из base64, а также из декодированного base64: http://image.intervention.io/api/make
… и, в моем случае, это работает нормально:

$resized_image = Image::make($decoded_image)->resize(300, 200);

Я мог бы тогда использовать спасти() метод и все будет работать хорошо. Но мне нужно использовать Хранение файлов Laravel.

Вы знаете, как я могу справиться с этим?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]