Condividi tramite


Funzione StretchBlt (wingdi.h)

La funzione StretchBlt copia una bitmap da un rettangolo di origine in un rettangolo di destinazione, estendendo o comprimendo la bitmap per adattare le dimensioni del rettangolo di destinazione, se necessario. Il sistema estende o comprime la bitmap in base alla modalità di estensione attualmente impostata nel contesto del dispositivo di destinazione.

Sintassi

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

Parametri

[in] hdcDest

Handle al contesto del dispositivo di destinazione.

[in] xDest

Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.

[in] yDest

Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di destinazione.

[in] wDest

Larghezza, in unità logiche, del rettangolo di destinazione.

[in] hDest

Altezza, in unità logiche, del rettangolo di destinazione.

[in] hdcSrc

Handle nel contesto del dispositivo di origine.

[in] xSrc

Coordinata x, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.

[in] ySrc

Coordinata y, in unità logiche, dell'angolo superiore sinistro del rettangolo di origine.

[in] wSrc

Larghezza, in unità logiche, del rettangolo di origine.

[in] hSrc

Altezza, in unità logiche, del rettangolo di origine.

[in] rop

Operazione raster da eseguire. I codici di operazione raster definiscono il modo in cui il sistema combina i colori nelle operazioni di output che coinvolgono un pennello, una bitmap di origine e una bitmap di destinazione.

Per un elenco di codici di operazione raster comuni, vedere BitBlt (ROP). Si noti che l'ROP CAPTUREBLT in genere non può essere usato per la stampa dei contesti del dispositivo.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero.

Commenti

StretchBlt estende o comprime la bitmap di origine in memoria e quindi copia il risultato nel rettangolo di destinazione. Questa bitmap può essere una bitmap compatibile (DDB) o l'output da CreateDIBSection. I dati dei colori per i pixel di modello o di destinazione vengono uniti dopo che si verifica l'estensione o la compressione.

Quando viene registrato un metafile avanzato, si verifica un errore (e la funzione restituisce FALSE) se il contesto del dispositivo di origine identifica un contesto di dispositivo metafile avanzato.

Se l'operazione raster specificata richiede un pennello, il sistema usa il pennello attualmente selezionato nel contesto del dispositivo di destinazione.

Le coordinate di destinazione vengono trasformate usando la trasformazione attualmente specificata per il contesto del dispositivo di destinazione; le coordinate di origine vengono trasformate usando la trasformazione attualmente specificata per il contesto del dispositivo di origine.

Se la trasformazione di origine ha una rotazione o un'esere, si verifica un errore.

Se le bitmap di destinazione, origine e modello non hanno lo stesso formato di colore, StretchBlt converte le bitmap di origine e pattern in modo che corrispondano alla bitmap di destinazione.

Se StretchBlt deve convertire una bitmap monocromatica in una bitmap di colore, imposta bit bianchi (1) sul colore di sfondo e i bit neri (0) nel colore di primo piano. Per convertire una bitmap di colore in una bitmap monocromatica, imposta i pixel che corrispondono al colore di sfondo su bianco (1) e imposta tutti gli altri pixel su nero (0). Vengono utilizzati i colori di primo piano e di sfondo del contesto del dispositivo a colori.

StretchBlt crea un'immagine mirror di una bitmap se i segni dei parametri nWidthSrc e nWidthDest o se i parametri nHeightSrc e nHeightDest differiscono. Se nWidthSrc e nWidthDest hanno segni diversi, la funzione crea un'immagine mirror della bitmap lungo l'asse x. Se nHeightSrc e nHeightDest hanno segni diversi, la funzione crea un'immagine mirror della bitmap lungo l'asse y.

Non tutti i dispositivi supportano la funzione StretchBlt . Per altre informazioni, vedere GetDeviceCaps.

ICM: Nessuna gestione dei colori viene eseguita quando si verifica un'operazione blit.

Se usato in un sistema di monitoraggio multiplo, hdcSrc e hdcDest devono fare riferimento allo stesso dispositivo o la funzione avrà esito negativo. Per trasferire i dati tra controller di dominio per dispositivi diversi, convertire la bitmap di memoria in un DIB chiamando GetDIBits. Per visualizzare il DIB al secondo dispositivo, chiamare SetDIBits o StretchDIBits.

Esempio

Per un esempio, vedere Ridimensionamento di un'immagine.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wingdi.h (include Windows.h)
Libreria Gdi32.lib
DLL Gdi32.dll

Vedi anche

Bitblt

Funzioni bitmap

Panoramica delle bitmap

CreateDIBSection

GetDIBits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits