Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to encode an image resource to base64?

I was wondering if there's a way to encode an image to a base64 if it was a resource for example if I loaded an image using GD

    $image = imagecreatefromjpeg("captcha/$captcha-$num.jpg");

    // Add some filters
    imagefilter($image, IMG_FILTER_PIXELATE, 1, true);
    imagefilter($image, IMG_FILTER_MEAN_REMOVAL);

If this was my code and instead of saving the image and displaying it using

<img src='someimage.jpg'>

I wanted to display it as a data URI without having to save it, like

<img data='src="data:image/jpeg;base64,BASE64_HERE'>

How can I do that?

like image 218
Ali Avatar asked Mar 08 '14 07:03

Ali


1 Answers

$image = imagecreatefromjpeg("captcha/$captcha-$num.jpg");

// Add some filters
imagefilter($image, IMG_FILTER_PIXELATE, 1, true);
imagefilter($image, IMG_FILTER_MEAN_REMOVAL);

ob_start(); // Let's start output buffering.
    imagejpeg($image); //This will normally output the image, but because of ob_start(), it won't.
    $contents = ob_get_contents(); //Instead, output above is saved to $contents
ob_end_clean(); //End the output buffer.

$dataUri = "data:image/jpeg;base64," . base64_encode($contents);
like image 97
Bez Hermoso Avatar answered Sep 17 '22 19:09

Bez Hermoso