差分

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

Xamarin.Macで画素配列からCGImageを生成する

1,233 バイト追加, 2017年8月21日 (月) 07:38
== RGB画像 ==
RGBなのでコンポーネント数は3で問題ないと思う。拾ってきたLennaの画像は正常にデコードできたようだ。RGBなのでコンポーネント数は3で問題ないと思う。
<source lang="csharp">
public static CGImage CreateImage()
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>
匿名利用者

案内メニュー