diff --git a/all-png-to-webp.sh b/all-png-to-webp.sh index 7259c55..64eb9b4 100755 --- a/all-png-to-webp.sh +++ b/all-png-to-webp.sh @@ -22,6 +22,12 @@ for png_file in *.png; do # 获取文件名(不含扩展名) filename="${png_file%.*}" + # 检查是否已经存在对应的 WebP 文件 + if [ -f "${filename}.webp" ]; then + echo "跳过: ${filename}.webp 已存在" + continue + fi + # 转换为 WebP 格式 echo "正在转换: $png_file -> ${filename}.webp" magick "$png_file" "${filename}.webp" @@ -29,6 +35,10 @@ for png_file in *.png; do # 写入作者信息 echo "正在写入作者信息到: ${filename}.webp" exiftool -overwrite_original -Author="奇趣保罗" "${filename}.webp" + + # 修改 WebP 文件的创建日期为 PNG 文件的日期 + echo "正在同步创建日期: ${filename}.webp <- $png_file" + touch -r "$png_file" "${filename}.webp" done echo "所有文件处理完成!" diff --git a/iphone-photo-format.sh b/iphone-photo-format.sh index a0e8c24..e4acad5 100755 --- a/iphone-photo-format.sh +++ b/iphone-photo-format.sh @@ -13,7 +13,7 @@ for file in *.{HEIC,heic,PNG,png,JPG,jpg}; do continue fi - # 跳过自己改的图片 + # 跳过自己改的图片 if [[ $filename == *"MODIFIED"* ]] || [[ $filename == *"MERGED"* ]]; then echo "文件名包含 MODIFIED 或 MERGED" continue @@ -32,6 +32,9 @@ for file in *.{HEIC,heic,PNG,png,JPG,jpg}; do fi if [[ "${filename##*.}" == "png" || "${filename##*.}" == "PNG" ]]; then + # 如果是 PNG 图片,直接转换为 WebP 格式,大概率是个截图 + new_filename="${filename%.*}.webp" + # 使用 ImageMagick 直接处理 PNG 图片 magick "$file" -gravity center -quality 80 output/$new_filename else diff --git a/recover-modified-photo-exif.sh b/recover-modified-photo-exif.sh index b68d85e..e0c2463 100755 --- a/recover-modified-photo-exif.sh +++ b/recover-modified-photo-exif.sh @@ -2,45 +2,70 @@ # 检查参数 if [ "$#" -ne 2 ]; then - echo "用法: \$0 <源文件夹路径> <被修改的文件夹路径>" + echo "用法: $0 <源文件夹路径> <被修改的文件夹路径>" exit 1 fi SOURCE_DIR="$1" TARGET_DIR="$2" +SUCCEED_DIR="$TARGET_DIR/succeed" + +# 检查并创建 succeed 目录 +if [ ! -d "$SUCCEED_DIR" ]; then + mkdir -p "$SUCCEED_DIR" + echo "创建 succeed 目录: $SUCCEED_DIR" +fi # 遍历被修改的文件夹中的所有 JPG 文件 for target_file in "$TARGET_DIR"/*.jpg; do + # 跳过 succeed 目录中的文件 + if [[ "$target_file" == *"/succeed/"* ]]; then + continue + fi + # 获取文件名(不包括路径) filename=$(basename "$target_file") - + # 去掉 .jpg 后缀以便查找源文件 base_filename="${filename%.jpg}" - + # 检查源文件夹中是否存在同名文件 if [ -f "$SOURCE_DIR/$filename" ]; then # 使用 exiftool 复制 EXIF 信息 exiftool -all= -UserComment= -tagsFromFile "$SOURCE_DIR/$filename" "$target_file" - echo "jpg" + mv "$target_file" "$SUCCEED_DIR/" + echo "jpg 匹配成功,已移动到 succeed 文件夹" # 检查源文件夹中是否存在同名的 HEIF 文件 elif [ -f "$SOURCE_DIR/$base_filename.heic" ]; then # 使用 exiftool 复制 EXIF 信息 exiftool -tagsFromFile "$SOURCE_DIR/$base_filename.heic" "$target_file" - echo "heic" + mv "$target_file" "$SUCCEED_DIR/" + echo "heic 匹配成功,已移动到 succeed 文件夹" elif [ -f "$SOURCE_DIR/$base_filename.heif" ]; then # 使用 exiftool 复制 EXIF 信息 exiftool -tagsFromFile "$SOURCE_DIR/$base_filename.heif" "$target_file" - echo "heif" + mv "$target_file" "$SUCCEED_DIR/" + echo "heif 匹配成功,已移动到 succeed 文件夹" + elif [ -f "$SOURCE_DIR/$base_filename.HIF" ]; then + # 使用 exiftool 复制 EXIF 信息 + exiftool -tagsFromFile "$SOURCE_DIR/$base_filename.HIF" "$target_file" + mv "$target_file" "$SUCCEED_DIR/" + echo "HIF 匹配成功,已移动到 succeed 文件夹" else - echo "$filename 未找到" + echo "$filename 未找到,保留在原位置" fi done -# 处理被修改的文件夹中的所有 JPG 文件,去除 GPS 信息并设置作者 -for target_file in "$TARGET_DIR"/*.jpg; do +# 处理被修改的文件夹中的所有大写 JPG 文件 +for target_file in "$TARGET_DIR"/*.JPG; do + # 跳过 succeed 目录中的文件 + if [[ "$target_file" == *"/succeed/"* ]]; then + continue + fi + # 获取文件名(不包括路径) filename=$(basename "$target_file") - + # 执行 exiftool 命令去除 GPS 信息并设置作者,删除美图秀秀生成的备注信息 exiftool -overwrite_original -UserComment= -gps:all= -artist="奇趣保罗" -CreatorTool= "$target_file" done