屏幕快照 2015-08-24 22.08.30.png (17.07 KB, 下载次数: 1770)
下载附件 保存到相册
9 年前 上传
QQ20150824-1.png (13.19 KB, 下载次数: 1829)
QQ20150824-2.png (12.77 KB, 下载次数: 1856)
ImageIcon i = 你的获取图标代码; // 正常状态的图标设置 functionIconBtn.setIcon(i); // rover时图片颜色变成红色 functionIconBtn.setRolloverIcon(SwingUtils.filterWithRescaleOp(i, 2f, 1f, 1f, 1f)); // press时图片颜色变成淡红色 functionIconBtn.setPressedIcon(SwingUtils.filterWithRescaleOp(i, 2f, 1f, 1f, 0.3f));
/** * 使用RescaleOp对图片进行滤镜处理. * * @param iconBottom 原图 * @param redFilter 红色通道滤镜值,1.0f表示保持不变 * @param greenFilter 绿色通道滤镜值,1.0f表示保持不变 * @param blueFilter 蓝色通道滤镜值,1.0f表示保持不变 * @param alphaFilter alpha通道滤镜值,1.0f表示保持不变 * @return 处理后的图片新对象 */ public static ImageIcon filterWithRescaleOp(ImageIcon iconBottom , float redFilter, float greenFilter, float blueFilter, float alphaFilter) { try { int w = iconBottom.getIconWidth(), h = iconBottom.getIconHeight(); // 原图 BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); Graphics2D gg = (Graphics2D)bi.getGraphics(); gg.drawImage(iconBottom.getImage(), 0, 0,w, h,null); // 设置滤镜效果 float[] scales = { redFilter, greenFilter, blueFilter,alphaFilter }; float[] offsets = new float[4]; RescaleOp rop = new RescaleOp(scales, offsets, null); // 执行 rop.filter(bi, bi); return new ImageIcon(bi); } catch (Exception e) { e.printStackTrace(); return new ImageIcon(); } }
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
引用:JackJiang 发表于 2015-8-28 17:32 这是以前工程里的实现,没想到你对这还挺得意的。
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.129888 second(s), 41 queries , Gzip On.