Mal wieder ein Tipp für alle Grafikfreunde und nicht von
schlechten Eltern, denn Sie haben hiermit die Möglichkeit eine beliebige Grafik in ein
von Ihnen vorgegebenes Format zu berechnen. Natürlich könnten Sie auch das Image Objekt
benutzen, aber das ist von seinen Funktionen eben nicht gleichwertig mit dem Pictureobjekt
und ein abspeichern ergibt immer die Originalgröße.
Allgemein/Deklarationen
Private Declare Function StretchBlt& Lib "gdi32" (ByVal hdc As Long, ByVal x
As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As
Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As
Long, ByVal dwRop As Long)
Private Declare Function SetStretchBltMode& Lib "gdi32" (ByVal hdc As Long,
ByVal nStretchMode As Long)
Const SRCCOPY = &HCC0020
Const STRETCH_DELETESCANS = 3
Dim btn_clicked As Boolean
Picture1/Click
Dim Zielzugriffsnummer As Long
Dim Vorlagezugriffsnummer As Long
Dim StretchBit As Long
'Zugriffsnummer des Objekts
Zielzugriffsnummer = Picture2.hdc
Vorlagezugriffsnummer = Picture1.hdc
'aktivieren des automatische Neuzeichnen von Objekten
Picture1.AutoRedraw = True
'Scalemode
Picture1.ScaleMode = 3 'pixel
Picture2.ScaleMode = 3 'pixel
Call SetStretchBltMode(Zielzugriffsnummer, STRETCH_DELETESCANS)
'Stretchvorgang Zielgrafik
StretchBit = StretchBlt(Zielzugriffsnummer, 0, 0, Picture2.ScaleWidth,
Picture2.ScaleHeight, Vorlagezugriffsnummer, 0, 0, Picture1.ScaleWidth,
Picture1.ScaleHeight, SRCCOPY)
'Refresh
Picture1.Refresh
Picture2.AutoRedraw = True
Noch nicht loslegen, es bedarf noch ein paar Objekte.
Picture1 - laden Sie hier die Ausgangsgrafik
Picture2 - für die Zielgrafik (geben Sie hier gewünschte Größenvorgaben an)
Command1 - soll Aktion auslösen.
Haben Sie dies alles erledigt, steht einem Test nichts mehr im Weg. |