首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确的委托- ImageMagick

正确的委托- ImageMagick
EN

Stack Overflow用户
提问于 2017-10-05 11:44:37
回答 2查看 1.4K关注 0票数 0

Ubuntu 17.04 + ImageMagick 7-0-6 ImageMagick

delegates.xml中声明的委托中有许多索尼原始( SONY )(SONY)文件。

..。委托decode="arw“command=”/opt/alfresco/script/arw2jpg.sh“"%i”“%o”/ 委托decode=“dng:解码”“command=”“ufraw-批”

coder.xml -无变化

arw2jpg.sh --使用DCRAW从ARW中提取嵌入式JPG的自定义脚本(dcraw -e .)。脚本本身工作正常。

问题-在转换作业期间,ImageMagick总是选择dng:解码委托而不是arw

有人能帮我为ImageMagick定义正确的委托顺序吗?

EN

回答 2

Stack Overflow用户

发布于 2017-10-05 13:21:51

您只需确保在使用过程中指定了自定义委托协议。

例如..。

代码语言:javascript
复制
convert arw:input_file.arw output.jpg

为什么?

ImageMagick通过magick-header/number来选择委托,如果它找不到委托,它将评估匹配的文件扩展名。在您的示例中,您只是有相互竞争的委托,冲突解决/优先级对您不利。您必须明确使用哪个委托(即arw:)。

票数 1
EN

Stack Overflow用户

发布于 2017-10-11 09:07:11

埃里克的答案是正确的,理智的方法,但你似乎被困在岩石和困难的地方,所以这里有一个有点疯狂的方式来做。

如果ImageMagick总是选择DNG委托,而您无法覆盖此委托,则可以通过更改DNG委托来强制使用DNG委托来选择所需的方式。因此,您将更改现有的DNG行,如下所示:

代码语言:javascript
复制
delegate decode="dng:decode" command=""YourDecider" " "%i" "%o" "%u"

然后在/usr/local/bin中编写一个脚本,该脚本查看文件扩展名,或者使用适当的参数调用/opt/alfresco/scripts/arw2jpg.sh,或者用与delegates.xml中相同的参数集调用ufraw-batch,即--silent --create-id=also --out-type=png --out-depth=16...

所以,您的脚本/usr/local/bin/YourDecider看起来像这样--完全未经测试--只是想给您一个想法:

代码语言:javascript
复制
#!/bin/bash
################################################################################
# YourDecider
# Choose between decoding file with arw2jpg or ufraw-batch
################################################################################
in=$1
out=$2
unique=$3
ext=$(tr "[:upper:]" "[:lower:]" <<< "${in##*.}") 
if [ "$ext" = "arw" ]; then
   exec /opt/alfresco/scripts/arw2jpg.sh "$in" "$out"
else
   exec ufraw-batch --silent --create-id=also --out-type=png --out-depth=16 --output="${unique}.png" "$in" ...
fi

您必须通过以下方式使其可执行:

代码语言:javascript
复制
chmod +x /usr/local/bin/YourDecider
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46584795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档