Получение определенной части изображения (картинка) - PullRequest
3 голосов
/ 30 января 2011

Я хочу вырезать определенную часть изображения и использовать ее для сравнения обрезанного изображения с другим, хранящимся на жестком диске.Проблема в том, что я не знаю, как получить определенный раздел исходного изображения.Я знаю местоположение (X, Y) изображения, которое нужно обрезать.

Ответы [ 2 ]

18 голосов
/ 30 января 2011

Это загрузит оригинал и создаст обрезанную версию, начиная с (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.

2 голосов
/ 29 октября 2015

Для тех, кому нужно использовать обрезанное изображение для своего сайта в img-tag, вам понадобится еще немного кода (просто совет, потому что он мне сам нужен) Возьмите код выше плюс это:

 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))" />
...