Para cualquiera que venga a través de este antiguo puesto, el código anterior de Gordon funciona muy bien, pero a medida que jixtra señaló, que de hecho conseguir una excepción: System.DllNotFoundException: 'No se puede cargar DLL' FreeImage ': no se pudo encontrar el módulo especificado.' al instalar a través de nuget. Pude hacerlo funcionar en .net 4.6.1 instalando el paquete nuget FreeImage-dotnet-core y agregando manualmente FreeImage.dll a la carpeta bin. Puede descargar el dll aquí: http://freeimage.sourceforge.net/download.html.
necesitaba una mejor calidad de imagen para su uso con Tesseract así que hice algunos cambios menores que hizo una gran diferencia en la calidad de la nueva jpeg:
var jp2Format = FREE_IMAGE_FORMAT.FIF_JP2;
var dib = FreeImage.LoadEx("test.jp2", ref jp2Format);
FreeImage.SetResolutionX(dib, 300);
FreeImage.SetResolutionY(dib, 300);
FreeImage.Save(FREE_IMAGE_FORMAT.FIF_JPEG, dib, "test.jpg", FREE_IMAGE_SAVE_FLAGS.JPEG_QUALITYSUPERB);
gracias por guiarme. +1 para tu respuesta. Pero después de mostrar imágenes jpeg200 en el formulario de mi ventana, recibo una excepción debido a que dib es nulo. ** Se lanzó una excepción en la línea de procesamiento. ---> System.ArgumentNullException: el valor no puede ser nulo. Nombre del parámetro: dib en FreeImageAPI.FreeImage.GetBitmap (FIBITMAP dib, Boolean copyMetadata) en FreeImageAPI.FreeImage.GetBitmap (FIBITMAP dib) **. Mientras realizaba la depuración, descubrió que el método ** static FIBITMAP LoadEx (string filename, FREE_IMAGE_LOAD_FLAGS flags, ref. Formato FREE_IMAGE_FORMAT) ** me devuelve una estructura {0} que causa la excepción anterior. –
Aparece una excepción de módulo no encontrado con el último paquete de numeración de FreeImage – jjxtra