3

たとえば、C# は、選択した画像に 96 ppi が含まれていることを示していますが、Photoshop の同じ画像には 72 ppi が含まれています。

なぜ違いがあるのですか?

この場合、私は Photoshop を信頼する傾向があります。また、C# が偽の結果を返す場合、画像の解像度をテストする方法を教えてください。

ppi != 300 のすべての画像を拒否する何らかのバリデーター コントロールを構築する必要があります。

コントロールは、jpg、jpeg、gif、png、bmp の形式をサポートする必要があります。

コードを以下に示します。

Image i = Image.FromFile(FileName);

Console.Write(i.VerticalResolution);
Console.Write(i.HorizontalResolution);
4

2 に答える 2

7

DPI は、1 インチあたりのドット (ピクセル) を意味します。インチ単位の物理的なサイズは主観的であり、現在のモニターのサイズと解像度に基づいています。メタデータ (gif と bmp には含まれていない) に依存していない限り、これを確実に計算することはできません。

Photoshop には、印刷用に画像を変換するときに使用する DPI の規定値があります。この値は PSD ファイルに保存され、JPEG メタデータにコピーされる場合がありますが、DPI メタデータのない形式で画像を保存すると、情報は保存されません。

アップデート:

コードが異なる値を取得する理由は、C#がコンピューターの現在の DPI 設定からその値VerticalResolutionと値をフェッチするためです。HorizontalResolutionPhotoshop の DPI は印刷用であるため、イメージをプリンターに送信する場合は物理的な寸法を認識します。デフォルト値は 72dpi ですが、これは変更できます。ただし、画面はピクセルのみを扱うため、この値は画面上では意味がありません。

于 2011-12-14T14:26:02.323 に答える
1

DPI は 1 インチあたりのドット数を意味します。ビットマップ画像には固有の DPI はありません。サイズは、水平方向のピクセル数と垂直方向 (幅と高さ) のピクセル数です。画像は、各インチに何ピクセルを詰め込みたいかを指定した場合にのみ、解像度 (DPI) が得られます。

したがって、幅 100 ピクセル、高さ 100 ピクセル (100px × 100px) の画像がある場合、それを印刷 (または印刷サイズを指定する形式に変換) すると、100 DPI になります。 1 平方インチ (1" × 1")。2 インチ x 2 インチの正方形に収まるように印刷すると、50 DPI になります。

于 2011-12-14T14:27:46.513 に答える