日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java graphics透明_如何使用Graphics对象g绘制透明形状?

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java graphics透明_如何使用Graphics对象g绘制透明形状? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建一個圓形,然后從中減去另一個圓形,將其設置為剪輯&你最終可能會得到所需的東西.要隱藏剪輯的粗糙邊緣,請繪制形狀的2px寬筆觸.

import java.awt.*;

import java.awt.geom.*;

import java.awt.image.BufferedImage;

import java.net.URL;

import javax.imageio.ImageIO;

import javax.swing.*;

public class OneRing {

OneRing(BufferedImage imageBG, BufferedImage imageFG) {

// presumes the images are identical in size BNI

int w = imageBG.getWidth();

int h = imageBG.getHeight();

Ellipse2D.Double ellipse1 = new Ellipse2D.Double(

w/16,h/16,7*w/8,7*h/8);

Ellipse2D.Double ellipse2 = new Ellipse2D.Double(

w/4,h/4,w/2,h/2);

Area circle = new Area(ellipse1);

circle.subtract(new Area(ellipse2));

Graphics2D g = imageBG.createGraphics();

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

g.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);

g.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC);

g.setClip(circle);

g.drawImage(imageFG, 0, 0, null);

g.setClip(null);

Stroke s = new BasicStroke(2);

g.setStroke(s);

g.setColor(Color.BLACK);

g.draw(circle);

g.dispose();

JLabel l = new JLabel(new ImageIcon(imageBG));

JOptionPane.showMessageDialog(null, l);

}

public static void main(String[] args) throws Exception {

URL urlFG = new URL("http://i.stack.imgur.com/OVOg3.jpg");

URL urlBG = new URL("http://i.stack.imgur.com/lxthA.jpg");

final BufferedImage biFG = ImageIO.read(urlFG);

final BufferedImage biBG = ImageIO.read(urlBG);

SwingUtilities.invokeLater(new Runnable(){

@Override

public void run() {

new OneRing(biBG, biFG);

}

});

}

}

總結

以上是生活随笔為你收集整理的java graphics透明_如何使用Graphics对象g绘制透明形状?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。