• 产生半透明效果的步骤


    要制作半透明效果,必须先决定图形所要显示的透明度,例如透明度100%就是完全透明,透明度50%就是半透明。下面就来说明制作半透明效果的步骤:

          步骤一:取出位图的各个像素点,将各像素点的RGB值乘以透明度百分比,然后将它放入到一个内存数组中。

         步骤二:取出背景图与位图重叠部分的像素点,将各像素点的RGB值乘以透明度百分比,然后再将其放入另一个内存数组中。

           步骤三:将前两个步骤所产生的数组相加,就产生了所有半透明的色彩值了。

    假设我们要制作透明度为30%的半透明图,则其大致的计算公式如下:

    半透明图色彩=来源图色彩*30%+背景图色彩*70%

    主要代码:

    PixelBytes=bmpX.bmBitsPixel/8;


    for(y=0;y<bmpX.bmHeight;y++){


    for(x=0;x<bmpX.bmWidth;x++){


    rgb_b=y*bmpX.bmWidthBytes+x*PixelBytes;


    //将B色彩值乘以50%

    px[rgb_b+0]=(BYTE)(px[rgb_b+0]*.5f);


    //将G色彩值乘以50%

    px[rgb_b+1]=(BYTE)(px[rgb_b+1]*0.5f);


    //将R色彩值乘以50%

    px[rgb_b+2]=(BYTE)(px[rgb_b+2]*0.5f);

    }

    }


    for(y=0;y<(bmpX.bmHeight);y++){


    for(x=0;x<(bmpX.bmWidth);x++){


    rgb_b=(x)*PixelBytes+(y)*bmpY.bmWidthBytes;


    i=(y)*bmpX.bmWidthBytes+(x)*PixelBytes;


    //将B色彩值乘以50%并与px相加

    px1[rgb_b+0]=(BYTE)(px1[rgb_b]*0.5f+px[i]);


    //将G色彩值乘以50%并与px相加

    px1[rgb_b+1]=(BYTE)(px1[rgb_b+1]*0.5f+px[i+1]);


    //将R色彩值乘以50%并与px相加

    px1[rgb_b+2]=(BYTE)(px1[rgb_b+2]*0.5f+px[i+2]);

    }

    }


     

  • 相关阅读:
    A Color Game
    《算法分析》作业1
    The 2018 ACM-ICPC CCPC NING XIA G-Factories
    2017北京ICPC Pangu and Stones(区间DP)
    Comet OJ
    2019牛客多校训练营第四场补题
    2019牛客多校训练营第五场补题
    2017CCPC哈尔滨 B:K-th Number(二分+尺取)
    启发式分治入门 Non-boring sequences UVA
    2019牛客多校训练营第三场补题
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2407329.html
Copyright © 2020-2023  润新知