「Xamarin.Macで画素配列からCGImageを生成する」の版間の差分

imported>Administrator
imported>Administrator
2行目: 2行目:


== RGB画像 ==
== RGB画像 ==
RGBなのでコンポーネント数は3で問題ないと思う。拾ってきたLennaの画像は正常にデコードできたようだ。
RGBなのでコンポーネント数は3で問題ないと思う。
<source lang="csharp">
<source lang="csharp">
         public static CGImage CreateImage()
         public static CGImage CreateImage()
43行目: 43行目:
             return cgImage;
             return cgImage;
         }
         }
</source>
拾ってきたLennaの画像は正常にデコードできたようだ。
<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>