public void loadBackgroundMap(File file) {
        if (!file.isFile()) {
            return;
        }
        try {
            ArrayList<Point> backgroundMap = new ArrayList<Point>();
            BufferedImage img = ImageIO.read(file);
            PixelGrabber grabber = new PixelGrabber(img, 0, 0, -1, -1, true);
            grabber.grabPixels();
            int[] pixels = (int[]) grabber.getPixels();
            int w = img.getWidth(), h = img.getHeight();
            int w2 = (int) (1.0 * w / 2 + 0.5), h2 = (int) (1.0 * h / 2 + 0.5);
            for (int i = 0; i < w; i++) {
                for (int j = 0; j < h; j++) {
                    Color c = new Color(pixels[w * j + i]);
                    if (c.getBlue() == 0 && c.getRed() == 0
                            && c.getGreen() == 0) {
                        Point p = new Point((int) (5 * (i - w2)),
                                (int) (-5 * (j - h2)));
                        Utils.pointToGrid(p);
                        if (!backgroundMap.contains(p)) {
                            backgroundMap.add(p);
                        }
                    }
                }
            }
            setBackground(backgroundMap);
        } catch (IOException e) {
        } catch (InterruptedException e) {
        }
    }