首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP GD 圖片裁切與縮放實作:imagecopyresampled 完整參數解析

     編輯:PHP 相關知識

PHP 圖片區域裁切與縮放技術詳解

使用 PHP GD 函式庫的 imagecopyresampled() 可實現高品質的圖片區域裁切、縮放與重採樣。本文透過實際程式碼範例,詳細解析各參數含義與應用技巧。

基礎裁切範例程式碼

<?php
// 設定輸出為 JPEG 格式
header('Content-Type: image/jpeg');

$sourceFile = 'book_rabbit_rule.jpg';
$srcImg = imagecreatefromjpeg($sourceFile);

// 目標尺寸:120x42
$dstWidth = 120;
$dstHeight = 42;
$dstImg = imagecreatetruecolor($dstWidth, $dstHeight);

// 核心裁切與縮放操作
// 參數順序:目標圖像、來源圖像、目標X、目標Y、來源X、來源Y、目標寬、目標高、來源寬、來源高
imagecopyresampled($dstImg, $srcImg, 0, 0, 7, 174, $dstWidth, $dstHeight, $dstWidth, $dstHeight);

// 輸出並釋放資源
imagejpeg($dstImg);
imagedestroy($dstImg);
imagedestroy($srcImg);

imagecopyresampled 參數完整對照表

參數位置參數名稱說明範例值
1$dst_im目標圖像資源(由 imagecreatetruecolor 建立)$dstImg
2$src_im來源圖像資源(由 imagecreatefromjpeg 等建立)$srcImg
3$dst_x目標圖像起始 X 座標0
4$dst_y目標圖像起始 Y 座標0
5$src_x來源圖像裁切起始 X 座標7
6$src_y來源圖像裁切起始 Y 座標174
7$dst_w目標圖像寬度(輸出尺寸)120
8$dst_h目標圖像高度(輸出尺寸)42
9$src_w來源圖像裁切區域寬度120
10$src_h來源圖像裁切區域高度42

常見應用變化

  • 等比例縮放:將參數 9、10 設為來源原圖寬高,參數 7、8 設為目標縮放尺寸
  • 區域放大:來源區域(參數 9、10)小於目標尺寸(參數 7、8),產生放大效果
  • 區域縮小:來源區域大於目標尺寸,產生縮小效果
  • 多重裁切:對同一來源圖像多次呼叫,可產生多種尺寸縮圖

品質與效能提示

優先使用 imagecreatetruecolor() 建立真彩色目標圖像,搭配 imagecopyresampled() 的雙立方插值演算法,輸出品質遠優於舊版 imagecopyresized()。處理大量圖片時,記得以 imagedestroy() 及時釋放記憶體。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved