List of usage examples for java.awt Graphics drawImage
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer);
From source file:org.zephyrsoft.util.gui.ImagePanel.java
@Override public void paintComponent(Graphics g) { super.paintComponent(g); if (mustRescaleImage()) { calculateScaledImage();//w ww . ja va 2 s . co m } if (scaledImage != null) { g.drawImage(scaledImage, x + (int) ((width - scaledImage.getWidth(null)) / 2), y + (int) ((height - scaledImage.getHeight(null)) / 2), this); } else { throw new IllegalStateException("the scaled image was not computed"); } }
From source file:DataBufferGrabber.java
/** * Perform and time several drawImage() calls with the given parameters * and return the number of milliseconds that the operation took. *//*from w ww .j a v a 2 s .c o m*/ private long copyImage(Graphics g, BufferedImage image, int x, int y) { long startTime = System.nanoTime(); // Do the operation several times to make the timings more significant for (int i = 0; i < 100; ++i) { g.drawImage(image, x, y, null); } // Make sure any graphics commands in hardware get flushed before // stopping the clock Toolkit.getDefaultToolkit().sync(); long endTime = System.nanoTime(); return (endTime - startTime) / 1000000; }
From source file:MainClass.java
public void paint(Graphics g) { short[] invert = new short[256]; for (int i = 0; i < invert.length; i++) invert[i] = (short) (255 - i); BufferedImageOp invertOp = new LookupOp(new ShortLookupTable(0, invert), null); BufferedImage clone = invertOp.filter(createImage(), null); g.drawImage(clone, 20, 20, this); }
From source file:net.chris54721.infinitycubed.data.Account.java
public void fetchSkin(boolean update) { if (nickname != null) { LogHelper.info("Fetching skin for player " + getNickname()); BufferedImage skin = Utils.toBufferedImage(Utils.getImageResource("steve")); FileInputStream skinStream = null; boolean fetch = true; try {//from w w w. j a v a 2 s.c om File skinFile = Resources.getFile(Resources.ResourceType.SKIN, getNickname() + ".png"); if (update) { URL skinURL = Resources.getUrl(Resources.ResourceType.SKIN, getNickname() + ".png"); Downloadable skinDownloadable = new Downloadable(skinURL, skinFile); if (!skinDownloadable.download()) fetch = false; } else if (!skinFile.isFile()) fetch = false; if (fetch) { skinStream = new FileInputStream(skinFile); skin = ImageIO.read(skinStream); BufferedImage head = skin.getSubimage(8, 8, 8, 8); BufferedImage mask = skin.getSubimage(40, 8, 8, 8); skin = new BufferedImage(8, 8, BufferedImage.TYPE_INT_ARGB); Graphics resultG = skin.getGraphics(); resultG.drawImage(head, 0, 0, null); resultG.drawImage(mask, 0, 0, null); } this.skin = skin; this.skinHead = skin.getScaledInstance(32, 32, Image.SCALE_DEFAULT); } catch (Exception e) { LogHelper.error("Couldn't fetch player skin", e); } finally { if (skinStream != null) IOUtils.closeQuietly(skinStream); } } }
From source file:contactangle.ImageControl.java
@Override public void paintComponent(Graphics g) { super.paintComponent(g); if (img != null) g.drawImage(img, 0, 0, this); else/* www . j a v a 2 s .c o m*/ g.drawString("NO IMAGE", 0, 15); g.setColor(Color.RED); if (x1 < x2 && y1 < y2) g.drawRect(x1, y1, x2 - x1, y2 - y1); else if (x1 >= x2 && y1 < y2) g.drawRect(x2, y1, x1 - x2, y2 - y1); else if (x1 < x2 && y1 >= y2) g.drawRect(x1, y2, x2 - x1, y1 - y2); else g.drawRect(x2, y2, x1 - x2, y1 - y2); if (valid && img != null) { if (x1 >= x2) { int temp = x1; x1 = x2; x2 = temp; } if (y1 >= y2) { int temp = y1; y1 = y2; y2 = temp; } choosenPoints = new ArrayList<Point>(); for (int y = y1; y < y2; y++) { for (int x = x1; x < x2; x++) { int pixelData = img.getRGB(x, y); if (pixelData == -1) choosenPoints.add(new Point(x, y)); } } SimpleRegression reg = new SimpleRegression(); for (Point p : choosenPoints) { reg.addData(p.x, p.y); } int firstX = choosenPoints.get(0).x; int firstY = choosenPoints.get(0).y; double slope = reg.getSlope(); g.setColor(Color.GREEN); g.drawLine(firstX, firstY, firstX + (70), firstY + (int) (slope * (70))); g.drawLine(firstX, firstY, firstX - (70), firstY - (int) (slope * (70))); double contactDegrees = (Math.atan(reg.getSlope()) / (2 * Math.PI)) * 360.0; DecimalFormat d = new DecimalFormat("##.###"); g.drawString("Contact Angle = ", 25, 25); g.drawString(d.format(contactDegrees) + " degrees", 25, 38); } }
From source file:uk.co.modularaudio.mads.base.common.ampmeter.BIAmpMeter.java
@Override public void paint(final Graphics g) { if (outBufferedImage != null) { g.drawImage(outBufferedImage, 0, 0, null); }/*from w w w. j av a 2s . c om*/ }
From source file:ImageProcessingTest.java
public ImageProcessingFrame() { setTitle("ImageProcessingTest"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); add(new JComponent() { public void paintComponent(Graphics g) { if (image != null) g.drawImage(image, 0, 0, null); }// w w w .ja va 2 s .co m }); JMenu fileMenu = new JMenu("File"); JMenuItem openItem = new JMenuItem("Open"); openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { openFile(); } }); fileMenu.add(openItem); JMenuItem exitItem = new JMenuItem("Exit"); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); } }); fileMenu.add(exitItem); JMenu editMenu = new JMenu("Edit"); JMenuItem blurItem = new JMenuItem("Blur"); blurItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { float weight = 1.0f / 9.0f; float[] elements = new float[9]; for (int i = 0; i < 9; i++) elements[i] = weight; convolve(elements); } }); editMenu.add(blurItem); JMenuItem sharpenItem = new JMenuItem("Sharpen"); sharpenItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 5.f, -1.0f, 0.0f, -1.0f, 0.0f }; convolve(elements); } }); editMenu.add(sharpenItem); JMenuItem brightenItem = new JMenuItem("Brighten"); brightenItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { float a = 1.1f; // float b = 20.0f; float b = 0; RescaleOp op = new RescaleOp(a, b, null); filter(op); } }); editMenu.add(brightenItem); JMenuItem edgeDetectItem = new JMenuItem("Edge detect"); edgeDetectItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 4.f, -1.0f, 0.0f, -1.0f, 0.0f }; convolve(elements); } }); editMenu.add(edgeDetectItem); JMenuItem negativeItem = new JMenuItem("Negative"); negativeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { short[] negative = new short[256 * 1]; for (int i = 0; i < 256; i++) negative[i] = (short) (255 - i); ShortLookupTable table = new ShortLookupTable(0, negative); LookupOp op = new LookupOp(table, null); filter(op); } }); editMenu.add(negativeItem); JMenuItem rotateItem = new JMenuItem("Rotate"); rotateItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { if (image == null) return; AffineTransform transform = AffineTransform.getRotateInstance(Math.toRadians(5), image.getWidth() / 2, image.getHeight() / 2); AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BICUBIC); filter(op); } }); editMenu.add(rotateItem); JMenuBar menuBar = new JMenuBar(); menuBar.add(fileMenu); menuBar.add(editMenu); setJMenuBar(menuBar); }
From source file:ImageDrawingComponent.java
public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; switch (opIndex) { case 0: /* copy */ g.drawImage(bi, 0, 0, null); break;//from w w w.jav a 2 s . c om case 1: /* scale up using coordinates */ g.drawImage(bi, 0, 0, w, h, /* dst rectangle */ 0, 0, w / 2, h / 2, /* src area of image */ null); break; case 2: /* scale down using transform */ g2.drawImage(bi, AffineTransform.getScaleInstance(0.7, 0.7), null); break; case 3: /* scale up using transform Op and BICUBIC interpolation */ AffineTransform at = AffineTransform.getScaleInstance(1.5, 1.5); AffineTransformOp aop = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC); g2.drawImage(bi, aop, 0, 0); break; case 4: /* low pass filter */ case 5: /* sharpen */ float[] data = (opIndex == 4) ? BLUR3x3 : SHARPEN3x3; ConvolveOp cop = new ConvolveOp(new Kernel(3, 3, data), ConvolveOp.EDGE_NO_OP, null); g2.drawImage(bi, cop, 0, 0); break; case 6: /* rescale */ RescaleOp rop = new RescaleOp(1.1f, 20.0f, null); g2.drawImage(bi, rop, 0, 0); break; case 7: /* lookup */ byte lut[] = new byte[256]; for (int j = 0; j < 256; j++) { lut[j] = (byte) (256 - j); } ByteLookupTable blut = new ByteLookupTable(0, lut); LookupOp lop = new LookupOp(blut, null); g2.drawImage(bi, lop, 0, 0); break; default: } }
From source file:MainClass.java
public void paint(Graphics g) { BufferedImage img = createImage(); float ninth = 1.0f / 9.0f; float[] blurKernel = { ninth, ninth, ninth, ninth, ninth, ninth, ninth, ninth, ninth }; BufferedImageOp blurOp = new ConvolveOp(new Kernel(3, 3, blurKernel)); BufferedImage clone = blurOp.filter(img, null); g.drawImage(clone, 20, 20, this); }
From source file:se.llbit.chunky.world.SkymapTexture.java
@Override public void setTexture(BufferedImage newImage) { if (newImage.getType() == BufferedImage.TYPE_INT_ARGB) { image = newImage;/*from w w w . j av a 2 s . com*/ } else { // convert to ARGB image = new BufferedImage(newImage.getWidth(), newImage.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics g = image.createGraphics(); g.drawImage(newImage, 0, 0, null); g.dispose(); } DataBufferInt dataBuffer = (DataBufferInt) image.getRaster().getDataBuffer(); data = dataBuffer.getData(); width = image.getWidth(); height = image.getHeight(); avgColor = ImageTools.calcAvgColor(image); Log.info("Preprocessing skymap texture"); long start = System.currentTimeMillis(); // gamma correct the texture int segX = 4; int segY = 4; if (width < segX) segX = 1; if (height < segY) segY = 1; TexturePreprocessor[][] preprocessor = new TexturePreprocessor[segX][segY]; int w = width / segX; int h = height / segY; for (int i = 0; i < segX; ++i) { int x0 = w * i; int x1 = x0 + w - 1; if ((i + 1) == segX) x1 = width - 1; for (int j = 0; j < segY; ++j) { int y0 = h * j; int y1 = y0 + h - 1; if ((j + 1) == segY) y1 = height - 1; preprocessor[i][j] = new TexturePreprocessor(x0, x1, y0, y1); preprocessor[i][j].start(); } } for (int i = 0; i < segX; ++i) { for (int j = 0; j < segY; ++j) { try { preprocessor[i][j].join(); } catch (InterruptedException e) { } } } long time = System.currentTimeMillis() - start; Log.info("Skymap preprocessing took " + time + "ms"); }