Domanda

So che è possibile e molto più veloce rispetto all'utilizzo di GDI +. Tuttavia non ho trovato alcun buon esempio di utilizzo di DirectX per ridimensionare un'immagine e salvarla su disco. L'ho implementato più volte in GDI +, non è difficile. Tuttavia GDI + non utilizza alcuna accelerazione hardware e speravo di ottenere prestazioni migliori toccando la scheda grafica.

È stato utile?

Soluzione

Hai davvero bisogno di usare DirectX? GDI + fa bene il lavoro per ridimensionare le immagini. In DirectX, non è necessario ridimensionare le immagini, poiché molto probabilmente le immagini verranno visualizzate come trame. Poiché le trame possono essere applicate solo sull'oggetto 3d (triangoli / poligoni / mesh), la dimensione dell'oggetto 3d e la porta di visualizzazione determinano la dimensione effettiva dell'immagine visualizzata. Se è necessario ridimensionare la trama all'interno dell'oggetto 3d, è sufficiente riprodurre le coordinate o la matrice della trama.

Per manipolare la trama, puoi usare la fusione alfa, il mascheramento e ogni tipo di tecnica di manipolazione della trama, se è quello che stai cercando. Per manipolare singoli pixel come GDI +, penso ancora che GDI + sia il modo di fare. DirectX non ha mai dovuto riparare la manipolazione delle immagini.

Altri suggerimenti

Puoi caricare l'immagine come trama, mapparla su un quad e disegnarlo su qualsiasi dimensione sullo schermo. Quello farà il ridimensionamento. Successivamente è possibile catturare i dati pixel dallo schermo, archiviarli in un file o elaborarli ulteriormente.

È facile. Gli esempi di texture DirectX di base forniti con l'SDK possono essere modificati per fare proprio questo.

Tuttavia, è lento. Non il rendering stesso, ma il trasferimento di dati pixel dallo schermo a un buffer di memoria.

Imho sarebbe molto più semplice e veloce scrivere un piccolo codice che ridimensiona un'immagine usando il ridimensionamento bilineare da un buffer a un altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top