日期:2014-05-17  浏览次数:20955 次

aspjpeg 如何把 gif 图片的背景色去掉?背景变成透明?
这个问题是我在另一个求助帖,总结思考后换了个思路提出。

就是一个 GIF 图片, 背景是纯色,比如: &Hffffff , aspjpeg 能把这个背景色去掉?变成透明的 GIF 吗?



原提是:
现有背景透明的GIF图片,因为网站需要,所以这个GIF需要背景透明,能显示再低一层的图片。
现在这个GIF图片,要批量加上文字,但是要保持GIF背景的透明。

我现在用aspjpeg来做,文字是加上了, 但是背景也变成了白色,不透明了。
网址:http://topic.csdn.net/u/20111226/21/b60db57c-53e1-4f95-9154-88bf75375eb0.html?seed=395661076&r=77082295#r_77082295


------解决方案--------------------
对你我真不知道该怎么说你,我上次告诉你那函数,叫你加上水印功能就好了,你自己不测试,就非说不能用,我就测试了下,才发现你根本就没动手去做,去测试

以下是我测试的代码,一点问题没有

VBScript code
<%
Function BuildSmallPic(m_path1, m_path2, n_MaxWidth, n_MaxHeight, n_Quality)
    Err.Clear
    'On Error Resume Next
    '检 查 组件是否已经注册
    Dim AspJpeg
    Set AspJpeg = Server.Createobject("Persits.Jpeg")
    If Err.Number <> 0 Then
        Err.Clear
        BuildSmallPic = "组件安装不正确!"
        Exit Function
    End If
    
    
    
    ' 按 比例取得缩略图宽度和高度
    Dim n_picWidth, n_picHeight 
    Dim n_newWidth, n_newHeight 
    Dim extn
   
    extn = split(m_path1, ".")
    select case extn(ubound(extn))
        case "jpg"
            AspJpeg.Open Server.MapPath(m_path1)
            n_picWidth = AspJpeg.Width
            n_picHeight = AspJpeg.Height
            
            if n_picWidth > n_MaxWidth or n_picHeight > n_MaxHeight then
                if n_picWidth/n_picHeight >= n_MaxWidth/n_MaxHeight then
                    AspJpeg.Width = n_MaxWidth
                       AspJpeg.Height = n_MaxWidth/(n_picWidth/n_picHeight)
                else
                    AspJpeg.Width = n_picWidth/n_picHeight*n_MaxHeight
                    AspJpeg.Height = n_MaxHeight
                end if
            else
                AspJpeg.Width = n_picWidth
                AspJpeg.Height = n_picHeight
            end if
            AspJpeg.Quality = n_Quality
            
            Gif.Save Server.MapPath(m_path2) '保存
            If Err.Number <> 0 Then
                Err.Clear
                BuildSmallPic = "Error_03"
                Exit Function
            End If
        
            Set AspJpeg = Nothing
        case "gif"
            Set Gif = AspJpeg.Gif
            Gif.Open Server.MapPath(m_path1)
            n_picWidth = Gif.Width
            n_picHeight = Gif.Height
            
            if n_picWidth > n_MaxWidth or n_picHeight > n_MaxHeight then
                if n_picWidth/n_picHeight >= n_MaxWidth/n_MaxHeight then
                    Gif.Resize n_MaxWidth, n_MaxWidth/(n_picWidth/n_picHeight)
                else
                    Gif.Resize n_picWidth/n_picHeight*n_MaxHeight, n_MaxHeight
                end if
            else
                Gif.Resize n_picWidth, n_picHeight
            end if
            Gif.DisposalMethod =2 
               Gif.PenColor = 235
               Gif.FontFamily = "Arial"  
               Gif.FontSize = 8 
               Gif.PrintText 20,10, "www.Chinmo.net"            
            Gif.Save Server.MapPath(m_path2) '保存
            If Err.Number <> 0 Then
                Err.Clear
                BuildSmallPic = "Error_03"
                Exit Function
            End If
        
            Set AspJpeg = Nothing
            Set Gif = Nothing
        case "png"
            AspJpeg.Open Server.MapPath(m_path1)
            
            n_picWidth = AspJpeg.Width
            n_picHeight = AspJpeg.Height
            
            AspJpeg.PreserveAspectRatio = True
            
            if n_picWidth > n_MaxWidth or n_picHeight > n_MaxHeight then
                if n_picWidth/n_picHeight >= n_MaxWidth/n_MaxHeight then
                    AspJpeg.Width = n_MaxWidth
                       AspJpeg.Height = n_MaxWidth/(n_picWidth/n_picHeight)
                else
                    AspJpeg.Width