栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中将32bpp图像转换为16bpp图像

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中将32bpp图像转换为16bpp图像

将32位AARRGGBB值转换为16位ARGB值将是这样的:

int argb = ((aarrggbb & 0x000000F0) >> 4)         | ((aarrggbb & 0x0000F000) >> 8)         | ((aarrggbb & 0x00F00000) >> 12)         | ((aarrggbb & 0xF0000000) >> 16);

它会将所有内容粘贴在低16位中,而将高16位保留为0。

对于每个通道,您会丢失颜色信息的低4位,而高4位则更为重要。颜色将被量化为最接近的4位等效值,从而导致整个图像出现视觉上不愉快的色带效果。

顺便提及,16位颜色通常不包含alpha分量。通常(尽管并非总是如此),它分解为红色的5位,绿色的6位(因为我们的眼睛对绿色/蓝色最敏感)和蓝色的5位。

此转换将丢失每个通道上的2或3位信息,而不是4位,并且将假定源像素不包含alpha。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414253.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号