1 package com.neuronrobotics.imageprovider;
3 import java.awt.Graphics;
4 import java.awt.image.BufferedImage;
5 import java.awt.image.ColorModel;
6 import java.awt.image.DataBufferByte;
7 import java.awt.image.WritableRaster;
8 import java.io.ByteArrayInputStream;
9 import java.io.ByteArrayOutputStream;
11 import java.io.IOException;
14 import javax.imageio.ImageIO;
16 import com.neuronrobotics.sdk.common.BowlerAbstractDevice;
17 import com.neuronrobotics.sdk.common.BowlerDatagram;
18 import com.neuronrobotics.sdk.common.InvalidConnectionException;
19 import com.neuronrobotics.sdk.common.NonBowlerDevice;
27 private BufferedImage
image =
null;
71 public static void deepCopy(BufferedImage src, BufferedImage dest) {
72 Graphics g = dest.createGraphics();
73 g.drawImage(src, 0, 0,
null);
81 public BufferedImage
getLatestImage(BufferedImage inputImage, BufferedImage displayImage){
83 if(displayImage!=
null){
104 return new BufferedImage(w, h, BufferedImage.TYPE_3BYTE_BGR);
116 public static BufferedImage
toGrayScale(BufferedImage in,
int w,
int h) {
117 BufferedImage bi =
new BufferedImage(w, h, BufferedImage.TYPE_BYTE_GRAY);
118 Graphics g = bi.createGraphics();
119 g.drawImage(in, 0, 0, w, h,
null);
128 public static BufferedImage
toGrayScale(BufferedImage in,
double scale) {
129 int w = (int) (in.getWidth() * scale);
130 int h = (int) (in.getHeight() * scale);
137 public static javafx.scene.image.Image
getJfxImage(BufferedImage bf) {
138 ByteArrayOutputStream out =
new ByteArrayOutputStream();
140 ImageIO.write( bf,
"png", out);
142 }
catch (IOException ex) {
145 ByteArrayInputStream in =
new ByteArrayInputStream(out.toByteArray());
146 return new javafx.scene.image.Image(in);
abstract boolean captureNewImage(BufferedImage imageData)
abstract BufferedImage captureNewImage()
static BufferedImage newBufferImage(int w, int h)
javafx.scene.transform.Affine getGlobalPos()
javafx.scene.image.Image getLatestJfxImage()
javafx.scene.transform.Affine globalPos
BufferedImage getLatestImage(BufferedImage inputImage, BufferedImage displayImage)
static BufferedImage toGrayScale(BufferedImage in, double scale)
void onAsyncResponse(BowlerDatagram data)
static void deepCopy(BufferedImage src, BufferedImage dest)
void setGlobalPos(javafx.scene.transform.Affine globalPos)
static javafx.scene.image.Image getJfxImage(BufferedImage bf)
BufferedImage getLatestImage()
static BufferedImage toGrayScale(BufferedImage in, int w, int h)
void setGlobalPositionListener(javafx.scene.transform.Affine globalPos)