public static BufferedImage resize(BufferedImage img, int newW, int newH) { Image tmp = img.getScaledInstance(newW, newH, Image.SCALE_SMOOTH); BufferedImage dimg = new BufferedImage(newW, newH, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = dimg.createGraphics(); g2d.drawImage(tmp, 0, 0, null); g2d.dispose(); return dimg; }
final float FACTOR = 4f; BufferedImage img = ImageIO.read(new File("graphic.png")); int scaleX = (int) (img.getWidth() * FACTOR); int scaleY = (int) (img.getHeight() * FACTOR); Image image = img.getScaledInstance(scaleX, scaleY, Image.SCALE_SMOOTH); BufferedImage buffered = new BufferedImage(scaleX, scaleY, TYPE); buffered.getGraphics().drawImage(image, 0, 0 , null);
BufferedImage trayIconImage = ImageIO.read(getClass().getResource("/path/to/icon.png")); int trayIconWidth = new TrayIcon(trayIconImage).getSize().width; TrayIcon trayIcon = new TrayIcon(trayIconImage.getScaledInstance(trayIconWidth, -1, Image.SCALE_SMOOTH));
private BufferedImage resizeImage(BufferedImage image, int width, int height) { if (width < 1) { width = 1; } if (height <= 0) { double aspectRatio = (double) width / image.getWidth() * 0.5; height = (int) Math.ceil(image.getHeight() * aspectRatio); } BufferedImage resized = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Image scaled = image.getScaledInstance(width, height, Image.SCALE_DEFAULT); resized.getGraphics().drawImage(scaled, 0, 0, null); return resized; }
/** * Re-size a BufferedImage to the given dimensions. * * @param image the BufferedImage. * @param newWidth The width to set the BufferedImage to. * @param newHeight The height to set the BufferedImage to. * @return The BufferedImage with the specified dimensions */ public static BufferedImage resizeImage(final BufferedImage image, final int newWidth, final int newHeight) { final Image resized = image.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH); return ImageUtil.bufferedImageFromImage(resized); }
/** * 高保真缩放 */ private static BufferedImage resize(BufferedImage bi, int toWidth, int toHeight) { Graphics g = null; try { Image scaledImage = bi.getScaledInstance(toWidth, toHeight, Image.SCALE_SMOOTH); BufferedImage ret = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB); g = ret.getGraphics(); g.drawImage(scaledImage, 0, 0, null); return ret; } catch (Exception e) { throw new RuntimeException(e); } finally { if (g != null) { g.dispose(); } } }
private BufferedImage generateAtlas(int mipMapLevel, List<BlockTile> tileImages, Color clearColor) { int size = atlasSize / (1 << mipMapLevel); int textureSize = tileSize / (1 << mipMapLevel); int tilesPerDim = atlasSize / tileSize; BufferedImage result = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB); Graphics g = result.getGraphics(); g.setColor(clearColor); for (int index = 0; index < tileImages.size(); ++index) { int posX = (index) % tilesPerDim; int posY = (index) / tilesPerDim; BlockTile tile = tileImages.get(index); if (tile != null) { g.drawImage(tile.getImage().getScaledInstance(textureSize, textureSize, Image.SCALE_SMOOTH), posX * textureSize, posY * textureSize, null); } else { g.fillRect(posX * textureSize, posY * textureSize, textureSize, textureSize); } } return result; } }
BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); if (scale < 1) { newImage.getGraphics().drawImage(image.getScaledInstance(width, height, Image.SCALE_AREA_AVERAGING), 0, 0, null); } else { Graphics2D g = (Graphics2D)newImage.getGraphics();
BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR); if (scale < 1) { newImage.getGraphics().drawImage(image.getScaledInstance(width, height, Image.SCALE_AREA_AVERAGING), 0, 0, null); } else { Graphics2D g = (Graphics2D)newImage.getGraphics();
public void actionPerformed (ActionEvent event) { FileDialog dialog = new FileDialog(editor, "Select Image", FileDialog.LOAD); if (lastDir != null) dialog.setDirectory(lastDir); dialog.setVisible(true); final String file = dialog.getFile(); final String dir = dialog.getDirectory(); if (dir == null || file == null || file.trim().length() == 0) return; lastDir = dir; try { final FileHandle absolute = Gdx.files.absolute(dir + file); final BufferedImage read = ImageIO.read(absolute.read()); final Image scaledInstance = read.getScaledInstance(100, -1, Image.SCALE_SMOOTH); final ImageIcon image = new ImageIcon(scaledInstance); JLabel previewImage = new JLabel(image); previewImage.setOpaque(true); previewImage.setBackground(Color.MAGENTA); buildImagePanel(previewImage, absolute.file()); } catch (IOException e) { e.printStackTrace(); } }
public void actionPerformed (ActionEvent event) { FileDialog dialog = new FileDialog(editor, "Select Image", FileDialog.LOAD); if (lastDir != null) dialog.setDirectory(lastDir); dialog.setVisible(true); final String file = dialog.getFile(); final String dir = dialog.getDirectory(); if (dir == null || file == null || file.trim().length() == 0) return; lastDir = dir; try { final FileHandle absolute = Gdx.files.absolute(dir + file); final BufferedImage read = ImageIO.read(absolute.read()); final Image scaledInstance = read.getScaledInstance(100, -1, Image.SCALE_SMOOTH); final ImageIcon image = new ImageIcon(scaledInstance); JLabel previewImage = new JLabel(image); previewImage.setOpaque(true); previewImage.setBackground(Color.MAGENTA); buildImagePanel(previewImage, absolute.file()); } catch (IOException e) { e.printStackTrace(); } }
/** * 缩放图像(按长宽缩放)<br> * 注意:目标长宽与原图不成比例会变形 * * @param width 目标宽度 * @param height 目标高度 * @return this */ public Img scale(int width, int height) { final BufferedImage srcImg = getValidSrcImg(); int srcHeight = srcImg.getHeight(); int srcWidth = srcImg.getWidth(); int scaleType; if (srcHeight == height && srcWidth == width) { // 源与目标长宽一致返回原图 this.targetImage = srcImg; return this; } else if (srcHeight < height || srcWidth < width) { // 放大图片使用平滑模式 scaleType = Image.SCALE_SMOOTH; } else { scaleType = Image.SCALE_DEFAULT; } final Image image = srcImg.getScaledInstance(width, height, scaleType); this.targetImage = ImageUtil.toBufferedImage(image); return this; }
/** * 缩放图像(按长宽缩放)<br> * 注意:目标长宽与原图不成比例会变形 * * @param width 目标宽度 * @param height 目标高度 * @return this */ public Img scale(int width, int height) { final BufferedImage srcImg = getValidSrcImg(); int srcHeight = srcImg.getHeight(); int srcWidth = srcImg.getWidth(); int scaleType; if (srcHeight == height && srcWidth == width) { // 源与目标长宽一致返回原图 this.targetImage = srcImg; return this; } else if (srcHeight < height || srcWidth < width) { // 放大图片使用平滑模式 scaleType = Image.SCALE_SMOOTH; } else { scaleType = Image.SCALE_DEFAULT; } final Image image = srcImg.getScaledInstance(width, height, scaleType); this.targetImage = ImageUtil.toBufferedImage(image); return this; }
int newHeight = (int) (screenshotImage.getHeight() / estimatedPixelRatio); Image tmp = screenshotImage.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH); BufferedImage scaledImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
g2.drawImage(ret.getScaledInstance(w, h, Image.SCALE_SMOOTH), 0, 0, w, h, null); g2.dispose();
int width = term.width(); int height = term.height(); Image temp = capture.getScaledInstance(width, height, Image.SCALE_SMOOTH); BufferedImage scaled = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = scaled.createGraphics();
/** * 等比缩放,居中剪切 * * @param src * @param dest * @param w * @param h * @throws IOException */ public static void scale(String src, String dest, int w, int h) throws IOException { if (notImageExtName(src)) { throw new IllegalArgumentException("只支持如下几种图片格式:jpg、jpeg、png、bmp"); } Iterator<ImageReader> iterator = ImageIO.getImageReadersByFormatName(getExtName(src)); ImageReader reader = (ImageReader) iterator.next(); InputStream in = new FileInputStream(src); ImageInputStream iis = ImageIO.createImageInputStream(in); reader.setInput(iis); BufferedImage srcBuffered = readBuffereImage(reader, w, h); BufferedImage targetBuffered = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); Graphics graphics = targetBuffered.getGraphics(); graphics.drawImage(srcBuffered.getScaledInstance(w, h, Image.SCALE_DEFAULT), 0, 0, null); // 绘制缩小后的图 graphics.dispose(); srcBuffered.flush(); save(targetBuffered, dest); targetBuffered.flush(); }
final BufferedImage image = reader.read(0); final Image scaledImage = image.getScaledInstance(width, height, hints); final BufferedImage scaledBufferedImg; if (scaledImage instanceof BufferedImage) {
materialTab.setIcon(new ImageIcon(subIcon.getScaledInstance(24, 24, Image.SCALE_SMOOTH))); }; icon.onChanged(resize);
private void loadSprites() throws IOException { Storage storage = store.getStorage(); Index index = store.getIndex(IndexType.SPRITES); final int mapsceneHash = Djb2.hash("mapscene"); for (Archive a : index.getArchives()) { byte[] contents = a.decompress(storage.loadArchive(a)); SpriteLoader loader = new SpriteLoader(); SpriteDefinition[] sprites = loader.load(a.getArchiveId(), contents); for (SpriteDefinition sprite : sprites) { if (sprite.getHeight() <= 0 || sprite.getWidth() <= 0) { continue; } if (a.getNameHash() == mapsceneHash) { BufferedImage spriteImage = new BufferedImage(sprite.getWidth(), sprite.getHeight(), BufferedImage.TYPE_INT_ARGB); spriteImage.setRGB(0, 0, sprite.getWidth(), sprite.getHeight(), sprite.getPixels(), 0, sprite.getWidth()); // scale image down so it fits Image scaledImage = spriteImage.getScaledInstance(MAPICON_MAX_WIDTH, MAPICON_MAX_HEIGHT, 0); assert scaledMapIcons.containsKey(sprite.getFrame()) == false; scaledMapIcons.put(sprite.getFrame(), scaledImage); } } } }