2


3

大きな写真を分割して参加するための小さなプログラムを作りました。 私が "Microsoft Paint"によって作られた画像をインポートするとき、この画像は "96 dpi"です。

しかし、Photoshopで作られた写真の解像度は71.6 dpiです。これらの写真をトリミングすると、新しいトリミングされた画像の解像度は96 dpiになります。

解像度を保ったまま画像をトリミングしたい

.

どうもありがとうございました

3 Answer


5


+ Bitmap.clone +`を使用すると、画像のトリミングされたコピーを作成して、保存できます。 解像度やその他何も変更してはいけません(画像が小さいほど拡大するプログラムで開くと、画像は大きくなります)。 キャンバスを拡張するために使用することはできません(メモリ不足エラーが発生するでしょう)。 そのため、ファイルから `+ Image +`を取得し、 `+ Bitmap +、( `+ system.drawing +`名前空間)にキャストし、それを小さくするために複製してから保存します。

例:

using System.Drawing;
//...
Bitmap x = (Bitmap) Image.FromFile(@"c:\tmp\food.png");
Image x2 = x.Clone(new Rectangle(25, 25, 50, 50), x.PixelFormat);
x2.Save(@"c:\tmp\food2.png");


3


DPI(dots per inch)は、ピクセルサイズとメディア上のサイズの関係にすぎません。 あなたが1024 x 768ピクセルの画像を持っているならば、それは1024 x 768です。 ビットマップ/バイナリファイルに付随する固有のDPIはありません。

300 dpiで印刷するプリンタでその画像を印刷したい場合は、たとえば、用紙のサイズを計算できます。


1


BitmapクラスのSetResolution()メソッドを使用すると、画像の解像度を指定できます。