リモート画像を取得しようとしていますが、画像を表示すると (ブラウザーに直接出力するか、ディスクに保存して表示するかのいずれか)、常に品質が低くなります。
品質を落とさずにこれを行う方法はありますか?ここに私が使用した方法がありますが、同じ結果が得られます。
$imagePath
のようなパスで、画像が保存される場所ですhttp://www.example.com/myimage.jpg
。$filePath
カール
$ch = curl_init($imagePath);
$fp = fopen($filePath, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
file_get_contents
$tmpImage = file_get_contents($imagePath);
file_put_contents($filePath, $tmpImage);
すぐに品質の問題を示すスクリーンショットを取得します。
KIA のロゴを見渡すと、左側に品質の問題があることがわかります。
更新: さまざまな画像でさらにテストを行ったところ、品質の問題は画像ごとに異なるようです。全く問題ないものもあります。
また、画像への長いURLに基づいて、スクリーンショットが上の画像である画像は、スクリプトに到達する前に画像のサイズが既に変更され、品質が変更されているように見えるため、これらを説明できると考えています問題も。