Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: stream и base64string Добавлено: 31.01.07 20:08  

Автор вопроса:  AlexDerS
как преобразовать stream, содержащий изображение ( получен как imgStream=OpenFileDialog1.OpenFile )
в base64string ???

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 31.01.07 22:44
1. Получить из потока массив байт
2. Через System.Convert.ToBase64String конвертировать его в Base64String

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 01.02.07 13:01
Посмотри
System.Security.Cryptography.FromBase64Transform
System.Security.Cryptography.ToBase64Transform

Ответить

Номер ответа: 3
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #3 Добавлено: 02.02.07 00:11
1. Получить из потока массив байт

А как это сделать?
По примеру с MSDN получается фигня какая-то... :(

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 02.02.07 08:53
На какой студии работаешь... 2003 or 2005?

Ответить

Номер ответа: 5
Автор ответа:
 AlexDerS



Вопросов: 37
Ответов: 61
 Профиль | | #5 Добавлено: 02.02.07 09:33
2005

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 02.02.07 10:41
Если работаешь с большими объемами данных, то, чтоб не грузить их все в ОЗУ, можно использовать метод с Transform'ерами

        Dim Base64Transform As New ToBase64Transform
        Using FS1 As New FileStream("d:\vista.ppt", FileMode.Open, FileAccess.Read)
            Using FS2 As New FileStream("d:\vista2.ppt", FileMode.Create, FileAccess.Write)
                Using CS As New CryptoStream(FS1, Base64Transform, CryptoStreamMode.Read)
                    Const BufLength As Integer = 1024 * 1024 * 1
                    Dim CurLength As Integer
                    Dim Buf(BufLength) As Byte
                    Do
                        CurLength = CS.Read(Buf, 0, BufLength)
                        FS2.Write(Buf, 0, CurLength)
                    Loop While CurLength > 0

                End Using
            End Using
        End Using


        Dim Base64Transform As New FromBase64Transform
        Using FS1 As New FileStream("d:\vista2.ppt", FileMode.Open, FileAccess.Read)
            Using FS2 As New FileStream("d:\vista3.ppt", FileMode.Create, FileAccess.Write)
                Using CS As New CryptoStream(FS1, Base64Transform, CryptoStreamMode.Read)
                    Const BufLength As Integer = 1024 * 1024 * 1
                    Dim CurLength As Integer
                    Dim Buf(BufLength) As Byte
                    Do
                        CurLength = CS.Read(Buf, 0, BufLength)
                        FS2.Write(Buf, 0, CurLength)
                    Loop While CurLength > 0

                End Using
            End Using
        End Using

Ответить

Номер ответа: 7
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #7 Добавлено: 02.02.07 10:44
Самый простой способ считать содержимое файла в массив:

Dim Buf() As Byte = My.Computer.FileSystem.ReadAllBytes(Path)


У класса OpenFileDialog есть свойство, возаращающее путь к выбраному файлу.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам