PHP imagedestroy():釋放影象資源

2020-07-16 10:05:25
在影象的所有資源使用完畢後,通常需要釋放影象處理所佔用的記憶體。在 PHP 中可以通過 imagedestroy() 函數來釋放影象資源,其語法格式如下所示:

imagedestroy(resource $image)

其中,$image 為要釋放的影象資源。

【範例】在影象處理程式執行完畢後使用 imagedestroy() 函數來釋放影象資源。
<?php
    header('Content-type:image/png');
    $image = imagecreatefrompng('https://s3.ap-northeast-1.wasabisys.com/img.tw511.com/202007/logoltalmblu5sd.png');
    imagepng($image);
    imagedestroy($image);
?>
執行上面的程式碼會輸出C語言中文網的 logo。另外,釋放影象資源的操作是沒有輸出內容的,那麼要怎麼證明影象是不是被釋放了呢?其實我們可以在輸出影象之前就執行釋放影象資源,範例程式碼如下所示:
<?php
    header('Content-type:image/png');
    $image = imagecreatefrompng('https://s3.ap-northeast-1.wasabisys.com/img.tw511.com/202007/logoltalmblu5sd.png');
    imagedestroy($image);
    imagepng($image);
?>
執行結果如下:

Warning: imagepng(): supplied resource is not a valid Image resource in D:WWWindex.php on line 5

提示:使用 Chrome 瀏覽器可能無法輸出上面的錯誤資訊,而是輸出一個空白的影象。上面的錯誤提示是通過 IE 瀏覽器輸出的。

通過上面的範例程式碼可以看出,使用 imagedestroy() 函數確實可以釋放影象資源。