Straper/Program.cs
(开头部分) 6KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
using Microsoft.VisualBasic.FileIO;
using Microsoft.Win32;
using SixLabors.ImageSharp.Metadata.Profiles.Exif;
using System.Text.RegularExpressions;
using SearchOption = System.IO.SearchOption;
Console.WriteLine("欢迎使用清除图像exif信息小工具——ExifStraper by 懒得勤快\n\n");
var dirs = new List<string>();
if (args.Length > 0)
{
if (args[0] == "reg-menu")
{
RegContextMenu();
return;
}
dirs.AddRange(args);
}
else
{
var dir = "";
while (string.IsNullOrWhiteSpace(dir) || !Directory.Exists(dir))
{
Console.WriteLine("请将待处理文件夹拖放到此处:");
dir = Console.ReadLine().Trim('"');
if (dir == "reg-menu")
{
RegContextMenu();
return;
}
}
dirs.Add(dir);
}
Console.WriteLine("正在读取文件目录树......");
dirs.SelectMany(dir => Directory.EnumerateFiles(dir, "*", SearchOption.AllDirectories)).Where(s => Regex.IsMatch(s, "(jpg|jpeg|bmp)$", RegexOptions.IgnoreCase)).AsParallel().WithDegreeOfParallelism(32).ForAll(file =>
{
Console.WriteLine("正在处理:" + file);
try
{
bool modified = false;
using var image = Image.Load<Rgba64>(file);
if (image.Metadata.ExifProfile != null)
{
if (args.Contains("-a"))
{
foreach (var exifValue in image.Metadata.ExifProfile.Values)
{
if (exifValue.DataType is ExifDataType.Ascii or ExifDataType.Byte or ExifDataType.Undefined or ExifDataType.Unknown && image.Metadata.ExifProfile.RemoveValue(exifValue.Tag))
{
modified = true;
}
}
}
else
{
image.Metadata.ExifProfile.RemoveValue(ExifTag.ImageDescription);
image.Metadata.ExifProfile.RemoveValue(ExifTag.Artist);
image.Metadata.ExifProfile.RemoveValue(ExifTag.Copyright);
image.Metadata.ExifProfile.RemoveValue(ExifTag.XPTitle);
后面还有 86 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。