Java图片透明度调整

2023-11-10

 

package com.image

import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TranslucenceImageFrame extends JFrame {
    private Image img = null; // 声明图像对象
    private TranslucenceImagePanel translucencePanel = null; // 声明图像面板对象
    private AlphaComposite alpha = AlphaComposite.SrcOver.derive(1.0f);// 创建表示不透明的AlphaComposite对象
    public static void main(String args[]) {
        TranslucenceImageFrame frame = new TranslucenceImageFrame();
        frame.setVisible(true);
    }
    
    public TranslucenceImageFrame() {
        super();
        URL imgUrl = TranslucenceImageFrame.class.getResource("/img/1.jpg");// 获取图片资源的路径
        img = Toolkit.getDefaultToolkit().getImage(imgUrl); // 获取图像资源
        translucencePanel = new TranslucenceImagePanel(); // 创建图像面板对象
        this.setBounds(200, 160, 316, 237); // 设置窗体大小和位置
        this.add(translucencePanel); // 在窗体上添加图像面板对象
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗体关闭模式
        this.setTitle("图片半透明特效"); // 设置窗体标题

        final JPanel panel = new JPanel();
        getContentPane().add(panel, BorderLayout.SOUTH);

        final JButton button = new JButton();
        button.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent e) {
                alpha = AlphaComposite.SrcOver.derive(0.5f);// 获得表示半透明的AlphaComposite对象
                translucencePanel.repaint();// 调用paint()方法
            }
        });
        button.setText("半透明");
        panel.add(button);

        final JButton button_1 = new JButton();
        button_1.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent e) {
                alpha = AlphaComposite.SrcOver.derive(1.0f);// 获得表示不透明的AlphaComposite对象
                translucencePanel.repaint();// 调用paint()方法
            }
        });
        button_1.setText("不透明");
        panel.add(button_1);
    }
    
    // 创建面板类
    class TranslucenceImagePanel extends JPanel {
        public void paint(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;// 获得Graphics2D对象
            g2.clearRect(0, 0,  getWidth(), getHeight());// 清除绘图上下文的内容
            g2.setComposite(alpha);// 指定AlphaComposite对象
            g2.drawImage(img, 0, 0,  getWidth(), getHeight(), this);// 绘制图像
        }    
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java图片透明度调整 的相关文章

  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • 如何在一行中将字符串数组转换为双精度数组

    我有一个字符串数组 String guaranteedOutput Arrays copyOf values values length String class 所有字符串值都是数字 数据应转换为Double QuestionJava 中
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 解决错误:日志已在具有多个实例的atomikos中使用

    我仅在使用atomikos的实时服务器上遇到问题 在我的本地服务器上它工作得很好 我在服务器上面临的问题是 init 中出错 日志已在使用中 完整的异常堆栈跟踪 java lang RuntimeException Log already
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 使用 ANTLR 为 java 源代码生成抽象语法树

    如何使用 ANTLR 从 java src 代码生成 AST 有什么帮助吗 好的 步骤如下 前往ANTLR站点 http www antlr org 并下载最新版本 下载Java g和JavaTreeParser g文件来自here htt
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 当分配给变量时,我可以以某种方式重用 Gremlin GraphTraversals 代码吗?

    我有看起来像这样的 GraphTraversals attrGroup GraphTraversal
  • Java 页面爬行和解析之 Crawler4j 与 Jsoup

    我想获取页面的内容并提取其中的特定部分 据我所知 此类任务至少有两种解决方案 爬虫4j https github com yasserg crawler4j and Jsoup http jsoup org 它们都能够检索页面的内容并提取其
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 查看Jasper报告执行的SQL

    运行 Jasper 报表 其中 SQL 嵌入到报表文件 jrxml 中 时 是否可以看到执行的 SQL 理想情况下 我还想查看替换每个 P 占位符的值 Cheers Don JasperReports 使用 Jakarta Commons

随机推荐

  • LR.net敏捷软件开发平台核心功能详解

    软件开发 程序员就是不断地跟变量 方法 类 接口这些东西打交道 随着开发经验的积累 很多程序员会发现 虽然最终开发出来的软件每个都不一样 但是在开发过程中用到的很多东西却又是相通的 例如 每个软件的底层差不多都需要进行增删改查 文件操作 权
  • State 模式

    有限状态机 FSM Finite state machine 例子 1 若状态机在Locked状态收到了一个coin事件 则迁移到Unlocked状态并执行unlock动作 2 若状态机在UnLocked状态收到了一个pass事件 则迁移到
  • 基于Spark MLlib平台的协同过滤算法---电影推荐系统

    说到推荐系统 大家可能立马会想到协同过滤算法 本文基于Spark MLlib平台实现一个向用户推荐电影的简单应用 其中 主要包括三部分内容 协同过滤算法概述 基于模型的协同过滤应用 电影推荐 实时推荐架构分析 一 协同过滤算法概述 本人对算
  • npm安装Electron解决方案

    npm安装Electron解决方案 Electron使用npm安装时 因为是国外的镜像源 所以速度会非常慢 而使用cnpm如下命令进行安装时 又会出现安装失败的问题 npm install electron g execute post i
  • 第一阶段-第四章 Python的循环语句

    目录 前言 1 循环语句的运行方式 2 为什么要学习循环语句 3 本章的安排 一 while循环的基础语法 1 学习目标 2 while循环语句 3 本节的演示 4 while循环的注意点 5 本小节的总结 6 课后练习 二 while循环
  • 【JavaEE初阶】第三节.多线程基础篇

    作者简介 大家好 我是未央 博客首页 未央 303 系列专栏 JavaEE初阶 每日一句 人的一生 可以有所作为的时机只有一次 那就是现在 目录 文章目录 前言 一 认识线程 二 多线程程序 2 1 第一个Java多线程程序 2 2 怎么样
  • 6.1 什么是面向对象以及类和对象的区别

    什么是面向对象 面向对象 面向对象编程的简称 Object Oriented Programming OOP 是一种对现实世界理解和抽象的方法 是计算机编程技术发展到一定阶段后的产物 早期的计算机编程是面向过程的 典型的代表是 C 语言 解
  • Redis数据类型及编码格式——Hash篇

    写在前面 以下的知识都是建立在目前线上稳定版6 2 6版本的 而目前github上的redis源代码又更新优化了许多 譬如 hash数据类型默认的编码格式已经被替换为listpack hashtable数据结构也被重新优化 哈希表对象dic
  • python/matlibplot绘制多条曲线图

    这里我利用的是matplotlib pyplot plot的工具来绘制折线图 这里先给出一个段代码和结果图 coding UTF 8 import numpy as np import matplotlib as mpl import ma
  • 动态添加“<input onclick=“‘+json+‘“>“元素传参时不识别json的bug问题解决

    问题描述 var json a 1 在html中使用js方法动态添加
  • Vim快捷键 - Vim Cheat Sheet

    请访问 https vim rtorr com lang zh cn 全局 h elp 关键字 打开关键字帮助 sav eas 文件名 另存为 clo se 关闭当前窗口 ter minal 打开一个shell窗口 K 打开光标所在单词的m
  • nfs文件服务器错误码5,使用5.4内核最新代码后作为nfs服务器只能列出共享的文件夹名称,点进去不能显示内容...

    反馈bug 问题模板 提建议请删除 1 关于你要提交的问题 Q 是否搜索了issue 使用 x 选择 没有类似的issue 2 详细叙述 1 具体问题 A 使用5 4内核最新代码后作为nfs服务器只能列出如 mnt sda3的共享的文件夹名
  • 【hortonworks/registry】诡异问题之启动了却无法访问

    1 背景 本地mac启动了registry 但是却无法访问页面 lcc lcc soft registry hortonworks registry 0 9 0 bin registry start lcc lcc
  • osgEarth的Rex引擎原理分析(一二八)rex的引擎和图层投影及其关系

    目标 一二七 中问题214 主要存在三个地方 一是map的type属性 可取两个值geocentric projected 前者用于三维显示 后者用于二维显示 二是map的options属性的srs 可以取spherical mercato
  • 用户复购行为预测--数据挖掘分析案例(天池/python)

    阿里天池新人赛中的一个 记录分享 Repeat Buyers Prediction Challenge the Baseline 天池大赛 阿里云天池 第一次提交 8简单特征 随机森林模型 score 0 5507327 排名 278 第二
  • vue3 父子组件传值 记录

    最近这个组件之间传值用的较多 我这该死的记性 总给忘记写法 特此记录下 第一种 父传子 补充 LeftView vue 是父组件 Video vue 是子组件 第二种 子传父 Video vue 子组件 第一步 引入 import defi
  • PHP Advent 2011:带有CORS的跨域Ajax

    I ve had the honor of writing for this year s PHP Advent blessing you all about Cross Origin Requests with CORS 我很荣幸为今年P
  • nginx中间件漏洞复现

    nginx中间件漏洞复现 nginx介绍 Nginx engine x 是一个高性能的HTTP和反向代理web服务器 同时也提供了IMAP POP3 SMTP服务 Nginx是由伊戈尔 赛索耶夫为俄罗斯访问量第二的Rambler ru站点
  • VMware虚拟机中调用本机摄像头详解

    本机环境 虚拟机 VMware Workstation 16 Player 虚拟机内系统 Centos7 其它也ok的 本机 win10 任何系统都ok 调用本机摄像头 首先wins R输入services msc 打开本地服务列表 确保
  • Java图片透明度调整

    package com image import java awt AlphaComposite import java awt BorderLayout import java awt Graphics import java awt G