List of usage examples for java.awt Graphics drawImage
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer);
From source file:acmi.l2.clientmod.l2_version_switcher.Main.java
public static void main(String[] args) { if (args.length != 3 && args.length != 4) { System.out.println("USAGE: l2_version_switcher.jar host game version <--splash> <filter>"); System.out.println("EXAMPLE: l2_version_switcher.jar " + L2.NCWEST_HOST + " " + L2.NCWEST_GAME + " 1 \"system\\*\""); System.out.println(//from ww w .j a v a 2 s .c om " l2_version_switcher.jar " + L2.PLAYNC_TEST_HOST + " " + L2.PLAYNC_TEST_GAME + " 48"); System.exit(0); } List<String> argsList = new ArrayList<>(Arrays.asList(args)); String host = argsList.get(0); String game = argsList.get(1); int version = Integer.parseInt(argsList.get(2)); Helper helper = new Helper(host, game, version); boolean available = false; try { available = helper.isAvailable(); } catch (IOException e) { System.err.print(e.getClass().getSimpleName()); if (e.getMessage() != null) { System.err.print(": " + e.getMessage()); } System.err.println(); } System.out.println(String.format("Version %d available: %b", version, available)); if (!available) { System.exit(0); } List<FileInfo> fileInfoList = null; try { fileInfoList = helper.getFileInfoList(); } catch (IOException e) { System.err.println("Couldn\'t get file info map"); System.exit(1); } boolean splash = argsList.remove("--splash"); if (splash) { Optional<FileInfo> splashObj = fileInfoList.stream() .filter(fi -> fi.getPath().contains("sp_32b_01.bmp")).findAny(); if (splashObj.isPresent()) { try (InputStream is = new FilterInputStream( Util.getUnzipStream(helper.getDownloadStream(splashObj.get().getPath()))) { @Override public int read() throws IOException { int b = super.read(); if (b >= 0) b ^= 0x36; return b; } @Override public int read(byte[] b, int off, int len) throws IOException { int r = super.read(b, off, len); if (r >= 0) { for (int i = 0; i < r; i++) b[off + i] ^= 0x36; } return r; } }) { new DataInputStream(is).readFully(new byte[28]); BufferedImage bi = ImageIO.read(is); JFrame frame = new JFrame("Lineage 2 [" + version + "] " + splashObj.get().getPath()); frame.setContentPane(new JComponent() { { setPreferredSize(new Dimension(bi.getWidth(), bi.getHeight())); } @Override protected void paintComponent(Graphics g) { g.drawImage(bi, 0, 0, null); } }); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("Splash not found"); } return; } String filter = argsList.size() > 3 ? separatorsToSystem(argsList.get(3)) : null; File l2Folder = new File(System.getProperty("user.dir")); List<FileInfo> toUpdate = fileInfoList.parallelStream().filter(fi -> { String filePath = separatorsToSystem(fi.getPath()); if (filter != null && !wildcardMatch(filePath, filter, IOCase.INSENSITIVE)) return false; File file = new File(l2Folder, filePath); try { if (file.exists() && file.length() == fi.getSize() && Util.hashEquals(file, fi.getHash())) { System.out.println(filePath + ": OK"); return false; } } catch (IOException e) { System.out.println(filePath + ": couldn't check hash: " + e); return true; } System.out.println(filePath + ": need update"); return true; }).collect(Collectors.toList()); List<String> errors = Collections.synchronizedList(new ArrayList<>()); ExecutorService executor = Executors.newFixedThreadPool(16); CompletableFuture[] tasks = toUpdate.stream().map(fi -> CompletableFuture.runAsync(() -> { String filePath = separatorsToSystem(fi.getPath()); File file = new File(l2Folder, filePath); File folder = file.getParentFile(); if (!folder.exists()) { if (!folder.mkdirs()) { errors.add(filePath + ": couldn't create parent dir"); return; } } try (InputStream input = Util .getUnzipStream(new BufferedInputStream(helper.getDownloadStream(fi.getPath()))); OutputStream output = new BufferedOutputStream(new FileOutputStream(file))) { byte[] buffer = new byte[Math.min(fi.getSize(), 1 << 24)]; int pos = 0; int r; while ((r = input.read(buffer, pos, buffer.length - pos)) >= 0) { pos += r; if (pos == buffer.length) { output.write(buffer, 0, pos); pos = 0; } } if (pos != 0) { output.write(buffer, 0, pos); } System.out.println(filePath + ": OK"); } catch (IOException e) { String msg = filePath + ": FAIL: " + e.getClass().getSimpleName(); if (e.getMessage() != null) { msg += ": " + e.getMessage(); } errors.add(msg); } }, executor)).toArray(CompletableFuture[]::new); CompletableFuture.allOf(tasks).thenRun(() -> { for (String err : errors) System.err.println(err); executor.shutdown(); }); }
From source file:org.eclipse.swt.snippets.Snippet361.java
public static void main(String[] args) { final Display display = new Display(); final Shell shell = new Shell(display); shell.setText("Snippet 361"); shell.setText("Translate and Rotate an AWT Image in an SWT GUI"); shell.setLayout(new GridLayout(8, false)); Button fileButton = new Button(shell, SWT.PUSH); fileButton.setText("&Open Image File"); fileButton.addSelectionListener(widgetSelectedAdapter(e -> { String filename = new FileDialog(shell).open(); if (filename != null) { image = Toolkit.getDefaultToolkit().getImage(filename); canvas.repaint();/*from w ww .ja v a 2s . co m*/ } })); new Label(shell, SWT.NONE).setText("Translate &X by:"); final Combo translateXCombo = new Combo(shell, SWT.NONE); translateXCombo.setItems("0", "image width", "image height", "100", "200"); translateXCombo.select(0); translateXCombo.addModifyListener(e -> { translateX = numericValue(translateXCombo); canvas.repaint(); }); new Label(shell, SWT.NONE).setText("Translate &Y by:"); final Combo translateYCombo = new Combo(shell, SWT.NONE); translateYCombo.setItems("0", "image width", "image height", "100", "200"); translateYCombo.select(0); translateYCombo.addModifyListener(e -> { translateY = numericValue(translateYCombo); canvas.repaint(); }); new Label(shell, SWT.NONE).setText("&Rotate by:"); final Combo rotateCombo = new Combo(shell, SWT.NONE); rotateCombo.setItems("0", "Pi", "Pi/2", "Pi/4", "Pi/8"); rotateCombo.select(0); rotateCombo.addModifyListener(e -> { rotate = numericValue(rotateCombo); canvas.repaint(); }); Button printButton = new Button(shell, SWT.PUSH); printButton.setText("&Print Image"); printButton.addSelectionListener(widgetSelectedAdapter(e -> { performPrintAction(display, shell); })); composite = new Composite(shell, SWT.EMBEDDED | SWT.BORDER); GridData data = new GridData(SWT.FILL, SWT.FILL, true, true, 8, 1); data.widthHint = 640; data.heightHint = 480; composite.setLayoutData(data); Frame frame = SWT_AWT.new_Frame(composite); canvas = new Canvas() { @Override public void paint(Graphics g) { if (image != null) { g.setColor(Color.WHITE); g.fillRect(0, 0, canvas.getWidth(), canvas.getHeight()); /* Use Java2D here to modify the image as desired. */ Graphics2D g2d = (Graphics2D) g; AffineTransform t = new AffineTransform(); t.translate(translateX, translateY); t.rotate(rotate); g2d.setTransform(t); /*------------*/ g.drawImage(image, 0, 0, this); } } }; frame.add(canvas); composite.getAccessible().addAccessibleListener(new AccessibleAdapter() { @Override public void getName(AccessibleEvent e) { e.result = "Image drawn in AWT Canvas"; } }); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); }
From source file:org.jax.haplotype.analysis.visualization.SimplePhylogenyTreeImageFactory.java
/** * A tester main//w ww. jav a2s . c o m * @param args * don't care */ @SuppressWarnings("all") public static void main(String[] args) { final PhylogenyTreeImageFactory colorFactory = new SimplePhylogenyTreeImageFactory( new SmoothPaintScale(0.0, 1.0, Color.BLUE, Color.RED)); JPanel colorTreePanel = new JPanel() { /** * {@inheritDoc} */ @Override protected void paintComponent(Graphics g) { BufferedImage image = colorFactory.createPhylogenyImage( SimplePhylogenyTreeImageFactory.createTestTree(), this.getWidth(), this.getHeight()); g.drawImage(image, 0, 0, this); } }; final PhylogenyTreeImageFactory noColorFactory = new SimplePhylogenyTreeImageFactory(); JPanel noColorTreePanel = new JPanel() { /** * {@inheritDoc} */ @Override protected void paintComponent(Graphics g) { BufferedImage image = noColorFactory.createPhylogenyImage( SimplePhylogenyTreeImageFactory.createTestTree(), this.getWidth(), this.getHeight()); g.drawImage(image, 0, 0, this); } }; JFrame treeFrame = new JFrame(); treeFrame.getContentPane().setLayout(new GridLayout()); treeFrame.getContentPane().add(colorTreePanel); treeFrame.getContentPane().add(noColorTreePanel); treeFrame.setVisible(true); }
From source file:Util.java
/** * Converts an Image to a BufferedImage//from ww w. j a v a 2s.com */ public static BufferedImage convertToBufferedImg(Image im) { BufferedImage bi = new BufferedImage(im.getWidth(null), im.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics bg = bi.getGraphics(); bg.drawImage(im, 0, 0, null); bg.dispose(); return bi; }
From source file:Main.java
public static BufferedImage convert2grey(BufferedImage image) { BufferedImage grey = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY); Graphics g = grey.getGraphics(); g.drawImage(image, 0, 0, null); g.dispose();/* w w w. ja v a 2 s.co m*/ BufferedImage rgb = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); g = rgb.getGraphics(); g.drawImage(grey, 0, 0, null); g.dispose(); return rgb; }
From source file:ImageUtil.java
/** * Creates and returns a buffered version of the specified image. * * @param image the image to create a buffered image for * @return a buffered image based on the specified image *///w w w .j a v a2s .c o m public static BufferedImage getBufferedImage(Image image) { BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB); Graphics g = bufferedImage.getGraphics(); g.drawImage(image, 0, 0, null); return bufferedImage; }
From source file:BufferedImages.java
/** * Returns a {@link BufferedImage} with the specified image type, where the * graphical content is a copy of the specified image. * //from ww w .j a va 2 s.c o m * @param img The image to copy. * @param imageType The image type for the image to return. * @return A copy of the specified image. */ public static BufferedImage copy(BufferedImage img, int imageType) { int width = img.getWidth(); int height = img.getHeight(); BufferedImage newImage = new BufferedImage(width, height, imageType); Graphics g = newImage.createGraphics(); g.drawImage(img, 0, 0, null); g.dispose(); return newImage; }
From source file:Main.java
/** * Smoothly scales the given {@link BufferedImage} to the given width and height using the * {@link Image#SCALE_SMOOTH} algorithm (generally bicubic resampling or bilinear filtering). * * @param source The source image./*w w w. jav a2s . co m*/ * @param width The destination width to scale to. * @param height The destination height to scale to. * @return A new, scaled image. */ public static BufferedImage scaledImage(BufferedImage source, int width, int height) { Image scaledImage = source.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage scaledBufImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics g = scaledBufImage.createGraphics(); g.drawImage(scaledImage, 0, 0, null); g.dispose(); return scaledBufImage; }
From source file:BufferedImageConverter.java
static public BufferedImage createBufferedImage(Image imageIn, int imageType, Component comp) { MediaTracker mt = new MediaTracker(comp); mt.addImage(imageIn, 0);// w ww . j av a 2 s . c o m try { mt.waitForID(0); } catch (InterruptedException ie) { } BufferedImage bufferedImageOut = new BufferedImage(imageIn.getWidth(null), imageIn.getHeight(null), imageType); Graphics g = bufferedImageOut.getGraphics(); g.drawImage(imageIn, 0, 0, null); return bufferedImageOut; }
From source file:Main.java
/** * Quickly crops an image from its source. * @param src The source image./*from w w w . ja v a2 s . com*/ * @param x The x coordinate to start at. * @param y The y coordinate to start at. * @param width The width to clip. * @param height The height to clip. * @return */ public static BufferedImage imgUtilFastCrop(BufferedImage src, int x, int y, int width, int height) { if (src == null) return null; if (x == 0 && y == 0 && width == src.getWidth() && height == src.getHeight()) return imgUtilFastCopy(src); else { BufferedImage b = new BufferedImage(width, height, src.getType()); Graphics g = b.getGraphics(); g.drawImage(src, -x, -y, null); g.dispose(); return b; } }