У меня есть ASP.NET веб-приложение. Задача давольно сложна. Нужно отсканировать на стороне клиента документ и отправить картинку на сервер и сохранить её. Половину задачи я решил. Я смог с помощью JavaScript запустить процесс сканирования и создать объект картинки.
function ConvertImage(img, wiaformat) {
var IP = new ActiveXObject("WIA.ImageProcess");
IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
IP.Filters(1).Properties("FormatID").Value = wiaformat;
IP.Filters(1).Properties("Quality").Value = 85;
img2 = IP.Apply(img);
return img2;
}
var ScannerDeviceType = 1;
var ColorIntent = 1;
var GrayscaleIntent = 2;
var TextIntent = 4;
var MinimizeSize = 65536;
var MaximizeQuality = 131072;
var wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
var wiaFormatPNG = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}";
var wiaFormatGIF = "{B96B3CB0-0728-11D3-9D7B-0000F81EF32E}";
var wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}";
var wiaFormatTIFF = "{B96B3CB1-0728-11D3-9D7B-0000F81EF32E}";
var ForReading = 1;
var TristateUseDefault = -2;
//
var cdlg = new ActiveXObject("WIA.CommonDialog");
var img = cdlg.ShowAcquireImage(ScannerDeviceType,
ColorIntent,
MinimizeSize,
wiaFormatBMP,
true, // AlwaysSelectDevice Boolean value that indicates whether to always show the select device dialog box.
true, // UseCommonUI Boolean value that indicates whether to use the common user interface (UI).
false // CancelError Boolean value that indicates whether to generate an error if the user cancels the dialog.
);
img = ConvertImage(img, wiaFormatJPEG);
var vVector = img.FileData;
var ll = vVector.Count;
var ff = vVector[1];
Осталась проблема №2. Как передать из джаваскрипта объект на сервер? Я решил преобразовать этот img в стринг, засунуть в текстовое поле, потом декодировать её опять в jpeg и сохранить. НО я запутался напроч в этих джаваскриптовых свойствах. Безумие какое-то. Вот то что у меня в Visual Studio
Переменная ff ваще undefined, хотя судя по структуре это вообще массив. Методов никаких нет. Как мне достать каждый член этого массива?