java画图如何实现windows里图标的选中效果,颜色加深变蓝,透明处不变!

nil2000 2003-12-12 12:23:13
这个问题搞我好长时间,一般使用到java的RGBFilter,或者直接对色彩做alpha或其他变换,但我实现的都变为一种颜色了,原来的不见了。
最多只能给200,解决问题者,再送200。
能给出代码最好,不行给个思路。

...全文
362 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nil2000 2003-12-17
  • 打赏
  • 举报
回复
等了几天,问题还没有很好的解决,但已经有替代方法了。所以还是很感谢楼上两位。
分就一人一半吧。
wobelisk 2003-12-13
  • 打赏
  • 举报
回复
AffineTransform is not enough. It does not process Alpha or transparence 透明.

I used raster to do this.
If the image (.gif) has alpha channel, transform only pixels which alpha !=0.
If the image (.jpg) has no alpha channel, it become a little more complex. If I know the image has white( or other) background, the only transfor pixels are not white.

Process:
Image src=..... //width,height
BufferedImage proc= new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
Graphics2D g2=proc.createGraphics();
g2.drawImage(src,width,height,null); //offscreen copy src to proc

Raster rSrc=proc.getRaster();
ColorModel cm=proc.getColorModel();

float[][] matrix={ //alpha blend: src*0.75+dst*0.25, dst is a blue rect
{0.75f,0,0,0,0}, //red
{0,0.75f,0,0,0}, //green
{0,0,0.75f,0,255*0.25f}, //blue, increase blue channel
{0,0,0,0.75f,255*0.25f} //alpha
}

BandCombineOp op=new BandCombineOp(matrix, null){
// override filter to process alpha channel
public WritableRaster filter(Raster src,
WritableRaster dst){

...//src.getPixel
...//getAlpha
...//if has alpha channel and alpha!=0 use matrix to transfor
...//if no ahpha channel, and pixel color is not the background,
//do transform
.. //dst.setPixel

return dst;
}
}

WritableRaster rDst=op.filter(rSrc,rSrc); //op.filter(rSrc,null) is the same
BufferedImage dst=new BufferedImage(cm, rDst,false,null);


//draw dst to the screen if selected.

1.op.filter() refer to j2sdk source code, add the code to process alpha
2.adjust 0.75f to other numbers to get the effect you want.





nil2000 2003-12-12
  • 打赏
  • 举报
回复
谢楼上先,再顶
simonhappy 2003-12-12
  • 打赏
  • 举报
回复
试试Graphics2D中的这个类AffineTransform或者Graphics2D关联的类.
我的思路是如果前景是单色,用一些颜色的与或运算就可以了.如果是一个图片之类的东西,那么必须有一个地方可以统一处理输出前的转换,以前在AffineTransform处理过输出比例的问题,你可以看看Graphics2D其他的类.
内容概要:本文档针对2026年华为杯研究生数学建模竞赛C题“服务于脑机接口与精神性疾病诊断的脑电图计算模型”,系统性地提供了从解题思路、算法实现到论文撰写的全流程支持资源。内容聚焦脑电信号(EEG)的数据预处理、特征提取、分类建模与结果分析,融合机器学习与深度学习技术(如SVM、CNN、LSTM、Transformer等),构建高精度的脑电识别模型,服务于抑郁症、癫痫等精神疾病的智能辅助诊断及脑机接口的信息解析。文档还整合了MATLAB与Python代码资源、模型实现案例及多领域科研技术支持体系,涵盖智能优化、信号处理、路径规划、通信优化等方向,并提供网盘资料下载与在线目录导航,强化理论与实践的深度融合; 适合人群:参加全国研究生数学建模竞赛的硕士、博士研究生,从事脑电信号处理、智能医学、生物信息学研究的科研人员,以及具备一定编程与数据分析基础、致力于人工智能在医疗健康领域应用的高校学生与青年学者; 使用场景及目标:① 快速掌握华为杯C题的技术路线与建模范式,高效完成竞赛备赛;② 构建面向临床辅助诊断的脑电计算模型,推动脑机接口与精神疾病识别的算法创新;③ 借助提供的开源代码与建模框架,开展科研复现、算法优化与学术论文写作; 阅读建议:建议结合文档提供的在线资源目录与百度网盘资料系统学习,优先精读脑电信号去噪、特征工程构建与深度学习模型选型部分,动手运行并调试代码,通过对比不同模型性能深化对算法适用性与工程实现细节的理解,同时关注跨学科方法的融合应用。
源码直接下载地址: https://pan.quark.cn/s/b2e30c4b4277 依据所提供的文件资料,可以总结出以下核心内容: 1. 华硕玩家国度x79 R4G主板属于高端级别的主板,归类于华硕玩家国度系列中的RAMPAGE IV GENE型号。该主板主要面向高端用户及游戏爱好者,具有卓越性能的特点。 2. 华硕玩家国度x79 R4G主板的使用指南采用简体中文版本,并以PDF格式发布。用户手册全面地阐述了该主板的操作方法和各项功能。 3. 版权声明明确指出,本手册包含的所有内容均受到著作权法的保护。未经华硕电脑股份有限公司(简称“华硕”)的许可,禁止进行任何形式的复制、剽窃、翻译或分发。 4. 免责声明具体说明,华硕提供的用户手册依照其发布时的状态呈现,不提供任何明示或暗示的保证。用户使用手册所面临的风险需自行承担,且华硕不对使用手册后的任何结果或信息的精确性或可靠性提供保证。 5. 用户手册中强调,使用本手册后可能引发的风险和损失,涵盖但不限于利益损失、业务中断、数据遗失或其他经济上的损失,华硕及其授权人员、雇员等均不承担相应责任。 6. 华硕拥有随时更新用户手册的权力。当产品规格或驱动程序发生变化时,用户手册将进行相应的修订。用户可以通过华硕的客户服务网站或直接联络华硕电脑客户关怀中心以获取最新版本的信息。 7. 第三方产品名称或内容的所有权和知识产权归属于各自的所有者,并受到相关法律法规的保护。 8. 在华硕的保修政策中,若产品经历过未经华硕授权的维修、规格调整、部件更换或其他未授权操作,或者产品序列号模糊不清或遗失,产品将不再享受华硕的保修和服务。 9. 华硕供应的主板及显卡产品在中国大陆地区(不包括港澳台地区)实施三年免费保修服务及全国联保服务...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧