我创建了一个使用 ImageMagick C API 的小型 Windows 应用程序,但遇到了一些麻烦。该应用程序运行良好,我已准备好与我们组织中的其他一些人共享它,但如果没有在目标计算机上安装 ImageMagick,我找不到有关分发此类应用程序的文档。
这里有没有人有信息或信息链接,详细说明如何打包分发?需要哪些 DLL,哪些需要在 Windows 中注册?目标用户将混合使用 XP 和 Win7。
我创建了一个使用 ImageMagick C API 的小型 Windows 应用程序,但遇到了一些麻烦。该应用程序运行良好,我已准备好与我们组织中的其他一些人共享它,但如果没有在目标计算机上安装 ImageMagick,我找不到有关分发此类应用程序的文档。
这里有没有人有信息或信息链接,详细说明如何打包分发?需要哪些 DLL,哪些需要在 Windows 中注册?目标用户将混合使用 XP 和 Win7。
也从未找到解决方案,所以这就是我发现的:
使用 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]" "CoderModulesPath"="[TARGETDIR]"
[HKEY_LOCAL_MACHINE\SOFTWARE\ImageMagick\Current] "Version"="6.5.3" "QuantumDepth"=dword:00000010 "BinPath"="[TARGETDIR]" "LibPath"="[TARGETDIR]" "CoderModulesPath"="[TARGETDIR ]"
我知道这可能不是一个干净的方法,因为我在注册表中模拟了 imageMagik 的安装,我不知道如果客户端在他的机器上安装 ImageMagik 它将如何工作,但到目前为止,这是我发现的唯一方法.
我的 .net 应用程序仅使用 ImageMagik 来裁剪图像。
希望能帮助到你...
我必须做一些类似的事情,虽然我自己构建了 Imagemagick 以便我可以修剪脂肪。您可以做的是在您的机器上,使用它们提供的 exe安装 dll 。在安装过程中,确保选中安装 C 和 C++ 开发头文件和库的复选框。
然后安装目录将包含包含目录中的头文件,以及整个树中的 dll。您将在 lib 中找到需要链接的库。但是有大量的 dll,这使得这有点问题。
我在构建时最终所做的只是创建一个 ImageMagick dll 和一个 .lib 文件来链接。我从源代码创建了自己的项目并构建了一个 dll。然后,您可以使用源代码中的标头发送 dll 和您创建的 lib。
编辑:我还应该声明安装过程只发生在您的机器上。然后,您可以从安装路径复制 dlls/libs/headers 并将它们与您的包一起提供,而不是要求用户安装除您的应用程序之外的任何东西。
我可以建议两种方法:
以及打包所有二进制文件和模块文件夹,您可以简单地设置MAGICK_CODER_MODULE_PATH
和MAGICK_FILTER_MODULE_PATH
环境变量,无需进行注册表项。
请参阅module.c
ImageMagick 源代码中的函数GetMagickModulePath
。
From the description on this page, it looks like the last Windows package listed, ImageMagick-6.6.2-Q16-windows.zip, is packaged without an installer, and is intended for use with applications that want to do their own installation and distribution. This sounds closest to what you're looking for.