Domanda

usavo GetDIBits per ottenere bitmap dati da un contesto di dispositivo compatibile schermo in un DIB di un certo formato. Ho avuto l'impressione che il DC necessari soltanto per sintetizzare un tavolo colore quando bitmap di origine è di 8 bit per pixel o meno. Dal momento che la mia fonte bitmap era un'immagine a colori a 32 bit e questo era un one-off del programma e non ho avuto la schermata DC a portata di mano, ho impostato il parametro HDC NULL. Questo non ha funzionato. Una volta ho afferrato la schermata DC e la passò a, lo ha fatto iniziare a lavorare.

Questo mi ha lasciato chiedendo perché GetDIBits richiede il contesto di periferica. Che cosa è utilizzato per?

È stato utile?

Soluzione

A:

int SetDIBits(
  __in  HDC hdc,
  __in  HBITMAP hbmp,
  __in  UINT uStartScan,
  __in  UINT cScanLines,
  __in  const VOID *lpvBits,
  __in  const BITMAPINFO *lpbmi,
  __in  UINT fuColorUse
);

Il secondo argomento è hbmp bitmap dipendente periferica che verrà modificato utilizzando le informazioni colore dal dispositivo bitmap indipendente. Il hdc è un handle al contesto di dispositivo da cui dipende il (dispositivo dipendente) bitmap. Quando la chiamata viene effettuata, Windows utilizza le informazioni da questo contesto di dispositivo per decidere come eseguire la trasformazione.

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