我正在尝试简单地获取测试图像,稍微裁剪并显示它。问题是,我是用PHP做的,到目前为止我所做的每一次尝试都让我更加沮丧; / *和互联网告诉我做我已经做过的事情。 * /
好的,你做了什么?
我尝试了各种获取$image
本身的方法。我尝试过以下方法:
imagecreatefromstring($url);
/ *其中$url
是图片的位置(我从随机网站中提取,这是我项目的必需品* / imagecreatefromstring(file_get_contents($url));
然后在<div>
标记中回显图像imagecreatefromstring(file_get_contents($url));
然后在<img>
标记中回显图像imagejpeg($image)
header('Content-Type: image/jpeg');
好的,发生了什么?
第一次尝试返回了一个错误的错误,表示$image
未被识别。
第二次尝试似乎有效,但我找回了以下文字而不是图像:Resource id #5
第三次尝试给了我一堆胡言乱语。
第四次尝试也给了我一堆胡言乱语。
第五次尝试给了我一个黑屏,显示以下错误消息:The image “http://localhost/ResearchProject/sampleImageDisplay.php” cannot be displayed because it contains errors.
这是最终代码(header.php只包含显示网页的所有必要HTML标记(DOCTYPE标记,html标记,元标记...)):
<?php
include "header.php";
$url = "http://byebyedoctor.com/wp-content/uploads/2010/12/alopecia-areata-3.jpg";
$image = imagecreatefromstring(file_get_contents($url));
?>
<img>
<?php header('Content-Type: image/jpeg'); imagejpeg($image); ?>
</img>
<?php imagedestroy($image); ?>
</body>
</html>
为什么我不能显示这个简单的图像?
答案 0 :(得分:1)
这段代码对我有用。只需创建空的php文件并粘贴此代码即可。它应该返回一个半大胆男人的照片。
$url = "http://byebyedoctor.com/wp-content/uploads/2010/12/alopecia-areata-3.jpg";
$im = imagecreatefromstring(file_get_contents($url));
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
答案 1 :(得分:0)
首先关闭......
你必须确保在php.ini中启用了“allow_url_fopen”。
如果您有权访问此文件,只需更改
即可;allow_url_fopen
要
allow_url_fopen
虽然有些主机禁止访问php.ini。
然后你所要做的就是这个......
$url = "http://byebyedoctor.com/wp-content/uploads/2010/12/alopecia-areata-3.jpg";
$image = file_get_contents($url);
然后你可以临时存储它以调整它或其他任何...
//Store in the filesystem.
$fp = fopen("/location/to/save/tempimage.jpg", "w");
fwrite($fp, $image);
fclose($fp);
答案 2 :(得分:0)
您的主要规划问题是:您尝试将图片包含在HTML代码中。 为此你需要2个phps:
<强> your_htmlpage.php 强>
<html>
<?php
include "header.php";
?>
<body>
<img src="your_image.php">
</body>
</html>
<强> your_image.php 强>
<?php
$url = "http://byebyedoctor.com/wp-content/uploads/2010/12/alopecia-areata-3.jpg";
$image = imagecreatefromstring(file_get_contents($url));
if($image !== false) {
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
} else {
header("X-Error", true, 404);
echo "Error loading remote image";
}
?>
另一种选择是将图像作为base64encoded String发送到浏览器。但这意味着整个图像数据是html代码的一部分。 例如喜欢这个:
<html>
<?php
include "header.php";
$url = "http://byebyedoctor.com/wp-content/uploads/2010/12/alopecia-areata-3.jpg";
$image = imagecreatefromstring(file_get_contents($url));
if($image !== false) {
// start buffering and catch image output
ob_start();
imagejpg($image);
$contents = ob_get_contents();
ob_end_clean();
imagedestroy($image);
$img_data = "data:image/jpg;base64,".base64_encode($contents);
} else {
$img_data = "";
}
?>
<body>
<img src="<?php echo $img_data; ?>">
</body>
</html>