Skip to content

Instantly share code, notes, and snippets.

@veigr
Created February 4, 2015 06:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save veigr/4557e386ab14fe0fc9e5 to your computer and use it in GitHub Desktop.
Save veigr/4557e386ab14fe0fc9e5 to your computer and use it in GitHub Desktop.
[WinRT][SharpDX]埋め込みプロファイルの取得
// 埋め込みプロファイル取得
var stream = await File.OpenReadAsync(); // StorageFile
var decoder = new BitmapDecoder(factory, stream.AsStream(), DecodeOptions.CacheOnDemand);
var frame = decoder.GetFrame(0); // 1フレーム目のみ取得
var srcContexts = frame.TryGetColorContexts(factory);
// GetColorContexts未対応コーデックだとnull、プロファイルが無いと長さ0となる
var untaggedOrUnsupported = srcContexts == null || srcContexts.Length < 1;
var sRGBColorContext = new ColorContext(factory);
sRGBColorContext.InitializeFromExifColorSpace(1); // 1を指定するとsRGB
// プロファイルが読み込めなかった場合はsRGBとみなす
var srcContext = !untaggedOrUnsupported ? srcContexts[0] : sRGBColorContext;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment