zoukankan      html  css  js  c++  java
  • 产生半透明效果的步骤

    要制作半透明效果,必须先决定图形所要显示的透明度,例如透明度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]);

    }

    }


     

  • 相关阅读:
    Qt 字符串QString arg()用法总结
    Qt子窗口QMidSubwindow全屏出现的问题总结
    QString介绍
    Qt控制台输出QString
    汽车辐射监测系统-Qt开发[转]发
    Eclipse Qt开发环境的建立
    串口调节工具
    QT 多线程程序设计 -互斥
    ArcGIS Spatial Query
    IQueryFielter接口
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/2407329.html
Copyright © 2011-2022 走看看