если у кого-то есть уже готовая программа, то буду премного благодарен
За такое здесь посылают на фриланс с формулировкой "задание, а не вопрос", потому что...
реализовывать ее с нуля ну совершенно нет желания
...нет никакого желания бесплатно делать работу за других.
Далее, C# подразумевает, что работа со сканером ведётся под виндой, так? Можешь посмотреть в сторону Windows Image Acquisition (WIA), это не лучший способ, но умеренно сложный и универсальный. Могу подсказать классы, на которые стоит обратить внимание:
- WIA.DeviceManager и WIA.DeviceInfo чтобы перечислить доступные устройства ввода
- WIA.Device для представления отдельного устройства
- WIA.Item для представления отдельного компонента устройства, съём изображений производится с него
- WIA.IProperties и WIA.Property для задания настроек сканирования
- WIA.CommonDialog для показа диалогового окна "идёт сканирование", метод ShowTransfer()
- Результат получишь как WIA.ImageFile, смотри в сторону метода get_BinaryData(), чтобы получить содержимое файла изображения в заданном формате. Дальше этот файл либо сбрасываешь на диск, либо пишешь в MemoryStream и загружаешь оттуда в System.Drawing.Bitmap.
Во всяком случае, я так делал, когда мне потребовалось решить эту задачу.