Ich bin Neu auf diesen Board, und habe angefangen mit PureBasic zu Proggen !
Grundwissen habe Ich soweit schon, da Ich vorher mit BlitzBasic Plus viel Programmiert habe.
Darum auch gleich meine erste frage bezüglich Canvas Gadget.
Ich versuche gerade mein Projekt in PureBasic zu übertragen was soweit schon gut vorran geht
Nun aber mein kleines Problem
in BlitzBasic gibt es ein ähnlichen Befehl um Gadgets zu Resizen SetGadgetshape
nur mit dem unterschied das der Inhalt vom Canvas Automatisch mit Skaliert wird, was auch sehr schnell ist....
Code: Alles auswählen
Function LeinwandZoom(factor,x=0,y=0)
If ImageDatei=0 Return
SetSliderValue(SliderV,y*factor)
SetSliderValue(SliderH,x*factor)
LeinwandX=-SliderValue(SliderH)
LeinwandY=-SliderValue(SliderV)
---------------------------------------------------------------------------------------------
SetGadgetShape ImageLeinwand,LeinwandX,LeinwandY,Image_Width*factor,Image_Height*factor
---------------------------------------------------------------------------------------------
SliderUpdate(SliderH,ClientWidth(ImageGruppe) ,Image_Width*factor)
SliderUpdate(SliderV,ClientHeight(ImageGruppe) ,Image_Height*factor)
LeinwandUpdate(ImageLeinwand,LeinwandX,LeinwandY)
FlipCanvas ImageLeinwand
End Function
Meine Frage gibt es überhaupt die möglichkeit des Auto Skalieren vom Canvas in PureBasic oder auch als Api Funktion ?
Denn zur Zeit habe Ich das in PureBasic so gelöst was allerdings nicht sehr schnell ist.
gerade wenn man 4-10 fachen Zoom Factor setzt
Code: Alles auswählen
Procedure CanvasZoom(CanvasZoom=1)
Protected datei
ResizeGadget(ImageCanvas,0,0,Image_Width*CanvasZoom,Image_Height*CanvasZoom)
Datei=ResizeImage(ImageDatei,Image_Width*CanvasZoom,Image_Height*CanvasZoom,#PB_Image_Raw)
SetGadgetAttribute(ImageCanvas,#PB_Canvas_Image,Datei)
CenterCanvasImage()
EndProcedure