Public Sub ExportPng(NJO As JavaObject, FileDir As String, FileName As String, Size As Int)
Sleep(0)
Dim B As JavaObject = NJO.RunMethod("getLayoutBounds",Null)
Dim W As Int = B.RunMethod("getWidth",Null)
Dim H As Int = B.RunMethod("getHeight",Null)
Dim Full As JavaObject
Full.InitializeNewInstance("javafx.scene.image.WritableImage",Array(W,H))
Dim TileWidth As Int = W / Size
Dim TileHeight As Int = H / Size
Dim TileWidthD As Double = TileWidth
Dim TileHeightD As Double = TileHeight
For Col = 0 To Size - 1
For Row = 0 To Size - 1
Dim X As Int = Row * TileWidth
Dim Y As Int = Col * TileHeight
Dim XD As Double = X
Dim YD As Double = Y
Dim R2D As JavaObject
R2D.InitializeNewInstance("javafx.geometry.Rectangle2D",Array(XD,YD,TileWidthD,TileHeightD))
Dim P As JavaObject
P.InitializeNewInstance("javafx.scene.SnapshotParameters",Null)
P.RunMethod("setViewport",Array(R2D))
Sleep(0)
Full.RunMethodJO("getPixelWriter",Null).RunMethod("setPixels",Array(X,Y,TileHeight,TileWidth,NJO.RunMethodJO("snapshot",Array(P,Null)).RunMethod("getPixelReader",Null),0,0))
Next
Next
Dim Img As Image = Full
Dim OS As OutputStream = File.OpenOutput(FileDir,FileName,False)
Img.WriteToStream(OS)
OS.Close
End Sub