- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
颜色分量转换
颜色分量转换记得我在上学的时候老师给我们出了一道代码题就是把一个颜色当中的三个颜色分量都提取出来,然后把当中R和G的值,相互调换位置,从而形成一个新的颜色。但是由于当时我在上课的时候基本上都处在深度睡眠当中,课余时间各种促进男女同学之间友谊的娱乐活动不断,导致我别说是用代码实现了,就连最基本的题目意思我都没搞明白是什么东西,于是我就一直用各种理由推脱,最后就不了了之了,真是呜呼哀哉,老师没事找事。一直到工作之后我才理解什么是颜色分量。今天闲来无事突然想起这件趣事,一时兴起和大家分享一下它的实现方法。如果大家有更好的方法,欢迎贴出来大家一起探讨一下,如果是美女的话,为了能够更好的交流,大家不妨一起出来喝喝茶,探讨一下人生和理想。位图的颜色是由RGB值来表示的,RGB就是三个颜色分量,也就是三原色,这三种分量形成的颜色调配出所有其他颜色如下图:这里所说的颜色分量转换其实就是:把一个颜色的三原色分割出来,然后调换其中的两个颜色的值,从而形成一个新的颜色,如下图:R:CD 与G:3D 的位置进行了调换,从而得到了一个新的颜色在这里我给大家介绍一下具体的代码实现原理步骤:获取需要转换位置分量的值:比如下图0xCD3D7B的颜色当中的R部分是CD二进制是0xCD3D7B,G部分是3D二进制/ 获取原始颜色中的红色分量值 0xFF CD 3D 7B /System.out.println(Integer.toHexString(color 8));//System.out.println(Integer.toHexString(color 8 24));int r = color 8 24;// 获取原始颜色中的绿色分量值//System.out.println(Integer.toHexString(color 16));//System.out.println(Integer.toHexString(color 16 24));int g = color 16 24;2、将源颜色中需要转换的分量部分清空:也就是把0XCD3D7B部分的R:CD与G:3D变成0。如下图:// 将颜色中的红色和绿色部分清空color = color 0xFF0000FF;3、将两个分量位置调换填充:// 将绿色分量写入到红色分量的位置,将红色分量值写入到绿色分量的位置color = color | (g 16) | (r 8);具体实现代码如下:package com.chinasofti.microexample;/** * p * Title: ColorOperation * /p * p * Description:将颜色值的红色分量和绿色分量进行互换的微案例代码 * /p * p * Copyright: Copyright (c) 2016 * /p * p * Company: ChinaSoft International Ltd. * /p * * @author etc * @version 1.0 */public class ColorOperation {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stub// 定义用于测试的原始颜色信息/1100110101111011int color = 0xFFCD3D7B;// 定义工具对象ColorOperation co = new ColorOperation();// 转换颜色信息后输出System.out.println(0x+ Integer.toHexString(co.r2g(color)).toUpperCase());}/** * 将参数中的颜色数据的红色分量和绿色分量进行互换 * * @param color * 需要进行转换的颜色 * @return 转换后的结果 * */public int r2g(int color) {// 获取原始颜色中的红色分量值 0xFF CD 3D 7B /System.out.println(Integer.toHexString(color 8));//System.out.println(Integer.toHexString(color 8 24));int r = color 8 24;// 获取原始颜色中的绿色分量值//System.out.println(Integer.toHexString(color 16));//Sys
文档评论(0)