要基于EXIF信息旋转文件夹中的所有图像并覆盖旧照片,你可以使用PHP编写一个脚本。以下是一个简单的示例代码,展示了如何实现这一功能:
<?php
// 设置图片文件夹路径
$imageFolder = 'path/to/your/image/folder/';
// 遍历文件夹中的所有图片文件
foreach (new DirectoryIterator($imageFolder) as $fileInfo) {
if ($fileInfo->isFile() && in_array($fileInfo->getExtension(), ['jpg', 'jpeg', 'png'])) {
$imagePath = $fileInfo->getPathname();
$image = imagecreatefromjpeg($imagePath); // 对于JPEG图片
// $image = imagecreatefrompng($imagePath); // 对于PNG图片
// 获取EXIF数据
$exif = @exif_read_data($imagePath);
if ($exif && isset($exif['Orientation'])) {
switch ($exif['Orientation']) {
case 3:
$image = imagerotate($image, 180, 0);
break;
case 6:
$image = imagerotate($image, -90, 0);
break;
case 8:
$image = imagerotate($image, 90, 0);
break;
}
}
// 覆盖旧照片
if (in_array($fileInfo->getExtension(), ['jpg', 'jpeg'])) {
imagejpeg($image, $imagePath, 100);
} elseif ($fileInfo->getExtension() == 'png') {
imagepng($image, $imagePath, 9);
}
// 销毁图像资源
imagedestroy($image);
}
}
echo "所有图片已根据EXIF信息旋转并覆盖旧照片。\n";
?>
通过以上代码和解释,你应该能够实现基于EXIF信息旋转文件夹中的所有图像并覆盖旧照片的功能。
领取专属 10元无门槛券
手把手带您无忧上云