gpt4 book ai didi

java - 动态更改十六进制整数的 alpha 值

转载 作者:行者123 更新时间:2023-12-02 00:10:37 25 4
gpt4 key购买 nike

我已经运行了数千次这个循环(因此需要高效)。它更改位图像素的值。

我希望能够运行循环并将一组像素“切换”为 Alpha,然后稍后再将它们切换回来。

我的问题是。如何切换值?所以说 0xFFCC1BE0 变成 0x00CC1BE0,然后如果我想切换回 0xFFCC1BE0,我只需取 00 并将其也转为 FF。

由于内存不足,我无法制作两个位图:-(

无论如何,这是我到目前为止所得到的:

private void setTransparencyOnLightMap(float WidthPercentage, float LeftPosition)
{
int blankPixel = 0x00000000;
int savedPixel = 0x00000000;
int desiredAlpha = 200; //Can also be 0x00
//Find away of turning alhpa off and on.

for(int BMx = 0; BMx < mLightMap.getWidth(); BMx++)
{
for(int BMy = 0; BMy < mLightMap.getHeight(); BMy++)
{
if(mLightMap.getPixel(BMx, BMy) != blankPixel) //Make sure don't overwrite blank transparent pixels.
{
savedPixel = mLightMap.getPixel(BMx,BMy);
savedPixel = savedPixel | (desiredAlpha << 24);

mLightMap.setPixel(BMx, BMy, savedPixel);
}
}
}
}

最佳答案

您可以像这样切换像素的 alpha:

savedPixel = savedPixel & 0x00FFFFFF;
savedPixel = savedPixel | (desiredAlpha << 24);

第一行将 savingPixel 的 8 个最高有效位清零(这些是保存 alpha 的位)。第二行将savedPixel的8个最高有效位设置为desiredAlpha。请注意,desiredAlpha 必须介于 0 到 255 之间(这些是可以存储在 8 位中的整数)。

请注意,这使用了非常高效的按位运算符(&、|、<<)。

关于java - 动态更改十六进制整数的 alpha 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12885192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com