簡體   English   中英

如何在不改變C#.Net的分辨率的情況下裁剪圖像?

[英]How can I crop image without changing its resolution in C#.Net?

我做了一個小程序來分割大圖片並參與其中。 當我導入由“Microsoft Paint”制作的圖像時,此圖像為“96 dpi”,因此我的程序運行良好。

但我用Photoshop制作的照片,其分辨率為71.6 dpi,當我拍攝這些照片時,新裁剪的照片分辨率為96 dpi,所以它們之間的尺寸是差別。

我希望通過保持其分辨率來裁剪圖片。

非常感謝你

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");

DPI(每英寸點數)只是像素大小與介質大小之間的關系。 如果您的圖像為1024 x 768像素,則為1024 x 768.位圖/二進制文件沒有固有的DPI。

如果要在300 dpi打印的打印機上打印該圖像,則可以計算紙張上的尺寸。

Bitmap類的SetResolution()方法允許您指定圖像的分辨率。

請參閱http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.setresolution.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM