È possibile utilizzare BitBlt per copiare direttamente da una bitmap GDI + senza utilizzare GetHBitmap?È possibile eseguire BitBlt direttamente da una bitmap GDI +?
GetHBitmap è lento perché crea una nuova copia dell'intera immagine, oltre che più lenta della copia BitBlt e il dato HBITMAP deve essere smaltito. L'immagine è grande.
C'è un modo per indicare a BitBlt di utilizzare i dati dei pixel dell'immagine GDI + originale?
MODIFICA: È possibile ottenere un puntatore al punto in cui sono presenti i dati del pixel bitmap GDI +. Posso creare un HBITMAP che punta ai dati del pixel bitmap GDI + per evitare la copia extra e BitBlt da quello?
BitBlt copie da un DC ad un altro. Per disegnare una bitmap su un DC, si seleziona la bitmap nel DC sorgente e quindi si BitBlt sulla destinazione. Se questo è quello che vuoi fare con un oggetto GDI + 'Bitmap', non dovresti semplicemente usare' Graphics.DrawImage', dove l'oggetto 'Graphics' racchiude il target DC desiderato? Perché passare attraverso un "HBitmap"? –
Il motivo per cui ho bisogno di BitBlt è che si tratta di operazioni raster. DrawImage non può eseguire un'operazione OR da un'immagine all'altra. E l'ho fatto con bitmap GDI, ma come posso selezionare una bitmap GDI + in un hDC? Mi piacerebbe davvero sapere se è possibile. – jnm2