I am creating a picture with text on it like this:
createImage.php
JavaScript
x
function randExer() {
//Creates a black picture
$img = imagecreatetruecolor(200, 50);
//uses RGB-values to create a useable color
$textColor = imagecolorallocate($img, 255, 255, 255);
$linesColor = imagecolorallocate($img, 192, 192, 192);
//Adds text
imagestring($img, 5, 18, 18, "four + five = ?", $textColor);
$rotate = imagerotate($img, $angle, 0);
ob_start();
imagejpeg($rotate);
$contents = ob_get_contents();
ob_end_clean();
$imageData = base64_encode($contents);
$src = "data:" . mime_content_type($contents) . ";base64," . $imageData;
return "<img alt='' src='" . $src . "'/>";
}
Result
To actually show the created image in html, I use this:
JavaScript
<label id='exercise'>
<?php
echo randExer();
?>'
</label><br>
The functionality itself is working fine and the result looks like this – which is how it is supposed to look:
Problem
The problem is that I get the following warning:
Warning: mime_content_type(): Invalid path in createImage.php on line 19
I don’t really know what’s wrong with the path.
What is the problem here?
Advertisement
Answer
mime_content_type requires path to the tested file, not just base64 string. But why are you trying to recognize mime type when you know it is image/jpeg (by imagejpeg function).
JavaScript
$src = "data:image/jpeg;base64," . $imageData;