ImageMagick命令工具的执行路径思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImageMagick命令工具的执行路径思考相关的知识,希望对你有一定的参考价值。
此文为论坛内容转述
原帖地址:https://www.imagemagick.org/discourse-server/viewtopic.php?t=20542
1. utilities/convert.c中的main函数在IMv7中已经在主流程的utilities/magick.c中被废弃掉了
2. 实际上这个命令调用了一个wrapper函数MagickCommandGenesis(),这个打包函数能够处理诸如“-resize -bench"这样的选项,然后这个函数将清洗好的选项参数给到处理请求的真正函数里面,这个函数往往是作为MagickCommandGenesis()函数的一个参数
3. 对于convert命令来说这个实际的函数就是ConvertImageCommand(),它位于”wand/convert.c",这个函数真正来理解这些参数数组到底需要干嘛
4. 这个函数的大部分内容复杂且对高版本用户来说无用,大部分代码需要做参数check以及对IMv5内容的处理。真正的在IMv6版本中的处理是由 "wand/mogrify.c" 中的函数处理的,这个函数由FireImageStack() 宏来调用
5. IMv7更加直接, 没有macro代码,首先在"MagicWand/magick-cli.c"进行参数处理,然后调用ProcessCommandOptions() 或者ProcessScriptOptions() 处理参数选项,对应不同的选项它会调用不同的函数(位于"MagickWand/operation.c"中)来处理对应的选项。
6. IMv7的选项处理未来将会替代IMv6的模式,magick命令也将取代convert
以上是关于ImageMagick命令工具的执行路径思考的主要内容,如果未能解决你的问题,请参考以下文章
TYPO3 9 - 图像生成失败 - ImageMagick / GraphicsMagick 处理已启用,但执行命令返回错误