tags:

views:

304

answers:

2

I need to process large images (20,000x20,000pixels) in C#. Opening these images directly isn't the way to go because of memory limitations, but what I want to do is split the image into smaller pieces (cropping). I was looking for a 3rd party library that could the trick, but so far no result. I tried FreeImage and ImageMagick, but they cannot open an 20,000x20x000 pixel image. How can I achieve this?

+2  A: 

Don't know if this would help, but here is an article on image processing with C# lambda expressions.

jjclarkson
+1  A: 

My current project at work consists of an image viewer/analyzing program capable of loading images in excess of 16 gb. You have to use manual file IO, pull the header information out and create your subimages on-demand (or if you're processing the image, you can create a single tile and process it in-place). Very few libraries are going to give you the capability to load/modify a 20k by 20k image (1.2gb at 24bpp) and the ones that do will rarely do so with anything resembling performance (if that is a concern).

Ron Warholic
16gb+ images? Thats awesome, where are they coming from?
Allen
We work with synthetic aperture radar imagery which can generate very huge images :P
Ron Warholic
hah, thats badass (google has some great images on that), what languages do you use. I'm curious if C# could handle that kind of workload
Allen
We use C# to display everything and we P/Invoke to C++ with OpenGL to do the heavy lifting. It works surprisingly well :P
Ron Warholic