Фильтр строк изображения php tcpdf

Я пытался отправить по электронной почте таблицу, содержащую список значений поля. Когда я достигаю значения изображения, я отфильтровываю строку изображения для использования в выводе изображения tcpdf. Я сделал условие, что если данные: image / png найдены, его следует удалить. В противном случае удалите данные: image / jpeg.

$pdf->writeHTMLCell(50, 0, '', '', "{$fieldname}", 1, 0, 0, true, 'R', true); $base64 = strpos("data:image/png", $col_value) ? str_replace("data:image/png;base64,", "", $field_value) : str_replace("data:image/jpeg;base64,", "", $field_value); $imgdata = base64_decode($base64); $pdf->Image('@'.$imgdata, '', '', 0,65, '', '', 'B', false, 300, 'R'); $pdf->writeHTMLCell(0, 10, '', '', "", 1, 1, 0, true, '', true); 

в результате чего:

TCPDF ERROR: [Image] Невозможно получить размер изображения: @

без условного / выполнения if / else для значения $ base64, я не получаю ошибку. Но моя base64 не будет такой гибкой, как с двумя типами.

Наконец, понял! explode () работал … Тогда вместо pdf-> Image я просто помещаю temp. изображение для атрибута src тега img.

  • получить строку с getimagefromstring
  • сохранить временное изображение из строки
  • затем используйте img-тег в $ pdf-> writeHTMLCell

     $base64 = explode(',', $col_value); $base64d = base64_decode($base64[1]); $im = imagecreatefromstring($base64d); if ($im !== false) { echo 'image ok'; //header('Content-Type: image/png'); imagejpeg($im, $path . "test.jpg"); imagedestroy($im); echo "<br /> image done"; } else { echo 'An error occurred.'; } $pdf->writeHTMLCell(0, 30, '', '', '<img src="' .$path . 'test.jpg"/>', 1, 1, 0, true, 'C', true); unlink($path . "test.jpg");