批量编辑和应用不同ACR的Javascript Actionscript Photoshop Camera RAW中的XMP设置

如何解决批量编辑和应用不同ACR的Javascript Actionscript Photoshop Camera RAW中的XMP设置

我具有静态文件夹位置,可以批量编辑照片(〜桌面/新文件夹)。我在此文件夹和相机原始设置文件(* .xmp)中有一些照片。我必须使用CameraRAW设置文件一张一张地编辑我的照片,也许是这样的:

Photo 1.jpg -> apply Setting 1.xmp;
Photo 2.jpg -> apply Setting 2.xmp;
Photo 3.jpg -> apply Setting 3.xmp;
Photo 4.jpg -> apply Setting 4.xmp;
Photo 5.jpg -> apply Setting 5.xmp;
...
...

所有照片和设置都在同一文件夹中。可以像使用javascript / jsx在Photoshop中进行批量图像编辑操作一样自动处理吗?

非常感谢您的帮助。

解决方法

我认为有可能,但是似乎无法通过常规activeDocument.activeLayer.applyCameraRaw(settings1,setting2...)

访问Camera Raw滤镜

我认为您也许可以分配一个明确的XMP,但是似乎它们由从XMP文件9 crs:UUID =“ A9A83D3876A04E49B36071604D357846”中获得的唯一ID引用。

scriptListener代码确实很难看。看一下自己:

// =======================================================
var idAdobeCameraRawFilter = stringIDToTypeID( "Adobe Camera Raw Filter" );
  var desc8 = new ActionDescriptor();
  var idCMod = charIDToTypeID( "CMod" );
  desc8.putString( idCMod,"""Filter""" );
  var idSett = charIDToTypeID( "Sett" );
  var idSett = charIDToTypeID( "Sett" );
  var idCst = charIDToTypeID( "Cst " );
  desc8.putEnumerated( idSett,idSett,idCst );
  var idWBal = charIDToTypeID( "WBal" );
  var idWBal = charIDToTypeID( "WBal" );
  var idAsSh = charIDToTypeID( "AsSh" );
  desc8.putEnumerated( idWBal,idWBal,idAsSh );
  var idTemp = charIDToTypeID( "Temp" );
  desc8.putInteger( idTemp,0 );
  var idTint = charIDToTypeID( "Tint" );
  desc8.putInteger( idTint,0 );
  var idCtoG = charIDToTypeID( "CtoG" );
  desc8.putBoolean( idCtoG,false );
  var idStrt = charIDToTypeID( "Strt" );
  desc8.putInteger( idStrt,0 );
  var idShrp = charIDToTypeID( "Shrp" );
  desc8.putInteger( idShrp,0 );
  var idLNR = charIDToTypeID( "LNR " );
  desc8.putInteger( idLNR,0 );
  var idCNR = charIDToTypeID( "CNR " );
  desc8.putInteger( idCNR,0 );
  var idVigA = charIDToTypeID( "VigA" );
  desc8.putInteger( idVigA,0 );
  var idBlkB = charIDToTypeID( "BlkB" );
  desc8.putInteger( idBlkB,0 );
  var idRHue = charIDToTypeID( "RHue" );
  desc8.putInteger( idRHue,0 );
  var idRSat = charIDToTypeID( "RSat" );
  desc8.putInteger( idRSat,0 );
  var idGHue = charIDToTypeID( "GHue" );
  desc8.putInteger( idGHue,0 );
  var idGSat = charIDToTypeID( "GSat" );
  desc8.putInteger( idGSat,0 );
  var idBHue = charIDToTypeID( "BHue" );
  desc8.putInteger( idBHue,0 );
  var idBSat = charIDToTypeID( "BSat" );
  desc8.putInteger( idBSat,0 );
  var idVibr = charIDToTypeID( "Vibr" );
  desc8.putInteger( idVibr,0 );
  var idHA_R = charIDToTypeID( "HA_R" );
  desc8.putInteger( idHA_R,0 );
  var idHA_O = charIDToTypeID( "HA_O" );
  desc8.putInteger( idHA_O,0 );
  var idHA_Y = charIDToTypeID( "HA_Y" );
  desc8.putInteger( idHA_Y,0 );
  var idHA_G = charIDToTypeID( "HA_G" );
  desc8.putInteger( idHA_G,0 );
  var idHA_A = charIDToTypeID( "HA_A" );
  desc8.putInteger( idHA_A,0 );
  var idHA_B = charIDToTypeID( "HA_B" );
  desc8.putInteger( idHA_B,0 );
  var idHA_P = charIDToTypeID( "HA_P" );
  desc8.putInteger( idHA_P,0 );
  var idHA_M = charIDToTypeID( "HA_M" );
  desc8.putInteger( idHA_M,0 );
  var idSA_R = charIDToTypeID( "SA_R" );
  desc8.putInteger( idSA_R,0 );
  var idSA_O = charIDToTypeID( "SA_O" );
  desc8.putInteger( idSA_O,0 );
  var idSA_Y = charIDToTypeID( "SA_Y" );
  desc8.putInteger( idSA_Y,0 );
  var idSA_G = charIDToTypeID( "SA_G" );
  desc8.putInteger( idSA_G,0 );
  var idSA_A = charIDToTypeID( "SA_A" );
  desc8.putInteger( idSA_A,0 );
  var idSA_B = charIDToTypeID( "SA_B" );
  desc8.putInteger( idSA_B,0 );
  var idSA_P = charIDToTypeID( "SA_P" );
  desc8.putInteger( idSA_P,0 );
  var idSA_M = charIDToTypeID( "SA_M" );
  desc8.putInteger( idSA_M,0 );
  var idLA_R = charIDToTypeID( "LA_R" );
  desc8.putInteger( idLA_R,0 );
  var idLA_O = charIDToTypeID( "LA_O" );
  desc8.putInteger( idLA_O,0 );
  var idLA_Y = charIDToTypeID( "LA_Y" );
  desc8.putInteger( idLA_Y,0 );
  var idLA_G = charIDToTypeID( "LA_G" );
  desc8.putInteger( idLA_G,0 );
  var idLA_A = charIDToTypeID( "LA_A" );
  desc8.putInteger( idLA_A,0 );
  var idLA_B = charIDToTypeID( "LA_B" );
  desc8.putInteger( idLA_B,0 );
  var idLA_P = charIDToTypeID( "LA_P" );
  desc8.putInteger( idLA_P,0 );
  var idLA_M = charIDToTypeID( "LA_M" );
  desc8.putInteger( idLA_M,0 );
  var idSTSH = charIDToTypeID( "STSH" );
  desc8.putInteger( idSTSH,0 );
  var idSTSS = charIDToTypeID( "STSS" );
  desc8.putInteger( idSTSS,0 );
  var idSTHH = charIDToTypeID( "STHH" );
  desc8.putInteger( idSTHH,0 );
  var idSTHS = charIDToTypeID( "STHS" );
  desc8.putInteger( idSTHS,0 );
  var idSTB = charIDToTypeID( "STB " );
  desc8.putInteger( idSTB,0 );
  var idPC_S = charIDToTypeID( "PC_S" );
  desc8.putInteger( idPC_S,0 );
  var idPC_D = charIDToTypeID( "PC_D" );
  desc8.putInteger( idPC_D,0 );
  var idPC_L = charIDToTypeID( "PC_L" );
  desc8.putInteger( idPC_L,0 );
  var idPC_H = charIDToTypeID( "PC_H" );
  desc8.putInteger( idPC_H,0 );
  var idPC_one = charIDToTypeID( "PC_1" );
  desc8.putInteger( idPC_one,25 );
  var idPC_two = charIDToTypeID( "PC_2" );
  desc8.putInteger( idPC_two,50 );
  var idPC_three = charIDToTypeID( "PC_3" );
  desc8.putInteger( idPC_three,75 );
  var idShpR = charIDToTypeID( "ShpR" );
  desc8.putDouble( idShpR,1.000000 );
  var idShpD = charIDToTypeID( "ShpD" );
  desc8.putInteger( idShpD,25 );
  var idShpM = charIDToTypeID( "ShpM" );
  desc8.putInteger( idShpM,0 );
  var idPCVA = charIDToTypeID( "PCVA" );
  desc8.putInteger( idPCVA,0 );
  var idGRNA = charIDToTypeID( "GRNA" );
  desc8.putInteger( idGRNA,0 );
  var idLPEn = charIDToTypeID( "LPEn" );
  desc8.putInteger( idLPEn,0 );
  var idMDis = charIDToTypeID( "MDis" );
  desc8.putInteger( idMDis,0 );
  var idPerV = charIDToTypeID( "PerV" );
  desc8.putInteger( idPerV,0 );
  var idPerH = charIDToTypeID( "PerH" );
  desc8.putInteger( idPerH,0 );
  var idPerR = charIDToTypeID( "PerR" );
  desc8.putDouble( idPerR,0.000000 );
  var idPerS = charIDToTypeID( "PerS" );
  desc8.putInteger( idPerS,100 );
  var idPerA = charIDToTypeID( "PerA" );
  desc8.putInteger( idPerA,0 );
  var idPerU = charIDToTypeID( "PerU" );
  desc8.putInteger( idPerU,0 );
  var idPerX = charIDToTypeID( "PerX" );
  desc8.putDouble( idPerX,0.000000 );
  var idPerY = charIDToTypeID( "PerY" );
  desc8.putDouble( idPerY,0.000000 );
  var idAuCA = charIDToTypeID( "AuCA" );
  desc8.putInteger( idAuCA,0 );
  var idExonetwo = charIDToTypeID( "Ex12" );
  desc8.putDouble( idExonetwo,0.000000 );
  var idCronetwo = charIDToTypeID( "Cr12" );
  desc8.putInteger( idCronetwo,0 );
  var idHionetwo = charIDToTypeID( "Hi12" );
  desc8.putInteger( idHionetwo,0 );
  var idShonetwo = charIDToTypeID( "Sh12" );
  desc8.putInteger( idShonetwo,0 );
  var idWhonetwo = charIDToTypeID( "Wh12" );
  desc8.putInteger( idWhonetwo,30 );
  var idBkonetwo = charIDToTypeID( "Bk12" );
  desc8.putInteger( idBkonetwo,-30 );
  var idClonetwo = charIDToTypeID( "Cl12" );
  desc8.putInteger( idClonetwo,0 );
  var idDfPA = charIDToTypeID( "DfPA" );
  desc8.putInteger( idDfPA,0 );
  var idDPHL = charIDToTypeID( "DPHL" );
  desc8.putInteger( idDPHL,30 );
  var idDPHH = charIDToTypeID( "DPHH" );
  desc8.putInteger( idDPHH,70 );
  var idDfGA = charIDToTypeID( "DfGA" );
  desc8.putInteger( idDfGA,0 );
  var idDPGL = charIDToTypeID( "DPGL" );
  desc8.putInteger( idDPGL,40 );
  var idDPGH = charIDToTypeID( "DPGH" );
  desc8.putInteger( idDPGH,60 );
  var idDhze = charIDToTypeID( "Dhze" );
  desc8.putInteger( idDhze,0 );
  var idTMMs = charIDToTypeID( "TMMs" );
  desc8.putInteger( idTMMs,0 );
  var idCrv = charIDToTypeID( "Crv " );
      var list1 = new ActionList();
      list1.putInteger( 0 );
      list1.putInteger( 0 );
      list1.putInteger( 255 );
      list1.putInteger( 255 );
  desc8.putList( idCrv,list1 );
  var idCrvR = charIDToTypeID( "CrvR" );
      var list2 = new ActionList();
      list2.putInteger( 0 );
      list2.putInteger( 0 );
      list2.putInteger( 255 );
      list2.putInteger( 255 );
  desc8.putList( idCrvR,list2 );
  var idCrvG = charIDToTypeID( "CrvG" );
      var list3 = new ActionList();
      list3.putInteger( 0 );
      list3.putInteger( 0 );
      list3.putInteger( 255 );
      list3.putInteger( 255 );
  desc8.putList( idCrvG,list3 );
  var idCrvB = charIDToTypeID( "CrvB" );
      var list4 = new ActionList();
      list4.putInteger( 0 );
      list4.putInteger( 0 );
      list4.putInteger( 255 );
      list4.putInteger( 255 );
  desc8.putList( idCrvB,list4 );
  var idCamP = charIDToTypeID( "CamP" );
  desc8.putString( idCamP,"""Embedded""" );
  var idCP_D = charIDToTypeID( "CP_D" );
  desc8.putString( idCP_D,"""54650A341B5B5CCAE8442D0B43A92BCE""" );
  var idPrVe = charIDToTypeID( "PrVe" );
  desc8.putInteger( idPrVe,167772160 );
  var idRtch = charIDToTypeID( "Rtch" );
  desc8.putString( idRtch,"""""" );
  var idREye = charIDToTypeID( "REye" );
  desc8.putString( idREye,"""""" );
  var idLCs = charIDToTypeID( "LCs " );
  desc8.putString( idLCs,"""""" );
  var idUpri = charIDToTypeID( "Upri" );
  desc8.putString( idUpri,"""<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160451,2017/05/06-01:08:21        ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
  xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
 crs:UprightVersion="151388160"
 crs:UprightCenterMode="0"
 crs:UprightCenterNormX="0.5"
 crs:UprightCenterNormY="0.5"
 crs:UprightFocalMode="0"
 crs:UprightFocalLength35mm="35"
 crs:UprightPreview="False"
 crs:UprightTransformCount="6"/>
</rdf:RDF>
</x:xmpmeta>
""" );
  var idGuUr = charIDToTypeID( "GuUr" );
  desc8.putString( idGuUr,"""""" );
  var idLook = charIDToTypeID( "Look" );
  desc8.putString( idLook,2017/05/06-01:08:21        ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
  xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/">
 <crs:Look>
  <rdf:Description
   crs:Name="B&amp;W 03"
   crs:Amount="1.000000"
   crs:Cluster="Adobe"
   crs:UUID="ADB81986EAF84E0999C0112BDE1F93D1"
   crs:SupportsMonochrome="false"
   crs:Copyright="© 2018 Adobe Systems,Inc."
   crs:Stubbed="true">
  <crs:SortName>
   <rdf:Alt>
    <rdf:li xml:lang="x-default">B&amp;W 03</rdf:li>
   </rdf:Alt>
  </crs:SortName>
  <crs:Group>
   <rdf:Alt>
    <rdf:li xml:lang="x-default">B&amp;W</rdf:li>
   </rdf:Alt>
  </crs:Group>
  </rdf:Description>
 </crs:Look>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
""" );
  var idPset = charIDToTypeID( "Pset" );
  desc8.putString( idPset,2017/05/06-01:08:21        ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about=""
  xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/">
 <crs:Preset>
  <rdf:Description
   crs:Name="B&amp;W High Contrast"
   crs:Amount="1.000000"
   crs:Cluster="Adobe 1.3"
   crs:UUID="A9A83D3876A04E49B36071604D357846"
   crs:SupportsMonochrome="false"
   crs:LookAmount="1.000000">
  <crs:Group>
   <rdf:Alt>
    <rdf:li xml:lang="x-default">B&amp;W</rdf:li>
   </rdf:Alt>
  </crs:Group>
  <crs:Parameters>
   <rdf:Description
    crs:Version="10.5"
    crs:ProcessVersion="10.0"
    crs:SplitToningShadowHue="0"
    crs:SplitToningShadowSaturation="0"
    crs:SplitToningHighlightHue="0"
    crs:SplitToningHighlightSaturation="0"
    crs:SplitToningBalance="0"
    crs:Whites2012="+30"
    crs:Blacks2012="-30"
    crs:Clarity2012="0"
    crs:Dehaze="0"
    crs:ToneCurveName2012="Linear">
   <crs:ToneCurvePV2012>
    <rdf:Seq>
     <rdf:li>0,0</rdf:li>
     <rdf:li>255,255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012>
   <crs:ToneCurvePV2012Red>
    <rdf:Seq>
     <rdf:li>0,255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012Red>
   <crs:ToneCurvePV2012Green>
    <rdf:Seq>
     <rdf:li>0,255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012Green>
   <crs:ToneCurvePV2012Blue>
    <rdf:Seq>
     <rdf:li>0,255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012Blue>
   </rdf:Description>
  </crs:Parameters>
  </rdf:Description>
 </crs:Preset>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
""" );
executeAction( idAdobeCameraRawFilter,desc8,DialogModes.NO );

我认为,在这种情况下,为每个设置记录一个动作可能是最好的选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-