fpdf — PHP dataURL в изображение png

Я захватил изображение с холста и отправил его методом ajax post в мой файл php.

Здесь мне нужно положить его обратно в PNG с типом файла и расширением. Поскольку я буду добавлять это новое изображение в PDF, используя fpdf.

Вот мой код Я только что остался со сломанным изображением ссылки на изображение.

<?php
require_once('fpdf/fpdf.php');
require_once('fpdi/fpdi.php');
$imgEmbed = $_POST['embed'];

//convert base64 string into an image file by wrapping
//it in the png container

$parts = explode(',',$imgEmbed);
$data = $parts[1];
$data = base64_decode($data);

header('Content-Type:image/png');

$pdf =& new FPDI();
$pdf->AddPage();

//Set the source PDF file
$pdf->setSourceFile("test2.pdf");

//Import the first page of the file
$tppl = $pdf->importPage(1);

//Use this page as template
// use the imported page and place it at point 20,30 with a width of 170 mm
$pdf->useTemplate($tppl, null, null, 215.9, 279.4, TRUE);

//Select Arial italic 8
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(100, 100);
$pdf->Write(0, 'This is just a simple text');
$pdf->Image($newIm,null,null,150,100);// x y h w 'png'

$pdf->Output("custom.pdf", "I"); // d send to browser, F send to local
// I auto open in browser window.
?>

0

Решение

$newIm='test.png';<br>
if(exif_imagetype($newIm)==IMAGETYPE_PNG) {<br>
$file_type="PNG";<br>
}elseif (exif_imagetype($newIm) ==IMAGETYPE_JPEG) {<br>
$file_type="JPG";<br>
}<br>
$pdf->Image($newIm,null,null,150,100,$file_type);<br>

В Fpdf синтаксис Image читает пиксель за пикселем целиком, и если основа изображения находится в формате png, и мы задаем расширение как test.jpg, тогда это выдаст ошибку, поэтому здесь я использовал exif_imagetype (), который даст мне изображение тип изображения. И затем я передам этот $ file_type в синтаксисе, чтобы получить результат. И в моем случае это сработало.

0

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

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