Sono nel business visione, e ho semplicemente caricare le immagini alla GPU utilizzando OpenGL. (in genere 20x 2048x2000x8bpp al secondo), un bmp per trama e lasciare la scala del videocard (win32, intestazioni opengl di Mike Lischke)
Il caricamento di tale immagine costa 5-10 ms a seconda del video esatto (se non integrato e nvidia 7300 serie o più recenti. Anche le GPU integrate molto recenti potrebbero essere fattibili). Ridimensionamento e visualizzazione dei costi 300us. Il che significa che i clienti possono eseguire panoramiche e zoom come matti senza toccare l'app. Disegno un overlay (che era un tmetafile ma ora è un proprio formato) su di esso.
La mia immagine più grande è 4096x7000x8bpp che mostra e scala in meno di 30 ms. (GF 8600)
Una limitazione di questa tecnologia è la dimensione massima della trama. Può essere risolto frammentando l'immagine in più trame, ma non mi sono ancora preoccupato perché distribuisco i sistemi con il software.
(alcune dimensioni tipiche: nv6x00 serie: 2k * 2k ma caricato è solo di andare in pari rispetto al GDI nv7x00 serie:. 4k * 4k Per me le carte di base GF7300 di sono come $ 20-40 nv8x00 serie: 8k * 8k )
Si noti che questo potrebbe non essere per tutti. Ma se ti trovi nella situazione fortunata per specificare i limiti hardware, potrebbe funzionare. Il problema principale sono i laptop come i Thinkpad, le cui GPU sono più vecchie del laptop avg, che a loro volta sono spesso una generazione dietro i desktop.
Ho scelto OpenGL su DirectX perché è più statico nel tempo e più facile da trovare esempi relativi ai giochi.
fonte
2009-05-07 19:24:14
La mia app ora utilizza segnaposto e fili (skamradt, mghie) e funziona perfettamente.Le miniature sono estratte come suggerito da Stijn Sanders. Grazie. Pieter. –
Sfortunatamente, AsyncCalls è morto (fuori produzione). – Ampere