幻影2003中有一种加轮廓的效果是如何实现的。
如何利用一幅从中心渐变的掩图来实现幻影的效果?是不是用AlphaBlend再根据这幅掩图琢点做图像合成?

解决方案 »

  1.   

    买几本数字图像处理的书系统学一下利用DIB逐点进行处理
      

  2.   

    请问一下下面这一段有什么问题?我是对两幅图像
    逐点进行AlphaBlend合成,可这样的速度很慢,而且
    效果也不好For i = 0 To picMask.ScaleWidth
            For j = 0 To picMask.ScaleWidth
                cR = (picMask.Point(i, j)) And &HFF
                cG = ((picMask.Point(i, j)) \ &H100) And &HFF
                cB = ((picMask.Point(i, j)) \ &H10000) And &HFF            With BF
                    .BlendOp = AC_SRC_OVER
                    .BlendFlags = 0
                    .SourceConstantAlpha = Int((cR+cG+cB))
                    If Int(cR) > 0 Then
                        Debug.Print Int(cR)
                    End If
                    .AlphaFormat = 0
                End With            RtlMoveMemory lBF, BF, 4
    '            做AlphaBlend混合
                AlphaBlend picDest.hDC, i, j, 1, 1, picBG.hDC, i, j, 1, 1, lBF
                DoEvents
            Next j
        Next i
      

  3.   

    就是根据一幅从中心渐变的掩图(蒙板)来实现两幅图的合成.例如上面的代码: picMask是我的蒙板图,picDest是我目标图,picBG是我的背景图
    我要根据picMask来合成另两幅图。希望有人愿意思提供一种比较快速的算法,马上给分。
      

  4.   

    高速图像处理原理:
    http://www.aivisoft.net/Zyl910/VBImgOp.htm
    http://www.aivisoft.net/Zyl910/ImgTest.zip
    “逐点计算。效果好速度太慢”
    逐点计算有很多种方法,VB的PSet是最慢的,API函数SEtPixelV也快不了多少,用DIB就快多了(比PSet快145倍),完全可以实时处理
      

  5.   


    做这样的东西,你需要系统的学习,否则现在给你说一个公式,笼统说一下方法你也不懂
    公式很简单,就是椭圆公式来计算透明度,然后再用DIB的方法逐点绘制出来。
      

  6.   

    先看看这两个程序感受一下什么是图像的透明合成http://www.aivisoft.net/Zyl910/AlphaDemo.zip
    http://www.aivisoft.net/Zyl910/zDIBop.zip
      

  7.   

    现在越在CSDN回答问题越想写书
    http://community.csdn.net/Expert/topic/3179/3179947.xml?temp=.9119532
    《VB算法与数据结构》的范围:
    http://community.csdn.net/Expert/topic/3214/3214394.xml?temp=.4806177
    请大家帮忙写一个排序算法:根据字符串的长度对字符串数组进行排序。 《VB数字图像处理》的范围:
    http://community.csdn.net/Expert/topic/3180/3180615.xml?temp=.2581903
    有谁知道幻影2003的那幻影效果是如何实现的
      

  8.   

    Geo_Cra(锺意阿芙洛蒂忒) 不妨把公式贴出一见。 zyl910(910:分儿,我又来了!)
    刚才看了贴子,才知道你也是湖南的,真是惭愧啊?
      

  9.   

    公式是
    Alpha = Sqr((X - HalfWidth)^2 + (Y - HalfHeight)^2) * 255 / Sqr(HalfWidth^2+HalfHeight^2)
    Alpha要归一到0~255
    (加分加到Geo_Cra,谢谢)