為了避免在使用 PHP 的 imagecopyresampled()
函數時出現錯誤,您可以采取以下措施:
確保兩個圖像源($source
和 $destination
)都已正確創建,并且具有兼容的尺寸。例如,確保 $source
的寬度和高度與 $destination
的寬度和高度相同,或者 $source
的寬度和高度是 $destination
的寬度和高度的整數倍。
檢查兩個圖像的資源類型是否相同。如果它們不是相同的資源類型(例如,一個是 IMAGETYPE_GIF
,另一個是 IMAGETYPE_JPEG
),則 imagecopyresampled()
函數將無法正常工作。您可以使用 getimagesize()
函數獲取圖像的尺寸和資源類型,然后根據需要創建正確的圖像資源。
使用 imagecopyresampled()
函數的返回值來檢查操作是否成功。如果函數失敗,它將返回 FALSE
。您可以使用條件語句(如 if
語句)來檢查返回值,并在發生錯誤時采取適當的措施。
示例代碼:
// 創建圖像資源
$source = imagecreatefromjpeg('source.jpg');
$destination = imagecreatetruecolor(800, 600);
// 檢查圖像資源是否創建成功
if (!$source || !$destination) {
echo "Error: Unable to create image resources.";
exit;
}
// 檢查圖像尺寸是否兼容
if ($source[width] != $destination[width] || $source[height] != $destination[height]) {
echo "Error: Source and destination images must have the same dimensions or compatible dimensions.";
exit;
}
// 使用 imagecopyresampled() 函數復制和重采樣圖像
if (!imagecopyresampled($destination, $source, 0, 0, 0, 0, $destination[width], $destination[height], $source[width], $source[height])) {
echo "Error: imagecopyresampled() failed.";
exit;
}
// 保存或顯示重采樣后的圖像
imagejpeg($destination, 'destination.jpg');
imagedestroy($source);
imagedestroy($destination);
通過遵循這些步驟,您可以最大限度地減少 imagecopyresampled()
函數出現錯誤的可能性。