選択した入力画像ファイルの現在の品質(解像度/dpi/ppi)を確認したい。
私のコントロールは、画像アップローダー jquery プラグインです。
選択したファイルの品質を取得するにはどうすればよいですか?
(画面解像度ではなく、選択した画像ファイルの解像度が必要です)
選択した入力画像ファイルの現在の品質(解像度/dpi/ppi)を確認したい。
私のコントロールは、画像アップローダー jquery プラグインです。
選択したファイルの品質を取得するにはどうすればよいですか?
(画面解像度ではなく、選択した画像ファイルの解像度が必要です)
答えは Javascript ではなく C# にあります。JS でこれを行う方法はなく、元の質問では必須ではありませんでした。
これは、「高品質」の画像と見なされるものに大きく依存します(ところで、読みやすい)。ただし、品質係数は JPEG ファイルに直接保存されないため、ファイルから直接読み取ることはできません。
これらの要因のほとんどには、複雑な画像処理アルゴリズムが関係しています。ただし、がっかりしないでくださいPropertyItems
。Image クラスのプロパティを使用していくつかのプロパティを読み取り、いくつかの計算を行って、サイズと dpi または ppi に基づいて画像の品質を把握できます。これは簡単な例です:
Bitmap bmp = new Bitmap("winter.jpg");
Console.WriteLine("Image resolution: " + bmp.HorizontalResolution + " DPI");
Console.WriteLine("Image resolution: " + bmp.VerticalResolution + " DPI");
Console.WriteLine("Image Width: " + bmp.Width);
Console.WriteLine("Image Height: " + bmp.Height);
これも役に立ちます:画像の解像度を取得するにはどうすればよいですか? (JPEG、GIF、PNG、JPG)
「でも、アップロードする前に選択したファイルの画質を確認したい」
アップロード前に画質を確認したい場合 (コメントで述べたように)、それは質問に大きなプラスです。必要な数値を取得するための唯一の組み込み方法は、新しいインスタンスを作成する (そして画像全体をデコードする) ことです。これは非常に非効率的です。しかし...ちょっと!開始点は次のとおりです。画像をロードせずに.NETで画像の寸法を確実に取得するにはどうすればよいですか?