Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.011 c
2-1145028230
elfebet
2006-04-14 19:23
2006.04.30
как при помощи IdHTTP запустить браузер по умолчанию?


5-1130421252
Priest
2005-10-27 17:54
2006.04.30
Выпадающий список знач свойства и ReadOnly


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


15-1144603218
anton773
2006-04-09 21:20
2006.04.30
Новости vcl


2-1144565312
Galiaf
2006-04-09 10:48
2006.04.30
Ещё раз про настройки экрана...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский