java - Alternative(s) of converting Canvas to WritableImage -


i'm developing application needs lot of comparing image data in javafx. comparing, need to rgb data of pixels in images. let's picture need compare picture1 , picture2. picture1 input picture selected user. picture2 drawing make programmatically.

afaik, way rgb data per pixel in javafx pixelreader of image. it's fine picture1 since it's input. need drawing on picture2 , picture2 canvas (i draw polygons on picture2 , because drawing pixel pixel pixelwriter bit complicated imo) , doesn't have pixelreader or similar functionality. solution follows:

  1. read input image , make picture1
  2. make canvas , drawing
  3. attach canvas scene
  4. make snapshot of scene , make writableimage (picture2)
  5. compare picture1 , picture2

so have method like:

public static writableimage makedrawableimage(canvas in) {      anchorpane root = new anchorpane(in);      writableimage out = new writableimage((int)in.getwidth(), (int)in.getheight());      scene sc = new scene(root, in.getwidth(), in.getheight());       out = in.snapshot(null, null);       return out; } 

however takes long time snapshot finish. value of out never gets assigned. don't know did wrong.

is there alternative convert canvas image or writableimage? or maybe there library drawing of polygons easier pixelwriter?

please soft on me. first question on stack overflow , i'm not real programmer nor student. code hobby.

so, in advance. cheers.

you can create snapshot of canvas method:

public static writableimage pixelscaleawarecanvassnapshot(canvas canvas, double pixelscale) {     writableimage writableimage = new writableimage((int)math.rint(pixelscale*canvas.getwidth()), (int)math.rint(pixelscale*canvas.getheight()));     snapshotparameters spa = new snapshotparameters();     spa.settransform(transform.scale(pixelscale, pixelscale));     return canvas.snapshot(spa, writableimage);      } 

the pixel scale 1.0 unless have hidpi screen.


Comments

Popular posts from this blog

Load Balancing in Bluemix using custom domain and DNS SRV records -

oracle - pls-00402 alias required in select list of cursor to avoid duplicate column names -

python - Apache Thrift Tutorial Error -