PHP的imagecopymerge() 函數本身不能直接改變圖片大小,但它可以將一張圖片的內容合并到另一張圖片上。如果你想要改變圖片的大小,你需要在調用 imagecopymerge() 之前使用 PHP 的 GD 庫中的其他函數,如 imagecreatefromjpeg()、imagecreatefrompng() 或 imagecreatefromgif() 等來創建一個新的圖像資源,然后使用 imagejpeg()、imagepng() 或 imagegif() 等函數將調整大小后的圖像輸出到瀏覽器或保存到文件。
以下是一個示例代碼,展示了如何使用 imagecreatefromjpeg() 和 imagejpeg() 來改變 JPEG 圖片的大?。?/p>
<?php
// 加載原始圖片
$sourceImage = imagecreatefromjpeg('original.jpg');
// 獲取原始圖片的寬度和高度
$sourceWidth = imagesx($sourceImage);
$sourceHeight = imagesy($sourceImage);
// 設置新的圖片尺寸
$newWidth = 300;
$newHeight = 200;
// 創建一個新的空白圖像資源,用于保存調整大小后的圖片
$destinationImage = imagecreatetruecolor($newWidth, $newHeight);
// 保持 PNG 和 GIF 圖片的透明度
imagealphablending($destinationImage, false);
imagesavealpha($destinationImage, true);
// 將原始圖片按比例縮放到新圖片中
imagecopyresampled($destinationImage, $sourceImage, 0, 0, 0, 0, $newWidth, $newHeight, $sourceWidth, $sourceHeight);
// 輸出調整大小后的圖片到瀏覽器
header('Content-Type: image/jpeg');
imagejpeg($destinationImage);
// 銷毀圖像資源
imagedestroy($sourceImage);
imagedestroy($destinationImage);
?>
在這個示例中,我們首先加載了名為 “original.jpg” 的原始圖片,然后獲取了它的寬度和高度。接著,我們定義了新的圖片尺寸,并創建了一個新的空白圖像資源。我們使用 imagecopyresampled() 函數將原始圖片按比例縮放到新圖片中,并保持了 PNG 和 GIF 圖片的透明度。最后,我們使用 imagejpeg() 函數將調整大小后的圖片輸出到瀏覽器,并銷毀了圖像資源。