powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в форме Access отобразить превью всех файлов-изображений каталога?
25 сообщений из 32, страница 1 из 2
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380176
Valery51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть каталог (папка), содержащий произвольное число разных файлов, в том числе и файлов-изображений с разными расширениями (jpg, jpeg, png, gif, tif, bmp и т.п.). Ни тип , ни количество этих файлов-изображений заранее не известны (обычно оно не превышает 10 - 12 штук).
Как на страницу формы БД Access с помощью VBA вывести превью всех файлов-изображений каталога, желательно с именами файлов?
И как сделать, чтобы по щелчку на превьюшке можно было увидеть увеличенное изображение этого файла?
Заранее благодарю за ответ.
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380225
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery51,

варианта 2 оба с ипользованием компонента Обозреватель (Explorer)

1 программно верстаем HTML и подсовываем эксплореру на форме ( на яваскрипт можно сделать просмотр увеличенного изображения по щелчку)

2 опять експлорер , только ему уже указываем сам путь каталогу
будет видны все файлы , двойным кликом открыватся в программе простмотра изображений
(только проблема в том что будет использован дефолтный стиль отображения файлов в папке, как его переключить в режим эскиза страниц я не знаю , может кто подскажет)
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380229
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kha,

еще здесь на форуме есть примеры от Бенедикта отображение картинок в ленточной форме
можно их посмотреть, но так тяжелее на мой взгляд
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380359
Valery51Есть каталог (папка), содержащий произвольное число разных файлов, в том числе и файлов-изображений с разными расширениями (jpg, jpeg, png, gif, tif, bmp и т.п.). Ни тип , ни количество этих файлов-изображений заранее не известны (обычно оно не превышает 10 - 12 штук).
Как на страницу формы БД Access с помощью VBA вывести превью всех файлов-изображений каталога, желательно с именами файлов?
И как сделать, чтобы по щелчку на превьюшке можно было увидеть увеличенное изображение этого файла?
Заранее благодарю за ответ.
А какова цель данной затеи? Если выбор файла(ов) - может воспользоваться готовым решением: Application.FileDialog?
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380452
Valery51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДусяКукуся, цель - не выбор, а именно просмотр изображений, имеющих отношение к какой-то записи в базе данных. А области применения могут быть разными. Это, например, каталог товаров с показом изображений каждого в различных ракурсах. Либо фильмотека с показом постеров по каждому фильму. Либо картотека по каким-то художникам или дизайнерам с показом образцов их портфолио. И т.д., и т.п.
Лично мне хотелось бы реализовать нечто похожее на некоторые интернет-магазины, где есть большое фото товара и кучка тубнайльчиков, клик мышкой на каждом из которых выводит его изображение на место большого фото.
Можно было бы даже ограничиться упрощенным вариантом, когда на форме есть один единственный Image Control, каждый клик мышкой на котором заменяет связанное с ним изображение, перебирая таким образом все изображения из соответствующего каталога.
Только как это сделать? Беда в том, что я, как не стыдно в этом признаться, далеко не профессиональный программист, и меня ставят в тупик зачастую даже, казалось-бы, простые задачи типа выбора всех файлов-изображений с заранее не известным расширением - как это сделано, например, в поиске Total Commander.
Я надеюсь, что уважаемые гуру научат и покажут, как на VBA реализовать изложенную в вопросе задачу, которая уже много раз реализована в различных программных продуктах, или дадут конкретную ссылочку. Я неделю лазил по форуму, но ничего похожего не нашел - может плохо искал. К сожалению меня не спасут советы типа "а это можно реализовать с помощью ЯваСкрипт или HTML" - моих знаний не хватит.
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380467
Фотография nord-woolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для создания превьюшек (и не только) здесь есть вкусный солюшн от мусье Бенедикт-а
3424634
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380507
Valery51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, nord-woolf, попробую разобраться.
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380521
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery51,

вот пример для 2
это аксесс 2007 , проверял на Win7 возможно на ХР другоеповедение
думаю подойдет
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380652
Фотография Старый ворчун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kha,

думаю, что для этого можно использовать Web Browser Control
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38380728
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый ворчун,

да именно его и имел ввиду , просто забыл как называется
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38381250
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery51,

Эксперимент.
Старая проба работы с гдиплюс. Сделано только для jpg, но можно и расширить.

Друг кому пригодится и он доделает...
Сильно не пинать...
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38381255
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не причипилось...
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38381258
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс... Не заметил...
Вот далее.
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38382678
Valery51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, спасибо! Это почти то, что надо. Сюда бы добавить немного юзабилити (например, возможности перехода между превьюшками с помощью клавиатуры - чтобы не крутить полосы прокрутки; или возможности просмотра изображения в оригинальном разрешении) - был бы вообще предел мечтаний.
Однако, когда я увидел объем кода, который за всем этим стоит, челюсть у меня отвисла и я долго не мог вправить ее обратно (с этим, в частности, связана задержка с ответом - прошу прощения!). Стало ясно, что в этой жизни мне его не осилить, а без этого я вряд ли смогу приспособить его для своего проекта.
Может быть код станет проще, если убрать все, связанное с выбором каталога? Собственно, нужна процедура, на вход которой подается путь к каталогу. Вот только определить, что в этом проекте отвечает за выбор каталога, для меня сложно.
Кроме этого я не нашел, где можно было бы добавить возможности просмотра изображений, отличных от jpg.
Не ясно для меня также, что за объект в форме имеет имя rct (область, куда выводятся превьюшки), как он работает и почему при попытке переместить его в конструкторе он упорно возвращается в левый верхний угол в режиме формы.

С уважением,
Valery51
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38382802
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery51,

В основную часть кода можешь не смотреть (в классы, да и в модули). Смотри в браузер объектов. Там ты увидишь свойства и методы объектов созданных этими классами.

Классы можно разделить на 3 группы - создание окон и контролов (*Ctl), обработка файлов изображений и создание превьюшек (GDIPlus*), диалог выбора папок (ShellBrowse).

На событие открытие формы создаются "на лету" контролы (ImageList и ListView). Тут и нужен rct (прямоугольник). Он служит для привязки на форме ListView (я несколько схалявил и не стал полностью привязываться к прямоугольнику, потому список и перескакивает в верхний угол, это же только прототип).

Загрузка файлов происходит на событие нажатие кнопки. Объект ShellBrowse позволяет пользователю выбрать папку с изображениями. Полное описание ShellBrowse ты можешь найти в книге "Access 2002. Разработка настольных приложений. Пол Литвин, Кен Гетц."
В процедуре ReadDir происходит чтение выбранного каталога и выбор файлов изображений из остальных и запись их имён в массив. Именно тут и фильтруются файлы по типу.
В процедуре RefreshImgs создаются превью и заполняется список превьюшек.

Можно осуществить желание реакции на клавиатуру с листанием рисунков. Это не сложно. Перехватывай события клавишь и лови нужную. Далее см. вторую половину процедуру RefreshImgs. Делай по аналогии.
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38383070
Valery51
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, спасибо.
Беру таймаут на осмысление.

Valery51
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38386273
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПанургValery51,

Эксперимент.
Старая проба работы с гдиплюс. Сделано только для jpg, но можно и расширить.

Друг кому пригодится и он доделает...
Сильно не пинать...

Огромнейшее спасибо вам за пример! Скорость работы изумительная. Как ни старался такую скорость воспроизвести с помощью стандартных activx (listview и imageview) - не добился такого. Основное время подгрузки изображений в imageview пожиралось loadpicture либо loadbitmap из библиотеки activex xnview. Еще раз, спасибо!
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38576257
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Помогите разобраться с вашим примером (без вас никак):) При подгрузке изображений с разрешением 72 dpi скорость работы ещё приемлемая, но если в каталоге картинки с разрешением 300 dpi начинаются жуткие тормоза. В GDI+ я валенок, буду рад , если кто-нибудь поможет разобраться с проблемой. Спасибо.
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38576302
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

нашел вроде пару интересных функций, но как приспособить ещё не знаю

Private Declare Function GdipBitmapSetResolution Lib "gdiplus" _
(ByVal bitmap As Long, ByVal xDPI As Single, _
ByVal yDPI As Single) As Long

Private Declare Function GdipCreateBitmapFromFile Lib "gdiplus" _
(ByVal FileName As Long, ByRef bitmap As Long) As Long
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38576438
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался в фотках отсутствовало предпросмотровое изображение (ThumbsnailImage), пересохранил фотки и всё стало нормально , но маленькое неудобство осталось - хорошо бы было, если бы при отсутствии в фотке этого предпросмотрового изображения фотка сама бы пересохранялась после загрузки уже "по нормальному".
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38576497
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimportразобрался в фотках отсутствовало предпросмотровое изображение (ThumbsnailImage), пересохранил фотки и всё стало нормально , но маленькое неудобство осталось - хорошо бы было, если бы при отсутствии в фотке этого предпросмотрового изображения фотка сама бы пересохранялась после загрузки уже "по нормальному".Я рад, что тебе удалось разобраться с этой проблемой. Да, действительно функция GdipGetImageThumbnail извлекает эскизы изображений из графического файла или создаёт из изображения, если отсутствует таковой (чем и объясняется торможение). Но мне кажется, что пересохранять изображения из программы не лучший вариант. Может быть лучше создавать папку с превьюшками (кэшировать) и уже оттуда загружать предпросмотр? Тем более, ЕМНИП, что некоторые форматы файлов не поддерживают эскизы (*.PNG).
Вот интересная статья по поводу GDI+ и в частности про эскизы - GDI+: графика нового поколения (Эскизы изображений)
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38576615
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

спасибо за статью, может оказаться полезной , если затею что-либо ещё с GDI+ :)
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38679296
Julia_sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

ни один архив не распокавался
можно в *.rar
очень интересно
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38679333
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Julia_sh,

У меня нет rar-архиватора. Ставь севензип...
...
Рейтинг: 0 / 0
Как в форме Access отобразить превью всех файлов-изображений каталога?
    #38679552
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Julia_shПанург,

ни один архив не распокавался
можно в *.rar
очень интересно

можно, часть 1
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в форме Access отобразить превью всех файлов-изображений каталога?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]