简介
图片载入
1. 获取图片文件
// 从用户上传的文件中获取图片
if ($_FILES['image']['error'] == 0) {
$imagePath = $_FILES['image']['tmp_name'];
} else {
$imagePath = 'default.jpg'; // 如果上传失败,则显示默认图片
}
2. 验证图片类型
function isImage($path) {
$imageTypes = ['image/jpeg', 'image/png', 'image/gif'];
$fileInfo = getimagesize($path);
return in_array($fileInfo['mime_type'], $imageTypes);
}
if (!isImage($imagePath)) {
echo "上传的文件不是有效的图片格式。";
exit;
}
图片处理
1. 改变图片大小
function resizeImage($path, $width, $height) {
$imageInfo = getimagesize($path);
$newWidth = $width;
$newHeight = ($height / $imageInfo[1]) * $imageInfo[0];
switch ($imageInfo[2]) {
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($path);
$newImage = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $imageInfo[0], $imageInfo[1]);
imagejpeg($newImage, $path);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($path);
$newImage = imagecreatetruecolor($newWidth, $newHeight);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $imageInfo[0], $imageInfo[1]);
imagepng($newImage, $path);
break;
case IMAGETYPE_GIF:
// GIF图片处理逻辑
break;
}
}
resizeImage($imagePath, 800, 600);
2. 添加水印
”`php function addWatermark(\(path, \)watermarkPath) {
$imageInfo = getimagesize($path);
$watermarkImage = imagecreatefrompng($watermarkPath);
$watermarkWidth = imagesx($watermarkImage);
$watermarkHeight = imagesy($watermarkImage);
switch ($imageInfo[2]) {
case IMAGETYPE_JPEG:
$image = imagecreatefromjpeg($path);
$newImage = imagecreatetruecolor($imageInfo[0], $imageInfo[1]);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $imageInfo[0], $imageInfo[1], $imageInfo[0], $imageInfo[1]);
imagecopy($newImage, $watermarkImage, $imageInfo[0] - $watermarkWidth - 10, $imageInfo[1] - $watermarkHeight - 10, 0, 0, $watermarkWidth, $watermarkHeight);
imagejpeg($newImage, $path);
break;
case IMAGETYPE_PNG:
$image = imagecreatefrompng($path);
$newImage = imagecreatetruecolor($imageInfo[0], $imageInfo[1]);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $imageInfo[0], $imageInfo[1], $imageInfo[0], $imageInfo[