forked from Jenn738/DartmouthWinter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Weijia.java
75 lines (61 loc) · 1.68 KB
/
Weijia.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Weijia extends Agent{
private int dx=20;
public Image faceImage;
public BufferedImage face;
public Weijia(double x, double y){
super(x,y);
try{
faceImage=ImageIO.read(new File("pictures/face.jpg"));
}
catch(IOException e){
e.printStackTrace();
}
face=toBufferedImage(faceImage);
}
public void transport(double x,BufferedImage image){
if(x<0)
x=0;
else if(x>image.getWidth())
x=image.getWidth()-face.getWidth();
else
this.x=x;
}
public void draw(Graphics g){
g.drawImage(face, (int)x, (int)y, null);
}
public static BufferedImage toBufferedImage(Image img)
{
if (img instanceof BufferedImage)
{
return (BufferedImage) img;
}
// Create a buffered image with transparency
BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
// Draw the image on to the buffered image
Graphics2D bGr = bimage.createGraphics();
bGr.drawImage(img, 0, 0, null);
bGr.dispose();
// Return the buffered image
return bimage;
}
public void brighten(){
for(int y=0; y<face.getHeight();y++){
for(int x=0; x<face.getWidth();x++){
Color color=new Color(face.getRGB(x, y));
int red=Math.min(255, color.getRed()*5/4);
int green=Math.min(255, color.getGreen()*5/4);
int blue=Math.min(255, color.getBlue()*5/4);
Color newColor=new Color(red,green,blue);
face.setRGB(x, y, newColor.getRGB());
}
}
}
}