BufferedImage (Icon icon, float scale) { if (icon == null || icon.getIconHeight() <= 0 || icon.getIconWidth() <= 0) { return null; } final int w = Math.round(icon.getIconWidth() * scale); final int h = Math.round(icon.getIconHeight() * scale); final int memLength = w * h * 4; Pointer memory = new Memory(memLength); return _drawIconIntoMemory(icon, scale, memory, 0); }