Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.11.2024, 09:28
Антон Антон вне форума
Прохожий
 
Регистрация: 08.02.2011
Сообщения: 11
Репутация: 10
По умолчанию Работа со сканером

Подскажите как работать со сканером в delphi проект 64-bit
Ответить с цитированием
  #2  
Старый 15.11.2024, 00:04
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,064
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вроде, видел компонет работы с TWAIN в исходниках. Пользовал ранее, но то было 32-bit. Хотя т.к. в исходниках, то всегда можно поправить...
Ответить с цитированием
  #3  
Старый 21.11.2024, 15:33
Антон Антон вне форума
Прохожий
 
Регистрация: 08.02.2011
Сообщения: 11
Репутация: 10
По умолчанию

Поизучал, потыкался и пришёл к выводу что лучше использовать WIA.
Сделал сканирование одной страницы - всё получилось, а вот как сделать поточное сканирование не знаю. Может кто подскажет?
Ответить с цитированием
  #4  
Старый 22.11.2024, 03:44
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,064
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Что значит "поточное"?
Ответить с цитированием
  #5  
Старый 22.11.2024, 08:50
Антон Антон вне форума
Прохожий
 
Регистрация: 08.02.2011
Сообщения: 11
Репутация: 10
По умолчанию

Когда несколько листов кладутся в подарочный модуль и сканер всех их за раз сканирует. Организовать многократное сканирование проблем нет. Не понятно в какой момент нужно остановиться. То есть где тот маркер который обозначит что листов больше нет.
Ответить с цитированием
  #6  
Старый 25.11.2024, 08:34
Антон Антон вне форума
Прохожий
 
Регистрация: 08.02.2011
Сообщения: 11
Репутация: 10
По умолчанию

В VB есть возможность обратится к свойству откуда идёт сканирование, либо в том примере, который нашёл в сети, такая возможность есть. У себя же я такого свойства не нахожу. Синтаксис отличается немного между VB и Delphi. И я так понял свойства всех сканеров могут быть разные, мне же нужен универсальный подход независимо от сканера.

Вот для примера код из VB, где идёт определение источника сканирования. Здесь "1" это лоток многостраничной подачи:
Scanner.Properties("3088").Value = 1 'Dim Scanner As WIA.Device 'Automatic Document Feeder

В Delphi (WIA_TLB) такого свойства нет, по крайней мере у моего сканера.
Думаю что у всех сканеров может быть свой набор свойств и идти они могут под разными номерами.

Вот у мня например для сканера HP CLJM477 Scan Driver какие свойства:

for j := 1 to itm.Properties.Count do //Itm:IItem;
mm1.Lines.Add(inttostr(j)+'. '+itm.Properties.Item[j].Name+' - '+string(itm.Properties.Item[j].Get_Value));

1. Item Name - Scan
2. Full Item Name - 0001\Root\Scan
3. Item Flags - 532483
4. Color Profile Name - sRGB Color Space Profile.icm
5. Access Rights - 3
6. Filename extension - bmp
7. Compression - 0
8. Data Type - 3
9. Bits Per Pixel - 24
10. Channels Per Pixel - 3
11. Bits Per Channel - 8
12. Planar - 0
13. Current Intent - 0
14. Horizontal Resolution - 200
15. Vertical Resolution - 200
16. Horizontal Start Position - 0
17. Vertical Start Position - 0
18. Horizontal Extent - 1700
19. Vertical Extent - 2338
20. Pixels Per Line - 1700
21. Number of Lines - 2338
22. Bytes Per Line - 0
23. Item Size - 0
24. Buffer Size - 262144
25. Photometric Interpretation - 0
26. Brightness - 0
27. Contrast - 0
28. Threshold - 195
29. Orientation - 0
30. Media Type - 2
31. Preferred Format - {B96B3CAB-0728-11D3-9D7B-0000F81EF32E}
32. Format - {B96B3CAB-0728-11D3-9D7B-0000F81EF32E}


При изменении источника сканирования(перекладывания листков в лоток автоматической подачи) на самом сканере меняются автоматически свойства: "Vertical Extent", "Number of Lines".

В общем проблема в том, что если бы знать откуда будет сканирование сейчас, всё остальное можно сделать по имеющимся примерам. Есть возможность сделать поточное сканирование нескольких страниц и работает хорошо и есть сканирование отдельной страницы, но понять где сейчас будет сканироваться пока не получается.
Ответить с цитированием
  #7  
Старый 26.11.2024, 06:28
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,064
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

посмотри вот тут пример: https://stackoverflow.com/questions/...eeder-with-wia
Он на C#, но там, вроде, все-равно все через COM делается.
Ответить с цитированием
  #8  
Старый 26.11.2024, 10:30
Антон Антон вне форума
Прохожий
 
Регистрация: 08.02.2011
Сообщения: 11
Репутация: 10
По умолчанию

Там используется функция, которой нет описания в коде -
SetDeviceProperty(WiaDev, DEVICE_PROPERTY_PAGES_ID, 1);
В поиске нашёл, что такая функция есть в платном пакете MAGEEN. Там можно скачать пробную версию файлов, но расшифровки этой функции нету.
Пока вопрос остаётся открытым.
Ответить с цитированием
  #9  
Старый 26.11.2024, 14:57
Антон Антон вне форума
Прохожий
 
Регистрация: 08.02.2011
Сообщения: 11
Репутация: 10
По умолчанию

Был не внимателен. Немного запутался в свойствах Девайса и его Итема. Оказывается есть такое свойство: 'Document Handling Select'

Спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:34.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter