Intentando crear una aplicación de adquisición de imágenes optimizada para un escáner rápido (que puede proporcionar hasta 6 imágenes comprimidas [color + gris + binario] [frontal + posterior] para cada papel a una velocidad de 150 ppm) Tengo algo de velocidad cuestiones. Uso de la tecnología TWAIN y el modo de transferencia del búfer de memoria (TWSX_MEMORY) Recibo el búfer de imagen (como archivo JPEG o TIFF cargado en la memoria) del escáner y lo guardo en la ruta de destino de mi aplicación. Si no quiero crear miniaturas, mi aplicación no causa ninguna pérdida de velocidad para el escáner, pero si quiero, debido a la forma en que lo hago (guardando el búfer en un archivo en mi dll de manejo de TWAIN en C++, notificando a mi host .NET aplicación con ruta de archivo de destino usando un puntero de función, abriendo el archivo de imagen en C# y creando la imagen en miniatura), mi aplicación causa una pérdida de velocidad extrema a la velocidad de escaneo. Intenté algunas optimizaciones, como realizar una fase de carga en un subproceso separado y enviar un búfer de archivo de imagen no administrado al host .NET e intentar cargarlo en un contexto inseguro (UnmanagedMemoryStream) y crear una miniatura. Pero no mejoró la velocidad significativamente. Entonces mi pregunta es:Tener un búfer de archivo de imagen en la memoria, ¿cuál es la forma más rápida de crear su miniatura?
Al tener un búfer de archivos de imágenes en la memoria (por ejemplo, 24 bits JPEG comprimidos sin una miniatura embebida), ¿hay una forma rápida y directa de crear una imagen en miniatura? ¿Qué sugieres como método más rápido para crear miniaturas en este caso?
Gracias, parece ser lo que quería. –
He logrado probar EPEG, para cualquiera interesado en hacer lo mismo, debo mencionar que parece que la biblioteca EPEG ahora ha sido eliminada del código fuente de iluminación, por lo que debe buscarla dentro de sus viejos códigos fuente, por ejemplo aquí: http://download.enlightenment.org/snapshots/2008-01-25/. –
Para imágenes TIFF, utilicé este código: http://www.koders.com/c/fidFAE1882A0596B9D224D831B852AE9891D0154D6D.aspx. No es tan rápido como EPEG, pero hace el trabajo. –