1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UnityでImageMagickを使う(Mac/Windows対応)

Last updated at Posted at 2022-01-03

NuGetのMagick.NETを使って、UnityでImageMagickを利用できるようにします。
Unityエディタでの実行およびスタンドアロンでの実行で動作します。
UnityでRenderTextureを画像出力してImageMagickで画像加工するツールの開発などに便利です。

環境

  • 開発OS: MacOS AMD64/MacOS AppleSilicon/Windows AMD64
  • 実行OS: MacOS AMD64/MacOS AppleSilicon/Windows AMD64
  • Unity: 2019.4.19
  • Magick.NET: 8.3.3

Magick.NETのダウンロード

以下の2つのパッケージからDLLを拝借します。

それぞれ、 https://www.nuget.org/ から取得します。magick.net.coreを例に説明します。
パッケージのWebページを開いたら、右側に「Download package」リンクがあります。ここからパッケージをダウンロードしてください(下図参照)。
この.nupkgファイルはZIP形式なので、拡張子をzipに変更して解凍しておきましょう。

NuGet.png

Unityプロジェクトの作成

新規にUnityのプロジェクトを1つ作成してください。
既存のプロジェクトに対して作業することもできますが、トラブルシュートしづらくなるのでまずは新規でお試しすることをお勧めします。
本記事では対象のUnityプロジェクトパスをPROJECT_PATHと記載します。

DLLを配置する

コピー元、コピー先が重要です。正確にコピーしてください。

コピー元 コピー先
解凍先フォルダ/magick.net-q8-x64.8.3.3/lib/netstandard20/Magick.NET-Q8-x64.dll PROJECT_PATH/Assets/Plugins/Magick.NET-Q8-x64.dll
解凍先フォルダ/magick.net-q8-x64.8.3.3/runtimes/win-x64/native/Magick.Native-Q8-x64.dll PROJECT_PATH/Magick.Native-Q8-x64.dll
(注意!プロジェクト直下です)
解凍先フォルダ/magick.net-q8-x64.8.3.3/runtimes/osx-x64/native/Magick.Native-Q8-x64.dll.dylib PROJECT_PATH/Assets/Plugins/Magick.Native-Q8-x64.bundle
(注意!拡張子を変更しています)
解凍先フォルダ/magick.net.core.8.3.3/lib/netstandard20/Magick.NET.Core.dll PROJECT_PATH/Assets/Plugins/Magick.NET.Core.dll

動作テスト

Magick.NETを使った簡単なコードを実行し、エラーがないことを確認します。
例えば、以下のコードは100x100の赤いPNG画像を生成します。

imunity.cs
using ImageMagick;
using UnityEngine;

public class imunity : MonoBehaviour
{
    void Start()
    {
        MagickImage image = new MagickImage(MagickColors.Red, 100, 100);
        image.Write("output.png");
    }
}

このように相対パスで出力ファイルを記載した場合、MacOSでは.appと同じパスに、Windowsでは.exeと同じパスに出力されます。

必要に応じて、MacOSスタンドアロン、Windowsスタンドアロンについても動作を確認します。
Windowsスタンドアロンの場合、以下2点を行わないと正しく動作しません。ご注意ください。

  • Build Settings の Architecture で x86_64 を選択
  • .exe と同じパスに Magick.Native-Q8-x64.dll をコピー

最後に

Magick.NETはバージョンごとに解凍した際のファイル構成がかなり違うので、より新しいバージョンでトライする場合は対応するファイルがどこに配置されているのか探すところから頑張ることになります。
面倒ごとを避けたい方は上記のバージョンで合わせて作業するとトラブルが少ないと思います。
あと、iOS/Androidで動作させる方法をご存じの方いらっしゃいましたらコメ欄でお教えいただけると大変うれしいです(切実)。

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?