9

我正在使用 imagecreatefromjpeg() 函数来合并两张图片..

现在我面临的问题是,当我使用服务器中的图片时,它可以完美运行,而当我使用其他网站的图片时,它就无法正常工作。

例如:当我使用这个带有函数的PHP 文件http://coolfbapps.in/test/merger.php

 imagecreatefrompng('http://coolfbapps.in/test/1.png');

它工作得很好,因为图像在我自己​​的服务器上

但是当我更改此功能时,请放置不在我的服务器上的图像的链接,

例如。

  imagecreatefrompng('http://www.businesseconomics/Test.png');

它不起作用。(图像文件不在我的服务器上)

请建议我替代此功能或解决方案,因为我想将其与 Facebook 应用程序一起使用。

file-get-contents 等函数也显示相同的错误。我希望它不是服务器端问题.. allow_url_fopen 已打开但 allow_url_include 已关闭

更新...实际代码。我正在使用它来合并两张图片

 $dest = imagecreatefrompng('http://coolfbapps.in/test/1.png');

 $src = imagejpeg('http://img.allvoices.com/thumbs/image/111/111/75152279-pic.jpg');

 imagealphablending($dest, false);
 imagesavealpha($dest, true);

 imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100); 

 header('Content-Type: image/png');
 imagepng($dest);

 imagedestroy($dest);
 imagedestroy($src);
4

3 回答 3

2

file_get_content您可以使用而不是使用cURL来获取图像数据。这是一个资源: http: //php.net/manual/en/book.curl.php

获取 html 的示例(图像也可以):

<?php    
    $ch = curl_init("http://img.allvoices.com/thumbs/image/111/111/75152279-pic.jpg");
    $fp = fopen("example_homepage.jpg", "w");

    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_setopt($ch, CURLOPT_HEADER, 0);

    curl_exec($ch);
    curl_close($ch);
    fclose($fp);

    $img = imagecreatefromjpeg("example_homepage.jpg");
?>
于 2011-04-08T05:33:41.893 回答
1

听起来该功能没有 URL 打开功能,或者它确实有并且您allow_url_fopenphp.ini. ini_set()出于安全原因,您不能使用。

您可以将文件下载到本地服务器,然后打开它。

file_put_contents('image.jpg',
                  file_get_contents('http://www.businesseconomics/Test.png')
                 );

您也可以使用copy(),文档提示它可以读取 URL。

于 2011-04-07T08:12:46.773 回答
1

这样的事情可能会有所帮助。

$imagestr = file_get_contents('http://www.businesseconomics/Test.png');

$image = imagecreatefromstring($imagestr);

imagecreatefrompng($image);

更新::

$imagestr = file_get_contents('http://www.gravatar.com/avatar/95111e2f99bb4b277764c76ad9ad3569?s=32&d=identicon&r=PG');

$image = imagecreatefromstring($imagestr);

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

imagejpeg($image);
于 2011-04-07T08:32:31.283 回答