「Xamarin.Macで画素配列からCGImageを生成する」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
2行目: 2行目:
  
 
== RGB画像 ==
 
== RGB画像 ==
RGBなのでコンポーネント数は3で問題ないと思う。
+
RGBなのでコンポーネント数は3で問題ないと思う。拾ってきたLennaの画像は正常にデコードできたようだ。
 
<source lang="csharp">
 
<source lang="csharp">
 
         public static CGImage CreateImage()
 
         public static CGImage CreateImage()
43行目: 43行目:
 
             return cgImage;
 
             return cgImage;
 
         }
 
         }
</source>
 
 
拾ってきたLennaの画像は正常にデコードできたようだ。
 
画素の入ったbyte配列をCGDataProviderクラスで[[ラップ]]してCGImageの[[コンストラクタ]]に渡すのがポイント。
 
<source>
 
            var error = "";
 
            var header = new JlsParameters();
 
            var dst = new MemoryStream();
 
            var path = Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources", "lena24b.jpg");
 
            var src = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.None);
 
            var result = Jpeg.Decode(dst, src, header, out error);
 
            Console.WriteLine(header);
 
 
            dst.Seek(0, SeekOrigin.Begin);
 
            var buf = dst.ToArray();
 
 
            // 画素データ
 
            var data = new CGDataProvider(buf);
 
            var colorspace = CGColorSpace.CreateDeviceRGB();
 
 
            var cgImage = new CGImage(
 
                header.width,
 
                header.height,
 
                header.bitsPerSample,
 
                header.bitsPerSample * header.components,
 
                header.components * header.width,
 
                colorspace,
 
                CGBitmapFlags.ByteOrderDefault,
 
                data,
 
                decode: null,
 
                shouldInterpolate: false,
 
                intent: CGColorRenderingIntent.Default);
 
 
            var nsImage = new NSImage(cgImage, new CGSize(cgImage.Width, cgImage.Height));
 
 
</source>
 
</source>
  
131行目: 97行目:
  
 
== 関連項目 ==
 
== 関連項目 ==
* [[Xamarin.Mac/CGImageをNSImageに変換する]]
 
* [[Xamarin.Mac/CGImageをファイルに保存する]]
 
  
 
== 参考文献 ==
 
== 参考文献 ==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート: