我已经创build了一个使用ImageMagick C API的小应用程序,但已经碰到了一堵砖墙。 该应用程序工作正常,我准备与我们的组织中的其他人分享,但我找不到文件分发这样的应用程序,而无需在目标机器上安装ImageMagick。
这里有没有人有信息或信息的链接,详细说明如何打包发行? 哪些DLL是必需的,哪些需要注册到Windows? 目标用户将使用XP和Win7。
我不得不做类似的事情,尽管我自己制作了Imagemagick,所以我可以修剪脂肪。 你可以做的是在你的机器上,使用他们提供的exe来安装dll。 在安装过程中,确保您选中了安装C和C ++开发头文件和库的框。
然后,安装目录将包含包含目录中的头文件和整个树中的dll。 你会发现你需要在lib中链接的库。 虽然有很多dll,这使得这个问题成为了一个问题。
当我建立的时候我最终做的只是创建一个ImageMagick dll和一个.lib文件来链接。 我从源创建我自己的项目,并建立一个DLL。 然后你可以发送dll和你创建的源文件头的头文件。
编辑:我也应该说,安装过程只发生在你的机器上。 然后,您可以从安装路径中复制dlls / libs / headers,并将它们与您的软件包一起发货,而不是要求用户安装除您的应用程序之外的任何内容。
从来没有找到一个解决方案,所以这里是我发现:
使用imageMagikNet.dll和(底层)imageMagik DLL,似乎这些库需要一些注册表项才能正常运行。
这是我的包装的ImageMagikNet应用程序工作…
从ImageMagik 6.5.3-10安装x11.dll
一个注册表项如下所示:
[HKEY_LOCAL_MACHINE \ SOFTWARE \的ImageMagick]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ ImageMagick的\ 6.5.3]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ ImageMagick \ 6.5.3 \ Q:16]“BinPath”=“[TARGETDIR]”“LibPath”=“[TARGETDIR]”“CodermoduleesPath”=“[TARGETDIR]”
[HKEY_LOCAL_MACHINE \ SOFTWARE \ ImageMagick \ Current]“CodermoduleesPath”=“[TARGETDIR]”“ ]”
我知道,可能不是一个干净的方式去,因为我模拟在注册表中的imageMagik安装,我不知道如何将它的工作,如果一个客户端在他的机器上安装ImageMagik,但迄今为止,这是我发现的唯一方法。
我的.net应用程序只使用ImageMagik裁剪图像。
希望能帮助到你…
我可以建议两种方法:
从这个页面上的描述看来,它看起来像列出的最后一个Windows包,ImageMagick-6.6.2-Q16-windows.zip,没有安装程序打包,旨在用于希望自己安装和分发的应用程序。 这听起来最接近你正在寻找的东西。
以及打包所有的二进制文件和模块文件夹,您可以简单地设置MAGICK_CODER_MODULE_PATH
和MAGICK_FILTER_MODULE_PATH
环境变量,无需创建注册表项。
在ImageMagick源代码中查看module.c
,函数GetMagickmoduleePath
。