Как пользоваться сканером epson v100
Поделюсь недавно полученным мною опытом сканирования и обработки фотографий. Мой опыт хорош тем, что не требует от вас каких-то особых, глубоких знаний программного обеспечения. Всё на поверхностном уровне. То есть так, как мы все привыкли.
Не так давно в одной из своих статей я упоминал о покупке сканера для оцифровки моего домашнего старого фотоархива. Начал я со сканирования цветных слайдов начала 1970-х годов. О сканировании слайдов и приведении изображения в порядок и пойдёт речь ниже.
Замечу, что для сканирования плёнок есть и более дешёвые сканеры. У них характеристики хуже и по динамическому диапазону, и по разрешению, но ими тоже можно вполне качественно оцифровать плёнку. Можно и разницы не заметить. Единственное, что следует обратить особое внимание на то, чтобы в сканере присутствовала очень полезная технология устранения дефектов от пыли Digital Ice , о которой я упомяну ниже, или аналогичная (например, FARE).
Слайды имеют небольшую площадь, и пыль, прилипающая к их поверхности, оказывает значительное влияние на качество итоговой картинки. Каждая пылинка выглядит при увеличении, как чёрный дефект. Поэтому первым этапом приведения изображение в порядок является влажная уборка помещения и последующая очистка слайдов от пыли мягкой кисточкой.
Такие лентяи, как я, пропускают этот этап, и следующим шагом включают при сканировании режим © Digital Ice . Это программно-аппаратная технология удаления царапин и пыли с цветных фотоплёнок, которую поддерживают некоторые сканеры, в том числе и мой. К сожалению, технология не работает со старыми чёрно-белыми плёнками.
Один из проходов сканера при этой технологии выполняется в инфракрасном режиме, при котором прекрасно распознаются и записываются в отдельный канал все дефекты плёнки. В последующем данные этого канала вычитаются из итогового изображения, а пропуски заполняются интерполяционными данными. К сожалению, технология не работает с классическими черно-белыми пленками на основе галогенидов серебра, потому что серебро непрозрачно для инфракрасных лучей.
В результате такого сканирования получается очень чистая фотография. На микроуровне теряется резкость зерна, но в целом фотография получается мягкой, то есть, именно такой, какой и должна быть плёночная фотография. Если не включать эту функция, фотография получается с огромным количеством дефектов, поэтому я не вижу никакой реальной альтернаивы этому способу.
Разрешение при сканировании
Глубина цвета и формат файла
Сканер не выдаёт картинку в формате RAW, как зеркальный фотоаппарат. В RAW фотоаппарата доинтерполяционный размер файла может быть в 3, а то и в 6-7 раз (например, при сжатии без потерь в NEF) меньше, чем несжатый TIFF (при демозаике [дебайеризации] файл существенно разрастается). В сканере же, скорее всего, используется трёхлинейная матрица, и каждый пиксель честно считывается всеми тремя линиями (последовательно или одновременно — не знаю). Поэтому RAW в сканере не требует демозаики и уже содержит полную цветовую информацию о каждом пикселе. Видимо, поэтому, RAW в сканере, как таковой, не нужен, и изображение сразу сохраняется в TIFF.
Если кто поточнее владеет информацией по этому вопросу применительно к сканерам Epson V800/V850, отпишитесь пожалуйста, в комментариях. Интересует тип матрицы (трёхлинейная ли) и процесс считывания цветов пикселей (одновременно с разделением цветов или последовательно). И вся ли информация с матрицы сохраняется в TIFF.
Удаление крупных дефектов (Photoshop)
Бывает так, что © Digital Ice не справляется с крупными дефектами. Он пытается их заживить, но шрамы остаются. Поэтому следующим этапом будет открытие файлов в Фотошопе и использование инструмента «Точечная восстанавливающая кисть»:
Вы можете бесплатно скачать PDF-инструкции для Perfection V100 Photo Epson Сканеры.
У нас есть 1 бесплатных инструкций в PDF для Epson Perfection V100 Photo Сканеры.
Прочее Epson Сканеры
- Сканеры Epson Perfection V370 Photo ScannerEpson Perfection V370 Photo Scanner Объявления
- Сканеры Epson Perfection V600 Photo ScannerEpson Perfection V600 Photo Scanner Объявления
- Сканеры Epson Perfection V850 Pro Photo ScannerEpson Perfection V850 Pro Photo Scanner Объявления и гарантия
- Сканеры Epson Perfection V550 Photo Color ScannerEpson Perfection V550 Photo Color Scanner Объявления и гарантия
- Сканеры Epson Perfection V330 Photo ScannerEpson Perfection V330 Photo Scanner Информационная брошюра о продукте
- Сканеры Epson Perfection V39 ScannerEpson Perfection V39 Scanner Руководство по монтажу
- Сканеры Epson Perfection 1260 ScannerEpson Perfection 1260 Scanner Объявления
- Сканеры Epson Perfection 1200U Photo ScannerEpson Perfection 1200U Photo Scanner Основные принципы
- Сканеры Epson GT-30000 Document ScannerEpson GT-30000 Document Scanner Внимание
- Сканеры Epson GT-15000 ScannerEpson GT-15000 Scanner Внимание
Прочие продукты Epson
- МФУ Epson WorkForce WF-2630 All-in-One PrinterEpson WorkForce WF-2630 All-in-One Printer Руководство по монтажу
- Принтеры Epson WorkForce WF-2510WFEpson WorkForce WF-2510WF Главная инструкция
- МФУ Epson WorkForce WF-3620 All-in-One PrinterEpson WorkForce WF-3620 All-in-One Printer Руководство для администратора
- Многофункциональные принтеры Epson WorkForce Pro WF-5620 Network Multifunction Color PrinterEpson WorkForce Pro WF-5620 Network Multifunction Color Printer Руководство для администратора
- Проекторы Epson BrightLink 450Wi Interactive ProjectorEpson BrightLink 450Wi Interactive Projector Размерные чертежи
- Принтеры Epson XP-320Epson XP-320 Руководство по монтажу
- Принтеры Epson XP-420Epson XP-420 Руководство по монтажу
- Принтеры Epson WorkForce WF-2530Epson WorkForce WF-2530 Руководство по эксплуатации
- МФУ Epson WorkForce WF-3640 All-in-One PrinterEpson WorkForce WF-3640 All-in-One Printer Руководство для администратора
- Проекторы Epson BrightLink 480i Interactive XGA 3LCD Projector with MountEpson BrightLink 480i Interactive XGA 3LCD Projector with Mount Руководство по подключениям
Прочее Сканеры
- Сканеры Datalogic Scanning 9504Datalogic Scanning 9504 Инструкция по эксплуатации
- Сканеры Canon CanoScan LiDE220Canon CanoScan LiDE220 Руководство по началу работы
- Сканеры Canon CanoScan LiDE120Canon CanoScan LiDE120 Руководство по началу работы
- Сканеры Datalogic Scanning MAGELLAN 8500Datalogic Scanning MAGELLAN 8500 Инструкция по эксплуатации
- Сканеры Datalogic Scanning 9500Datalogic Scanning 9500 Инструкция по эксплуатации
- Сканеры Motorola LI4278Motorola LI4278 Краткое справочное руководство
- Сканеры Fujitsu FI-6010NFujitsu FI-6010N Инструкция по эксплуатации
- Сканеры Wasp Bar Code WPS100Wasp Bar Code WPS100 Инструкция по эксплуатации
- Сканеры LXE MX7 MX7LXE MX7 MX7 Инструкция по эксплуатации
- Сканеры Canon CanoScan FB 1200SCanon CanoScan FB 1200S Руководство по началу работы
612,592 мануалов 496,636 продуктов 5,202 брендов 1,872 категорий
_ ненужного дофига, в том числе программного обеспечения. Понапихали. как выяснилось, ничего не нужно ставить кроме самого драйвера принтера. Даже софтовое руководство (за неимением бумажного) - лишнее.
_ не поставляется бумажное руководство пользователя. только на диске в котором тоже толком ничего не объясняется.
_ инсталляция устройства странная. Меня удивило (хотя, возможно, что это впорядке теперешних вещей), что дивайс ни в коем случае нельззя коннектить с компьютером до инсталляции драйверов
_ Под win98 не встал (хотя заявлено, что должен вставать). Даже отчитался, что успешно проинсталлирован, но не встал
_ Крышка имеет сомнительную систему фиксации. Проскольку внятного описания нет, можно не догадаться - что это оно клинит и закрываться не хочет. Чуть не сломал нафиг - плстмасса тонкая, нежная, китайская. Оказывается, нужно весь поворотный блок вытянуть наружу, что бы ось вращения крышки вышла из фиксирующего паза (а то- кранты!)
_ Как правильно устанавливать слайд-адаптер "нарисовано". это крайне не подходящее слово (!) на внутренней стороне крышки за съемным "документ-матом". В том-то оно и дело, что во-первых надо догадаться снять "мат" и помотреть, что там между технических полостей слабенько-так выдавлено на серой ново-русско-офисного цвета пластмассе едва как нацарапано.
во-вторых, надо домыслить то, что ненарисовано и то, что нужно ли потом "мат" назад ставить? и если не нужно, то куда его девать-то, ведь его нужно тоже беречь как зеницу, поскольку пылиться ему нельзя, зарапаться - тоже, и на солнце - нежелательно.
_ Слайд-рамка такая хлипкая ( может это у них у всех так (?) ). Беру в руки как ребенка новорожденного. Вставлять у нее пленку неудобно, но привыкнуть можно, что уже, собственно, и стряслось.
_ нет кнопки "Выкл". Есть куча всяких ненужных типа "e-mail", "PDF", но поскольку он питается не по USB, а от своего БП, то неудобно каждый раз всовывать штекер питания, высовывать штекер питания. а оставлять "так", тоже не хочется - греется ощутимо, особенно тот угол, в котором эти ненужные кнопки.
Теперь о сканировании:
_ Нет возможности откадрировать каждый из слайдов (кадров) вручную сверх тех размеров, которые сканер определит сам при предварительном скане. Меньше - можно, а шире - нельзя. При этом он систематически обрезает края кадра, что не есть гуд. Как в мини-лабе - "наш фотоувеличитель срезает по 2мм с каждого края. претензии не принимаются"
_ при этом как-то случайным образом точные размеры каждого из автоматически определенных и засканированных кадров получаются всегда разными что создает проблемы при написании скрипта автоматической обработки кадров (например в Корел Фото-Пэйнте)
_ Нет возможности выставить тип пленки вручную или хотя бы проконтролировать - насколько Эпсон это "угадал". Я не уверен, что он знает канал маски для пленок типа Konica Centuria 1600
_ Нет возможности обозвать по-своему придуманный режим сканирования. Сохранить его можно, а вот назвать его например "режим сканирования для портретных съемок" - нельзя. Он называет это сам и присваивает настройке номер - хоть в тетрадку записывай какой номер для чего нужен.
_ из трех основных режимов сканирования (автоматический, простой и профессиональный) на что-то годится только "профессиональный", хотя это слово врядли тут уместно, так как сам прибор далеко не профессиональный.
_ Если говорить о заявленных параметрах, таких как максимальное оптическое разрешение и цветовая глубина, то это только цифры. Шум и невнятность изображения врядли даст возможность воспользоваться ими в пролной мере.
а вот то, что понравилось или, скажем так, возмущения не вызвало (впрочем, вышеперечисленное тоже не вызвало возмущения, но тем не менее, как положительное не рассматривается никак) и что оправдывает покупку сканера:
_ Когда привыкнешь, все в общем можно делать на автоматизме. Достаточно удобно и просто.
_ Превью-мод достаточно быстрый и информативный. Видно в целом - нужно сканировать этот кадр или вон - рядом есть получше
_ есть необходимый минимум обработки имиджа: все эти цветокоррекции, удаление мусора и многое другое. Правда кроме авто-инвертирования ничем не пользуюсь. Предпочитаю делать это в более серьезном софте
_ работает с основными графическими редакторами как сканер-утилита. То есть засканированный имидж сразу импортируется в среду ФотоШопа или Корел ФотоПэйнта. Промежуточного сохранения не требуется. Драйвер сканера вызывается из графического редактора
_ 6 заряженных кадров сохраняются раздельно автоматически
_ в конечном итоге результат вполне конкурирует с фотографией 10х15 или даже лучше. Если сравнивать с гоночным мини-лохо-лабом в сезон возвращения из отпусков, то результат будет на порядок лучше. Плюс - дешевле, так как за мутную фотографию не придется платить.
_ и последнее - тонкий он, компактный. Если временно не нужен, можно куда-нибудь спрятать подальше. и забыть.
Сканирование 6-кадрового блока при 3200 dpi/24bit (а больше - ни в коем случае не нужно) занимает 16 минут. Плюс перезарядка и превью-мод. Значит минут 20 на один блок уходит. В пленке таких блоков - 6. Итого: 1 пленка = 2 часа сканирования.
Благо, системные ресурсы не страдают и можно еще что-то делать не особо ресурсоемкое. Или просто делать что-то другое, а это - считай на "АвтоПилоте"
И вот первый результат этого учебного "полета". Сознаюсь, что немного, совсем чуть-чуть подправил в Corel Photo-Paint 11 яркость изображения. Цвет не корректировал. Да и сам еще помню - такая она и есть - Юлия Ломанова
Разблокировка сканирования банкнот на сканере EPSON Perfection V10/V100
Это просто немыслимо и не лезет вообще ни в какие ворота. Как может кусок пластика и кучка каких-то безымянных деятелей, запрограммировавших его, решать за меня, что мне можно сканировать, а что нельзя?! Я заплатил за сканер деньги, и волен засовывать в него что угодно, хоть книжки с картинками, хоть евро, да хоть жопу, если мне вдруг понадобится ее скан.
Искать одинокую единичку в коде - это заведомо провальное занятие. Надо попробовать какой-нибудь другой путь. При нажатии в диалоговом окне кнопки Information, открывается говносайт с подробной информацией об этих самых ограничениях. А раз открывается ссылка, значит она тоже где-то должна быть. Далеко ходить не пришлось, вот она:
В дизассемблере начинаем раскручивать цепочку вызовов. Функция открытия ссылки: Функция обработчика диалогового окна, из которого открывается ссылка:
- . text : 10001E60 sub_10001E60 procnear
- . text : 10001E60 movecx , [ esp + arg_4 ]
- . text : 10001E64 moveax , ecx
- . text : 10001E66 andeax , 0FFFFh
- . text : 10001E6B cmpeax , 110h
- . text : 10001E70 jgshort loc_10001EB7
- . text : 10001E72 jzshort loc_10001E9E
- . text : 10001E74 subeax , 2
- . text : 10001E77 jzshort loc_10001E83
- . text : 10001E79 subeax , 29h
- . text : 10001E7C jnzshort loc_10001E9B
- . text : 10001E7E jmp sub_10001D90
- . text : 10001E83 ; --------------------------------------
- . text : 10001E83 loc_10001E83 :
- . text : 10001E83 moveax , hWnd
- . text : 10001E88 push 1 ; nResult
- . text : 10001E8A pusheax ; hDlg
- . text : 10001E8B callds : EndDialog
- . text : 10001E91 mov hWnd , 0
- . text : 10001E9B loc_10001E9B :
- . text : 10001E9B xoral , al
- . text : 10001E9D retn
- . text : 10001E9E ; ---------------------------------------
- . text : 10001E9E loc_10001E9E :
- . text : 10001E9E movedx , [ esp + arg_C ]
- . text : 10001EA2 moveax , [ esp + arg_8 ]
- . text : 10001EA6 pushedx
- . text : 10001EA7 pusheax
- . text : 10001EA8 pushecx
- . text : 10001EA9 movecx , [ esp + 0Ch + arg_0 ]
- . text : 10001EAD pushecx
- . text : 10001EAE call sub_10001BB0
- . text : 10001EB3 addesp , 10h
- . text : 10001EB6 retn
- . text : 10001EB7 ; --------------------------------------------
- . text : 10001EB7 loc_10001EB7 :
- . text : 10001EB7 cmpeax , 111h
- . text : 10001EBC jnzshort loc_10001E9B
- . text : 10001EBE moveax , [ esp + arg_8 ]
- . text : 10001EC2 cmpax , 1
- . text : 10001EC6 jnzshort loc_10001ED0
- . text : 10001EC8 call sub_10001E40
- . text : 10001ECD moval , 1
- . text : 10001ECF retn
- . text : 10001ED0 ; --------------------------------------------
- . text : 10001ED0 loc_10001ED0 :
- . text : 10001ED0 cmpax , 2
- . text : 10001ED4 jnzshort loc_10001E9B
- . text : 10001ED6 call sub_10001B90
- . text : 10001EDB moval , 1
- . text : 10001EDD retn
- . text : 10001EDD sub_10001E60 endp
- . text : 10001920 DialogFunc procnear
- . text : 10001920 moveax , [ esp + arg_C ]
- . text : 10001924 movecx , [ esp + arg_8 ]
- . text : 10001928 movedx , [ esp + arg_4 ]
- . text : 1000192C pusheax
- . text : 1000192D moveax , [ esp + 4 + arg_0 ]
- . text : 10001931 pushecx
- . text : 10001932 pushedx
- . text : 10001933 pusheax
- . text : 10001934 call sub_10001E60
- . text : 10001939 addesp , 10h
- . text : 1000193C andeax , 0FFh
- . text : 10001941 retn 10h
- . text : 10001941 DialogFunc endp
- . text : 10001B20 sub_10001B20 procnear
- . text : 10001B20 TemplateName = byteptr - 14h
- . text : 10001B20 hWndParent = dwordptr 4
- . text : 10001B20 subesp , 14h
- . text : 10001B23 pushesi
- . text : 10001B24 pushedi
- . text : 10001B25 callds : GetUserDefaultLCID
- . text : 10001B2B andeax , 0FFh
- . text : 10001B30 cmpeax , 9
- . text : 10001B33 jzshort loc_10001B38
- . text : 10001B35 cmpeax , 11h
- . text : 10001B38 loc_10001B38 :
- . text : 10001B38 movedi , offset aImgdetaction_a
- ; "ImgDetACTION_A"
- . text : 10001B3D orecx , 0FFFFFFFFh
- . text : 10001B40 xoreax , eax
- . text : 10001B42 leaedx , [ esp + 1Ch + TemplateName ]
- . text : 10001B46 repnescasb
- . text : 10001B48 notecx
- . text : 10001B4A subedi , ecx
- . text : 10001B4C push 0 ; dwInitParam
- . text : 10001B4E moveax , ecx
- . text : 10001B50 movesi , edi
- . text : 10001B52 movedi , edx
- . text : 10001B54 pushoffset DialogFunc ; lpDialogFunc
- . text : 10001B59 shrecx , 2
- . text : 10001B5C repmovsd
- . text : 10001B5E movecx , eax
- . text : 10001B60 leaedx , [ esp + 24h + TemplateName ]
- . text : 10001B64 andecx , 3
- . text : 10001B67 repmovsb
- . text : 10001B69 movecx , [ esp + 24h + hWndParent ]
- . text : 10001B6D pushecx ; hWndParent
- . text : 10001B6E pushedx ; lpTemplateName
- . text : 10001B6F pushoffset ModuleName ; "EsImgDet.dll"
- . text : 10001B74 callds : GetModuleHandleA
- . text : 10001B7A pusheax ; hInstance
- . text : 10001B7B callds : DialogBoxParamA
- . text : 10001B81 popedi
- . text : 10001B82 popesi
- . text : 10001B83 addesp , 14h
- . text : 10001B86 retn
- . text : 10001B86 sub_10001B20 endp
- . text : 10001A00 public EsImgDetSecureDetectImage
- . text : 10001A00 EsImgDetSecureDetectImage procnear
- . text : 10001A00
- . text : 10001A00 var_1C = byteptr - 1Ch
- . text : 10001A00 var_18 = dwordptr - 18h
- . text : 10001A00 arg_0 = dwordptr 4
- . text : 10001A00 hWndParent = dwordptr 8
- . text : 10001A00 arg_8 = dwordptr 0Ch
- . text : 10001A00 arg_C = dwordptr 10h
- . text : 10001A00
- . text : 10001A00 moveax , [ esp + arg_C ]
- . text : 10001A04 movecx , [ esp + arg_8 ]
- . text : 10001A08 movedx , dword_1000EA88
- . text : 10001A0E subesp , 1Ch
- . text : 10001A11 pushesi
- . text : 10001A12 pusheax
- . text : 10001A13 pushecx
- . text : 10001A14 movecx , dword_1000EA8C
- . text : 10001A1A pushedx
- . text : 10001A1B call sub_100018F0
- . text : 10001A20 testeax , eax
- . text : 10001A22 jzshort loc_10001A33
- . text : 10001A24 moveax , [ esp + 20h + arg_0 ]
- . text : 10001A28 popesi
- ; Код возврата = -1
- . text : 10001A29 movdwordptr [ eax ] , 0FFFFFFFFh
- . text : 10001A2F addesp , 1Ch
- . text : 10001A32 retn
- . text : 10001A33 ; ----------------------------------------
- . text : 10001A33 loc_10001A33 :
- . text : 10001A33 movedx , dword_1000EA88
- . text : 10001A39 leaecx , [ esp + 20h + arg_C ]
- . text : 10001A3D pushecx
- . text : 10001A3E movecx , dword_1000EA8C
- . text : 10001A44 pushedx
- . text : 10001A45 call sub_100013B0
- . text : 10001A4A testeax , eax
- . text : 10001A4C jzshort loc_10001A5D
- . text : 10001A4E loc_10001A4E :
- . text : 10001A4E moveax , [ esp + 20h + arg_0 ]
- . text : 10001A52 popesi
- ; Код возврата = -1
- . text : 10001A53 movdwordptr [ eax ] , 0FFFFFFFFh
- . text : 10001A59 addesp , 1Ch
- . text : 10001A5C retn
- . text : 10001A5D ; ---------------------------------------
- . text : 10001A5D loc_10001A5D :
- . text : 10001A5D moveax , [ esp + 20h + arg_C ]
- . text : 10001A61 xoresi , esi
- . text : 10001A63 testeax , eax
- . text : 10001A65 jbeshort loc_10001A93
- . text : 10001A67 loc_10001A67 :
- . text : 10001A67 movedx , dword_1000EA88
- . text : 10001A6D leaecx , [ esp + 20h + var_1C ]
- . text : 10001A71 pushecx
- . text : 10001A72 movecx , dword_1000EA8C
- . text : 10001A78 pushesi
- . text : 10001A79 pushedx
- . text : 10001A7A call sub_100013D0
- . text : 10001A7F testeax , eax
- . text : 10001A81 jnzshort loc_10001A4E
- . text : 10001A83 cmp [ esp + 20h + var_18 ] , 1
- . text : 10001A88 jzshort loc_10001AA2
- . text : 10001A8A moveax , [ esp + 20h + arg_C ]
- . text : 10001A8E incesi
- . text : 10001A8F cmpesi , eax
- . text : 10001A91 jbshort loc_10001A67
- . text : 10001A93 loc_10001A93 :
- . text : 10001A93 moveax , [ esp + 20h + arg_0 ]
- . text : 10001A97 popesi
- ; Код возврата = 0
- . text : 10001A98 movdwordptr [ eax ] , 0
- . text : 10001A9E addesp , 1Ch
- . text : 10001AA1 retn
- . text : 10001AA2 ; --------------------------------------
- . text : 10001AA2 loc_10001AA2 :
- ; Вот тут вызывается диалоговое окно
- . text : 10001AA2 movecx , [ esp + 20h + hWndParent ]
- . text : 10001AA6 pushecx ; hWndParent
- . text : 10001AA7 call sub_10001B20
- . text : 10001AAC movedx , [ esp + 24h + arg_0 ]
- . text : 10001AB0 addesp , 4
- ; Код возврата = 1
- . text : 10001AB3 movdwordptr [ edx ] , 1
- . text : 10001AB9 popesi
- . text : 10001ABA addesp , 1Ch
- . text : 10001ABD retn
- . text : 10001ABD EsImgDetSecureDetectImage endp
Обратите внимание, что функция имеет несколько точек выхода, а именно четыре. Две из них возвращают код -1 (он же 0FFFFFFFFh), одна возвращает код 0 и одна, в которой открывается окно с запретом, возвращает код 1. Нетрудно догадаться, что "правильных" кодов возврата всего два - это 0 и -1. Чтобы не утруждать себя лишним кодокопанием, я просто заNOPлю условный переход по адресу 10001A22, чтобы код возврата всегда был -1. Сохраняем изменения, пытаемся сканировать.
Не тут-то было. Значит код возврата -1 соответствует ошибке. Остается второй вариант с нулевым кодом возврата. Заменяем аргумент функции MOV по адресу 10001A29 с -1 на 0. Сохраняем изменения, пробуем.
Сканер добросовестно выводит нам изображение заветной банкноты, при этом напрочь забыв о каких-то там ограничениях. Вот так в очередной раз была повержена человеческая тупость и жадность. Не исключено, что в сканерах других производителей имеются похожие ограничения, но вы теперь знаете, как с ними бороться.
Читайте также: