5

ImageMagick C APIを使用する小さなWindowsアプリを作成しましたが、少しレンガの壁にぶつかりました。アプリは正常に動作し、組織内の他の数人と共有する準備ができていますが、ターゲットマシンにImageMagickをインストールしないと、そのようなアプリの配布に関するドキュメントを見つけることができません。

ここにいる誰かが、配布用にこれをパッケージ化する方法を詳述する情報、または情報へのリンクを持っていますか?どのDLLが必要で、どのDLLをWindowsに登録する必要がありますか?ターゲットユーザーは、XPとWin7を組み合わせたものになります。

4

5 に答える 5

4

解決策も見つからなかったので、ここに私が見つけたものがあります:

imageMagikNet.dll および (基礎となる) imageMagik dll を使用すると、これらの lib を正しく実行するにはいくつかのレジストリ キーが必要なようです。

これが動作するImageMagikNetアプリケーションの私のパッケージです...

  1. 6.5.3-10 に対してコンパイルされたImageMagickNET.dll ( http://imagemagick.codeplex.com/ )
  2. ImageMagick 6.5.3-10 のインストールからのすべての CORE_RL*.dll (ImageMagick-6.5.3-10-Q16-windows-dll.exe)
  3. ImageMagick 6.5.3-10 のインストールからのすべての IM_MOD_RL*.dll (ImageMagick-6.5.3-10-Q16-windows-dll.exe)
  4. ImageMagick 6.5.3-10 (ImageMagick-6.5.3-10-Q16-windows-dll.exe) のインストールからのすべて *90.dll
  5. ImageMagik 6.5.3-10 のインストールからの x11.dll

  6. 次のようなレジストリ キー:

    [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 を使用して画像をトリミングします。

それが役に立てば幸い...

于 2011-11-18T15:36:24.987 に答える
4

Imagemagick を自分で構築したので、脂肪を取り除くことができましたが、似たようなことをしなければなりませんでした。あなたができることは、あなたのマシンに、彼らが提供するexeを使ってdllをインストールすることです. インストール プロセスでは、C および C++ 開発ヘッダーとライブラリをインストールするというボックスを必ずオンにしてください。

インストール ディレクトリには、インクルード ディレクトリのヘッダーと、ツリー全体の dll が含まれます。lib に対してリンクする必要があるライブラリが見つかります。ただし、大量のdllがあり、これが少し問題になります。

私がビルドしたときに最終的に行ったことは、リンクする単一の ImageMagick dll と .lib ファイルを作成することでした。ソースから独自のプロジェクトを作成し、dll をビルドしました。その後、ソースからのヘッダーを使用して作成した dll と lib を出荷できます。

EDIT:インストールプロセスはあなたのマシンでのみ行われることも述べておく必要があります。その後、dll/libs/headers をインストール パスからコピーして、パッケージと共に出荷できます。ユーザーにアプリ以外のインストールを要求する必要はありません。

于 2010-06-24T22:35:34.080 に答える
3

私は2つの方法を提案することができます:

  1. 静的ライブラリ(ImageMagickサイトで利用可能なバイナリ)を使用し、それらを使用してアプリケーションをコンパイルします(アプリケーションが.NETなどの場合は実行できない可能性があります)
  2. WindowsはDLLの検索に常に現在のディレクトリを含めるため、アプリケーションによってロードされているDLLを確認し、インストール/アンパック中に実行可能ファイルと同じディレクトリに配置します。
  3. 理論的には、SxSで遊んで、パッケージにライブラリをSxSストアに登録させ、アプリケーションをそれらに依存させることができます。私は個人的にSxSの支持者ですが、ImageMagickチームがSxSバージョンを持っていないようで、SxS(DLL共有)を使用することで得られる価値が低下することを考えると、不必要な複雑さをもたらすと思います。
于 2010-06-24T20:18:23.473 に答える
2

すべてのバイナリ ファイルとモジュール フォルダーをパッケージ化するだけでなく、環境変数MAGICK_CODER_MODULE_PATHMAGICK_FILTER_MODULE_PATH環境変数を設定するだけで済みます。レジストリ エントリを作成する必要はありません。

module.cImageMagick ソース コードの functionを参照してくださいGetMagickModulePath

于 2012-12-08T17:18:51.193 に答える
1

このページの説明から、リストされている最後の Windows パッケージ ImageMagick-6.6.2-Q16-windows.zip は、インストーラーなしでパッケージ化されており、独自のインストールと配布を行いたいアプリケーションで使用することを意図しているようです。 . これは、探しているものに最も近いように聞こえます。

于 2010-06-18T05:45:08.920 に答える