Getting a particular Portion of Image (Picture)
17,058
Solution 1
This will load the original and create a cropped version starting at (0,0) and with dimensions of 64x64.
Bitmap original = new Bitmap( @"C:\SomePath" );
Rectangle srcRect = new Rectangle( 0, 0, 64, 64 );
Bitmap cropped = (Bitmap)original.Clone( srcRect, original.PixelFormat );
BTW, you don't specify if this is WinForms or WPF, so going with WinForms as I don't really know WPF image manipulation functions.
Solution 2
For those who need to use the cropped image for their website within img-tag , you need some more code (just advicing, because i needed it myself) Take the code above plus this:
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))" />
Author by
Farid-ur-Rahman
Updated on June 08, 2022Comments
-
Farid-ur-Rahman almost 2 years
I want to cut the the specific portion of the the picture and use it to compare the cropped image with another stored in the HDD. The problem is that I don't know how to get a specific section of the source image. I know the location (X,Y) of the image to be cropped.
-
Cody Gray about 13 years@user574917: Your caps lock key is stuck.
-
Farid-ur-Rahman about 13 yearsIt shows an error: Error 1 Cannot implicitly convert type 'System.Drawing.Image' to 'System.Drawing.Bitmap'. An explicit conversion exists (are you missing a cast?)
-
Ed S. about 13 yearsSorry, you need to cast the return value of Bitmap.FromFile because that method comes from the Image class. I changed it to just use the constructor instead, it was late :)