imagecreatefromjpeg () php - PullRequest
       23

imagecreatefromjpeg () php

5 голосов
/ 07 апреля 2011

Я использую функцию imagecreatefromjpeg () для объединения двух изображений.

Теперь проблема, с которой я сталкиваюсь, заключается в том, что когда я использую изображения с моего сервера, он работает отлично, и когда я использую изображенияс другого сайта, он не работает.

Например: когда я использую этот PHP-файл http://coolfbapps.in/test/merger.php с функцией

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

Он отлично работает как изображениенаходится на моем собственном сервере

, но когда я изменяю эту функцию, n ставит ссылку на изображение, которого нет на моем сервере, например

.

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

это не работает.(файл изображения не находится на моем сервере)

, пожалуйста, предложите мне альтернативу этой функции или решение, поскольку я хочу использовать это с приложениями Facebook ..

Такие функции, как file-get-содержимое также показывает ту же ошибку.Я надеюсь, что это не проблема конца сервера .. 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);

Ответы [ 3 ]

2 голосов
/ 08 апреля 2011

Вместо использования 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");
?>
0 голосов
/ 07 апреля 2011

Нечто подобное может помочь.

$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);
0 голосов
/ 07 апреля 2011

Похоже, что функция не имеет возможности открытия URL-адреса, или у вас есть allow_url_fopen в php.ini.Вы не можете использовать ini_set() по соображениям безопасности.

Вы можете загрузить файл на локальный сервер, а затем открыть его.

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

Возможно, вы используете copy() тоже, документы намекают на то, что он может читать URL.

...