0

私はimagemagix.Net dllを使用して画像コンバーターアプリを構築していましたが、何をしてもこのエラーが発生します..ファイルが存在し、dllをプロジェクトのデバッグフォルダーにコピーします。なぜ何か提案はありますか?エラー:

    System.IO.FileNotFoundException was unhandled
  HResult=-2147024770
  Message=Could not load file or assembly 'ImageMagickNET.dll' or one of its dependencies. The specified module could not be found.
  Source=WindowsFormsApplication1
  FileName=ImageMagickNET.dll
  FusionLog=""
  StackTrace:
       at WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e)
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.Run(Form mainForm)
       at WindowsFormsApplication1.Program.Main() in c:\Users\serak\Documents\Visual Studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs:line 18
       at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
       at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException:

ソースコード :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ImageMagickNET;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string fileloc;
        MagickNet m;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            MagickNet.InitializeMagick();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MagickNet.InitializeMagick();
            OpenFileDialog fl= new OpenFileDialog ();
            if (fl.ShowDialog() == DialogResult.OK)
            {
                fileloc = fl.FileName;
                using (ImageMagickNET.ImageList im = new ImageMagickNET.ImageList())
                {
                    im.ReadImages(fileloc);
                    int i = 0;
                    foreach (ImageMagickNET.Image image in im)
                    {
                        image.Quality = 100;
                        image.CompressType = ImageMagickNET.CompressionType.LosslessJPEGCompression;
                        image.Write(fileloc.Substring(0, fileloc.LastIndexOf('\\')) + i + ".jpg");
                        ++i;
                    }
                }
            }

        }
    }
}
4

1 に答える 1

0

ITの長い道のりのプロセス私は圧縮されたTiff画像を非圧縮の200dpi画像に変換しようとしていました...とにかくこの問題の解決策はこれです..**Fabiobrの指示は私にとって完璧に機能し、小さなアドオンが1つあります。ここで要約します:(私は8ビットバージョンを使用しています...以下の「8」を参照する場合は常に「16」に置き換えてください)

1)このプロジェクトをダウンロードして、どこでも解凍します。2)プロジェクトで、bin\Q8フォルダーにあるImageMagickNET.dllを参照します。3)http://image_magick.veidrodis.com/image_magick/binaries/にアクセスし、「ImageMagick-6.5.3-10-Q8-windows-dll.exe」をダウンロードします。4)インストールを実行し、すべてのデフォルトを受け入れます。5)C:\ Program Files\ImageMagick-6.5.3-Q8にあるすべてのDLLをプロジェクトのROOTフォルダーにコピーします。(binフォルダではありません)6)「出力ディレクトリにコピー」を「常にコピー」に設定します

DLLをbinフォルダーにコピーすると、デバッグ(または公開)時に実行可能ファイルと同じフォルダーに配置されず、このエラーが発生します。それらをルートフォルダにコピーすることにより、実行可能ファイルと同じディレクトリにコピーされます。

ヘルプドキュメントだけが良かったら...**

于 2013-02-07T08:31:26.033 に答える