RotateAndScaleImageA

Image ››
Parent Previous Next

RotateAndScaleImageA

Синтаксис

Sub RotateAndScaleImageA(Byval GpbitmapSource As Any Ptr, ByRef hbmpDest As HBITMAP, ByVal X As Integer, ByVal Y As Integer,ByVal Xr As Integer,ByVal Yr As Integer,ByVal angle As Single,ByVal Xscale As Single=0,ByVal Yscale As Single=0,ByVal Color As Integer=0,ByVal BGbitmap As Any ptr=0)

Описание

Позволяет увеличивать в пропорциях и поворачивать изображение (битмап) на любой угол. В отличии от RotateAndScaleImage , вращает прозрачные битмапы, загруженные с помощью Load_imageA

Параметры

GpbitmapSource - хендл прозрачного Gpbitmap, например может быть загружен с помощью Load_imageA

hbmpDest - хендл (буфер) конечного изображения, может быть создан с помощью Create_Image

X - координата X расположения вращаемого рисунка hbmpSource в изображении hbmpDest

Y - координата Y расположения вращаемого рисунка hbmpSource в изображении hbmpDest

Xr - координата X центра радиуса вращения hbmpSource

Yr - координата Y центра радиуса вращения hbmpSource

angle - угол поворота от 0-360

Xscale - соотношение размера к исходному по оси X

Yscale - соотношение размера к исходному по оси Y

Color - фоновый цвет для изображения hbmpDest в формате ARGB (пример: &hff0000ff)

BGbitmap - хендл Gpbitmap, который станет подложкой( фоновым рисунком) для изображения hbmpDest. Может быть загружен с помощью Load_ImageA или преобразован из обычного битмапа с помощью CreateGPBitmapFromHBITMAP

Платформы

Windows , Linux

Пример

рисунок для примера: 

#Include "window9.bi"
Dim Shared As HBITMAP hbmpDest,hbmpBack
Dim Shared As Any Ptr hbmpSource
hbmpSource=Load_ImageA("Transpar.png")
hbmpDest=Create_Image(100,100)
hbmpback=Create_Image(100,100)
Dim As Integer event
Dim As HWND hwnd
Dim Shared As Any ptr gp_
Sub rot()
  Static f As Single
  RotateAndScaleImageA(hbmpSource,hbmpDest,50,50,40,40,f,f/300,f/300,,gp_)
  SetImageGadget(1,hbmpDest)
  f= f+1
  If f>=360 Then f=0
  Sleep(1)
End Sub
ImageStartDraw(hbmpBack)
  For a As Integer=0 To 50 Step 10
     BoxDraw(a,a,100-a*2,100-a*2,255,BGR(Int(Rnd*255),int(Rnd*255),int(Rnd*255)))
  Next
StopDraw
gp_=CreateGPBitmapFromHBITMAP(hbmpBack)
hwnd=OpenWindow("Rotate",10,10,130,150) : CenterWindow(hwnd)
ImageGadget(1,5,5,100,100,hbmpBack)
Do
  event=WindowEvent()
  If Event=EventClose Then End
  rot()
Loop
FreeGPBitmap(gp_)
Free_Image(hbmpDest)
Free_Image(hbmpback)

Результат

Created with the Personal Edition of HelpNDoc: Full featured Help generator