gpt4 book ai didi

c++ - 像素颜色计算 255 到 0

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:07 24 4
gpt4 key购买 nike

我一直在使用微软的算法here :

INT iWidth = bitmap.GetWidth();
INT iHeight = bitmap.GetHeight();
Color color, colorTemp;
for(INT iRow = 0; iRow < iHeight; iRow++)
{
for(INT iColumn = 0; iColumn < iWidth; iColumn++)
{
bitmap.GetPixel(iColumn, iRow, &color);
colorTemp.SetValue(color.MakeARGB(
(BYTE)(255 * iColumn / iWidth),
color.GetRed(),
color.GetGreen(),
color.GetBlue()));
bitmap.SetPixel(iColumn, iRow, colorTemp);
}
}

创建渐变 alpha 混合。他们的是从左到右,我需要一个从下到上,所以我改变了他们的路线

(BYTE)(255 * iColumn / iWidth)

(BYTE)(255 - ((iRow * 255) / iHeight))

这使得第 0 行的 alpha 为 255,直到最后一行的 alpha 为 8。

如何更改计算以使 alpha 从 255 变为 0(而不是 255 变为 8)?

最佳答案

f(x) = 255 * (x - 8)/(255 - 8)?

其中 x 在 [8, 255] 中,f(x) 在 [0, 255] 中

最初的问题可能与这样一个事实有关,即如果宽度为 100 并且遍历水平像素,则只会得到 0 到 99 之间的值。因此,99 除以 100 永远不会是 1。您需要的是类似于 255*(column+1)/width

关于c++ - 像素颜色计算 255 到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7632155/

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