2012-11-24 73 views
1

我正在使用Google Charts服務來生成一些QR碼,然後我需要在PHP腳本中操作(例如旋轉,縮放)並與其他圖像合併以生成一個最終圖像。如何使用cURL將URL中的圖像資源加載到PHP腳本中?

如何正確加載這樣的資源(從一個URL)到一個PHP腳本中,以允許我操縱它?

一個例子網址是:https://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=xghsdfgsdfg&choe=UTF-8&chld=L|0

目前,我有下面的代碼使用cURL檢索圖像:

function getImage($url){ 
     $ch = curl_init ($url); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
     $resource = curl_exec($ch); 
     curl_close ($ch); 

     return $resource; 
} 

但是當我使用它是這樣的:

$image = imagecreatefrompng(getImage("https://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=xghsdfgsdfg&choe=UTF-8&chld=L|0")); 

的以下錯誤返回:

Warning: imagecreatefrompng(‰PNG ) [function.imagecreatefrompng]: failed to open stream: No such file or directory in /home/picselbc/public_html/projects/cakemyface/preview.php on line 383 
https://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=xghsdfgsdfg&choe=UTF-8&chld=L|0 
+0

imagecreatefromstring – Dale

回答

1

你需要什麼而不是imagecreatefrompng()imagecreatefromstring(),因爲前者需要一個文件名而不是文件內容本身。

+0

你說得對,那可行!任何想法,如果我使用SimpleImage類,但我可以做什麼? ([鏈接](http://www.abeautifulsite.net/blog/2011/11/the-simple-image-class-for-php/))。因爲我需要像這樣使用它:'$ image = new SimpleImage(getImage($ url));'。 –

+0

如果'SimpleImage'需要一個文件,你可能需要在臨時位置寫一個文件? –

+0

我很害怕你會說:) –

1

這爲我工作

$image = imagecreatefromstring(file_get_contents('http://chart.googleapis.com/chart?cht=qr&chs=500x500&chl=xghsdfgsdfg&choe=UTF-8&chld=L|0')); 
header('Content-Type: image/png'); 
imagepng($image); 

注:我不得不使用HTTP而不是HTTPS,因爲我還沒有建立SSL我的本地服務器上。

相關問題