我想要裁剪图片的特定部分,并将其用于与硬盘中存储的另一张图片进行比较。问题是我不知道如何获取源图像的特定部分。我知道要裁剪的图像的位置(X,Y)。
我想要裁剪图片的特定部分,并将其用于与硬盘中存储的另一张图片进行比较。问题是我不知道如何获取源图像的特定部分。我知道要裁剪的图像的位置(X,Y)。
这将加载原始图像并创建一个裁剪版本,从(0,0)开始,并具有64x64的尺寸。
Bitmap original = new Bitmap( @"C:\SomePath" );
Rectangle srcRect = new Rectangle( 0, 0, 64, 64 );
Bitmap cropped = (Bitmap)original.Clone( srcRect, original.PixelFormat );
顺便提一句,您没有说明这是WinForms还是WPF,所以我选择WinForms,因为我不太了解WPF的图像处理函数。
对于那些需要在img标签中使用裁剪后的图像的人,您需要一些额外的代码(仅供参考,因为我自己也需要它)。 将上面的代码与以下代码一起使用:
byte[] imgbytes;
using (MemoryStream stream = new MemoryStream())
{
cropped.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
imgbytes = stream.ToArray();
}
<img src="@String.Format("data:image/png;base64,{0}", Convert.ToBase64String(imgbytes))" />