3

私はGoogleChartsサービスを使用していくつかのQRコードを生成し、後でPHPスクリプトで操作(回転、拡大縮小など)し、他の画像とマージして1つの最終画像を生成する必要があります。

そのようなリソースを(URLから)PHPスクリプトに正しくロードして、それを操作できるようにするにはどうすればよいですか?

URLの例は次のとおりです: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
4

2 に答える 2

3

前者はファイルの内容自体ではなくファイル名を期待しているため、imagecreatefrompng()代わりに必要なのは です。imagecreatefromstring()

于 2012-11-24T07:23:45.330 に答える
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);

注: ローカル サーバーに ssl を設定していないため、https ではなく http を使用する必要がありました。

于 2012-11-24T07:28:54.563 に答える