请简述如何批量给储存在某文件夹下的一组新闻图片添加文字水印“PHP动态网站开发”
时间: 2023-12-14 22:02:50 浏览: 62
要批量给储存在某文件夹下的一组新闻图片添加文字水印“PHP动态网站开发”,可以按照以下步骤进行操作:
1. 遍历文件夹下的所有图片文件,可以使用 `scandir()` 函数获取文件夹中的所有文件名。
```php
$dir = '/path/to/images';
$files = scandir($dir);
foreach ($files as $file) {
// 过滤掉 . 和 .. 目录
if ($file == '.' || $file == '..') {
continue;
}
// 处理文件
}
```
2. 判断文件类型是否为图片,可以使用 `getimagesize()` 函数获取文件的 MIME 类型,并判断是否为图片类型。
```php
if (strpos(mime_content_type($dir . '/' . $file), 'image') === false) {
continue;
}
```
3. 使用 `imagecreatefrom*()` 函数创建图片资源,可以根据图片的类型选择相应的函数。
```php
if (strpos(mime_content_type($dir . '/' . $file), 'image/jpeg') !== false) {
$image = imagecreatefromjpeg($dir . '/' . $file);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/png') !== false) {
$image = imagecreatefrompng($dir . '/' . $file);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/gif') !== false) {
$image = imagecreatefromgif($dir . '/' . $file);
} else {
continue;
}
```
4. 使用 `imagettftext()` 函数添加水印。
```php
$text = 'PHP动态网站开发';
$font = '/path/to/font.ttf';
$size = 16;
$color = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, $size, 0, 10, 10, $color, $font, $text);
```
5. 保存添加水印后的图片。
```php
$output = '/path/to/output/' . $file;
if (strpos(mime_content_type($dir . '/' . $file), 'image/jpeg') !== false) {
imagejpeg($image, $output);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/png') !== false) {
imagepng($image, $output);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/gif') !== false) {
imagegif($image, $output);
}
```
最终的代码如下:
```php
$dir = '/path/to/images';
$files = scandir($dir);
foreach ($files as $file) {
if ($file == '.' || $file == '..') {
continue;
}
if (strpos(mime_content_type($dir . '/' . $file), 'image') === false) {
continue;
}
if (strpos(mime_content_type($dir . '/' . $file), 'image/jpeg') !== false) {
$image = imagecreatefromjpeg($dir . '/' . $file);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/png') !== false) {
$image = imagecreatefrompng($dir . '/' . $file);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/gif') !== false) {
$image = imagecreatefromgif($dir . '/' . $file);
} else {
continue;
}
$text = 'PHP动态网站开发';
$font = '/path/to/font.ttf';
$size = 16;
$color = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, $size, 0, 10, 10, $color, $font, $text);
$output = '/path/to/output/' . $file;
if (strpos(mime_content_type($dir . '/' . $file), 'image/jpeg') !== false) {
imagejpeg($image, $output);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/png') !== false) {
imagepng($image, $output);
} elseif (strpos(mime_content_type($dir . '/' . $file), 'image/gif') !== false) {
imagegif($image, $output);
}
imagedestroy($image);
}
```
阅读全文