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 に答える