[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求exiftool程序的下载

求exiftool.exe程序的下载

TOP

回复 2# hfxiang


微信公众号下载的jpg文件,有一些在windows照片查看器中无法打开,其原因是内嵌了ICC文件。解决办法很简单,不需要改windows颜色配置的方法:
首先,去http://exiftool.org下载个免费的命令行程序exiftool.exe
建一个批处理文件Remove-icc.bat,用记事本编辑输入:exiftool -icc_profile= *.jpg 。
将exiftool.exe和Remove-icc.bat都放在需要更改的微信图片目录下,运行Remove-icc.bat,目录里面原jpg内嵌的icc文件都会被去除,并生成一个新的同名jpg。原jpg会自动更名为jpg_original文件,没有内嵌icc的jpg完全不影响。
按类型排序,删掉所有jpg_original文件,搞定收工。


上面这个情况,按照上面的方法为什么无效?

TOP

回复 3# wh123wh123


    请选一个“微信公众号下载的jpg文件,在windows照片查看器中无法打开”这样的图片上传到网盘,以便大家测试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 wh123wh123 于 2024-4-21 16:30 编辑

回复 4# Batcher


把图片右键保存到电脑,然后点击图片看能不能直接打开显示?看是什么原因导致无法正常显示的,期待原因和最佳解决办法

TOP

回复 5# wh123wh123


  
  1. https://exiftool.org/exiftool-12.83.zip
复制代码
用这个
bat小白,请多指教!谢谢!

TOP

就是icc , 原本打不开的 , 填充icc信息就能打开了
请确保你确实是移除了icc (3楼那)

TOP

回复 3# wh123wh123

RemoveICCfromJPG.ps1
  1. Add-Type -AssemblyName System.Drawing
  2. $cp = New-Object CodeDom.Compiler.CompilerParameters
  3. $cp.ReferencedAssemblies.Add([Reflection.Assembly]::GetAssembly([Drawing.Image]).Location) >$null
  4. $cp.CompilerOptions ='/unsafe'
  5. Add-Type -CompilerParameters $cp -TypeDefinition @"
  6. using System;
  7. using System.Drawing;
  8. using System.Drawing.Imaging;
  9. using System.IO;
  10. public class ImageProcessor
  11. {
  12.     public static void RemoveICCProfile(string imagePath)
  13.     {
  14.         string tempPath = Path.GetTempFileName();
  15.         using (Image image = Image.FromFile(imagePath))
  16.         {
  17.             if (image.PropertyItems.Length > 0)
  18.             {
  19.                 foreach (PropertyItem propertyItem in image.PropertyItems)
  20.                 {
  21.                     if (propertyItem.Id == 0x8773)
  22.                     {
  23.                         image.RemovePropertyItem(propertyItem.Id);
  24.                     }
  25.                 }
  26.             }
  27.             image.Save(tempPath, ImageFormat.Jpeg);
  28.         }
  29.         File.Delete(imagePath);
  30.         File.Move(tempPath, imagePath);
  31.     }
  32. }
  33. "@
  34. dir *.jpg | ForEach-Object {
  35.     [ImageProcessor]::RemoveICCProfile($_.FullName)
  36. }
复制代码

TOP

回复 8# buyiyang

Add-Type -AssemblyName System.Drawing
这个POWERSHELL直接就可以了吧

TOP

回复 6# 77七


@echo off
exiftool -icc_profile= *.jpg
pause

    'exiftool' 不是内部或外部命令
或批处理文件。
请按任意键继续. . .
这是咋回事?

TOP

回复 10# wh123wh123


   
把exe文件复制出来或者写exe的完整路径
1

评分人数

bat小白,请多指教!谢谢!

TOP

回复 9# terse


    用BAT或者VBS能不能解决?上面代码看不懂

TOP

回复 11# 77七


    哦,是需要修改文件名才行,.jpg_original这个文件是什么?可以删除吗?如何顺便让批处理删除掉?求个完整地批处理代码,期待老师

TOP

回复 9# terse


    ISE才可以

TOP

回复 13# wh123wh123


  
  1. @echo off
  2. cd /d "%~dp0"
  3. set "_exiftool=D:\exiftool-12.83\exiftool(-k).exe"
  4. "%_exiftool%" -icc_profile= *.jpg
  5. del "*jpg_original"
  6. pause
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表