fix: 使用 webp 格式存储截图,exif 还原脚本将成功匹配的单独存档

This commit is contained in:
奇趣保罗 2025-05-08 11:56:55 +08:00
parent 2f743f0915
commit 1748bea302
3 changed files with 49 additions and 11 deletions

View File

@ -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 "所有文件处理完成!"

View File

@ -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

View File

@ -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