「Xamarin.MacでNSImageをファイルに保存する」の版間の差分

提供:MonoBook
編集の要約なし
imported>Administrator
 
(他の1人の利用者による、間の4版が非表示)
1行目: 1行目:
[[MonoMac]]では、NSImageに限らず、「[[ファイル]]に保存する」という動作は基本的にNSDataに変換し、そこのSaveメソッドで行うようだ。
Xamarin.Macでは、NSImageに限らず、「[[ファイル]]に保存する」という動作は基本的にNSDataに変換し、そこのSaveメソッドで行うようだ。


==方法1==
== 方法1: NSData ==
以下の方法では[[TIFFファイル]]で保存される。
以下の方法では[[TIFFファイル]]で保存される。
もっとも簡単な方法だと思われる。
もっとも簡単な方法だと思われる。
28行目: 28行目:
</source>
</source>


==関連項目==
== 方法2: System.Drawing.Image ==
*[[MonoMac/NSImageをSystem.Drawing.Imageに変換する]]
NSImageをSystem.Drawing.Imageクラスに変換してしまう方法である。Imageクラスになってしまえば後はググれば保存方法や加工方法はモリモリ出てくる。画像データの読み書きなどはプラットフォームに依存すべきものではないため、移植性や互換性の面からも可能であればこの方法が望ましいと思われる。
*:System.Drawing.Imageが読み込める形式(PNGファイル)フォーマット変換を行っているのが肝。このフォーマット変換部分を上記のファイル保存と組み合わせればPNGファイルへの保存などもできるはず。


==参考文献==
* [[Xamarin.Mac/NSImageをSystem.Drawing.Imageに変換する]]
* [[Xamarin.Mac/System.Drawing.ImageをNSImageに変換する]]
 
== 関連項目 ==
 
== 参考文献 ==
{{reflist}}
{{reflist}}


38行目: 42行目:


[[category:MonoMac]]
[[category:MonoMac]]
[[category:Xamarin.Mac]]

2019年5月22日 (水) 05:13時点における最新版

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

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

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