![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа оо сканером [D7, Win2k]
Moff20 © (2009-09-08 01:07:00)Добрый день, сразу прошу прощения если вопрос не в ту тему, но вроде бы всё правильно.
Вопрос у меня следующий. Ответов на него я не нашёл не только у Вас на сайте, но и не могу найти во всём рунете.
В общем есть потоковый сканер (не планшетный, а который сканирует сразу пачку документов лист за листом, а также может сразу с двух сторон сканировать), и в нём необходимо производить сканирование сразу двух станиц (или одну с двух сторон). В интернете я нашёл очень хорошую статью, по использованию TWAIN технологий, и в принципе использовал её всё работает, но при сканировании только одного листа, или с одной стороны. А когда в сканерпринтер ложится сразу несколько страниц, при запуске сканирования, сканер прогоняет всю пачку листов, а код выхватывает изображение только последней страницы.
Помогите мне, как мне отслеживать каждый лист, точнее каждую страницу, если двух стороннее сканирование.
Ниже я привёл кусок кода, которым пользуюсь, могу скинуть весь проект при необходимости, но его легко найти в инете.
RGV (2010-11-26 18:26:00) [1]что то автор топика молчит, как насчет спасибо to Wind ©?
Wind (2010-11-26 13:14:00) [2]Лови. Сам с такой проблемой сталкивался.
http://www.delphimaster.ru/cgi-bin/forum.pl?&id=1290598419&n=18&p=1
Wind (2010-11-26 13:13:00) [3]Лови. Сам с такой проблемой сталкивался.
http://www.delphimaster.ru/cgi-bin/forum.pl?&id=1290598419&n=18&p=1
AntiZOG (2009-09-15 02:05:00) [4]
> Moff20 (08.09.09 01:07)
Если XP и выше то попробуй WIA (Windows Image Acquisition)
http://msdn.microsoft.com/en-us/library/ms630368%28VS.85%29.aspx
TWAIN уже устаревший интерфейс.
c WinXP идёт WIA - для поддержки сканеров, фотоаппаратов и веб-камер
Moff (2009-09-11 00:14:00) [5]
> А зачем тогда цитируешь оригинальный хлам ?
Потому-что у нас на работе нет интеренета на рабочем месте, когда я вышел на этот сайт, под рукой у меня не было кода своей программы, я просто ещё раз загуглил эту тему и вставил код, я же делал по аналогии.
Вот плохо, что dll там уже не свободная, а требует покупки лицензии =( я вот думаю, а ведь были же у них и свободные dll раньше, если найти такую свободную версию и заменить прокатит интересно?
Сергей М. (2009-09-10 16:13:00) [6]А зачем тогда цитируешь оригинальный хлам ?
Moff (2009-09-10 16:04:00) [7]ну почему бездумно сразу? Код который я впихнул себе я разобрал полностью, просто потом столкнулся с данной проблемой, я ж не втупую сдёрнул процедуру, у меян в программе она ведь переделана сильно =)
Сергей М. (2009-09-10 15:05:00) [8]
> зачем надо было вести демагогию такую
Затем чтобы ты понял, что не следует бездумнопередирать чужой код.
Сергей М. (2009-09-10 15:04:00) [9]
> я скачал что ты мне посоветовал
Ну наконец-то) ..Туго до тебя доходит, ой туго) .. Как до жирафа)
> что сразу молчал
Насчет чего ?
Про то что там для дибилов ?
А я почем знаю, что там внутри ?
Я еще пока умом не тронулся, чтобы качать все что ни попадя, ради того чтобы ублажать каждого встречного жирафа)
> можно было в первом же ответет написать "ищи EZTwain Pro
> Toolkit 3.08
Да я его в первый раз в глаза увидел к моменту 7-го поста)
Оно мне надо - сканером твоим страдать ?)
Мне было вполне достаточно немного погуглить, чтобы найти правильноенаправление к решению задачи.
Moff20 (2009-09-10 14:45:00) [10]Вот жеж мля... я скачал что ты мне посоветовал, там для дибилов мастер создания кода по пунктам сделан. Вот что сразу молчал я фигею =))) ладно я пока дома, тут у мну сканера нет, завтра на работе проверю, но думаю всё получится, там процедуры клепаются с комментариями =) так что обязан сказать спасибо огромное =)
Вот только скажи мне, зачем надо было вести демагогию такую, когда можно было в первом же ответет написать "ищи EZTwain Pro Toolkit 3.08" и всё? Тебе надо тюремным психиатром идти =)
P.S. Это ещё не конец, может ещё вылезут ошибки какие-нить =)
Moff20 (2009-09-10 14:12:00) [11]WinAPI это тот раздел форума куда подходит тема про сканирование и не как не раздел отличительных характеристик знаний программиста. Есть задание "Сканирование", необходимо его выполнить!
Могу и найти и проанализировать, боюсь на это уйдёт времени больше мне отведённого. Короче Сергей, я в первых же постах писал не надо меня жизни учить! Форум не психиатров, не хотите помогать - не надо, поболтать в чате можно. Либо помогайте (не учением жить людей), либо игнорируйте сообщения.
Сергей М. (2009-09-10 13:04:00) [12]Ты не умеешь искать информацию в заданном направлении ?
Не умеешь ее анализировать ?
Чего ты тогда делаешь в "WinAPI" ? Тому кто не в состоянии проглотить то что уже практически разжевано и в рот положено, место в "Начинающим")
Moff20 (2009-09-10 12:56:00) [13]
> У меня нет ни малейшего желания ковыряться в чужих компонентах
> и примерах сомнительного происхождения.
нет уж всё и запущено, всего та понять как оно работает в мульти режиме, оно же всё таки полюбому как-то работает... наверное =)
> Существует официальный EZTwain Pro Toolkit 3.08 - им и
> следует пользоваться.
Ну дык с радостью приму ссылочку на него =) И ещё бы на его основе классно было бы увидеть пример потокового сканирования пачки листов реализованного на делфи =)
> И уж тем более примерах с такой дебильной самодельной функцией,
> вычисляющей целую степень двойки.
Боже мой да что ты придрался к человеку, какая разница, может его прёт мастерить вручную математические функции =)
Сергей М. (2009-09-10 12:09:00) [14]
> примерах сомнительного происхождения
И уж тем более примерах с такой дебильной самодельной функцией, вычисляющей целую степень двойки.
Сергей М. (2009-09-10 12:07:00) [15]
> мне нужна помощь на моём примере
У меня нет ни малейшего желания ковыряться в чужих компонентах и примерах сомнительного происхождения.
Существует официальный EZTwain Pro Toolkit 3.08 - им и следует пользоваться.
В его составе д.б. Eztwain 3.dll, в которой как раз и фигурирует ф-ция TWAIN_SetMultiTransfer, о которой как раз и есть упоминание в официальном документе по ссылке в [7].
И не надо изобретать кривые велосипеды)
Moff20 (2009-09-10 11:16:00) [16]
> Какими уж ты там компонентами пользуешься - я без понятия.
Вот чем я пользуюсь http://speclab.narod.ru/multwain.zip
Вот есть вырезка из readme этого компонента, чётко указаны процедуры для мульти сканирования, но я так и не смог их выдресировать =(
* Standard TWAIN access routines:
- TWAIN_SelectSource: displays a dialog box to allow the user to
select a TWAIN device. Accepts an HWND as
an argument, but sending it zero works fine.
- TWAIN_AcquireNative: returns a handle to a device-independent
bitmap (DIB) for the last image acquired (or
the only image, as the case may be). Accepts
two arguments: an HWND and a pixmask. Set
both to zero (I've had problems with my
camera when I specify the proper HWND).
- TWAIN_FreeNative: releases the memory owned by a DIB
* Routines to support acquisition of multiple images
- TWAIN_GetNumDibs: returns the number of images retrieved
- TWAIN_GetDib: returns a handle for the nth image retrieved
- RegisterDibCallback: designate an optional user-defined function
to be called for each image transferred.
Note that unfortunately the function
designated as a callback function *CANNOT* be
an object member function. It MUST be
free-standing.
- UnRegisterDibCallback: tells the system not to call *any* user-
defined callback function
> И что? Чем он хуже Паскаля для понимания алгоритма? Проблемы
> индейцев шерифа не волнуют)
Алгоритм понятен абсолютно, я же говорю, что он работает только с функциями для Cpp, аналогичный алгоритм склепать у меня не вышло, и вобще это всё таки сайт мастеров Delphi.
Сергей мне нужна помощь на моём примере, вобщем я могу его хоть на изнанку вывернуть, лишь бы мне привели код хотя бы одного работающего примера для сканирования пачки листов, а не поучительные беседы о "вреде употребления алкоголя и табачной зависимости" =) Если помочь мне примером кода не в Ваших силах, тогда я извольте откланяюсь =)
Сергей М. (2009-09-10 10:46:00) [17]
> все примеры кода на С++
И что ?
Чем он хуже Паскаля для понимания алгоритма?
Проблемы индейцев шерифа не волнуют)
> функция TWAIN_SetMultiTransfer, которой к сожалению почему-
> то нет в Delphi компонентах twain
В составе D7 нет штатных компонетов, имеющих отношение к TWAIN.
Какими уж ты там компонентами пользуешься - я без понятия.
Moff20 (2009-09-10 02:34:00) [18]Так Сергей, ты должен научить меня великому знанию Мау-Дзе Дун =) Изучил, разобрал, и всё равно не познал полного просветления. Во-первых в данном мануале все примеры кода на С++, где и указана описанная тобой некая функция TWAIN_SetMultiTransfer, которой к сожалению почему-то нет в Delphi компонентах twain. Зато есть функция TWAIN_GetNumDibs возвращающая количество изображений, которая почему-то не возращает ничего после вызова функции TWAIN_AcquireNative(Handle,0); хотя и указано, что данная функция возращает Хэндл только на последнее изображение, других функций нет, можети как-то надо в цикле очищать FreeNative и будет очищаться только последнее изображение и указатель перейдёт на предыдущее. Но ведь есть функция которая возвращает Хэндл сразу на определённое изображение по номеру GetDib. Вобщем у меня не получается... Как говорилось в фильме брат два "Бен, это Данила... I need Help"
Сергей М. (2009-09-09 09:39:00) [19]
> Работу дали (никто и не собирался за неё браться), со словами
> "Надо сделать"
Вот и делай ее сам, а не чужими мозгами.
Отвечаю по теме: в составе TWAIN-интерфейса есть функции TWAIN_SetMultiTransfer и TWAIN_State
http://77.100.103.108/public/WinSoftware/scanning/EZTwain_User_Guide.pdf
Читать "How To: Transfer Multiple Images" до полного просветления
Moff20 (2009-09-09 03:35:00) [20]Я просил помочь, а не учить жизни! Код работает, он был ориентирован на планшетный сканер. Нужно переделать на потоковый сканер, если бы я был в состоянии его сам переделать, здесь бы вопрос свой не выкладывал, как мне показалось этот сайт и предназначен для тех у кого трудности. Работу дали (никто и не собирался за неё браться), со словами "Надо сделать". Прошу отвечать по теме тех, кто реально может помочь, а не у кого язык слишком длинный, для этого существуют отдельные темы форума.