Xamarin.MacでNSImageをファイルに保存する

提供: MonoBook
ナビゲーションに移動 検索に移動

Xamarin.Macでは、NSImageに限らず、「ファイルに保存する」という動作は基本的にNSDataに変換し、そこのSaveメソッドで行うようだ。

方法1: NSData[編集 | ソースを編集]

以下の方法ではTIFFファイルで保存される。 もっとも簡単な方法だと思われる。

    using System;
    using System.Drawing;
    using System.IO;
    using MonoMac.Foundation;
    using MonoMac.AppKit;

    public static class NSImageExtentions
    {
        public static NSError Save(this NSImage image, string file)
        {
            NSError error = null;

            using (var imageData = image.AsTiff())
            {
                imageData.Save(file: file, auxiliaryFile: false, error: out error);
            }

            return error;
        }
    }

方法2: System.Drawing.Image[編集 | ソースを編集]

NSImageをSystem.Drawing.Imageクラスに変換してしまう方法である。Imageクラスになってしまえば後はググれば保存方法や加工方法はモリモリ出てくる。画像データの読み書きなどはプラットフォームに依存すべきものではないため、移植性や互換性の面からも可能であればこの方法が望ましいと思われる。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]