2016-06-20 18 views
0

私はビットマップを持っており、報告されたHorizontalResolutionVerticalResolutionのプロパティは両方とも96です。しかし、同じ画像をGimpで開くと、報告されたdpiは300x300です。ビットマップの解像度が間違っていますか?

なぜ違いがありますか?

+0

IrfanViewやWindowsのプロパティの詳細など、他のアプリケーションとは何ですか? 96dpiは一般的な画面解像度です。ビットマップを作成すると、デフォルトの画面解像度になります。ただし、保存する前に解像度を設定することもできます。 – TaW

+0

[ピクセルをポイントに変換]の複製があります(http://stackoverflow.com/questions/139655/convert-pixels-to-points) –

+0

私が知る限り、重複はありません。このリンクは決議ではなく、[typograhical points](https://en.wikipedia.org/wiki/Point_%28typography%29)です。 – TaW

答えて

0

ImageはPPIの解像度を報告します。同じファイルとは別の結果を得るために

var dpiWidth = image.Width * 72/image.HorizontalResolution; 
var dpiHeight = image.Height * 72/image.VerticalResolution; 
+0

私はこれが実際にあなたの問題ではないと答えるだけでは解決できないと思っています...イメージをどのように読むか教えてください!あなたのプログラマーに解決策を混乱させる微妙な方法があります。 - (dpiは厳密には印刷ハードウェアに関連していますが、gpiがppi以外のものを報告する理由はありません。ディスカッションのために](https://en.99designs.de/blog/tips/ppi-vs-dpi-whats-the-difference/) – TaW

+0

@Tawもう一度チェックすると、Gimpはppiを報告していますが、Gimpは300を報告します。画像レポート96. –

+0

__possible__の私の答えを見てください。 – TaW

0

この可能性のある方法:(GIMPに示すように)DPIに変換するには、次の式を使用し

Bitmap bmp1 = (Bitmap)Bitmap.FromFile(some300dpiImage); 
    Bitmap bmp2 = new Bitmap(bm1); 

今すぐbmp1 300dpiのを報告します(あるいは正確には:ppi)を予測します。

しかし、bmp2は新しいピクセルマップで、現在の画面解像度で同じピクセルから作成され、マシンの画面解像度が何であれレポートします。鉱山は120dpi/ppiです。

注:これは、dpiとppiの関係はありません。discussion about dpi - ppi see hereです。

厳密にTLTR:dpiは、印刷ハードウェアに関連するのみです。イメージソフトウェアがppi以外のものを報告する理由はありません。しかし、ppiはほとんどの場合dpiと呼ばれていますので、ピクセルを呼び出すときと同じようにすることができます。

関連する問題