「Xamarin.MacでNSImageをファイルに保存する」の版間の差分
ナビゲーションに移動
検索に移動
imported>Monobook |
imported>Monobook |
||
1行目: | 1行目: | ||
Xamarin.Macでは、NSImageに限らず、「[[ファイル]]に保存する」という動作は基本的にNSDataに変換し、そこのSaveメソッドで行うようだ。 | Xamarin.Macでは、NSImageに限らず、「[[ファイル]]に保存する」という動作は基本的にNSDataに変換し、そこのSaveメソッドで行うようだ。 | ||
− | == 方法1 == | + | == 方法1: NSData == |
以下の方法では[[TIFFファイル]]で保存される。 | 以下の方法では[[TIFFファイル]]で保存される。 | ||
もっとも簡単な方法だと思われる。 | もっとも簡単な方法だと思われる。 | ||
29行目: | 29行目: | ||
== 方法2: System.Drawing.Image == | == 方法2: System.Drawing.Image == | ||
− | NSImageをSystem.Drawing. | + | NSImageをSystem.Drawing.Imageクラスに変換してしまう方法である。Imageクラスになってしまえば後はググれば保存方法や加工方法はモリモリ出てくる。画像データの保存などはプラットフォームに依存すべきものではないため、移植性や互換性の面からも可能であればこの方法が望ましいと思われる。 |
* [[Xamarin.Mac/NSImageをSystem.Drawing.Imageに変換する]] | * [[Xamarin.Mac/NSImageをSystem.Drawing.Imageに変換する]] | ||
42行目: | 42行目: | ||
[[category:MonoMac]] | [[category:MonoMac]] | ||
+ | [[category:Xamarin.Mac]] |
2017年6月19日 (月) 04:23時点における版
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クラスになってしまえば後はググれば保存方法や加工方法はモリモリ出てくる。画像データの保存などはプラットフォームに依存すべきものではないため、移植性や互換性の面からも可能であればこの方法が望ましいと思われる。