Sub ResizeBitmap(aBitmap As Bitmap, aWantWid As Int, aWantHt As Int, aKeepAspectRatio As Boolean) As Bitmap
If aBitmap.Width <= aWantWid AND aBitmap.Height <= aWantHt Then
Else
If aKeepAspectRatio Then
If aBitmap.Width / aWantWid > aBitmap.Height / aWantHt Then
If aBitmap.Width < aWantWid Then aWantWid = aBitmap.Width
aWantHt = aBitmap.Height * aWantWid/aBitmap.Width
Else
If aBitmap.Height < aWantHt Then aWantHt = aBitmap.Height
aWantWid = aBitmap.Width * aWantHt/aBitmap.Height
End If
End If
End If
Dim bmpNew As Bitmap
bmpNew.InitializeMutable(aWantWid, aWantHt)
Dim cnv As Canvas
cnv.Initialize2(bmpNew)
Dim destRect As Rect
destRect.Initialize(0, 0, aWantWid, aWantHt)
cnv.DrawBitmap(aBitmap, Null, destRect)
Return bmpNew
End Sub