Sto cercando di ottenere i dati dei pixel da un oggetto WPF BitmapSource
. Come ho capito, questo può essere ottenuto chiamando il suo metodo CopyPixels
. Questo metodo richiede un parametro di passo, che non so come ottenere. Per quanto ne so, il passo è il valore che viene usato quando si entra nell'array durante la lettura o la copia. Quale sarebbe un valore di passo appropriato per qualsiasi BitmapSource?BitmapSource.CopyPixels -Qual è un buon valore per il passo?
12
A
risposta
20
È possibile utilizzare il valore stride = pixel_size * image_width. Ad esempio, per bitmap RGBA con larghezza di 100 pixel, passo = 400.
Alcune applicazioni possono richiedere un allineamento di linea speciale. Ad esempio, i bitmap GDI di Windows richiedono l'allineamento delle linee a 32 bit. In questo caso, per bitmap RGB con larghezza = 33, il valore di falcata 33 * 3 = 99 dovrebbe essere modificato a 100, per avere allineamento di linee a 32 bit nell'array di destinazione.
In genere, è necessario conoscere i requisiti dell'array di destinazione. Non ci sono requisiti speciali, usa pixel_size predefinito * image_width.
Problemi correlati
- 1. Qual è un buon strumento per annotare il codice?
- 2. Statistiche GSL, qual è il passo?
- 3. Qual è un buon metodo per * temporaneamente * ordinare un vettore?
- 4. Qual è un buon modo per creare un progetto Backbone.js?
- 5. qual è un buon modo per combinare attraverso un set?
- 6. Qual è un buon metodo pitone per trovare oggetti duplicati?
- 7. Qual è un buon modo per dividere le stringhe qui?
- 8. Qual è un buon modo per distribuire un'applicazione Perl?
- 9. Qual è un buon approccio per studiare opengl es 2.0?
- 10. Qual è un buon modo per documentare sub/pub?
- 11. Qual è il valore predefinito per Guid?
- 12. Qual è il valore RGB per UITableViewCellSelectionStyleGray?
- 13. Qual è un buon modo per testare un file per vedere se è un file zip?
- 14. Qual è il valore massimo di un numero in Lua?
- 15. Qual è un buon modo per ottenere il nome file da un URL in Ruby?
- 16. Qual è il valore di HTML5 Boilerplate per un'applicazione Rails?
- 17. Qual è il buon IDE C++ cross-platform?
- 18. Qual è il buon esempio dell'uso di "func_get_arg" in PHP?
- 19. Qual è un buon testo di inizio sulla programmazione funzionale?
- 20. Qual è il valore predefinito per un campo se non viene fornito un valore predefinito?
- 21. Qual è un buon modo per aggiungere un gran numero di piccoli oggetti galleggianti?
- 22. Qual è un buon algoritmo per il problema del vicino più prossimo in due dimensioni?
- 23. Qual è un buon modo per combinare l'impaginazione e il raggruppamento senza query in Slick 3.0?
- 24. Qual è un buon modo per eseguire il debug del codice haskell?
- 25. Qual è un buon modo per il rendering di caratteri delineati?
- 26. Qual è un buon modo per gestire i commit clean in git per un progetto legacy?
- 27. È un buon modo per usare java.util.concurrent.FutureTask?
- 28. Qual è un buon esempio di un'applicazione Java Swing?
- 29. RESTKit è un buon sostituto per ASIHTTPRequest?
- 30. Qual è un buon modo per gestire un numero di versione in un'applicazione Java?
Quindi immagino che sia la dimensione in pixel in byte allora? –
Sì, questa è la dimensione in pixel in byte. La proprietà BitmapSource.Format restituisce la struttura di PixelFormat. Ad esempio, la dimensione dei pixel per Bgr32 è 4, per Bgr24 - 3, per Gray8 - 1 ecc. Copiando i dati bitmap sull'array, è necessario conoscere esattamente la struttura dell'array risultante ed è definita dalla proprietà Format. –
Grazie mille. –