Сохранение изображения, созданного с помощью imagecopy (), с использованием хранилища Laravel () - PullRequest
0 голосов
/ 04 января 2019

У меня есть изображение, созданное с помощью php's imagecopy (), чтобы добавить водяной знак:

imagecopy($base, $stamp, imagesx($base) - $sx, imagesy($base) - $sy, 0, 0, imagesx($stamp), imagesy($stamp));

Это взято прямо из php руководства и работает нормально. Он создает мое изображение с помощью $ base, и если бы я установил заголовки в jpeg, я мог бы вывести изображение в моем браузере.

Однако следующий шаг - сохранить его с помощью Laravel. Я могу сделать это вручную, используя

imagejpeg($base,$storagePath)

Опять же, это работает нормально. Тем не менее, я действительно хочу взять свою базу $ и правильно сохранить ее, например,

$base->store('mydirectory');

Но это невозможно, поскольку $ base просто не дает мне того, с чем предназначается store ().

1 Ответ

0 голосов
/ 04 января 2019

Хорошо, в конце концов, я решил это, мне нужно было получить данные изображения, используя буферизацию вывода, а затем использовать Storage :: put, который может хранить необработанные данные.

Итак, убедившись, что я использую хранилище:

use Illuminate\Support\Facades\Storage;

Затем сохраните изображение

// prepare a path
$filename = uniqid().'.jpeg';
$path = 'images/'.$filename;

// output buffering so you can load imagejpeg() created raw data as a variable
ob_start();
imagejpeg($base);
$image_contents = ob_get_clean();

// put it in storage using Laravel
Storage::put($path, $image_contents);
...