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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
02.03.2014, 23:19
    #38576438
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в форме Access отобразить превью всех файлов-изображений каталога?
разобрался в фотках отсутствовало предпросмотровое изображение (ThumbsnailImage), пересохранил фотки и всё стало нормально , но маленькое неудобство осталось - хорошо бы было, если бы при отсутствии в фотке этого предпросмотрового изображения фотка сама бы пересохранялась после загрузки уже "по нормальному".
...
Рейтинг: 0 / 0
03.03.2014, 07:30
    #38576497
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в форме Access отобразить превью всех файлов-изображений каталога?
guest_rusimportразобрался в фотках отсутствовало предпросмотровое изображение (ThumbsnailImage), пересохранил фотки и всё стало нормально , но маленькое неудобство осталось - хорошо бы было, если бы при отсутствии в фотке этого предпросмотрового изображения фотка сама бы пересохранялась после загрузки уже "по нормальному".Я рад, что тебе удалось разобраться с этой проблемой. Да, действительно функция GdipGetImageThumbnail извлекает эскизы изображений из графического файла или создаёт из изображения, если отсутствует таковой (чем и объясняется торможение). Но мне кажется, что пересохранять изображения из программы не лучший вариант. Может быть лучше создавать папку с превьюшками (кэшировать) и уже оттуда загружать предпросмотр? Тем более, ЕМНИП, что некоторые форматы файлов не поддерживают эскизы (*.PNG).
Вот интересная статья по поводу GDI+ и в частности про эскизы - GDI+: графика нового поколения (Эскизы изображений)
...
Рейтинг: 0 / 0
03.03.2014, 11:22
    #38576615
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в форме Access отобразить превью всех файлов-изображений каталога?
Панург,

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

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

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

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

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


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