在PHP中,可以使用遞歸函數來處理圖片水印。下面是一個基于遞歸的PHP圖片水印處理技術的示例代碼:
function add_watermark_recursive($directory) {
$files = scandir($directory);
foreach($files as $file) {
if ($file != '.' && $file != '..') {
$path = $directory.'/'.$file;
if (is_dir($path)) {
add_watermark_recursive($path);
} else {
if (pathinfo($path, PATHINFO_EXTENSION) == 'jpg') {
$image = imagecreatefromjpeg($path);
$watermark = imagecreatefrompng('watermark.png');
$image_width = imagesx($image);
$image_height = imagesy($image);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$dest_x = $image_width - $watermark_width - 10;
$dest_y = $image_height - $watermark_height - 10;
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
imagejpeg($image, $path);
imagedestroy($image);
imagedestroy($watermark);
}
}
}
}
}
add_watermark_recursive('images');
在上面的代碼中,我們定義了一個遞歸函數add_watermark_recursive()
,該函數接受一個目錄作為參數,并遍歷該目錄下的所有文件和子目錄。對于每個文件,如果是jpg格式的圖片文件,就打開該圖片并添加水印。最后保存添加水印后的圖片。如果是子目錄,則遞歸調用add_watermark_recursive()
函數。
請注意,以上代碼僅為示例,實際應用中可能需要根據具體需求進行修改和優化。