Funktionreferenz


_WinAPI_AdjustBitmap

Beschreibung anzeigen in

Erzeugt ein neues geräteabhängiges Bitmap (device-depended bitmap (DDB)) des Quellbitmaps mit neuen Dimensionen und Farbanpassungen

#include <WinAPIGdi.au3>
_WinAPI_AdjustBitmap ( $hBitmap, $iWidth, $iHeight [, $iMode = 3 [, $tAdjustment = 0]] )

Parameter

$hBitmap Das Handle des Quellbitmaps.
$iWidth Die Breite des neuen Bitmaps in Pixeln.
Wenn dieser Parameter -1 ist, so wird die neue Breite von der Breite des Quellbitmaps übernommen.
$iHeight Die Höhe des neuen Bitmaps in Pixeln.
Wenn dieser Parameter -1 ist, so wird die neue Höhe vonder Höhe des Quellbitmaps übernommen.
$iMode [optional] Der Streckungsmodus.
Dieser Parameter kann einen der folgenden Werte annehmen:
    $BLACKONWHITE
    $COLORONCOLOR (Standard)
    $HALFTONE
    $WHITEONBLACK
    $STRETCH_ANDSCANS
    $STRETCH_DELETESCANS
    $STRETCH_HALFTONE
    $STRETCH_ORSCANS
$tAdjustment [optional] Die $tagCOLORADJUSTMENT-Struktur welche die Farbanpassungswerte beinhaltet.
Die Farbanpassung wird nur verwendet, wenn der $HALFTONE ($STRETCH_HALFTONE) Modus verwendet wird.

Rückgabewert

Erfolg: Das Handle zur neu erzeugten Bitmap (DDB).
Fehler: 0.

Bemerkungen

Die _WinAPI_AdjustBitmap() erzeugt geräteabhängiges Bitmap welches mit dem aktuellen Bildschirm der Anwendung kompatibel ist.

Diese Funktion unterstützt keine Bitmaps mit einem Alphakanal. Um mit solchen Bitmaps zu arbeiten sollte man _WinAPI_AlphaBlend() verwenden.

Wenn die Arbeit mit einem Bitmap abgeschlossen ist, so sollte man es mit _WinAPI_DeleteObject() zerstören.
Die Funktion zerstört nicht die originale Bitmap, diese muss immer noch selbst zerstört werden.

Verwandte Funktionen

_WinAPI_AlphaBlend, _WinAPI_DeleteObject

Beispiel

#include <GUIConstantsEx.au3>
#include <SendMessage.au3>
#include <StaticConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPIHObj.au3>
#include <WinAPIRes.au3>

; Load and resize (x2) image
Local $hBitmap = _WinAPI_LoadImage(0, @ScriptDir & '\Extras\AutoIt.bmp', $IMAGE_BITMAP, 0, 0, $LR_LOADFROMFILE)
Local $tSIZE = _WinAPI_GetBitmapDimension($hBitmap)
Local $W = 2 * DllStructGetData($tSIZE, 'X')
Local $H = 2 * DllStructGetData($tSIZE, 'Y')
Local $hResize = _WinAPI_AdjustBitmap($hBitmap, $W, $H)
_WinAPI_DeleteObject($hBitmap)

; Create GUI
Local $hForm = GUICreate('Test ' & StringReplace(@ScriptName, '.au3', '()'), $W, $H)
Local $idPic = GUICtrlCreatePic('', 0, 0, $W, $H)
Local $hPic = GUICtrlGetHandle($idPic)

; Set bitmap to control
_SendMessage($hPic, $STM_SETIMAGE, 0, $hResize)
Local $hObj = _SendMessage($hPic, $STM_GETIMAGE)
If $hObj <> $hResize Then
    _WinAPI_DeleteObject($hResize)
EndIf

GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE