0

我正在编写一个小项目来解析 CSS 文件,并对所有背景图像进行 base64 编码。

虽然我能够正确解析 CSS,但似乎每次我尝试将图像文件转换为 base64Encoded 字符串时,返回的字符串总是完全相同的。

我究竟做错了什么?

这是编码器。请假设所有图像路径都正确传递给该方法。在这种情况下,所有图像都是完全限定的 url,因此该方法的第一部分是进行转换的内容。

Public Sub EncodeImage(ByVal _File As String)
    If _File.StartsWith("http") OrElse _File.StartsWith("https") Then
        Using _wc As New WebClient()
            Common.SetAllowUnsafeHeaderParsing20()
            _wc.Headers.Add("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13")
            _wc.DownloadFile(_File, "c:\temp.png")
            Dim _d As Byte() = _wc.DownloadData(_File)
            ImageStrings.Add(New ImageTyping() With {
                             .SourceFile = _File,
                             .Base64String = Convert.ToBase64String(_d)
                         })
            _d = Nothing
        End Using
    Else
        Using _fs As New FileStream(_File, IO.FileMode.Open)
            Using _br As New BinaryReader(_fs)
                Dim _i As Byte() = _br.ReadBytes(_fs.Length)
                ImageStrings.Add(New ImageTyping() With {
                             .SourceFile = _File,
                             .Base64String = Convert.ToBase64String(_i)
                             })
                _i = Nothing
                _br.Close()
            End Using
            _fs.Close()
        End Using
    End If
End Sub

从这里返回的每个字符串都是:

4

2 回答 2

0

您发布的 base64 字符串是有效的 24x24 像素全透明 PNG 文件。您的 base64 代码似乎可以工作,但您转换的文件可能不是您想要转换的文件。

于 2012-04-20T17:22:34.357 回答
0

我删除了 User-Agent 标头字符串,问题就消失了。

于 2012-04-21T12:18:29.100 回答