Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > Изображение в переменой |
Автор: korob2001 21.8.2005, 20:45 |
Привет!!! На форме расположен элемент Image, изображение в него подгружается при загрузке формы. Мне нужно каким-то образом прочесть его из Image, ну ещё и PictureBox подойдёт, затем сохранить его в переменную или массив, для дальнейшей обработки. Подскажите возможно ли это и если да, то как? |
Автор: Akina 21.8.2005, 22:46 |
Откуда подгружается изображение? из файла? из ресурса? |
Автор: korob2001 22.8.2005, 04:18 |
Подгружается из файла, а затем сохранить его нужно в ресурс. Но так как в ресурс нельзя добавить информацию программно, то этот ресурс я хочу создать вручную. Другими словами: есть фотоальбом в котором несколько фотографий. На данный момент они хранятся в ресурсе. Всё замечательно работает, но мне нужно сделать, что бы можно было добавить новое изображение в альбом, т.е. в данный ресурс. Юзер жмёт кнопку "Добавить", открывается окно выбора файла .jpg, .bmp, .gif и затем этот файл полностью копируется в этот, самописный, ресурс. |
Автор: Akina 22.8.2005, 09:13 | ||
Щазз! кто это тебе даст формат ресурса? в API нету функций работы с ним иначе как чтение... И потом - дался тебе этот ресурс... делай либу изображений в любом из существующих форматов (а еще лучше - создай свой). |
Автор: korob2001 22.8.2005, 09:26 |
Akina ![]() ![]() |
Автор: Akina 22.8.2005, 12:16 |
korob2001 свой ресурс и ресурс своего формата - почувствуйте разницу... выражайтесь яснее. а если делаешь свой - то делай, оптимизируя под свою задачу... или у тебя именно тут затык - нет идеи как? |
Автор: bom 22.8.2005, 15:24 | ||||
Зачем эти лишние телодвижения? Почему бы не задействовать БД, Access например, кроме самих изображений можно будет хранить/добавлять/изменять/удалять и любую инфу к каждому снимку, напр. комментарии, дату, место и др.
А как же BeginUpdateResource, UpdateResource, EndUpdateResource? |
Автор: Akina 22.8.2005, 15:44 | ||||
а очень просто:
Так что в ДРУГОМ файле - запросто... в самом себе - фигушки. |
Автор: bom 22.8.2005, 16:28 | ||
Согласен ![]() ![]() |
Автор: korob2001 22.8.2005, 18:47 | ||||
Вообще-то я собирался. ![]() Собственно в том весь и прикол, что файл должен быть всего один, максимум два. Мне пока только приходит на ум создавать бинарник и записывать в него изображения, после всего этого открывать файл произвольного доступа и записывать в него позицию изображения в бинарнике, размер изображения, дата, название изображения и коментарии. Но это пока тольоко теоретически, т.е. ещё не реализовал этого.
А если не установлен Access на компе товарища, который будет устанавливать эту программу? |
Автор: cardinal 22.8.2005, 20:10 | ||||||||||||
Да не, это все ерунда. ИМХО это лишний геморрой. Создай программку, а к ней файл - альбом. Придумай свой формат этого альбома и сделай сразу функции GetPic и PutPic, например, для работы с ним.
Вот и будет максимум два. ![]()
Это нафиг не надо. Пишешь все это перед файлом в альбом.
Во-первых
а во-вторых к каждому снимку и так можно добавить любую инфу (см. выше)
Просто придумай что будет началом картинки и что концом (извините за выражение ![]() <S>, инфа о картинке, формат картинки, bitmap, <E> (где <S> начало и <E> конец) <S>, инфа о картинке, формат картинки, bitmap, <E> (где <S> начало и <E> конец) <S>, инфа о картинке, формат картинки, bitmap, <E> (где <S> начало и <E> конец) ... или таблица с стартовыми координатами картинок, картинка, картинка, картинка... |
Автор: korob2001 22.8.2005, 20:56 |
Спасибо. Сейчас чего нить попробую. Но меня честно говоря больше всего, сейчас, волнует: как потом получить изображение из такой структуры? Т.е. если я правильно понимаю, мне нужно будет читать его с заданной позиции, до длины изображения + информации об изображении, в массив типа Byte, с этим проблем думаю не возникнет. А вот как потом этот массив запхнуть в Image или PictureBox? Не извлекать же его оттуда в отдельный файл перед каждым показом? |
Автор: Akina 22.8.2005, 21:41 | ||
Для работы с БД Аксесса сам Аксесс не нужен - достаточно наличия Jet, а он есть. Ну можем MDAC придется обновить...
а почему, собственно? Впрочем, можно заранее заготовить пустую болванку и напрямую копировать туда байты через CopyMemory... |
Автор: korob2001 22.8.2005, 22:00 | ||
Akina - если можно, подробнее. Что за болванка и что за CopyMemory? Ты имеешь ввиду буфер обмена? ![]() |
Автор: Akina 22.8.2005, 22:05 | ||||
Пустой (или любой размером не менее как в пикселях, так и в байтах) граф. файл в Image или PictureBox. Впрочем, не убежден, что не потребуется точное совпадение.
WinAPI |
Автор: korob2001 22.8.2005, 22:11 |
Спасибо. Сейчас почитаю про CopyMemory, мне как раз недавно привезли, чудную, книгу по API: "Win32 API и Visual Basic" - Дан Эпплман |