メインメニューを開く

差分

Xamarin.Mac/System.Drawing.ImageをNSImageに変換する

187 バイト追加, 2017年7月6日 (木) 06:40
[[MonoMac]]においてSystemXamarin.MacにおいてSystem.Drawing.ImageをMonoMac.AppKitImageをAppKit.NSImageに変換する方法を試行錯誤している。 == 方法1 ==NSImageは[[ファイル]]からのインスタンス生成はできるようだが、byte[]などのメモリ上の[[データ]]からのインスタンス生成はできない。そこでCoreGraphicsのCGImageを経由して変換を行う。大雑把には以下のような手順をとった。# ImageをMemoryStreamに保存# MemoryStreamからCGImageを生成# CGImageをNSImageに変換
==方法1==
NSImageはファイルからのインスタンス生成はできるようだが、byte[]などのメモリ上のデータからのインスタンス生成はできない。
そこでMonoMac.CoreGraphicsのCGImageを経由して変換を行う。
<source lang="csharp">
using System;
using System.Drawing.Imaging;
using System.IO;
using MonoMac.Foundation; using MonoMac.AppKit; using MonoMac.CoreGraphics;
public static class NSImageExtentionsNSImageExtensions
{
public static NSImage ToNSImage(this Image image)
</source>
System.Drawing.ImageからのNSImageへの変換はともかく、byte[]からNSImageインスタンスの生成は、[[プログラム]]中で[[ウェブ]]などから[[ファイル]]を落としてきて表示するようなアプリの場合には、ほぼ登場する手法になると思われる。を落としてきて表示するようなアプリの場合にはほぼ登場する手法になると思われる。
==関連項目==*[[MonoMacXamarin.Mac]]*[[MonoMacXamarin.Mac/NSImageをSystem.Drawing.Imageに変換する]]*[[MonoMacXamarin.Mac/NSImageをファイルに保存する]]*[[Xamarin.Mac/CGImageをNSImageに変換する]]
==参考文献==
{{stub}}
 
[[category: Xamarin.Mac]]
[[category: MonoMac]]
匿名利用者