Xamarin.Macで画像サイズと解像度を取得するサンプルアプリケーション

Xamarin.Macで画像サイズと解像度を取得するサンプルアプリケーションです。

画像ファイルを読み込み、画像サイズやピクセル数、DPIを表示します。

NSImageやNSImageRepのSizeは、DPIを考慮した表示上のサイズ、
NSImageRepのPixelsWideとPixelsHighは、画像のピクセル数です。

これらの値からDPIを算出しています。

private void ShowImageInfo(string filename)
{
    var sb = new System.Text.StringBuilder();
    sb.AppendLine($"Filename: {filename}");

    var nsImage = new NSImage(filename);
    // 画像サイズ
    sb.AppendLine($"NSImage.Size: {nsImage.Size.Width} {nsImage.Size.Height}");

    //var nsImageRep = NSImageRep.ImageRepFromFile(filename);
    var nsImageRep = NSBitmapImageRep.ImageRepsWithData(nsImage.AsTiff())[0];
    // 画像サイズ
    sb.AppendLine($"NSImageRep.Size: {nsImageRep.Size.Width} {nsImageRep.Size.Height}");
    // ピクセル数
    sb.AppendLine($"NSImageRep.Pixels: {nsImageRep.PixelsWide} {nsImageRep.PixelsHigh}");

    // DPI
    var dpi = Math.Ceiling((72.0 * nsImageRep.PixelsWide) / nsImageRep.Size.Width);
    sb.AppendLine($"DPI = {dpi:F4}");

    Label.StringValue = sb.ToString();
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください