Бинарный массив в Image и обратно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_bel
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 21.04.2004 (Ср) 8:57

Бинарный массив в Image и обратно

Сообщение _bel » 27.04.2004 (Вт) 8:06

Приветствую!
Расскажите несведущему:
Есть бинарный массив содержащий картинку, а на форме Image1, где эта картинка должна появиться, как это сделать не выгружая массив в файл для последующей загрузки в Image1 через LoadPicture()?

Joss
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.04.2004 (Пн) 14:49

Байтовый массив в Image

Сообщение Joss » 27.04.2004 (Вт) 11:12

В рисунке Image есть свойство PictureData , заносишь туда байтовый массив - и готово.
Image1.PictureData = TheBytes() ' загрузка рисунка в поле Image

Можешь посмотреть ветку http://am.rusimport.ru/MSAccess/topic.aspx?ID=271 Прмер sd_dbFoto3_97 . Правда он в Access на VBA, но понять можно.

Joss
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 26.04.2004 (Пн) 14:49

Дополнение

Сообщение Joss » 27.04.2004 (Вт) 11:34

Забыл упомянуть - изображение должно быть в формате DIB.

_bel
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 21.04.2004 (Ср) 8:57

dib

Сообщение _bel » 27.04.2004 (Вт) 11:45

Хорошо, если изображение в Image хранится в формате .dib, то кто и как конвертирует .jpeg при выполнении команды Image1 = LoadPicture("PathAndFileName.jpg") и можно ли поюзать из VB этот конвертер?

Sur
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 14.07.2003 (Пн) 20:54
Откуда: C2H5OH

Сообщение Sur » 27.04.2004 (Вт) 13:19

_bel
По первому вопросу, если нужно иметь картинку в массиве для обработки и последующего (точнее :arrow: налету) вывода в имидж (или пикчу), то подойдет вторая половина странички
http://www.rookscape.com/vbgaming/tutAY.php
(там кстати в copymemory ошибка)

Joss
Image1.PictureData - это только в Аксессе?

_bel
>можно ли поюзать из VB этот конвертер?
Ты и так его юзаешь. Приведи задачу.

_bel
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 21.04.2004 (Ср) 8:57

задача

Сообщение _bel » 27.04.2004 (Вт) 16:07

Из Image-поля SQL Server базы в бинарный массив выгружается картинка в формате jpeg, она должна оказаться на фоме в Image1.
Напрямую присвоить значение поля картинке не получается, вот и приходится выгружать сначала в массив. Хотя, конечно, было бы лучше на лету - значение поля преобразовать в картинку на форме.
Но, к сожалению, я не знаю как это сделать :(

TEH3OP
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 12.12.2003 (Пт) 20:19
Откуда: Москва

По поводу DIB и хранения картинок в БД.

Сообщение TEH3OP » 28.04.2004 (Ср) 0:15

Ну... если кто-то знает способ лучше -- простите.
Итак...
DIB - Device Independen Bitmap. А проще говоря, это не расширение файла, а формат хранения растров в байтовых массивах (в файлах, короче).
Суть в том, что картинка подразделяется на заголовок и на пиксельные данные. В заголовке информация о размерах, разрешении, глубине цвета (bps - Byte Per Pixel), типе компрессии (в т.ч. и JPG) и данные палитры; пиксельные данные это... ммм... это нолики и единички ;-).
Подробности про ето почитай в MSDN... (поищи по кейворду BITMAPINFO)

Теперь про хранение в БД. Я лично делю картинку на заголовок и пиксели, а уж это всё держу в BLOB'ах базы данных. Зачем? -- а так их легче загружать...

Вот глянь пример... он для BMP, но показывает как можно выводить картинку имея ёйные байты...

Надеюсь что помог... ;-)
А если что, простите... ;''/
Вложения
BitmapDraw.rar
пример рисования растра по имеющемуся байтовому массиву.
(2.32 Кб) Скачиваний: 108


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 5

    TopList