Monday, November 05, 2012

Convert image data to base64 encoded in PHP


Here I want to show, how to convert simple image to base64 encoded data which can be used directly with the HTML <img> tag.

Step 1 : Create/Get an image which you need to convert into base64-encoded data.
Step 2 : Write the following PHP code to effect the conversion.

<?php
echo $str =  base64_encode(file_get_contents("test.jpg"));
?>

Step 3 : Base64 encoded data will be echoed on the page. We can use this base64 encoded code in HTML img tag directly as shown below.

<img
src="data:image/jpg;base64,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
+m6J0Dadf7r/AMP/APfz/9k=" alt="Test Image"/>

Check out the output as shown below.







Problem :: How to create an Image from this base64? This is very simple.

<?php
// Image Data
$image_data = 
"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
+m6J0Dadf7r/AMP/APfz/9k=";

// Create Image File
$fp = fopen("new.jpg", "w+");

//Write the new Data
fwrite($fp, base64_decode($img_data));

// Close the file
fclose($fp);

?>

No comments: