Изменение размера изображения из двоичных данных с использованием Intervention Image - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь изменить размер изображения из данных, извлеченных из таблицы mysql, с использованием пакета Intervention Image. Без изменения размера работает нормально. Я застрял в Image :: make, который не возвращает никаких данных. Вот мой код:

$data = DB::table('accounts')
      ->leftjoin('coatypes','accounts.type','=','coatypes.typeid')
      ->leftjoin('attachments','attachments.vno','=','accounts.code')
      ->where('accounts.type','=',$request->type)
      ->where('accounts.branchid','=',$branch_id)
      ->where('attachments.branchid','=',$branch_id)
      ->where('attachments.vtype','=','Customer')
      ->select('accounts.*','coatypes.typename','attachments.docfile')
      ->latest()->get();

foreach($data as &$d) {
  $decoded_image = $d->docfile;
  $encoded_image = base64_encode($d->docfile);
  $img = Image::make($decoded_image)->resize(100, 100);
  info($img);
}

И закодированное, и декодированное изображение возвращает пустые данные в лог

[2020-02-07 15:51:01] local.INFO:   
[2020-02-07 15:51:01] local.INFO:   
[2020-02-07 15:51:01] local.INFO:   

1 Ответ

0 голосов
/ 07 февраля 2020

У вас уже есть строка base64 в вашей БД и вам не нужен base64_encode, или в вашей системе есть путь к изображению, и в этом случае вам сначала нужно получить содержимое изображения (с file_get_contents) перед кодированием его в base64.

КСТАТИ:
Intervention Image, насколько я знаю, принимает и путь к изображению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...