001 /**
002 * @author Václav Mikolášek
003 * nicklaus@students.zcu.cz
004 */
005
006 package animace;
007
008 import java.awt.*;
009 import java.awt.image.*;
010 import java.io.*;
011 import javax.imageio.*;
012
013 /**
014 * Třída ImageSource, zajišťuje, že použité obrázky budou v obou testech shodné -
015 * pro zajištěni jednotného přístupu a objektivity testováni.
016 */
017 public class ImageSource {
018 public static BufferedImage square1(Color c1,Color c2) {
019 BufferedImage bim = new BufferedImage(5000,5000,BufferedImage.TYPE_BYTE_INDEXED);
020 Graphics g = bim.getGraphics();
021 g.setClip(0,0,bim.getWidth(),bim.getHeight());
022 drawSquares(g,c1,c2,0,0);
023 return bim;
024 }
025
026 /**
027 * Vrací obrázek kouřícího šálku (java logo), který je načten ze souboru.
028 */
029 public static BufferedImage javaLogo() {
030 BufferedImage img = null;
031 try {
032 img = ImageIO.read(new File("images/javalogo.gif"));
033 }
034 catch (IOException e ) {
035 e.printStackTrace();
036 }
037 return img;
038 }
039
040 /**
041 * Kreslí čtverečky (šachovnici) v barvách c1 a c2 od pozice x,y.
042 * @param x,y urcuji souřadnici horního levého rohu šachovnice, který se umísti do horního rohu (0,0) grafického objektu
043 * jde vlastně o posunutí šachovnice
044 */
045 public static void drawSquares(Graphics g,Color c1, Color c2, int x, int y) {
046 int width = g.getClipBounds().width;
047 int height = g.getClipBounds().height;
048 g.setColor(c1);
049 g.fillRect(0,0,width, height);
050
051 g.setColor(c2);
052
053 int squareWidth = 30;
054 int squareHeight = 30;
055 for (int i = 0; i * squareWidth < width;i++) {
056 for (int j = 0;j * squareHeight < height;j++) {
057 if ((i+j) % 2 == 0) {
058 g.fillRect(i * squareWidth - x,j * squareHeight - y,squareWidth,squareHeight);
059 }
060 }
061 }
062 }
063 }