我正在尝试使用PHP从网址抓取jpg图像并调整其大小,然后将其显示在网页中,而无需保存新的已调整大小的图像。 我的问题是,当我用这个脚本测试页面时,我的浏览器中只显示一个小的空白方块,图像没有显示在页面上。
<?php
$source_image = imagecreatefromjpeg("https://www.******.com/blog/post/b/l/health.jpg");
$source_imagex = imagesx($source_image);
$source_imagey = imagesy($source_image);
$dest_imagex = 300;
$dest_imagey = 200;
$dest_image = imagecreatetruecolor($dest_imagex, $dest_imagey);
imagecopyresampled($dest_image, $source_image, 0, 0, 0, 0,
$dest_imagex,
$dest_imagey, $source_imagex, $source_imagey);
header("Content-Type: image/jpeg");
imagejpeg($dest_image,NULL,80);
?>
<img src='<?php echo "$dest_image";?>'>
答案 0 :(得分:1)
首先确保图片的网址正确无误。让我们假设您有一些resize.php
用于调整图片大小。
<强> resize.php 强>
<?php
$source_image = imagecreatefromjpeg("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSKTUtEWtyngG0EVhrOOZqJYhVPoFg5rzma6Xgn6Sy-RQCDCT950g");
$source_imagex = imagesx($source_image);
$source_imagey = imagesy($source_image);
$dest_imagex = 100;
$dest_imagey = 100;
$dest_image = imagecreatetruecolor($dest_imagex, $dest_imagey);
imagecopyresampled($dest_image, $source_image, 0, 0, 0, 0,
$dest_imagex,
$dest_imagey, $source_imagex, $source_imagey);
header("Content-Type: image/jpeg");
imagejpeg($dest_image,NULL,80);
?>
在这里,我刚刚更改了网址,我确定存在
然后在某些html
中使用它:
<img src = 'resize.php' />
答案 1 :(得分:1)
您将图片资源($dest_image
)转储到图片的源属性中,这是没用的。
如果要将图像打印到HTML响应中而不必将其保存到文件中,则需要:
imagejpeg
获取输出,这是结果图像的原始字节用这些代替代码的最后一行应该可以解决问题:
<?php
// [More code]
ob_start();
imagejpeg($dest_image, NULL, 80);
$image_bytes = ob_get_clean();
?>
<img src="data:image/jpeg;base64,<?php echo base64_encode($image_bytes); ?>">