|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Есть каталог (папка), содержащий произвольное число разных файлов, в том числе и файлов-изображений с разными расширениями (jpg, jpeg, png, gif, tif, bmp и т.п.). Ни тип , ни количество этих файлов-изображений заранее не известны (обычно оно не превышает 10 - 12 штук). Как на страницу формы БД Access с помощью VBA вывести превью всех файлов-изображений каталога, желательно с именами файлов? И как сделать, чтобы по щелчку на превьюшке можно было увидеть увеличенное изображение этого файла? Заранее благодарю за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 17:22 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Valery51, варианта 2 оба с ипользованием компонента Обозреватель (Explorer) 1 программно верстаем HTML и подсовываем эксплореру на форме ( на яваскрипт можно сделать просмотр увеличенного изображения по щелчку) 2 опять експлорер , только ему уже указываем сам путь каталогу будет видны все файлы , двойным кликом открыватся в программе простмотра изображений (только проблема в том что будет использован дефолтный стиль отображения файлов в папке, как его переключить в режим эскиза страниц я не знаю , может кто подскажет) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 17:55 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
kha, еще здесь на форуме есть примеры от Бенедикта отображение картинок в ленточной форме можно их посмотреть, но так тяжелее на мой взгляд ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 17:59 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Valery51Есть каталог (папка), содержащий произвольное число разных файлов, в том числе и файлов-изображений с разными расширениями (jpg, jpeg, png, gif, tif, bmp и т.п.). Ни тип , ни количество этих файлов-изображений заранее не известны (обычно оно не превышает 10 - 12 штук). Как на страницу формы БД Access с помощью VBA вывести превью всех файлов-изображений каталога, желательно с именами файлов? И как сделать, чтобы по щелчку на превьюшке можно было увидеть увеличенное изображение этого файла? Заранее благодарю за ответ. А какова цель данной затеи? Если выбор файла(ов) - может воспользоваться готовым решением: Application.FileDialog? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 20:58 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
ДусяКукуся, цель - не выбор, а именно просмотр изображений, имеющих отношение к какой-то записи в базе данных. А области применения могут быть разными. Это, например, каталог товаров с показом изображений каждого в различных ракурсах. Либо фильмотека с показом постеров по каждому фильму. Либо картотека по каким-то художникам или дизайнерам с показом образцов их портфолио. И т.д., и т.п. Лично мне хотелось бы реализовать нечто похожее на некоторые интернет-магазины, где есть большое фото товара и кучка тубнайльчиков, клик мышкой на каждом из которых выводит его изображение на место большого фото. Можно было бы даже ограничиться упрощенным вариантом, когда на форме есть один единственный Image Control, каждый клик мышкой на котором заменяет связанное с ним изображение, перебирая таким образом все изображения из соответствующего каталога. Только как это сделать? Беда в том, что я, как не стыдно в этом признаться, далеко не профессиональный программист, и меня ставят в тупик зачастую даже, казалось-бы, простые задачи типа выбора всех файлов-изображений с заранее не известным расширением - как это сделано, например, в поиске Total Commander. Я надеюсь, что уважаемые гуру научат и покажут, как на VBA реализовать изложенную в вопросе задачу, которая уже много раз реализована в различных программных продуктах, или дадут конкретную ссылочку. Я неделю лазил по форуму, но ничего похожего не нашел - может плохо искал. К сожалению меня не спасут советы типа "а это можно реализовать с помощью ЯваСкрипт или HTML" - моих знаний не хватит. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 23:27 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Для создания превьюшек (и не только) здесь есть вкусный солюшн от мусье Бенедикт-а 3424634 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2013, 23:47 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Спасибо, nord-woolf, попробую разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 00:45 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Valery51, вот пример для 2 это аксесс 2007 , проверял на Win7 возможно на ХР другоеповедение думаю подойдет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 01:15 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
kha, думаю, что для этого можно использовать Web Browser Control ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 10:29 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Старый ворчун, да именно его и имел ввиду , просто забыл как называется ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 11:16 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Valery51, Эксперимент. Старая проба работы с гдиплюс. Сделано только для jpg, но можно и расширить. Друг кому пригодится и он доделает... Сильно не пинать... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 15:32 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Не причипилось... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 15:33 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Упс... Не заметил... Вот далее. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 15:34 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Панург, спасибо! Это почти то, что надо. Сюда бы добавить немного юзабилити (например, возможности перехода между превьюшками с помощью клавиатуры - чтобы не крутить полосы прокрутки; или возможности просмотра изображения в оригинальном разрешении) - был бы вообще предел мечтаний. Однако, когда я увидел объем кода, который за всем этим стоит, челюсть у меня отвисла и я долго не мог вправить ее обратно (с этим, в частности, связана задержка с ответом - прошу прощения!). Стало ясно, что в этой жизни мне его не осилить, а без этого я вряд ли смогу приспособить его для своего проекта. Может быть код станет проще, если убрать все, связанное с выбором каталога? Собственно, нужна процедура, на вход которой подается путь к каталогу. Вот только определить, что в этом проекте отвечает за выбор каталога, для меня сложно. Кроме этого я не нашел, где можно было бы добавить возможности просмотра изображений, отличных от jpg. Не ясно для меня также, что за объект в форме имеет имя rct (область, куда выводятся превьюшки), как он работает и почему при попытке переместить его в конструкторе он упорно возвращается в левый верхний угол в режиме формы. С уважением, Valery51 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 17:19 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Valery51, В основную часть кода можешь не смотреть (в классы, да и в модули). Смотри в браузер объектов. Там ты увидишь свойства и методы объектов созданных этими классами. Классы можно разделить на 3 группы - создание окон и контролов (*Ctl), обработка файлов изображений и создание превьюшек (GDIPlus*), диалог выбора папок (ShellBrowse). На событие открытие формы создаются "на лету" контролы (ImageList и ListView). Тут и нужен rct (прямоугольник). Он служит для привязки на форме ListView (я несколько схалявил и не стал полностью привязываться к прямоугольнику, потому список и перескакивает в верхний угол, это же только прототип). Загрузка файлов происходит на событие нажатие кнопки. Объект ShellBrowse позволяет пользователю выбрать папку с изображениями. Полное описание ShellBrowse ты можешь найти в книге "Access 2002. Разработка настольных приложений. Пол Литвин, Кен Гетц." В процедуре ReadDir происходит чтение выбранного каталога и выбор файлов изображений из остальных и запись их имён в массив. Именно тут и фильтруются файлы по типу. В процедуре RefreshImgs создаются превью и заполняется список превьюшек. Можно осуществить желание реакции на клавиатуру с листанием рисунков. Это не сложно. Перехватывай события клавишь и лови нужную. Далее см. вторую половину процедуру RefreshImgs. Делай по аналогии. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2013, 18:55 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Панург, спасибо. Беру таймаут на осмысление. Valery51 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2013, 03:29 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
ПанургValery51, Эксперимент. Старая проба работы с гдиплюс. Сделано только для jpg, но можно и расширить. Друг кому пригодится и он доделает... Сильно не пинать... Огромнейшее спасибо вам за пример! Скорость работы изумительная. Как ни старался такую скорость воспроизвести с помощью стандартных activx (listview и imageview) - не добился такого. Основное время подгрузки изображений в imageview пожиралось loadpicture либо loadbitmap из библиотеки activex xnview. Еще раз, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2013, 11:10 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Панург, Помогите разобраться с вашим примером (без вас никак):) При подгрузке изображений с разрешением 72 dpi скорость работы ещё приемлемая, но если в каталоге картинки с разрешением 300 dpi начинаются жуткие тормоза. В GDI+ я валенок, буду рад , если кто-нибудь поможет разобраться с проблемой. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2014, 09:15 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Панург, нашел вроде пару интересных функций, но как приспособить ещё не знаю 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2014, 14:04 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
разобрался в фотках отсутствовало предпросмотровое изображение (ThumbsnailImage), пересохранил фотки и всё стало нормально , но маленькое неудобство осталось - хорошо бы было, если бы при отсутствии в фотке этого предпросмотрового изображения фотка сама бы пересохранялась после загрузки уже "по нормальному". ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2014, 23:19 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
guest_rusimportразобрался в фотках отсутствовало предпросмотровое изображение (ThumbsnailImage), пересохранил фотки и всё стало нормально , но маленькое неудобство осталось - хорошо бы было, если бы при отсутствии в фотке этого предпросмотрового изображения фотка сама бы пересохранялась после загрузки уже "по нормальному".Я рад, что тебе удалось разобраться с этой проблемой. Да, действительно функция GdipGetImageThumbnail извлекает эскизы изображений из графического файла или создаёт из изображения, если отсутствует таковой (чем и объясняется торможение). Но мне кажется, что пересохранять изображения из программы не лучший вариант. Может быть лучше создавать папку с превьюшками (кэшировать) и уже оттуда загружать предпросмотр? Тем более, ЕМНИП, что некоторые форматы файлов не поддерживают эскизы (*.PNG). Вот интересная статья по поводу GDI+ и в частности про эскизы - GDI+: графика нового поколения (Эскизы изображений) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2014, 07:30 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Панург, спасибо за статью, может оказаться полезной , если затею что-либо ещё с GDI+ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2014, 11:22 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Панург, ни один архив не распокавался можно в *.rar очень интересно ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2014, 09:52 |
|
Как в форме Access отобразить превью всех файлов-изображений каталога?
|
|||
---|---|---|---|
#18+
Julia_sh, У меня нет rar-архиватора. Ставь севензип... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2014, 10:14 |
|
|
start [/forum/topic.php?fid=45&msg=38380507&tid=1612283]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 275ms |
0 / 0 |