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命令工具的执行路径思考的主要内容,如果未能解决你的问题,请参考以下文章

图片处理命令行工具ImageMagick介绍

ImageMagick 命令执行分析

TYPO3 9 - 图像生成失败 - ImageMagick / GraphicsMagick 处理已启用,但执行命令返回错误

安全-ImageMagick 小于等于6.9.3-9版本 命令执行漏洞复现(i春秋)

ImageMagick消除背景噪音并将其留白

curl命令详解