Текущий архив: 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.46 MB
Время: 0.009 c