public synchronized void paint(Graphics gin) { Graphics2D g = (Graphics2D) gin; if (im == null) return; int height = getHeight(); int width = getWidth(); if (fit) { t = new AffineTransform(); double scale = Math.min(((double) width) / im.getWidth(), ((double) height) / im.getHeight()); // we'll re-center the transform in a moment. t.scale(scale, scale); } // if the image (in either X or Y) is smaller than the view port, then center // the image with respect to that axis. double mwidth = im.getWidth() * t.getScaleX(); double mheight = im.getHeight() * t.getScaleY(); if (mwidth < width) t.preConcatenate( AffineTransform.getTranslateInstance((width - mwidth) / 2.0 - t.getTranslateX(), 0)); if (mheight < height) t.preConcatenate( AffineTransform.getTranslateInstance(0, (height - mheight) / 2.0 - t.getTranslateY())); // if we're allowing panning (because only a portion of the image is visible), // don't allow translations that show less information that is possible. Point2D topleft = t.transform(new Point2D.Double(0, 0), null); Point2D bottomright = t.transform(new Point2D.Double(im.getWidth(), im.getHeight()), null); if (mwidth > width) { if (topleft.getX() > 0) t.preConcatenate(AffineTransform.getTranslateInstance(-topleft.getX(), 0)); if (bottomright.getX() < width) t.preConcatenate(AffineTransform.getTranslateInstance(width - bottomright.getX(), 0)); // t.translate(width-bottomright.getX(), 0); } if (mheight > height) { if (topleft.getY() > 0) t.preConcatenate(AffineTransform.getTranslateInstance(0, -topleft.getY())); if (bottomright.getY() < height) t.preConcatenate(AffineTransform.getTranslateInstance(0, height - bottomright.getY())); } g.drawImage(im, t, null); }
public static BufferedImage copyImage(BufferedImage source) { BufferedImage b = new BufferedImage(source.getWidth(), source.getHeight(), BufferedImage.TYPE_BYTE_GRAY); Graphics g = b.getGraphics(); g.drawImage(source, 0, 0, null); g.dispose(); return b; }
public void drawScaledImage(BufferedImage im, int x, int y, int w, int h) { float scaleX = w * 1.0f / im.getWidth(); float scaleY = h * 1.0f / im.getHeight(); AffineTransform tx = new AffineTransform(); tx.scale(scaleX, scaleY); BufferedImageOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR); drawImage(im, op, x, y); }
public void paint(Graphics g) { synchronized (this) { Graphics2D g2d = (Graphics2D) g; if (img != null) { int imgw = img.getWidth(); int imgh = img.getHeight(); g2d.setComposite(AlphaComposite.Src); g2d.drawImage(img, null, 0, 0); } } }
public static BufferedImage tileImage(BufferedImage im, int width, int height) { GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment() .getDefaultScreenDevice() .getDefaultConfiguration(); int transparency = Transparency.OPAQUE; // Transparency.BITMASK; BufferedImage compatible = gc.createCompatibleImage(width, height, transparency); Graphics2D g = (Graphics2D) compatible.getGraphics(); g.setPaint(new TexturePaint(im, new Rectangle(0, 0, im.getWidth(), im.getHeight()))); g.fillRect(0, 0, width, height); return compatible; }
public static BufferedImage scaleImage(BufferedImage bi, double scale) { int w1 = (int) (Math.round(scale * bi.getWidth())); int h1 = (int) (Math.round(scale * bi.getHeight())); BufferedImage image = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = image.createGraphics(); g2.setRenderingHint( RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g2.setPaint(Color.white); g2.fillRect(0, 0, w1, h1); g2.drawImage(bi, 0, 0, w1, h1, null); // this); g2.dispose(); return image; }
public static BufferedImage rotateImage(BufferedImage bi) { int w = bi.getWidth(); int h = bi.getHeight(); BufferedImage image = new BufferedImage(h, w, BufferedImage.TYPE_INT_RGB); Graphics2D g2 = image.createGraphics(); g2.setRenderingHint( RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); g2.setPaint(Color.white); // getBackground()); g2.fillRect(0, 0, h, w); g2.rotate(90 * Math.PI / 180); g2.drawImage(bi, 0, -h, w, h, null); // this); g2.dispose(); return image; }
public void loadImage() throws IOException { nonMax = ImageIO.read(new File(path)); width = nonMax.getWidth(); height = nonMax.getHeight(); rmax = width > height ? height / 2 : width / 2; accRMax = (rmax + offset - 1) / offset; whichRadius.setMaximum(accRMax); img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = img.getGraphics(); g.drawImage(nonMax, 0, 0, null); g.dispose(); res = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); g = res.getGraphics(); g.drawImage(img, 0, 0, null); g.dispose(); greyScale = copyImage(nonMax); ImageIcon icon = new ImageIcon(img); ImageIcon icon2 = new ImageIcon(greyScale); lbl1.setIcon(icon); lbl2.setIcon(icon2); }
/** Regenerates the image. */ private synchronized void regenerateImage() { int size = Math.min( MAX_SIZE, Math.min( getWidth() - imagePadding.left - imagePadding.right, getHeight() - imagePadding.top - imagePadding.bottom)); if (mode == ColorPicker.BRI || mode == ColorPicker.SAT) { float bri2 = this.bri; float sat2 = this.sat; float radius = ((float) size) / 2f; float hue2; float k = 1.2f; // the number of pixels to antialias for (int y = 0; y < size; y++) { float y2 = (y - size / 2f); for (int x = 0; x < size; x++) { float x2 = (x - size / 2f); double theta = Math.atan2(y2, x2) - 3 * Math.PI / 2.0; if (theta < 0) theta += 2 * Math.PI; double r = Math.sqrt(x2 * x2 + y2 * y2); if (r <= radius) { if (mode == ColorPicker.BRI) { hue2 = (float) (theta / (2 * Math.PI)); sat2 = (float) (r / radius); } else { // SAT hue2 = (float) (theta / (2 * Math.PI)); bri2 = (float) (r / radius); } row[x] = Color.HSBtoRGB(hue2, sat2, bri2); if (r > radius - k) { int alpha = (int) (255 - 255 * (r - radius + k) / k); if (alpha < 0) alpha = 0; if (alpha > 255) alpha = 255; row[x] = row[x] & 0xffffff + (alpha << 24); } } else { row[x] = 0x00000000; } } image.getRaster().setDataElements(0, y, size, 1, row); } } else if (mode == ColorPicker.HUE) { float hue2 = this.hue; for (int y = 0; y < size; y++) { float y2 = ((float) y) / ((float) size); for (int x = 0; x < size; x++) { float x2 = ((float) x) / ((float) size); row[x] = Color.HSBtoRGB(hue2, x2, y2); } image.getRaster().setDataElements(0, y, image.getWidth(), 1, row); } } else { // mode is RED, GREEN, or BLUE int red2 = red; int green2 = green; int blue2 = blue; for (int y = 0; y < size; y++) { float y2 = ((float) y) / ((float) size); for (int x = 0; x < size; x++) { float x2 = ((float) x) / ((float) size); if (mode == ColorPicker.RED) { green2 = (int) (x2 * 255 + .49); blue2 = (int) (y2 * 255 + .49); } else if (mode == ColorPicker.GREEN) { red2 = (int) (x2 * 255 + .49); blue2 = (int) (y2 * 255 + .49); } else { red2 = (int) (x2 * 255 + .49); green2 = (int) (y2 * 255 + .49); } row[x] = 0xFF000000 + (red2 << 16) + (green2 << 8) + blue2; } image.getRaster().setDataElements(0, y, size, 1, row); } } repaint(); }
public Dimension getMaximumSize() { if (im == null) return new Dimension(2, 2); return new Dimension(im.getWidth(), im.getHeight()); }
public NetworkMapPanel(Hacker hacker, MapPanel mapPanel) { Dimension mapsize = mapPanel.networkPanel.getSize(); double h = mapsize.getHeight(); System.out.println(h); float multi = 400; HashMap<String, NetworkButton> networks = new HashMap<String, NetworkButton>(); networks.put( "UGOPNet", new NetworkButton( "UGOPNet", 3.0f, 2.25f, 1.1f, new Color(0, 0, 204), "images/browserhome.png", hacker, multi)); networks.put( "SubNet", new NetworkButton( "SubNet", 3.0f, 3.5f, 1, new Color(0, 0, 150), "images/down.png", hacker, multi)); networks.put( "ProgNet", new NetworkButton( "ProgNet", 3.5f, 3.0f, 1, new Color(0, 0, 150), "images/script.png", hacker, multi)); networks.put( "DarkNet", new NetworkButton( "DarkNet", 3.0f, 4.0f, 0.9f, new Color(50, 50, 50), "images/exit.png", hacker, multi)); networks.put( "LunarMicrosystems", new NetworkButton( "LunarMicrosystems", 2, 4.5f, 1, new Color(0, 153, 255), "images/cpu.png", hacker, multi)); networks.put( "DoSC", new NetworkButton( "DoSC", 2.25f, 3.25f, 1, new Color(0, 0, 204), "images/firewall.png", hacker, multi)); networks.put( "DTNet", new NetworkButton( "DTNet", 2.0f, 2.0f, 1, new Color(100, 100, 100), "images/ducttape.png", hacker, multi)); networks.put( "GeNet", new NetworkButton( "GeNet", 1.0f, 2.0f, 1, new Color(100, 100, 100), "images/germanium.png", hacker, multi)); networks.put( "SiNet", new NetworkButton( "SiNet", 1.0f, 3.0f, 1, new Color(100, 100, 100), "images/silicon.png", hacker, multi)); networks.put( "YBCONet", new NetworkButton( "YBCONet", 0.5f, 2.5f, 1, new Color(100, 100, 100), "images/YBCO.png", hacker, multi)); networks.put( "PuNet", new NetworkButton( "PuNet", 0, 2.0f, 0.8f, new Color(100, 100, 100), "images/plutonium.png", hacker, multi)); networks.put( "UND", new NetworkButton( "UND", 3.5f, 3.5f, 1, new Color(0, 0, 204), "images/firewall.png", hacker, multi)); networks.put( "UniversityNet", new NetworkButton( "UniversityNet", 4.5f, 2.0f, 1.0f, new Color(0, 0, 204), "images/browser.png", hacker, multi)); networks.put( "DoSCDataBank", new NetworkButton( "DoSCDatabank", 1.75f, 2.5f, 1.3f, new Color(0, 0, 204), "images/compile.png", hacker, multi)); networks.put( "DoSCBank", new NetworkButton( "DoSCBank", 2.5f, 2.0f, 1, new Color(0, 0, 204), "images/bank.png", hacker, multi)); networks.put( "ArenaNet", new NetworkButton( "ArenaNet", 4.5f, 3.0f, 1, new Color(204, 0, 0), "images/attack.png", hacker, multi)); networks.put( "TheArena", new NetworkButton( "TheArena", 4.0f, 4.0f, 1, new Color(204, 0, 0), "images/attack.png", hacker, multi)); networks.put( "LunarCreditUnion", new NetworkButton( "LunarCreditUnion", 2.5f, 4, 1, new Color(0, 153, 255), "images/pettycash.png", hacker, multi)); networks.put( "SpyNet", new NetworkButton( "SpyNet", 3.0f, 4.0f, 1, new Color(200, 200, 200), "images/watchIcon.png", hacker, multi)); networks.put( "LunarDatabank", new NetworkButton( "LunarDatabank", 1.0f, 4.5f, 1.4f, new Color(0, 153, 255), "images/bank.png", hacker, multi)); networks.put( "LunarCorporate", new NetworkButton( "LunarCorporate", 0, 6.0f, 1, new Color(0, 153, 255), "images/hd.png", hacker, multi)); networks.put( "LunarLabs", new NetworkButton( "LunarLabs", 2.5f, 5.0f, 1, new Color(0, 153, 255), "images/repair.png", hacker, multi)); networks.put( "LunarSpecOps", new NetworkButton( "LunarSpecOps", 1f, 6.0f, 1, new Color(0, 153, 255), "images/watchIcon.png", hacker, multi)); networks.put( "LunarSat", new NetworkButton( "LunarSat", 0.25f, 5.0f, 1, new Color(0, 153, 255), "images/scan.png", hacker, multi)); networks.put( "LunarColonies", new NetworkButton( "LunarColonies", 1.0f, 5.5f, 1, new Color(0, 153, 255), "images/new.png", hacker, multi)); networks.put( "UGoPIntranet", new NetworkButton( "UGoPIntranet", 2.5f, 1, 1, new Color(0, 0, 204), "images/http.png", hacker, multi)); networks.put( "UGoPCorporate", new NetworkButton( "UGoPCorporate", 3.0f, 0, 1, new Color(0, 0, 204), "images/hd.png", hacker, multi)); networks.put( "UGoPDatabank", new NetworkButton( "UGoPDatabank", 2.75f, 1.5f, 1.2f, new Color(0, 0, 204), "images/compile.png", hacker, multi)); networks.put( "UGoPVault", new NetworkButton( "UGoPVault", 3.0f, 1.0f, 1, new Color(0, 0, 204), "images/bank.png", hacker, multi)); networks.put( "TerrorNet", new NetworkButton( "TerrorNet", 5.5f, 5.0f, 0.9f, new Color(204, 0, 0), "images/refresh.png", hacker, multi)); networks.put( "TerrorStash", new NetworkButton( "TerrorStash", 4.5f, 4.5f, 1, new Color(204, 0, 0), "images/bank.png", hacker, multi)); networks.put( "TerrorWeaponsNet", new NetworkButton( "TerrorWeaponsNet", 5.0f, 4.0f, 1, new Color(204, 0, 0), "images/attack.png", hacker, multi)); networks.put( "TerrorLeaders", new NetworkButton( "TerrorLeaders", 6, 6.0f, 0.75f, new Color(204, 0, 0), "images/firewall.png", hacker, multi)); networks.put( "InnerCircle", new NetworkButton( "InnerCircle", 6, 0, 0.5f, new Color(150, 0, 100), "images/decompile.png", hacker, multi)); networks.put( "LawNet", new NetworkButton( "LawNet", 4.0f, 1.5f, 0.75f, new Color(150, 0, 100), "images/redirect.png", hacker, multi)); networks.put( "GroundZero", new NetworkButton( "GroundZero", 3.0f, 5.5f, 1, new Color(200, 200, 200), "images/ports.png", hacker, multi)); networks.put( "Wastelands", new NetworkButton( "Wastelands", 3.5f, 4.5f, 1.2f, new Color(204, 0, 0), "images/attack.png", hacker, multi)); networks.put( "JuniperPenetentiary", new NetworkButton( "JuniperPenetentiary", 7, 0, 0.75f, new Color(150, 0, 100), "images/firewall.png", hacker, multi)); this.nodeList = networks; this.hacker = hacker; this.mapPanel = mapPanel; try { back = ImageLoader.getImage("images/NetMapFull.png"); } catch (Exception e) { } setLayout(null); setBackground(MapPanel.NETWORK_INFO_BACKGROUND); setPreferredSize(new Dimension(back.getWidth(), back.getHeight())); populate(); }