Страница: 1 |
Страница: 1 |
Вопрос: Поместить картинку в файл? Help
Добавлено: 13.12.05 16:29
Автор вопроса: На†уралист™ | Web-сайт:
Всем доброее время суток.
Прошу ещё раз оказать посильную помосЧъ…
Есть вот такой кусочек кода (взято из примера «Shared memory»):
Public Sub Put(ByVal Data As String)
Dim myBuffer As Byte() = System.Text.Encoding.UTF8.GetBytes(Data)
Marshal.WriteInt32(SharePoint, Data.Length)
Marshal.Copy(myBuffer, 0, New IntPtr(SharePoint.ToInt32 + 4), myBuffer.Length)
End Sub
Нужно вместо текста передать картинку.
Сперва преобразовал картинку в байтовый массив, для чего использовал готовый пример (Павел от 10.05.05 16:35):
Dim Data As Image = PicData.Image - моя картинка…
Dim MyOut As New IO.MemoryStream
Data.Save(MyOut, Imaging.ImageFormat.Png)
Dim myBuffer As Byte()
myBuffer = MyOut.GetBuffer
И в итоге получается:
Public Sub Put(ByVal Data As Image)
Dim MyOut As New IO.MemoryStream
Data.Save(MyOut, Imaging.ImageFormat.Png) 'Тут формат указывается
Dim myBuffer() As Byte
myBuffer = MyOut.GetBuffer
Marshal.WriteInt32(SharePoint, myBuffer.Length)
Marshal.Copy(myBuffer, 0, New IntPtr(SharePoint.ToInt32 + 4), myBuffer.Length)
End Sub
Правда, не работает…
Выдаёт: Additional information: Object reference not set to an instance of an object.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
На†уралист™
Вопросов: 5
Ответов: 3
Web-сайт:
Профиль | | #1
Добавлено: 13.12.05 16:38
--------------
Прошу прощения! Не в файл, конечно же а в память...
Ошибочка вышла...
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 13.12.05 16:54
Попробуйте так:
Номер ответа: 3
Автор ответа:
На†уралист™
Вопросов: 5
Ответов: 3
Web-сайт:
Профиль | | #3
Добавлено: 14.12.05 17:23
Попробовал. Не работает...
Зато у меня теперь сомнения, а правильно ли я задал
число копируемых элементов массива в строке:
Marshal.Copy(myBuffer, 0, New IntPtr(SharePoint.ToInt32 + 4), myBuffer.Length)
?
Получается размер 17000 -> и ошибка.
А если подстаить скажем 1000, то всё ОК!