我正在閱讀圖像從最小1x1
像素到最大1600x1600
像素。我寫了三種PHP方法,並且工作正常。用PHP快速閱讀和輸出瀏覽器中的圖像
// using FGC
function output_fgc($filename)
{
header("Content-Type: image/png");
echo file_get_contents($filename);
}
// using fopen
function output_fp($filename)
{
$handle = fopen($filename, 'rb');
header("Content-Type: image/png");
header("Content-Length: " . filesize($filename));
fpassthru($handle);
}
// using GD
function output_gd($filename)
{
$im = imagecreatefrompng($filename);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
看來所有方法的性能都是一樣的。只是想知道哪些使用更多的服務器資源?有沒有比這更好的方法?提前致謝。
最後一種方法肯定是不必要的資源消耗(除非你想讓10000%超級確定你的文件實際上是一個圖像,但在大多數情況下這將是矯枉過正)。 – 2013-03-16 15:29:13
@Pekka웃,所有圖像都是PNG和保存在服務器中。所以前兩種方法是好的? – 2013-03-16 15:32:58
是的 - 儘管如果你想讓它們被緩存,你必須發送你自己的緩存標題,並且通過PHP發送靜態內容並不是每一種都很有效。爲什麼你不能把原始的PNG放在一個可以訪問網頁的文件夾中的任何具體原因? – 2013-03-16 15:34:24