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   
    }
?>