estoy en el negocio de la visión, y simplemente subir las imágenes a la GPU usando OpenGL. (típicamente 20x 2048x2000x8bpp por segundo), un bmp por textura, y deje que la escala de la tarjeta de video (win32, encabezados opengl de Mike Lischke)
La carga de dicha imagen cuesta 5-10ms dependiendo de la tarjeta de video exacta (si no está integrada y nvidia 7300 serie o más reciente. También es posible realizar GPU integradas muy recientes). Escalar y visualizar cuesta 300us. Lo que significa que los clientes pueden desplazarse y acercarse como locos sin tocar la aplicación. Dibujé una superposición (que solía ser un archivo tmeta pero ahora es un formato propio) en la parte superior.
Mi imagen más grande es 4096x7000x8bpp que muestra y escala en menos de 30ms. (GF 8600)
Una limitación de esta tecnología es el tamaño máximo de la textura. Puede resolverse fragmentando la imagen en múltiples texturas, pero todavía no me he molestado porque entrego los sistemas con el software.
(algunos tamaños típicos: nv6x00 serie: 2k * 2k, pero la carga se trata sólo de un punto de equilibrio en comparación con GDI nv7x00 serie:. 4k * 4k Para mí las tarjetas de línea de base GF7300 de son como $ 20-40 nv8x00 serie: 8k * 8k )
Tenga en cuenta que esto puede no ser adecuado para todos. Pero si te encuentras en la situación afortunada de especificar límites de hardware, podría funcionar. El principal problema son las computadoras portátiles como los Thinkpads, las GPU de las cuales son más viejas que la computadora portátil avg, que a su vez a menudo están a una generación detrás de las computadoras de escritorio.
Escogí OpenGL por DirectX porque es más estático en el tiempo y más fácil de encontrar ejemplos no relacionados con el juego.
Mi aplicación ahora usa marcadores de posición e hilos (skamradt, mghie) y funciona perfectamente.Las miniaturas se extraen según lo sugerido por Stijn Sanders. Gracias. Pieter. –
Desafortunadamente, AsyncCalls está muerto (descontinuado). – Ampere