ich in der Vision Geschäft bin, und ich einfach die Bilder auf die GPU laden OpenGL. (typischerweise 20x 2048x2000x8bpp pro Sekunde), ein bmp pro Textur, und lassen Sie die Grafikkarte skalieren (win32, Mike Lischkes opengl-Header)
Upload von einem solchen Bild kostet 5-10ms je nach genauen Grafikkarte (wenn nicht integriert und nvidia 7300 Serien oder neuer. Ganz neuere integrierte GPUs könnten auch machbar sein). Skalierung und Anzeige von Kosten 300us. Das bedeutet, dass Kunden wie verrückt schwenken und zoomen können, ohne die App zu berühren. Ich zeichne ein Overlay (das früher ein tmetafile war, aber jetzt ein eigenes Format ist) darüber.
Mein größtes Bild ist 4096x7000x8bpp das zeigt und in weniger als 30ms skaliert. (GF 8600)
Eine Einschränkung dieser Technologie ist die maximale Texturgröße. Es kann aufgelöst werden, indem das Bild in mehrere Texturen zerlegt wird, aber ich habe mich noch nicht gestört, weil ich die Systeme mit der Software liefere.
(einige typische Größen: nv6x00 Serie: 2k * 2k aber das Hochladen Pause nur etwa ist selbst im Vergleich zu GDI nv7x00 Serie. 4k * 4k Für mich ist die Baseline-Karten GF7300 die sind wie $ 20-40 nv8x00 Serie: 8k * 8k )
Beachten Sie, dass dies nicht für alle sein kann. Aber wenn Sie in der glücklichen Situation sind, Hardwaregrenzen zu spezifizieren, könnte es funktionieren. Das Hauptproblem sind Laptops wie Thinkpads, deren GPUs älter sind als die avg-Laptops, die wiederum oft eine Generation hinter Desktops stehen.
Ich habe OpenGL über DirectX gewählt, weil es in der Zeit statischer und einfacher ist, nicht spielbezogene Beispiele zu finden.
Meine App verwendet jetzt Platzhalter und Threads (skamradt, mghie) und es funktioniert perfekt.Die Vorschaubilder werden wie von Stijn Sanders vorgeschlagen extrahiert. Vielen Dank. Pieter. –
Leider ist AsyncCalls tot (eingestellt). – Ampere