截图图片成 圆形 图片
/*//截图成圆形
File localFile = new File("c:/a.jpg");
BufferedImage sourceImg = ImageIO.read(localFile);
BufferedImage newImage = new BufferedImage(toWidth, (int)height, originalImage.getType());
Graphics g = newImage.getGraphics();
g.drawImage(sourceImg, 0, 0, toWidth, (int)height, null);
g.dispose();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageOutputStream imOut = ImageIO.createImageOutputStream(bs);
ImageIO.write(newImage, "png", imOut);
*/
BufferedImage bi1 = ImageIO.read(new File("d:/1.jpg"));
// 根据需要是否使用 BufferedImage.TYPE_INT_ARGB
BufferedImage image = new BufferedImage(bi1.getWidth(), bi1.getHeight(),
BufferedImage.TYPE_INT_ARGB);
Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, 110, 98);
int x = 0, y = 0,srcH=bi1.getHeight(),srcW=bi1.getWidth(),w=110,h=98,srcw,srch;
x = srcW / 2 - w / 2;
y = srcH / 2 - h / 2;
srcw = srcW / 2 + w / 2;
srch = srcH / 2 + h / 2;
Graphics2D g2 = image.createGraphics();
image = g2.getDeviceConfiguration().createCompatibleImage(110, 98, Transparency.TRANSLUCENT);
g2 = image.createGraphics();
g2.setComposite(AlphaComposite.Clear);
g2.fill(new Rectangle(110,98));
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f));
g2.setClip(shape);
// 使用 setRenderingHint 设置抗锯齿
g2.drawImage(bi1, 0, 0,110,98,x,y,srcw,srch, null);
g2.dispose();
try {
ImageIO.write(image, "PNG", new File("d:/2.png"));
} catch (IOException e) {
e.printStackTrace();
}
/*//截图成圆形File localFile = new File("c:/a.jpg");BufferedImage sourceImg = ImageIO.read(localFile);BufferedImage newImage = new BufferedImage(toWidth, (int)height, originalImage.getType()); Graphics g = newImage.getGraphics(); g.drawImage(sourceImg, 0, 0, toWidth, (int)height, null); g.dispose(); ByteArrayOutputStream bs = new ByteArrayOutputStream(); ImageOutputStream imOut = ImageIO.createImageOutputStream(bs); ImageIO.write(newImage, "png", imOut); */BufferedImage bi1 = ImageIO.read(new File("d:/1.jpg")); // 根据需要是否使用 BufferedImage.TYPE_INT_ARGB BufferedImage image = new BufferedImage(bi1.getWidth(), bi1.getHeight(), BufferedImage.TYPE_INT_ARGB); Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, 110, 98); int x = 0, y = 0,srcH=bi1.getHeight(),srcW=bi1.getWidth(),w=110,h=98,srcw,srch; x = srcW / 2 - w / 2; y = srcH / 2 - h / 2; srcw = srcW / 2 + w / 2; srch = srcH / 2 + h / 2; Graphics2D g2 = image.createGraphics(); image = g2.getDeviceConfiguration().createCompatibleImage(110, 98, Transparency.TRANSLUCENT); g2 = image.createGraphics(); g2.setComposite(AlphaComposite.Clear); g2.fill(new Rectangle(110,98)); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f)); g2.setClip(shape); // 使用 setRenderingHint 设置抗锯齿 g2.drawImage(bi1, 0, 0,110,98,x,y,srcw,srch, null); g2.dispose(); try { ImageIO.write(image, "PNG", new File("d:/2.png")); } catch (IOException e) { e.printStackTrace(); }
浙公网安备 33010602011771号