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 |