Php 使用imagejpeg显示jpeg

Php 使用imagejpeg显示jpeg,php,image,Php,Image,我试图了解在浏览器中显示图像的方法。这项工作: echo '<img src="data:image/jpeg;base64,'. base64_encode($photoData) .'" />'; 它显示数据而不是图像。有人能解释我遗漏了什么吗?请尝试以下代码: <?php header('Content-Type: image/jpeg'); $exploded = explode('

我试图了解在浏览器中显示图像的方法。这项工作:

echo '<img src="data:image/jpeg;base64,'. base64_encode($photoData) .'" />';                                        
它显示数据而不是图像。有人能解释我遗漏了什么吗?

请尝试以下代码:

<?php 

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

$exploded = explode(',', $photoData, 2); // limit to 2 parts, i.e: find the first comma
$encoded = $exploded[1]; // pick up the 2nd part
$decoded = base64_decode($encoded);

$im = imagecreatefromstring($decoded);       

$width = "500px";
$height = "400px";
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $width, 'height' => $height]);

imagejpeg($im2);
// Free up memory
imagedestroy($im2);

?>

图像裁剪示例

确保:

您的页面只打印图像,因为如果它包含任何字符串或其他错误,它将不会显示图像

我用这句话来解决你的问题,

使用第二个选项,您是否也只显示图像或文本?有一个输入错误
$photoData'
$photoData的值是多少?图像路径或base64仅显示文本(照片数据)photodata为base64。它是从我的数据库中检索到的。我尝试了这个,但仍然没有乐趣。是因为页面上有其他文本吗?这是一个相当大的限制器-不?您是否打印回音“”;在脚本中??它是php,这个方法确实显示图像。但是我需要做一些操作(例如裁剪),因此请查看imagejpeg()方法。@RGriffiths如果可以裁剪图像,请尝试我的脚本。如果有效,请将其标记为答案。正如我所说,我已经尝试过这种方法,但它不适用于我的数据。裁剪不会是一个问题-问题是如何将原始图像转换为我可以使用imagecrop方法的格式。
<?php 

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

$exploded = explode(',', $photoData, 2); // limit to 2 parts, i.e: find the first comma
$encoded = $exploded[1]; // pick up the 2nd part
$decoded = base64_decode($encoded);

$im = imagecreatefromstring($decoded);       

$width = "500px";
$height = "400px";
$im2 = imagecrop($im, ['x' => 0, 'y' => 0, 'width' => $width, 'height' => $height]);

imagejpeg($im2);
// Free up memory
imagedestroy($im2);

?>