Сканеры

Автор: Пользователь скрыл имя, 24 Марта 2012 в 17:45, курсовая работа

Краткое описание

Сканирование документов – процесс создания электронного изображения бумажного документа, напоминает его фотографирование.

Оглавление

Введение………………………………………………………………………………..3
Глава 1.Принципы получение электронных копий………………………………….4
1.1 История создания сканера…………………………………………………………4
1.2 Принцип действия………………………………………………………………….4
1.3 Виды сканеров……………………………………………………………………...5
1.4 Характеристики сканеров………………………………………………………...10
Глава 2.Описание разработанной программы………………………………………12
2.1 Выбор среды программирования………………………………………………..12
2.2 Визуальное программирование………………………………………………….12
2.3 Среда программирования Delphi………………………………………………...13
2.4 Достоинства и недостатки языка C++…………………………………………...15
2.5 Описание структуры программы………………………………………………...16
2.6 Использование TWAIN…………………………………………………………...17
2.7 Структура программы и используемые функции………………………………18
Заключение……………………………………………………………………………19
Список используемой литературы…………………………………………………..20
Приложение 1 (Листинг программы)………………………………………………..21

Файлы: 1 файл

Создание программы для работы со сканером.doc

— 88.50 Кб (Скачать)

 

2.3 Среда программирования Delphi

Мечта программистов о среде программирования, в которой бы простота и удобство сочетались с мощью и гибкостью, стала реальностью с появлением среды Delphi. Она обеспечивала визуальное проектирование пользовательского интерфейса, имела развитый объектно-ориентированный язык Object Pascal (позже переименованный в Delphi) и уникальные по своей простоте и мощи средства доступа к базам данных. Язык Delphi по возможностям значительно превзошел язык Basic и даже в чем-то язык C++, но при этом он оказался весьма надежным и легким в изучении (особенно в сравнении с языком C++). В результате, среда Delphi позволила программистам легко создавать собственные компоненты и строить из них профессиональные программы. Среда оказалась настолько удачной, что по запросам любителей C++ была позже создана среда C++Builder - клон среды Delphi на основе языка C++ (с расширенным синтаксисом).[2]

Среда Delphi стала, по сути, лучшим средством программирования для операционной системы Windows, но программистов ждало разочарование, если возникало желание перенести программу в другую операционную систему, в частности, в операционную систему Unix.

Постепенно пришло понимание того, что в эпоху Интернет способность программ к взаимодействию в сети не менее (а порой более!) важна, чем возможность их переноса на различные платформы. Такая способность была обеспечена за счет стандартизации протоколов обмена данными в сети Интернет и форматов этих данных. Развитие протоколов и стандартов Интернет привело к рождению технологии Web-сервисов, которая ставила своей задачей максимально упростить создание программ, взаимодействующих по принципу клиент-сервер в глобальной сети. Поддержка технологии Web-сервисов была изящно встроена в системы Delphi и Kylix, в результате разработчики программ получили в руки еще один очень важный инструмент.[1]

C++ - компилируемый строго типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования. В 1990-х годах язык стал одним из наиболее широко применяемых языков программирования общего назначения.

При создании Си++ стремились сохранить совместимость с языком Си. Большинство программ на Си будут исправно работать и с компилятором Си++. Си++ имеет синтаксис, основанный на синтаксисе Си. Си++ добавляет к Си объектно-ориентированные возможности. Он вводит классы, которые обеспечивают три самых важных свойства ООП: инкапсуляцию, наследование и полиморфизм.

 

2.5 Описание структуры программы

В отличие от принтеров сканеры изначально не поддерживались ОС Windows и не имеют API для работы с ними. В начале своего появления сканеры взаимодействовали с программами посредством уникального для каждой модели сканера интерфейса, что серьезно затрудняло включение поддержки работы со сканером в прикладные программы. Для решения этой проблемы был разработан TWAIN - индустриальный стандарт интерфейса программного обеспечения для передачи изображений из различных устройств в Windows и Macintosh. Стандарт издан и поддерживается TWAIN рабочей группой - официальный сайт www.twain.org. Стандарт издан в 1992 гаду. [7]

В настоящее время действует версия 1.9 от января 2000 г. Абревеатура TWAIN изначально не имела какого-то определенного смысла, хотя позже была придумана расшифровка: (Technology Without An Interesting Name - Технология без интересного имени). TWAIN - не протокол аппаратного уровня, он требует драйвера (названного Data Source или DS) для каждого устройства.

В мае 2000 г. TWAIN был доступен для Windows 3.1 и выше (Intel и совместимые процессоры), Macintosh и OS/2. Для Linux самый близкий стандарт - SANE..

Менеджер TWAIN (DSM) - действует как координатор между приложениями и Источником Данных (Data Source). DSM имеет минимальный пользовательский интерфейс - только выбор DS. Все взаимодействие с пользователем вне прикладной программы осуществляется по средствам DS.

Каждый источник данных разрабатывается непосредственно производителем соответствующих устройств. И их поддержка стандарта TWAIN осуществляется на добровольной основе.

 

2.7 Использование TWAIN

DSM и DS это DLLs загружаемые в адресное пространство приложения и работают как подпрограммы приложения. DSM использует межпроцессную связь, что бы координировать действия со своими копиями, когда больше чем одна программа использует TWAIN.

Упрощенная схема действия приложения использующего TWAIN:

1. Открыть диалог настройки соответствующего устройства (диалог отображает DS) и задать соответствующие настройки.

2. Приложение ожидает сообщение от DS, что изображение готово. Во время ожидания все зарегистрированные сообщения будут направляться через TWAIN. Если это не будет выполняться, то приложение не получит сообщения о готовности изображения.

3. Приложение принимает изображение от DS.

TWAIN определяет три типа передачи изображения:

Native - в Windows это DIB в памяти

Memory - как блоки пикселей в буферах памяти

File - DS записывает изображение непосредственно в файл (не обязательно поддерживается)

4. Приложение закрывает DS. [6]

Мы рассмотрим только функцию получения данных с TWAIN устройства      ( Приложение 1 ).

 

2.8 Структура программы и используемые функции.

Перед вызовом функций сканирования необходимо вызвать функцию:

TWAIN_SelectImageSource (hwnd: HWND): Integer;

Данная функция позволяет выбрать источник получения данных из списка TWAIN совместимых устройств, в качестве параметра она получает хендл основного окна прикладной программы. Следует заметить, что если в системе имеется одно TWAIN совместимое устройство, то вызывать функцию не обязательно.

Для сохранения

Фаил сохранить как (вписать имя и через точку расширение).

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

  Из выше перечисленного можно сделать общий вывод. Сканер и все его разновидности еще долго будут применяться и быть нужными людям. Сканер практически применяется во всех сферах нашей повседневной жизни. Так уже сейчас все данные и архивы переводят в цифровую форму хранения. Это связано с тем что так легче хранить огромные массивы данных, и ориентироваться в них. Все современные системы безопасности базируются на сканерах безопасности. Сканеры все еще продолжают развиваться, их технические характеристики будут расти.

   В современном мире сейчас идет тенденция к минитюаризации, это также коснется и сканеров уже сейчас датчики ПЗС уменьшаются и повышается плотность их размещения на линейке, что следовательно повышает оптическое разрешение сканера . Возможно скоро уже уйдет со сцены такой тип сканера как ручной и его заменят различные приспособления (например сканирующих ручек C-Pen) которые используя такие новейшие интерфейсы как IrDa,Bluetooth и другие переносят данные сразу в компьютер. Уже отходит LPT интерфейс с помощью которого старые сканеры соединяется с ПК так как он уже морально и физически устарел и его уже заменили USB, FIREWIRE. В возможно в будущем появятся универсальные сканеры которые при высоком оптическом разрешении, скорости сканирования и будут многофункицональными устройствами. Это видно уже сейчас когда планшетный сканер может помимо простого сканирования выполнять сканирование пленок и объемных предметов что уже говорит о универсальности устройства.

 

 

 

 

 

 

Список используемой литературы

 

1. Архангельский А. Я. "Разработка прикладных программ для Windows в Delphi 7" 2006 г.

2. Дарахвелидае П. Г., Марков Е. П. "Программирование в Delphi 7." 2007 г.

3. Зайцев О. В., Владимиров А. М. " Объектно-ориентированное программирование" 2009 г.

4. Галисеев Г. В. "Программирование в среде Delphi 8 for.NET" 2010 г.

5. Гофман В. Э., Хомоненко А. Д. "Delphi. Быстрый старт" 2006 г.

6. Тейксейра С., Пачеко К. "Borland Delphi 6. Руководство разработчика" 2007 г.

7. Фаронов В. В. Программирование баз данных в Delphi 7. Учебный курс; Питер, 2006. – 457с.

8. Фаронов В.В., Шумаков П.В. Delphi 5. Руководство разработчика баз данных; Нолидж, 2009. – 640с. 

9. Культин Н. Б. Основы программирования в Delphi 7; СПб: БХВ-Петербург, 2007. – 608с.

10. Елманова Н. и др. "Delphi и технология COM. Мастер-класс" 2008 г.

11. А.Борзенко «IBM PC: устройство, ремонт, модернизация» 2006 г.

12. Компьютер Пресс 1-12№\2008 г.

13. Hard&Soft 1-12\2006 г.

14.Upgrade 1-12\2008 г.

15.CHIP 1-12\2007 г.

 

 

 

 

 

 

 

 

Приложение 1

Листинг программы

procedure TForm1.Accquire1Click(Sender: TObject);

var

  dat: hBitMap;

  PInfo: PBitMapInfoHeader;

  Height, Width: integer;

 

  {Функция возведения 2 в степень s}

  function stp2(s: byte): longint;

  var

    m: longint;

    i: byte;

  begin

    m := 2;

    for i := 2 to s do

      m := m * 2;

    stp2 := m;

  end;

 

begin

  {Получаем указатель на графические данные}

  dat := TWAIN_AcquireNative(Handle, 0);

  if dat <> 0 then

  begin

    {Получаем указатель на область памяти содержащей DIB

     данные и блокируем область памяти}

    PInfo := GlobalLock(dat);

    {Анализируем полученные данные}

    Height := PInfo.biHeight;

    Width := PInfo.biWidth;

    {Узнаем размер полученного изображения в сантиметрах}

    Wcm.Caption := floatToStrF(100 / PInfo.biXPelsPerMeter * Width, ffNumber,

8,

      3)

      + ' cm';

    Hcm.Caption := floatToStrF(100 / PInfo.biYPelsPerMeter * Height, ffNumber,

      8, 3)

      + ' cm';

    {Определяем число цветов в изображении}

    Colors.Caption := floatToStrF(stp2(PInfo.biBitCount), ffNumber, 8, 0) +

      ' цветов';

    {Разблокируем память}

    GlobalUnlock(dat);

    {Передаем в битовую матрицу графические данные}

    {И устанавливаем перехват ошибок}

    try

      MyBitMap.Palette := TWAIN_CreateDibPalette(dat);

      MyBitMap.Width := Width;

      MyBitMap.Height := Height;

      TWAIN_DrawDibToDC(MyBitMap.Canvas.Handle, 0, 0, Width, Height, dat, 0,

0);

    except

      // Обрабатываем наиболее вероятную ошибку связанную

      // с не хваткой ресурсов для загрузки изображения

      on EOutOFResources do

        MessageDlg('TBitMap: Hет ресурсов для загрузки изображения!',

          mtError, [mbOk], 0);

    end;

    {Отображаем графические данные}

    Image1.Picture.Graphic := MyBitMap;

    {Освобождаем память занятую графическими данными}

    TWAIN_FreeNative(dat);

  end;

end;

Обработка ошибок необходима, так как объект TBitMap имеет серьезные ограничения на размер создаваемого изображения. При этом производится обработка наиболее вероятной ошибки, в случае возникновения другой ошибки, ее обработка будет передана обработчику по умолчанию. Обработка ошибки в данном случае заключается в выдаче диагностического сообщения, в прикладной программе можно реализовать выполнение любых необходимых действий, например, произвести уменьшение разрешения и повторно подать на загрузку в TBitMap.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 



Информация о работе Сканеры