|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Есть такая фишка, когда смотришь папки в виндах. Details (priview). Т.е. слева внизу(или режим когда вместо иконки) отображается миниатюра картинки. Что там используется? Т.е. хочу отобразить картинку на форме. Для jpg-bmp проблем конечно нет, но т.к. работаю с tiff, то стандартные Image-Picture не проходят. Можно конечно использовать библиотеки из Kodac Imaging, но вариант неразумный, ибо официально это в системах не поддерживается со времен 98 видов, смотрел в направлении Preview 1.0 Type Library (просмотр изображений и факсов). Оно? В принципе можно добавить элемент на форму, но элемент невменяемый и практически неизлечимо неуправляемый, т.е. м.б. и оно, но подходить надо к shimgvw.dll как то иначе м.б. через API. API там внутри не очень много: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
М.б. и она используется... Есть идеи? gdi32.dll? gdiplus? Надо понять куда копать, дальше дело поиска. Ну, платные немайкрософтовские контролы мне принципиально не интересны. Только системные средства. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 00:29 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Preview 1.0 Type Library в принципе неплохой вариант. Добавляем на форму Preview1 Далее делается нек. хитрость. Preview1 размещаем в рамке Frame и уменьшаем размеры рамки так, чтобы скрыть края Preview1 и нижнюю часть (где отображаются стрелки). Для Frame1 делаем enabled=false, ибо у preview это свойство отсутствует а всякие меню нам не нужны. При желании можно исрпользовать функции: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Загадкой остается: Код: plaintext 1. 2.
Код: plaintext 1. 2.
Class Preview я не понимаю. Google ничего не дает, кроме понимания того, что не я один мучаюсь этим вопросом. Может взглянет кто из спецов... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 15:06 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Максимум чего удалось сделать "нестандартного" Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext
не ругается, знать бы куда оно пытается это показать, объект есть, а его не видно... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 17:34 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Дмитрий77Preview 1.0 Type Library в принципе неплохой вариант. Добавляем на форму Preview1 Далее делается нек. хитрость. Preview1 размещаем в рамке Frame и уменьшаем размеры рамки так, чтобы скрыть края Preview1 и нижнюю часть (где отображаются стрелки). Для Frame1 делаем enabled=false, ибо у preview это свойство отсутствует а всякие меню нам не нужны. Хитрость про которую вы написали можно решить одним свойством элемента Preview1. Всего то поставить CausesValidation=False и все. Но в Access этого свойства нет, может сможете подсказать как можно решить эту проблему в Access. Задавал этот вопрос на многих форумах, в том числе и на этом в разделе Access, никто ничего пока не присоветовал. Дело в том что у меня на форме много элементов Preview, 15 штук. конечно можно было бы сделать как вы советуете, но в Access рамка не может быть меньше объекта помещенного в нее, да и отображается она там на заднем плане относительно Preview. Может будут какие нибудь соображения по этому поводу. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2009, 10:20 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Я поиграюсь попозже. Сейчас занят "правами доступа к папкам" на висте. Если приложение узкого использования и это XP/2003 то можете попробовать Kodac Imaging "для XP", поищите в google, там есть соотв.элемент для отображения картинок. Но если вы захотите перенести ваши идеи в висту, то ничего не выйдет, ибо тамошний "Фотоальбом" с VB похоже в этом плане вообще не совместим. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2009, 22:33 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Ну по идее надо "прикрыть" нижнюю часть каким либо другим элементом "под цвет фона", прыгает там все только, надо экспериментировать, не иначе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 04:24 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Dado, а как формулируется задача в более широком смысле, если отвлечься от использования конкретного элемента управления? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 10:43 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Данная часть задачи состоит в отображении (типа предварительно просмотра) графических файлов, в том числе и tif формата. Дмитрий77 предложил использовать Kodac Imaging, попробую его, может получиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 12:24 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Более того показывать необходимо все картинки из набора (до 15 штук) за раз, без прокруток и выбора изображения для показа (например из списка). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 12:29 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
DadoДанная часть задачи состоит в отображении (типа предварительно просмотра) графических файлов, в том числе и tif формата. Дмитрий77 предложил использовать Kodac Imaging, попробую его, может получиться.Вот это смотрели?DadoБолее того показывать необходимо все картинки из набора (до 15 штук) за раз, без прокруток и выбора изображения для показа (например из списка).Что такое набор, чем он определяется? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 13:04 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Набор это все условно, а определяется он количеством дополнительных видов для изделия. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 13:09 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Намек понятен, конвертация в "удобочитаемый" формат. Конечно это решение, но на мой взгляд было бы проще отображать как есть на данный момент, только пока не получается спрятать кнопки перехода и поворота изображений:(, к сожалению. Почитаю. А может и придется применить, если не решиться моя задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 13:23 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Dado, ну, прикрыть сверху можно оконным элементом управления, подформой, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2009, 14:14 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
БенедиктDado, ну, прикрыть сверху можно оконным элементом управления, подформой, например. Да, в принципе это вариант. Наверное так и сделаю. На данный момент это проще всего. Спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 06:19 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Дмитрий77 Код: vbnet 1. 2. 3. 4. 5. 6.
...м.б. DllGetClassObject.. Эти 5 функций нужны для работа с COM-сервером dll. В этой, например, есть только один класс: {50F16B26-467E-11D1-8271-00C04FC3183B}: Preview . И в этом классе есть несколько функций, которые тоже можно использовать: ShowFile(BSTR bstrFileName, int iSelectCount); printable([out, retval] long* pVal); printable([in] long pVal); cxImage([out, retval] long* pVal); cyImage([out, retval] long* pVal); Show(VARIANT var); Zoom([in] int iSelectCount); //zoom the image BestFit(); //fit image to window ActualSize(); //show image at actual size так что, DllGetClassObject - точно не та функция... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2013, 21:22 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
На этом сайте всё про dll написано: http://xpdll.nirsoft.net/shimgvw_dll.html ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2013, 23:10 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
maksim32, Ну, здрасьте приехали - не прошло и 5-ти лет. Давно уже использую GDI+/- для таких штук. Вот если б ты объяснил как делать всякие отображения для PDF (или SFF -предвижу вопрос а что это такое, ладно ограничимся PDF) - в своей программе - без использования платных глюко-контролов (контрол от акробата тоже глюко), то это было б интересней. Потому как использую конвертацию PDF(SFF)->TIFF через libtiff и еще одну штуку, и отображаю таки TIFF через GDI, а это таки секундная задержка + всякий tmp-мусор. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2013, 00:38 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Единственно, что я взял на вооружение, так это команду Код: vbnet 1.
универсальную для всех OS, будь там под ней фотогалерея или "программа просмотра". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2013, 00:41 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Дмитрий77, Стандартных средств для отображения PDF (тем более SFF) в Windows нет, так что без сторонних библиотек или программ точно не обойтись, ну, или самому в стуктуре этих файлов разбираться, но мне кажется, это бред. Есть прога IrfanView, она много разных типов изображений открывает, в том числе и PDF с SFF, у неё можно результат стащить; чтобы пользоваться надо ещё Ghostscript (12,1Мб) поставить и плагин Postscript.dll, но, честно говоря: способ далеко не из лучших)... Это нужно для сервера, или для себя прога, для чего в ней картинка из PDF? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2013, 23:27 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
maksim32, ну, или самому в стуктуре этих файлов разбираться, но мне кажется, это бред. Бред не бред но в структуре SFF я как раз очень даже разобрался, по крайней мере на предмет как их делать ->GDI+/- >> Bitmap >> SFF тупо как написано в CAPI 2.0 документации. Конвертер TIFF(BMP...)->SFF самому написать реально? Вопрос скорее к Бенедикту. C PDF в моем случае если уж очень захотеть, то м.б. будет даже проще - у меня все PDF простого формата - с загнанной туда N-страничной картинкой (преобразованием из TIFF через libtiff) и ничего больше. maksim32, Есть прога IrfanView, , у неё можно результат стащить; чтобы пользоваться надо ещё Ghostscript (12,1Мб). А, сорри, я так и делаю maksim32, Потому как использую конвертацию PDF(SFF)->TIFF через libtiff и еще одну штуку, и отображаю таки TIFF через GDI Ток здесь ошибся, не libtiff (который TIFF->PDF), а как раз Ghostscript (PDF -> TIFF) и sff2bmp проект (SFF -> TIFF) -это кот. еще одна штука. И скажи, зачем мне тогда IrfanView кот. этот же Ghostscript использует, не говоря о том что есть в Ghostscript есть API VB6-совместимые, кот. я как раз и использую. maksim32, Это нужно для сервера, или для себя прога, для чего в ней картинка из PDF? Это используется в моей проге (кот. не для себя и не для сервера, а на продажу). И пока там сделано так как написано выше с прицепом из Ghostscript-ов и прочего, ну маскируем ес-но. Но скажем так, мой собственный конвертер TIFF -> SFF, ссылка на кот. выше не быстрее Ghostscript, кот. умеет делать то же самое, так что думаю что проще оставить как есть и не тратить время, потому как с другими преобразованиями- отображениями (если делать самому и т.д.)- боюсь будет та же песня, т.е. куча моего потраченного времени, и никакого выигрыша по времени в программе. 9MB (если выкинуть из GS лишнее при компиляции) -это не та проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2013, 06:02 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Дмитрий77И скажи, зачем мне тогда IrfanView кот. этот же Ghostscript использует... Согласен, можно его и на прямую использовать, главное знать как Дмитрий77Бред не бред но в структуре SFF я как раз очень даже разобрался... Ну, конечно же, если оч нужно, то можно и разобраться)). Я имею ввиду как раз сделать всё с нуля, но Дмитрий77...делать все самому с нуля, это вообще темный лес. White OwlОт промежуточного битмапа не уйти Если не использовать только стандартные средства, то это довольно неплохой вариант... На C++ он и вправду выглядил бы неплохо Дмитрий77Проще Ghostscript таскать, тем более итак таскаю... GS эти 52 страницы конвертит за 3 !!! секунды. Ну так если его и так таскать приходится, то это неплохой вариант, к тому же скорость неплохая) Как вариант, можно самому собрать API-dll на C/C++ с теми функциями, которые неоптимальны в VB, со скоростью помочь должно) Дмитрий77думаю что проще оставить как есть и не тратить времяНаверное, вы правы) Дмитрий77куча моего потраченного времени, и никакого выигрыша по времени в программе. Но работа и вправду проделана не малая!, очень жаль, что у вас не вышло ожидаемого результата.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 00:21 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
Если нужно, я для создания API-dll пользовался этим шаблоном, а компилировал MinGW, работает нормально; если этот код скомпилировать - получится 25599 байт. #include <windows.h> #include <fcntl.h> // API-header #define BUILDING_EXAMPLE_DLL #ifndef EXAMPLE_DLL_H #define EXAMPLE_DLL_H #ifdef __cplusplus extern "C" { #endif #ifdef BUILDING_EXAMPLE_DLL #define EXAMPLE_DLL __stdcall __declspec(dllexport) #else #define EXAMPLE_DLL __stdcall __declspec(dllimport) #endif // export functions unsigned int EXAMPLE_DLL str_len(const char *ss); // количество символов в строке #ifdef __cplusplus } #endif #endif // Main Api Dll Header BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved){ switch(fdwReason){ case DLL_PROCESS_ATTACH:break; case DLL_THREAD_ATTACH:break; case DLL_THREAD_DETACH:break; case DLL_PROCESS_DETACH:break; }; return TRUE; } // functions to API unsigned int EXAMPLE_DLL str_len(const char *ss){ return strlen((const char*)ss); } ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 00:31 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
[quot maksim32]Дмитрий77Ну, конечно же, если оч нужно, то можно и разобраться)). Я имею ввиду как раз сделать всё с нуля, но Дмитрий77...делать все самому с нуля, это вообще темный лес... Там не с нуля сделано. С нуля - это имея только описание алгоритма на словах и все. А когда смотришь в какие-то коды - пусть в сишные, то это уже не совсем с нуля. Я смотрел в коды sff2bmp (sfftools) и того же GS. maksim32Дмитрий77куча моего потраченного времени, и никакого выигрыша по времени в программе. Но работа и вправду проделана не малая!, очень жаль, что у вас не вышло ожидаемого результата.. Почему же, результат достигнут полностью. И код этот я в своей программе местами использую (наряду с GS). А по поводу времени, основную причину же нашли: 12737039 Т.е. проблемы скорости VB6 на конкретном действии. maksim32Дмитрий77Проще Ghostscript таскать, тем более итак таскаю... GS эти 52 страницы конвертит за 3 !!! секунды. Ну так если его и так таскать приходится, то это неплохой вариант, к тому же скорость неплохая). Чтоб мне не таскать GS, надо уметь конвертировать ПРОИЗВОЛЬНЫЕ PDF -> TIFF Даже если я на пальцах научусь выковыривать картинки из тех PDF, которые создаю сам через libtiff (см. выше, где я писал про отображение PDF на форме), то это все равно не решит задачу конвертирования произвольного pdf (где кроме картинок еще и текст, и черт знает что еще, а при этом текст еще в разных кодировках итд итп.) И если такой конвертер писать самому, то это годы, и вряд ли размер файла будет меньше размера GS. Поэтому прикрутил и ладушки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 14:47 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
maksim32Если нужно, я для создания API-dll пользовался этим шаблоном, а компилировал MinGW,... Я вашу мысль не совсем понял. Но, насколько я знаю, MinGW это баа-льшой прибамбас, кот. позволяет под винды запускать коды которые к этому ну никак не адаптированы. Пример такого проекта AsteriskWin32 -реализация идиотская, функционал зарезан и как несложно догадаться по сайту, проект давно умер и востребован не был. Те решения, кот. я использую имеют native поддержку для Win32. И если таскание GS в чемодане в целом оправдано (даже с учетом его размера), то таскать в этом чемодане MinGW точно ни в какие ворота не вписывается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 17:46 |
|
Image Preview (tiff) с использованием API
|
|||
---|---|---|---|
#18+
В моём случае, MinGW - это компилятор для C++ (портированный gcc), про него я вычитал в сравнительном анализе компиляторов C++ , им и пользуюсь. Он и не только для Win32 есть, но другие меня не интересовали. И таскать компилятор с собой не нужно, им только DLL сделать, если это поможет делу) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2013, 21:44 |
|
|
start [/forum/topic.php?fid=60&fpage=61&tid=2157096]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
126ms |
get tp. blocked users: |
2ms |
others: | 287ms |
total: | 488ms |
0 / 0 |