电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java利用AlphaComposite類合并圖像

瀏覽:9日期: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(); } /** * 合成測試 */ public static void testComposite() { //創建背景圖片(帶透明分量的) BufferedImage bg = new BufferedImage(300, 300, BufferedImage.TYPE_INT_ARGB); Graphics2D bgGraphics = (Graphics2D) bg.getGraphics(); bgGraphics.setColor(Color.yellow); //設置顏色 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(); //創建第二張圖片 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(); //內容面板 contentPanel.setBorder(BorderFactory.createLineBorder(Color.blue)); //設置邊框 //contentPanel.setLayout(new BorderLayout()); //添加標簽 JLabel label = new JLabel(); label.setText('組合模式:'); contentPanel.add(label); //添加下拉框 JComboBox comboBox = new JComboBox(); comboBox.addItem('默認'); 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); //添加滑動條([0-10]=>[0,0.1,0.2,.... 1.0]) JSlider jSlider = new JSlider(0,10,10); jSlider.setMajorTickSpacing(5); // 設置主刻度間隔 jSlider.setMinorTickSpacing(1); // 設置次刻度間隔 jSlider.setPaintTicks(true); // 繪制刻度 jSlider.setPaintLabels(true); // 繪制標簽 jSlider.setSnapToTicks(true); // 對其到刻度取值 /* * 給指定的刻度值顯示自定義標簽 */ 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); //將刻度值和自定義標簽的對應關系設置到滑塊(設置后不再顯示默認的刻度值) contentPanel.add(jSlider); jf.setContentPane(contentPanel); //窗體設置內容面板為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)); //設置邊框 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(); //重畫} } }); //滑動條改變事件 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){ //調用的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{//默認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類合并圖像的詳細內容,更多關于Java 合并圖像的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 贵州自考_贵州自学考试网| 驾驶人在线_专业学车门户网站 | 球磨机,节能球磨机价格,水泥球磨机厂家,粉煤灰球磨机-吉宏机械制造有限公司 | 江苏皓越真空设备有限公司 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 上海洗地机-洗地机厂家-全自动洗地机-手推式洗地机-上海滢皓洗地机 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 电子巡更系统-巡检管理系统-智能巡检【金万码】 | 生物除臭剂-除味剂-植物-污水除臭剂厂家-携葵环保有限公司 | 旋振筛|圆形摇摆筛|直线振动筛|滚筒筛|压榨机|河南天众机械设备有限公司 | 工业PH计|工业ph酸度计|在线PH计价格-合肥卓尔仪器仪表有限公司 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 查分易-成绩发送平台官网| 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 艺术涂料|木纹漆施工|稻草漆厂家|马来漆|石桦奴|水泥漆|选加河南天工涂料 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | UV固化机_UVLED光固化机_UV干燥机生产厂家-上海冠顶公司专业生产UV固化机设备 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 紫外可见光分光度计-紫外分光度计-分光光度仪-屹谱仪器制造(上海)有限公司 | 洗瓶机厂家-酒瓶玻璃瓶冲瓶机-瓶子烘干机-封口旋盖压盖打塞机_青州惠联灌装机械 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 鲁尔圆锥接头多功能测试仪-留置针测试仪-上海威夏环保科技有限公司 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 | 陕西华春网络科技股份有限公司 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 海南在线 海南一家| 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 |