diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java
index 9e80b51cf1442d9f9abde67e9a4a0421a89f932e..c1f7a65306f82f3b6277cea4197b1e61cafe319e 100644
--- a/src/GUI/DrawingArea.java
+++ b/src/GUI/DrawingArea.java
@@ -52,9 +52,6 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
setBackground(Color.WHITE); // Set Background color
setDoubleBuffered(false); // Non-buffered drawing
image = new BufferedImage(AREA_WIDTH, AREA_HEIGHT, BufferedImage.TYPE_INT_ARGB);
- g2 = (Graphics2D) image.getGraphics();
- /// Antialiasing the graphic for smoothness ///
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
shapeColor = new Color(0, 0, 0);
currentMode = Mode.FREEHAND;
strokeSize = 3;
@@ -97,8 +94,6 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
public void clear() {
image = new BufferedImage(AREA_WIDTH, AREA_HEIGHT, BufferedImage.TYPE_INT_ARGB);
- g2 = (Graphics2D) image.getGraphics();
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
repaint();
}
@@ -144,22 +139,6 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
}
}
-// public void saveFile() {
-// try {
-// ImageIO.write(image, "PNG", new File("Saved_White_Board.png"));
-// } catch (IOException e) {
-// e.printStackTrace();
-// }
-// }
-
- public void saveAsFile(File file) {
- try {
- ImageIO.write(image, "PNG", file);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
public void openFile(File file) {
try {
image = ImageIO.read(file);
@@ -243,6 +222,8 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
@Override
public void mousePressed(MouseEvent e) {
+ g2 = (Graphics2D) image.getGraphics();
+ g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
startPoint = previousPoint = e.getPoint();
/// Instantiate object based on current mode ///
@@ -299,9 +280,6 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
default:
break;
}
-
- g2 = (Graphics2D) image.getGraphics();
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(shapeColor);
/// This repaint is needed if we want to fill the drawing shape with color
@@ -357,7 +335,7 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
/// Eraser is continuously drawing "small white circle" from current point to previous point ///
case ERASE:
- ((Ellipse2D) drawing).setFrame(currentPoint.getX(), currentPoint.getY(), eraserSize, eraserSize);
+ ((Ellipse2D) drawing).setFrame((currentPoint.getX() - (eraserSize / 2)), (currentPoint.getY() - (eraserSize / 2)), eraserSize, eraserSize);
g2.setColor(Color.WHITE);
g2.fill(drawing);
g2.draw(drawing);
diff --git a/src/GUI/SerializableImage.java b/src/GUI/SerializableImage.java
deleted file mode 100644
index 10ddffd3c0500cafb7cf7661d9546288018f4d02..0000000000000000000000000000000000000000
--- a/src/GUI/SerializableImage.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package GUI;
-
-import javax.imageio.ImageIO;
-import java.awt.image.BufferedImage;
-import java.awt.image.ColorModel;
-import java.awt.image.IndexColorModel;
-import java.awt.image.WritableRaster;
-import java.io.*;
-import java.util.Hashtable;
-
-public class SerializableImage extends BufferedImage implements Serializable {
-
- transient BufferedImage image;
-
- public SerializableImage(int width, int height, int imageType) {
- super(width, height, imageType);
- image = new BufferedImage(width, height, imageType);
- }
-
- public BufferedImage getImage() {
- return image;
- }
-
- public void setImage(BufferedImage image) {
- this.image = image;
- }
-
- public SerializableImage(int width, int height, int imageType, IndexColorModel cm) {
- super(width, height, imageType, cm);
- }
-
- public SerializableImage(ColorModel cm, WritableRaster raster, boolean isRasterPremultiplied, Hashtable<?, ?> properties) {
- super(cm, raster, isRasterPremultiplied, properties);
- }
-
-
- public void writeObject(ObjectOutputStream output) throws IOException {
- output.defaultWriteObject();
- ImageIO.write(image, "png", output);
- }
-
- public void readObject(ObjectInputStream input) throws IOException, ClassNotFoundException {
- input.defaultReadObject();
- image = ImageIO.read(input);
- }
-}
diff --git a/src/remote/IDrawingController.java b/src/remote/IDrawingController.java
index 635c490c49e86dd5ee1bee1ed89ca997de08308c..df062613d0f9144d0139326c74bac84d764507cd 100644
--- a/src/remote/IDrawingController.java
+++ b/src/remote/IDrawingController.java
@@ -1,6 +1,6 @@
package remote;
-import GUI.SerializableImage;
+
import client.Client;
import java.awt.*;
@@ -33,7 +33,6 @@ public interface IDrawingController extends Remote {
ArrayList<Font> getFontList() throws RemoteException;
ArrayList<Point> getTextStartPointList() throws RemoteException;
// BufferedImage getCurrentImage() throws RemoteException;
- SerializableImage getCurrentImage() throws RemoteException;
void getImage(String fromClient) throws RemoteException;
}
diff --git a/src/server/DrawingController.java b/src/server/DrawingController.java
index d52aebe4592c31b9e5c84be2d689a33490ac17fb..f48100e88489a1f04fb35da20924907aa5514c63 100644
--- a/src/server/DrawingController.java
+++ b/src/server/DrawingController.java
@@ -1,15 +1,11 @@
package server;
-import GUI.SerializableImage;
-import client.Client;
import remote.IDrawingController;
import remote.IDrawingUpdate;
-import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
-import java.lang.reflect.Array;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
@@ -20,7 +16,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
private final static int AREA_HEIGHT = 600;
private Server server;
- private SerializableImage serializableImage;
+// private SerializableImage bufferedImage;
private BufferedImage bufferedImage;
private Graphics2D g2;
@@ -40,8 +36,8 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
// g2 = (Graphics2D) bufferedImage.getGraphics();
// g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- this.serializableImage = new SerializableImage(AREA_WIDTH, AREA_HEIGHT, BufferedImage.TYPE_INT_ARGB);
- g2 = (Graphics2D) serializableImage.getGraphics();
+ this.bufferedImage = new BufferedImage(AREA_WIDTH, AREA_HEIGHT, BufferedImage.TYPE_INT_ARGB);
+ g2 = (Graphics2D) bufferedImage.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
@@ -63,10 +59,10 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
textStartPointList.add(startPoint);
- g2 = (Graphics2D) serializableImage.getGraphics();
+ g2 = (Graphics2D) bufferedImage.getGraphics();
g2.setFont(font);
g2.drawString(text, startPoint.x, startPoint.y);
- g2 = (Graphics2D) serializableImage.getGraphics();
+ g2 = (Graphics2D) bufferedImage.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
@@ -94,7 +90,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
colorList.add(color);
strokeSizeList.add(strokeSize);
- g2 = (Graphics2D) serializableImage.getGraphics();
+ g2 = (Graphics2D) bufferedImage.getGraphics();
switch (mode) {
case "OVAL":
case "RECTANGLE":
@@ -111,7 +107,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
default:
break;
}
- g2 = (Graphics2D) serializableImage.getGraphics();
+ g2 = (Graphics2D) bufferedImage.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(color);
@@ -141,7 +137,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
strokeSizeList.add(strokeSize);
}
- g2 = (Graphics2D) serializableImage.getGraphics();
+ g2 = (Graphics2D) bufferedImage.getGraphics();
switch (mode) {
case "FREEHAND":
g2.setColor(color);
@@ -158,7 +154,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
default:
break;
}
- g2 = (Graphics2D) serializableImage.getGraphics();
+ g2 = (Graphics2D) bufferedImage.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(color);
@@ -208,16 +204,16 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
return true;
}
- public SerializableImage getCurrentImage() throws RemoteException {
- return serializableImage;
+ public BufferedImage getCurrentImage() throws RemoteException {
+ return bufferedImage;
}
public void getImage(String fromClient) throws RemoteException {
-// if (serializableImage.getImage().)
+// if (bufferedImage.getImage().)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
IDrawingUpdate client;
try {
- javax.imageio.ImageIO.write(serializableImage, "png", baos);
+ javax.imageio.ImageIO.write(bufferedImage, "png", baos);
baos.flush();
}
catch (IOException err) {