大きな写真を分割して参加する小さなプログラムを作りました。「Microsoftペイント」で作成した画像をインポートすると、この画像は「96 dpi」なので、プログラムは正常に動作します。
しかし、Photoshopで作成した画像の解像度は71.6 dpiです。これらの画像をトリミングすると、新しいトリミングされた画像の解像度は96 dpiになるため、サイズはそれらの間で異なります。
解像度を維持したまま画像をトリミングしたい。
。
どうもありがとうございます
大きな写真を分割して参加する小さなプログラムを作りました。「Microsoftペイント」で作成した画像をインポートすると、この画像は「96 dpi」なので、プログラムは正常に動作します。
しかし、Photoshopで作成した画像の解像度は71.6 dpiです。これらの画像をトリミングすると、新しいトリミングされた画像の解像度は96 dpiになるため、サイズはそれらの間で異なります。
。
どうもありがとうございます
Bitmap.clone
画像のトリミングされたコピーを作成し、保存することができます。解像度などは変更しないでください(画像が小さいときにズームインするプログラムで開くと、画像が大きく見えます)。キャンバスを拡張するために使用することはできません(メモリ不足エラーが発生します)。したがって、fromファイルを取得し、(名前空間)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");
DPI(dots per inch)は、ピクセルサイズとメディア上のサイズの関係にすぎません。1024 x 768ピクセルの画像がある場合、それは1024x768です。ビットマップ/バイナリファイルに添付された固有のDPIはありません。
300 dpiで印刷するプリンタでその画像を印刷する場合は、たとえば、用紙のサイズを計算できます。
BitmapクラスのSetResolution()メソッドを使用すると、画像の解像度を指定できます。
http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspxを参照してください