日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Java利用AlphaComposite類合并圖像

瀏覽:28日期:2022-08-21 16:56:08

package com.hdwang.test;import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;import java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;import java.util.HashMap;import java.util.Hashtable;import java.util.Map;/** * Created by hdwang on 2018/10/11. */public class TestDrawing { public static void main(String[] args) { testComposite(); } /** * 合成測(cè)試 */ public static void testComposite() { //創(chuàng)建背景圖片(帶透明分量的) BufferedImage bg = new BufferedImage(300, 300, BufferedImage.TYPE_INT_ARGB); Graphics2D bgGraphics = (Graphics2D) bg.getGraphics(); bgGraphics.setColor(Color.yellow); //設(shè)置顏色 bgGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); //邊緣抗鋸齒 bgGraphics.fillRect(0, 0, bg.getWidth(), bg.getHeight()); //填充矩形 bgGraphics.setColor(Color.BLACK); bgGraphics.setFont(new Font('楷體', Font.ITALIC, 50)); bgGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); //文本抗鋸齒 bgGraphics.drawString('背景黃色', 50, 150); //畫文本 bgGraphics.dispose(); //創(chuàng)建第二張圖片 BufferedImage image = new BufferedImage(300, 300, BufferedImage.TYPE_INT_ARGB); Graphics2D imageGraphics = (Graphics2D) image.getGraphics(); imageGraphics.setColor(Color.GREEN); imageGraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); imageGraphics.fillRoundRect(0, 0, image.getWidth(), image.getHeight(), image.getWidth(), image.getHeight()); imageGraphics.setColor(Color.BLACK); imageGraphics.setFont(new Font('楷體', Font.ITALIC, 50)); imageGraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); imageGraphics.drawString('前景綠色', 50, 200); imageGraphics.dispose(); JFrame jf = new JFrame(); //窗體 JPanel contentPanel = new JPanel(); //內(nèi)容面板 contentPanel.setBorder(BorderFactory.createLineBorder(Color.blue)); //設(shè)置邊框 //contentPanel.setLayout(new BorderLayout()); //添加標(biāo)簽 JLabel label = new JLabel(); label.setText('組合模式:'); contentPanel.add(label); //添加下拉框 JComboBox comboBox = new JComboBox(); comboBox.addItem('默認(rèn)'); comboBox.addItem('CLEAR'); comboBox.addItem('SRC'); comboBox.addItem('DST'); comboBox.addItem('SRC_OVER'); comboBox.addItem('DST_OVER'); comboBox.addItem('SRC_IN'); comboBox.addItem('DST_IN'); comboBox.addItem('SRC_OUT'); comboBox.addItem('DST_OUT'); comboBox.addItem('SRC_ATOP'); comboBox.addItem('DST_ATOP'); comboBox.addItem('XOR'); contentPanel.add(comboBox); JLabel label2 = new JLabel(); label2.setText('源圖非透明度:'); contentPanel.add(label2); //添加滑動(dòng)條([0-10]=>[0,0.1,0.2,.... 1.0]) JSlider jSlider = new JSlider(0,10,10); jSlider.setMajorTickSpacing(5); // 設(shè)置主刻度間隔 jSlider.setMinorTickSpacing(1); // 設(shè)置次刻度間隔 jSlider.setPaintTicks(true); // 繪制刻度 jSlider.setPaintLabels(true); // 繪制標(biāo)簽 jSlider.setSnapToTicks(true); // 對(duì)其到刻度取值 /* * 給指定的刻度值顯示自定義標(biāo)簽 */ Hashtable<Integer, JComponent> hashtable = new Hashtable<Integer, JComponent>(); hashtable.put(0, new JLabel('0')); // 0 刻度位置,顯示 '0' hashtable.put(5, new JLabel('0.5')); // 5 刻度位置,顯示 '0.5' hashtable.put(10, new JLabel('1')); // 10 刻度位置,顯示 '1' jSlider.setLabelTable(hashtable); //將刻度值和自定義標(biāo)簽的對(duì)應(yīng)關(guān)系設(shè)置到滑塊(設(shè)置后不再顯示默認(rèn)的刻度值) contentPanel.add(jSlider); jf.setContentPane(contentPanel); //窗體設(shè)置內(nèi)容面板為jp jf.setBounds(200, 200, 500, 500); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setVisible(true); //窗體可見 DrawingPanel drawPanel = new DrawingPanel(); drawPanel.setBounds(0,60,500,415); drawPanel.setPreferredSize(new Dimension(500,415)); drawPanel.setBorder(BorderFactory.createLineBorder(Color.red)); //設(shè)置邊框 drawPanel.setBg(bg); drawPanel.setImage(image); // drawPanel.setAlphaComposite(AlphaComposite.SrcAtop); contentPanel.add(drawPanel); Map<String,AlphaComposite> compositeMap = new HashMap<>(); compositeMap.put('CLEAR',AlphaComposite.Clear); compositeMap.put('SRC',AlphaComposite.Src); compositeMap.put('DST',AlphaComposite.Dst); compositeMap.put('SRC_OVER',AlphaComposite.SrcOver); compositeMap.put('DST_OVER',AlphaComposite.DstOver); compositeMap.put('SRC_IN',AlphaComposite.SrcIn); compositeMap.put('DST_IN',AlphaComposite.DstIn); compositeMap.put('SRC_OUT',AlphaComposite.SrcOut); compositeMap.put('DST_OUT',AlphaComposite.DstOut); compositeMap.put('SRC_ATOP',AlphaComposite.SrcAtop); compositeMap.put('DST_ATOP',AlphaComposite.DstAtop); compositeMap.put('XOR',AlphaComposite.Xor); //下拉框選中事件 comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) {if(e.getStateChange() == ItemEvent.SELECTED){ String selected = e.getItem().toString(); System.out.println(selected); drawPanel.setAlphaComposite(compositeMap.get(selected)); drawPanel.repaint(); //重畫} } }); //滑動(dòng)條改變事件 jSlider.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) {int val = jSlider.getValue();float alpha = (float) (val / 10.0);System.out.println('alpha:'+alpha);drawPanel.setAlpha(alpha);drawPanel.repaint(); //重畫 } }); //窗體改變事件 jf.addWindowStateListener(new WindowStateListener() { @Override public void windowStateChanged(WindowEvent e) {System.out.println('window state:'+e.paramString()); } }); } static class DrawingPanel extends JPanel{ BufferedImage bg; BufferedImage image; AlphaComposite alphaComposite; float alpha = 1.0f; //源圖非透明度(新加的圖) public BufferedImage getBg() { return bg; } public void setBg(BufferedImage bg) { this.bg = bg; } public BufferedImage getImage() { return image; } public void setImage(BufferedImage image) { this.image = image; } public AlphaComposite getAlphaComposite() { return alphaComposite; } public void setAlphaComposite(AlphaComposite alphaComposite) { this.alphaComposite = alphaComposite; } public float getAlpha() { return alpha; } public void setAlpha(float alpha) { this.alpha = alpha; } /** * 重寫paint方法 * @param g */ @Override public void paint(Graphics g){ //調(diào)用的super.paint(g),讓父類做一些事前的工作,如刷新屏幕 super.paint(g); //在面板上畫畫 Graphics2D g2d = (Graphics2D)g; g2d.setComposite(AlphaComposite.Src); g2d.drawImage(bg,100,100,null); //背景圖 if(alphaComposite!=null) {g2d.setComposite(alphaComposite.derive(alpha)); }else{//默認(rèn)SrcOverg2d.setComposite(AlphaComposite.SrcOver.derive(alpha)); } g2d.drawImage(image,100,100,null); //疊加圖 //g2d.setColor(Color.GREEN); //g2d.fillRoundRect(100,100,image.getWidth(),image.getHeight(),image.getWidth(),image.getHeight()); //疊加圖層 g2d.dispose(); } }}

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

Java利用AlphaComposite類合并圖像

以上就是Java利用AlphaComposite類合并圖像的詳細(xì)內(nèi)容,更多關(guān)于Java 合并圖像的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品一站二站| 日韩av黄色在线| 精品国产一区二区三区噜噜噜| 日韩三级久久| 国产免费av一区二区三区| 欧美一级网站| 欧美激情视频一区二区三区免费| 欧美成人精品一级| 日韩免费视频| 欧美+日本+国产+在线a∨观看| 91九色精品| 日韩中文字幕91| 日韩动漫一区| 国产一区二区精品久| 热三久草你在线| 亚洲国产不卡| 日本综合精品一区| 国产经典一区| 欧美gv在线| 美女精品一区| 久久不卡日韩美女| 欧洲精品一区二区三区| 日韩av免费| 中文一区一区三区免费在线观| 欧美一区二区三区久久| 国产成人免费精品| 亚洲欧美日韩一区在线观看| 欧美日韩在线精品一区二区三区激情综合 | 美女视频一区在线观看| 国产综合色区在线观看| 亚洲欧洲av| 日韩av自拍| 伊人精品一区| 69堂免费精品视频在线播放| 日韩免费在线| 日本在线不卡视频| 福利一区二区三区视频在线观看| 宅男噜噜噜66国产日韩在线观看| 国产精品欧美三级在线观看| 欧美日韩国产一区精品一区| 国产精品一区二区99| 91精品xxx在线观看| 日韩欧美精品一区二区综合视频| 成人日韩在线| 日本va欧美va精品| 91精品亚洲| 国产精品嫩模av在线| 欧美香蕉视频| 日韩精品一区二区三区中文| 日韩欧美自拍| 国产精品欧美大片| 日韩精品一级二级 | 欧美一级精品| 国产乱人伦精品一区| 国产午夜久久| 亚洲爱爱视频| 美女视频黄久久| 免费成人在线视频观看| 国产videos久久| 日本va欧美va瓶| 亚洲欧美日韩国产| 亚洲国内欧美| 日韩在线免费| 精品一区二区三区在线观看视频| 免费久久99精品国产| 欧美成a人免费观看久久| 国产精品麻豆成人av电影艾秋| 先锋影音国产一区| 免费av一区| 91精品婷婷色在线观看| а√天堂8资源在线| 国产精品玖玖玖在线资源| 蜜桃一区二区三区在线| 欧美日韩水蜜桃| 不卡一二三区| 久久久久久婷| 久久精品国产99国产| 欧美在线91| 日韩av电影一区| 天海翼精品一区二区三区| 免费中文字幕日韩欧美| 亚洲一区二区毛片| 亚洲精品小说| 亚洲网站视频| 99热国内精品| 亚洲精品国产嫩草在线观看| 国产精品久久久久久久免费观看| 国产精品亚洲人成在99www| 一二三区精品| 蜜臀久久99精品久久久久久9| 亚洲深夜av| 亚洲一区二区三区免费在线观看 | 99热免费精品| 伊人成人网在线看| 91成人网在线观看| 午夜久久一区| 日韩专区一卡二卡| 日韩中文字幕一区二区高清99| 亚洲精品视频一二三区| 中文字幕一区二区精品区| 蜜臀国产一区二区三区在线播放| 视频一区二区欧美| 性色一区二区| 亚欧洲精品视频在线观看| 午夜精品福利影院| 日本成人精品| 国产欧美激情| 精品一区二区三区在线观看视频| 国产精品伦理久久久久久| 91精品推荐| 精品欧美久久| 国产综合视频| 老司机精品久久| 欧美在线不卡| 欧美91在线|欧美| 国产成人精品999在线观看| 日韩免费小视频| 欧美日韩色图| 亚洲免费婷婷| 国产三级精品三级在线观看国产| 久久精品亚洲一区二区| 欧洲在线一区| 日韩中文字幕1| 欧美国产中文高清| 群体交乱之放荡娇妻一区二区| 午夜在线精品偷拍| 国产欧美日韩影院| 日韩黄色大片| 丝袜脚交一区二区| 国产亚洲电影| 日本欧美不卡| 亚洲精一区二区三区| 国产精品手机在线播放| 亚洲成a人片| 免费日韩一区二区| 麻豆精品久久久| 欧美午夜不卡| 欧美激情麻豆| 99热精品在线| 久久这里只有| 亚州av乱码久久精品蜜桃| 日韩精选在线| 日韩中文在线电影| 四虎国产精品免费久久| 福利片在线一区二区| 丝袜脚交一区二区| 福利欧美精品在线| 亚洲综合欧美| 激情久久99| 亚洲综合五月| 中文字幕高清在线播放| 亚洲精品乱码日韩| 日韩不卡在线| 日韩高清在线不卡| 99精品美女| 国产三级一区| 91精品91| 精品精品99| 日韩影片在线观看| 欧美日韩精品一区二区视频| 欧美日韩一区二区国产| 欧美日韩国产探花| 久久精品欧洲| 综合国产在线| 精品欧美激情在线观看| 国产aⅴ精品一区二区四区| 日韩有码av| 亚洲主播在线| 99国产精品一区二区| 国产一区二区三区四区| 69精品国产久热在线观看| 伊人久久亚洲美女图片| 黑人精品一区| 美女性感视频久久| 日韩欧美高清一区二区三区| 亚洲高清二区| 福利一区和二区| 91精品国产自产在线丝袜啪| aⅴ色国产欧美| 久久国产主播| 国产一区二区三区黄网站 | 亚洲精品国产精品粉嫩| 欧洲激情综合| 国产在线|日韩| 精品国产91| 久久av网址| 青青青国产精品| 丝瓜av网站精品一区二区| 欧美亚洲国产精品久久| 日韩欧美网址| 精品91福利视频| 久久激情五月婷婷| 日本国产亚洲| 综合一区在线| 日韩中文字幕1| 亚洲最新av| 亚洲精品影视| 日韩在线网址| 亚洲aⅴ网站| 日本午夜精品久久久|