Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

работа с графикой и со сканером   Найти похожие ветки 

 
Xmen   (2005-07-12 14:55) [0]

Привет мастера!
У меня появилось такая проблема.
Как можно обработат графику через сканер. Конкретнее сказат нужно фотаграфии (паспортные) обработат через сканер и сохранит в базе. Записать в базу и читат из него я уже могу но работат со сканером не могу. Нужно сделат так что нажатием одной кнопки отсканироват фото и поставит его в ТИмаже. Нужно отсканироват ту область которуму подлежить фото (размер фото для паспорта). и нужно отрезат осталную ненужную часть, обычно это черный или белый фон смотря типу сканера. Если кто небуд сталкивался с такой проблемой, раскажите что нужно сделать или посоветуеты какуб нибуд др. компоненту для таких целей.


 
programania ©   (2005-07-12 19:32) [1]

Можно использовать библиотеку ImageEn
http://hyrix.com
или готовую программу
http://programania.com/enjol+.exe   350kb
например:
enjol+ S2
запускает диалог сканирования сканера 2 с вырезанием и сохраняет в BMP
подробнее о параметрах после запуска без параметров


 
Xmen   (2005-07-13 13:59) [2]

А программно как можно это реализовать.
ImageEn наверно хорошая компонента но теребует сериал намбе. А обходит его как нибуд можно.


 
programania ©   (2005-07-13 19:59) [3]

Использовал ImageEn v2.0.3
Когда спросила SN переписал все DCU в другое место
и отказался, она их сразу удалила, но было уже поздно
в программе просто вставил в uses ImageEnView,ImageEnIO,
и сканирую:

var ImageEnIO2:tImageEnIO;
........
ImageEnIO2:=TImageEnIO.create(form2);
ImageEnIO2.TWainParams.SelectedSource:=nScan; //номер Twain
ImageEnIO2.autoAdjustDPI:=true;
ImageEnIO2.TWainParams.AppVersionInfo:="1.0";
ImageEnIO2.TWainParams.AppManufacturer:="HiComponents";
ImageEnIO2.TWainParams.AppProductFamily:="Image processing";
ImageEnIO2.TWainParams.AppProductName:="ImageEn demo";

ImageEnIO2.TWainParams.VisibleDialog:=true;
ImageEnIO2.TWainParams.ProgressIndicators:=false;
ImageEnIO2.TWainParams.PixelType.IndexOf(ImageEnIO2.TWainParams.PixelType.CurrentValue);
ImageEnIO2.TWainParams.BufferedTransfer:=true;

ImageEnIO2.Bitmap.width:=0;
ImageEnIO2.Bitmap.height:=0;
ImageEnIO2.update
ImageEnIO2.Acquire;
f1:="Enjol_Scan.bmp";
if ImageEnIO2.Bitmap.width>0 then begin
 ImageEnIO2.Bitmap.SaveToFile(f1);
 showMessage("Save Image"+#13+f1);
 halt;
end

Правда я использую ImageEnIO2.attachedImageEn:=imageEnView1; и  imageEnView1.bitmap
из версии 1.9 с исходниками, но наверно и так можно
или можно попробовать еще ImageEnIO2.AttachedBitmap

Все Twain можно получить:

for i:=0 to ImageEnIO2.TWainParams.SourceCount-1 do begin
 ComboBox1.Items.Add(ImageEnIO2.TWainParams.SourceName[i]);
end;


 
Const   (2005-11-28 17:01) [4]

В этом примере вы используете ImageEnIO2.TWainParams.VisibleDialog:=true,
что вызывает стандартный диалог драйвера ТWAIN. Мне поставлена та же
задача, но нужно написать свой диалог. В итоге я сделал диалог, задающий разрешение сканирования и прочее.. Но при сканировании с выделением некоторой области изображения мне выдается не совсем верный прямоугольник битмапа со сканера. Верхний левый угол верен, а нижний правый несколько с завышенным значением. При задании прямоугольника использую такой код
ImageEnView1.IO.TWainParams.AcquireFrameLeft:=ImageEnView1.SelX1/100;    ImageEnView1.IO.TWainParams.AcquireFrameRight:=ImageEnView1.SelX2/100;   ImageEnView1.IO.TWainParams.AcquireFrameTop:=ImageEnView1.SelY1/100;   ImageEnView1.IO.TWainParams.AcquireFrameBottom:=ImageEnView1.SelY2/100;
ImageEnView1.IO.TWainParams.AcquireFrameEnabled:=TRUE;
Где SelX1..SelY2 задают выделенный мышкой прямоугольник, а делятся на 100 так как изображения предосмотра сканировалось с разрешением 100dpi.
Вроде все работает, но этот правый нижний угол.. Подскажите, пожалуйста, что я не правильно сделал.


 
programania ©   (2005-11-28 21:18) [5]

Если один угол верный то и наверно и делаете все верно
возможно при масштабировании или в драйвере сканера разные вычисления
лучше не гадать, а исследовать проблему:
будет ли верен левый верхний угол выделения в правом нижнем углу изображения
по какому закону меняется ошибка в зависимости от удаления от верхнего
левого угла и тогда решить как скорректировать.

а в чем настроен показ в драйвере сканера
может переключить его в пикселы и не делить
еще можно попробовать менять множество параметров
xResolution, xScaling, physicalHeight


 
NBG   (2005-11-28 21:46) [6]

Поищи в инете заголовочные файлы для работы со сканером или обращайся на мыло



Страницы: 1 вся ветка

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
2-1144428693
TimScorp
2006-04-07 20:51
2006.04.30
Условия отбора


2-1145111374
Exciter
2006-04-15 18:29
2006.04.30
Добавить Lookup поле программно


4-1139558159
Shuma
2006-02-10 10:55
2006.04.30
Вызов процедуру из EXE-файла


15-1144322061
Суслик
2006-04-06 15:14
2006.04.30
XML parser


1-1143203538
.Кирилл
2006-03-24 15:32
2006.04.30
Как записать в бинарный файл данные String