Xamarin.MacでNSImageをファイルに保存する
2017年6月19日 (月) 04:23時点におけるimported>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クラスになってしまえば後はググれば保存方法や加工方法はモリモリ出てくる。画像データの保存などはプラットフォームに依存すべきものではないため、移植性や互換性の面からも可能であればこの方法が望ましいと思われる。