修改image.png图像md5有两种方法:
如果直接修改镜像的二进制内容,可能会损坏镜像。如果使用图片工具修改图片的像素,不会损坏图片,但效率比较低,并且不能保证修改后不会出现视觉差异。这种方法是不可行的。
如果修改图片描述信息,不会对内容产生任何影响。还可以保证md5值发生变化。
2 工具
2.1 编辑jpg和png图片
exiftoolhttps://exiftool.org/
exiftool是一个命令行工具,可以读取和修改几乎所有图像格式的描述信息。我说“几乎”是因为它无法修改webp 图像(webp 是一种小型且常用的图像格式)。
按照官方说明安装后,使用起来非常简单,输入命令行即可
exiftool a.png
可以获取图片的exif信息:
向image.png写入信息也是类似的,比如你想写一条评论。
exiftool -comment="1234567890" a.png
如果你查看image.png,你可以看到评论已被写入。对比写入前后的镜像md5,发现发生了变化。
2.2 编辑webp图片
https://developers.google.com/speed/webp
编辑webp的exif信息需要使用Google官方工具。安装命令行工具后,使用webpmux命令
添加EXIF元数据: 添加exif信息
webpmux -set exif image_metadata.exif in.webp -o exif_container.webp
提取EXIF元数据: 读取exif信息
webpmux -get exif exif_container.webp -o image_metadata.exif 添加exif信息,需要提供image_metadata.exif文件(我没见过这种格式的文件,找了很多webp文件,无法读取出来)。
创建一个新的文本文件a.exif,在其中输入“1234567890”(任何字符串),然后使用以下命令写入图像。
webpmux -set exif a.exif a.webp -o a.webp
image.pngwebpmux -get exif a.webp -o b.exif
将exif信息读取到b.exif文件中,内容与a.exif中写入的内容一致。
3 批处理
可以使用Java调用命令行进行批处理。
Java执行命令行:
Runtime.getRuntime().exec(exec)
递归处理文件夹
/**
* 递归修改图像exif信息
* @param path 文件或文件夹路径
* @param注释写入的数据
* @param commentFile 包含写入数据的exif 文件
*/
公共静态无效editExifRecurve(字符串路径,字符串注释,字符串注释文件){
文件文件=新文件(路径);
if (file.isDirectory()) {
File[] 文件=file.listFiles();
如果(文件!=null){
log("dir" + file.getAbsolutePath());
for (文件f : 个文件) {
editExifRecurve(f.getAbsolutePath(), comment, commentFile);
}
}
} 别的{
editExif(路径、评论、评论文件);
}
}
公共静态无效editExif(字符串路径,字符串注释,字符串commentFile){
字符串低=path.toLowerCase();
字符串执行="";
if (low.endsWith(".jpg") || low.endsWith(".jpeg") || low.endsWith(".png")) {
exec="exiftool -comment=" + 注释+ " " + 路径;
} else if(low.endsWith(".webp")) {
exec="webpmux -set exif" + commentFile + " " + 路径+ " -o " + 路径;
} 别的{
返回;
}
//文件file=new File(路径);
//String md5Old=MessageDigestUtil.getFileMD5String(file);
尝试{
Runtime.getRuntime().exec(exec);
//Runtime.getRuntime().exec(exec).waitFor();
} catch (异常e) {
e.printStackTrace();
}
//String md5New=MessageDigestUtil.getFileMD5String(file);
//字符串res=md5New.equals(md5Old) ? "x" : "";
如果你还想了解更多这方面的信息,记得收藏关注本站。
【高效管理图片文件:批量编辑EXIF信息与修改MD5校验值】相关文章:
用户评论
感觉这挺实用的!我很多照片需要改日期什么的
有9位网友表示赞同!
MD5加密跟照片本身内容有关系吧?怎么修改EXIF可以改变它?
有7位网友表示赞同!
要是不小心改多了,会不会图片就变不可识别了?
有19位网友表示赞同!
这种工具主要面对什么场景呢?比如摄影师?
有16位网友表示赞同!
批量操作效率肯定高啊!要是能自动整理照片就更好了
有20位网友表示赞同!
我之前想过修改图片日期,但这跟MD5加密有什么关联吗?
有10位网友表示赞同!
EXIF信息里还有哪些内容可以修改呢?
有20位网友表示赞同!
学习一下,下次编辑照片的时候可以用用这种工具
有12位网友表示赞同!
听起来很专业,我这种 amatuer 学不会吗?
有20位网友表示赞同!
这个工具是软件还是网站啊?
有5位网友表示赞同!
不知道能不能修改图片尺寸啊,这也很重要
有5位网友表示赞同!
照片里的元信息这么重要吗?
有12位网友表示赞同!
学习一下批量操作,提升工作效率真是太棒了
有11位网友表示赞同!
这种工具对普通用户有什么用处呢?
有9位网友表示赞同!
会不会修改 EXIF 信息会影响图片本身的内容质量?
有19位网友表示赞同!
照片的元信息可以用来做什么呢?
有17位网友表示赞同!
批量操作真是方便多了,比以前的手动编辑快多了
有14位网友表示赞同!
这种工具有没有安全风险啊?
有7位网友表示赞同!
希望能有更详细教程,让我更容易上手
有13位网友表示赞同!
图片的元信息可以被谁看呢?
有13位网友表示赞同!