當前位置: 首頁> 最新文章列表> 結合imageflip() 與imagefilter() 實現復古鏡像特效

結合imageflip() 與imagefilter() 實現復古鏡像特效

M66 2025-05-31

在PHP 中處理圖像的功能相當強大,尤其是在使用GD 庫的情況下。本文將帶你了解如何通過imageflip()imagefilter()函數,製作一個帶有復古感的鏡像圖像特效。這種特效常見於復古攝影或者膠片風格的圖片處理中,既實用又富有藝術感。

一、準備圖像資源

首先,我們需要一張原始圖片,假設路徑為:

 $source = 'https://m66.net/images/sample.jpg';

你可以使用本地圖像或者在線資源,但請確保圖像格式為支持的類型(如JPEG、PNG)。

二、加載圖像並翻轉

使用imagecreatefromjpeg()加載圖像,然後通過imageflip()實現水平翻轉,模擬鏡像效果:

 <?php
$source = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($source);

// 鏡像處理:水平翻轉
imageflip($image, IMG_FLIP_HORIZONTAL);

此處我們使用的是IMG_FLIP_HORIZONTAL ,如果你想要垂直或雙向翻轉,也可以嘗試其他模式如IMG_FLIP_VERTICALIMG_FLIP_BOTH

三、添加複古濾鏡

接下來,我們通過imagefilter()添加複古濾鏡。常見的複古風格通常包括降低飽和度、添加黃褐色調(Sepia)等。

 // 轉為灰度圖像
imagefilter($image, IMG_FILTER_GRAYSCALE);

// 疊加黃色調,營造復古感
imagefilter($image, IMG_FILTER_COLORIZE, 100, 50, 0);

// 增加對比度,強化效果
imagefilter($image, IMG_FILTER_CONTRAST, -15);

這些濾鏡組合起來,會讓圖像呈現出那種歲月斑駁的老照片質感。

四、輸出與保存圖像

處理完成後,可以直接將圖像輸出到瀏覽器,或保存為新文件:

 // 輸出圖像到瀏覽器
header('Content-Type: image/jpeg');
imagejpeg($image);

// 或保存為新文件
// imagejpeg($image, 'vintage_mirror.jpg');

// 清理資源
imagedestroy($image);
?>

五、小貼士

  • 若需更精細的濾鏡控制,可考慮將imagefilter()多次疊加使用,嘗試不同的數值組合。

  • PHP 的GD 庫雖然功能不如專業圖像處理軟件,但在Web 項目中處理圖片已足夠應付大多數需求。

  • 如果你是在動態網站(比如https://m66.net/portfolio.php )中使用該功能,請確保服務器開啟了GD 支持。

六、效果預覽建議

你可以將上述代碼嵌入到測試頁面中,在瀏覽器中打開它,即可查看實時生成的複古鏡像圖像。如果你希望增強交互性,還可以結合HTML 表單,實現用戶上傳圖像並自動應用濾鏡的功能。