Very nice. I wanted to test the two methods and the following code:
Private Sub Button1_Click
#IF B4J
fx.Clipboard.SetImage(Root.Snapshot)
If fx.Clipboard.HasImage Then
Log("yes")
Log(GetType(fx.Clipboard.GetImage))
B4XImageView1.Bitmap = fx.Clipboard.GetImage
' ImageView1.SetImage(fx.Clipboard.GetImage)
Else
Log("no")
End If
#End If
End Sub
it throws an exception, whether I use the B4XImageView or the ImageView:
java.lang.IllegalArgumentException: Upload requires 360000 elements, but only 0 elements remain in the buffer
Spoiler: Full error message
java.lang.IllegalArgumentException: Upload requires 360000 elements, but only 0 elements remain in the buffer
at com.sun.prism.impl.BaseTexture.checkUpdateParams(BaseTexture.java:385)
at com.sun.prism.d3d.D3DTexture.update(D3DTexture.java:138)
at com.sun.prism.impl.BaseTexture.update(BaseTexture.java:321)
at com.sun.prism.impl.BaseResourceFactory.createTexture(BaseResourceFactory.java:247)
at com.sun.prism.impl.BaseResourceFactory.getCachedTexture(BaseResourceFactory.java:218)
at com.sun.prism.impl.BaseResourceFactory.getCachedTexture(BaseResourceFactory.java:152)
at com.sun.javafx.sg.prism.NGImageView.renderContent(NGImageView.java:121)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
at com.sun.javafx.sg.prism.NGImageView.doRender(NGImageView.java:103)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:577)
at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:577)
at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
at com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477)
at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:330)
at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
at java.lang.Thread.run(Thread.java:748)
(log of GetType: javafx.scene.image.Image, the type ImageView1.SetImage requires)