Php 空白图像imagecreatefromjpeg
我有以下功能Php 空白图像imagecreatefromjpeg,php,image,image-processing,Php,Image,Image Processing,我有以下功能 function getImage($imageHash,$script) { $imageurl = "http://www.MYURL.com/images/images/ABImage_clock_4.jpg"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $imageurl); curl_setopt($ch, CURLOPT_RETURNTRANSF
function getImage($imageHash,$script) {
$imageurl = "http://www.MYURL.com/images/images/ABImage_clock_4.jpg";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $imageurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
$img = imagecreatefromjpeg($data);
// draw lines
$num_lines = rand(6,10);
for ($i = 0; $i <= $num_lines; $i++)
{
$color = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
imageline($img, rand(5,95), rand(5,95), rand(5,95), rand(5,95), $color);
}
imagefilter($img, IMG_FILTER_COLORIZE, rand(1, 50), rand(1, 50), rand(1, 50));
imagejpeg($img, '', 30);
imagedestroy($img);
}
51:
$color = imagecolorallocate($img, rand(0,255), rand(0,255),` rand(0,255));
第58和59条:`
imagejpeg($img, '', 30);
imagedestroy($img);
[这不是一个答案,但我不能将其写在评论部分。] 我想如果不知道你怎么称呼这个密码,你是不可能回答的 一些想法: 1) 首先将$data转储到某个地方(浏览器、文件等),看看curl调用是否按预期工作 2) (imagejpeg($img,,,30);)中的第二个参数是空字符串?它应该包含要保护图像的位置的路径。还有名字 (海报希望将其直接输出到浏览器) 编辑: 好的,数据是通过curl获取的。好 现在直接将其输出到浏览器,对吗 在这种情况下,请确保使用正确的mime类型 因此,从您的HTML:
<img src="http://www.yoursite.com/myImageGenerator.php">
还要确保不输出任何其他内容
===================
下一次编辑(因为这些注释太小)
情况:您现在有一张图像,显示您丢失了一张图像。
当然,这根本没用
您是否检查了脚本抛出的任何错误?调试imagecreating脚本可能很困难,因为屏幕上看不到错误
您可以通过两种方式执行此操作:
1) 检查错误日志。使用phpinfo()并查找错误日志的位置,然后查看它
2) 我更喜欢这样:直接在浏览器中调用imagecreating脚本即可。确保在PHP中更改回mimetype。现在您可以看到浏览器在尝试获取图像时收到的输出以及任何错误
================================
这是一个基于海绵宝宝的工作示例。(我对所用图片没有权限。但愿我有权限。)
我希望你可以用它来修改你自己的。请务必在www.php.net上查找您不知道的函数
<?php
// call this script with test.php?produceimage=Y to return only image
$bPictMode = isset($_GET["produceimage"]);
$imageurl = "http://vignette4.wikia.nocookie.net/unanything/images/6/6a/Spongebob.jpg";
if ($bPictMode){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $imageurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
$img = imagecreatefromstring ($data);
// draw lines
$num_lines = rand(6,10);
for ($i = 0; $i <= $num_lines; $i++){
$color = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
imageline($img, rand(5,95), rand(5,95), rand(5,95), rand(5,95), $color);
}
imagefilter($img, IMG_FILTER_COLORIZE, rand(1, 50), rand(1, 50), rand(1, 50));
imagejpeg($img, NULL, 30);
imagedestroy($img);
} else {
$imgURL = "test.php?produceimage=Y";
?>
<!DOCTYPE html>
<html>
<head>
<title>jpg generator</title>
</head>
<body>
Do you see him? (image-url = <?php echo $imgURL; ?>)<br>
<img src="./<?php echo $imgURL; ?>" style="border: 3px solid blue;">
<hr>
</body>
</html>
<?php
}
?>
jpg发生器
你看见他了吗?(图像url=)
“style=”边框:3倍纯蓝色;">
可以。在那里工作。目的是在图像上画线。好的,这是第1部分:您的curl呼叫得到了响应。到目前为止很好。我将在我的帖子中对其余部分进行编辑。更新。是的。我有一些错误。更新了主帖子。好吧,去修复它们!我在这里无能为力。我发布了一个完整的示例。我的帖子中的最后一件事。
header('Content-Type: image/jpeg');
<?php
// call this script with test.php?produceimage=Y to return only image
$bPictMode = isset($_GET["produceimage"]);
$imageurl = "http://vignette4.wikia.nocookie.net/unanything/images/6/6a/Spongebob.jpg";
if ($bPictMode){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $imageurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
$img = imagecreatefromstring ($data);
// draw lines
$num_lines = rand(6,10);
for ($i = 0; $i <= $num_lines; $i++){
$color = imagecolorallocate($img, rand(0,255), rand(0,255), rand(0,255));
imageline($img, rand(5,95), rand(5,95), rand(5,95), rand(5,95), $color);
}
imagefilter($img, IMG_FILTER_COLORIZE, rand(1, 50), rand(1, 50), rand(1, 50));
imagejpeg($img, NULL, 30);
imagedestroy($img);
} else {
$imgURL = "test.php?produceimage=Y";
?>
<!DOCTYPE html>
<html>
<head>
<title>jpg generator</title>
</head>
<body>
Do you see him? (image-url = <?php echo $imgURL; ?>)<br>
<img src="./<?php echo $imgURL; ?>" style="border: 3px solid blue;">
<hr>
</body>
</html>
<?php
}
?>