Windows Mobile: использование камеры телефона с C#

Я создал функцию parseDateTime для преобразования строки в объект даты, и она работает во всех браузерах (включая браузер IE), проверьте, если кто-то требуется, обратитесь к https://github.com/Umesh-Markande/Parse -Строка с указанием даты во всем браузере

    function parseDateTime(datetime) {
            var monthNames = [
                "January", "February", "March",
                "April", "May", "June", "July",
                "August", "September", "October",
                "November", "December"
              ];
            if(datetime.split(' ').length == 3){
                var date = datetime.split(' ')[0];
                var time = datetime.split(' ')[1].replace('.00','');
                var timearray = time.split(':');
                var hours = parseInt(time.split(':')[0]);
                var format = datetime.split(' ')[2];
                var bits = date.split(/\D/);
                date = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
                var day = date.getDate();
                var monthIndex = date.getMonth();
                var year = date.getFullYear();
                if ((format === 'PM' || format === 'pm') && hours !== 12) {
                    hours += 12;
                    try{  time = hours+':'+timearray[1]+':'+timearray[2] }catch(e){ time = hours+':'+timearray[1] }
                } 
                var formateddatetime = new Date(monthNames[monthIndex] + ' ' + day + '  ' + year + ' ' + time);
                return formateddatetime;
            }else if(datetime.split(' ').length == 2){
                var date = datetime.split(' ')[0];
                var time = datetime.split(' ')[1];
                var bits = date.split(/\D/);
                var datetimevalue = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
                var day = datetimevalue.getDate();
                var monthIndex = datetimevalue.getMonth();
                var year = datetimevalue.getFullYear();
                var formateddatetime = new Date(monthNames[monthIndex] + ' ' + day + '  ' + year + ' ' + time);
                return formateddatetime;
            }else if(datetime != ''){
                var bits = datetime.split(/\D/);
                var date = new Date(bits[0], --bits[1], bits[2]); /* if you change format of datetime which is passed to this function, you need to change bits e.x ( bits[0], bits[1], bits[2 ]) position as per date, months and year it represent bits array.*/
                return date;
            }
            return datetime;
        }

    var date1 = '2018-05-14 05:04:22 AM';   // yyyy-mm-dd hh:mm:ss A
    var date2 = '2018/05/14 05:04:22 AM';   // yyyy/mm/dd hh:mm:ss A
    var date3 = '2018/05/04';   // yyyy/mm/dd
    var date4 = '2018-05-04';   // yyyy-mm-dd
    var date5 = '2018-05-14 15:04:22';   // yyyy-mm-dd HH:mm:ss
    var date6 = '2018/05/14 14:04:22';   // yyyy/mm/dd HH:mm:ss

    console.log(parseDateTime(date1))
    console.log(parseDateTime(date2))
    console.log(parseDateTime(date3))
    console.log(parseDateTime(date4))
    console.log(parseDateTime(date5))
    console.log(parseDateTime(date6))

**Output---**
Mon May 14 2018 05:04:22 GMT+0530 (India Standard Time)
Mon May 14 2018 05:04:22 GMT+0530 (India Standard Time)
Fri May 04 2018 00:00:00 GMT+0530 (India Standard Time)
Fri May 04 2018 00:00:00 GMT+0530 (India Standard Time)
Mon May 14 2018 15:04:22 GMT+0530 (India Standard Time)
Mon May 14 2018 14:04:22 GMT+0530 (India Standard Time)

8
задан VansFannel 4 July 2009 в 17:28
поделиться

4 ответа

Не совсем уверен, что вам нужно, но вы можете попробовать использовать Microsoft.WindowsMobile.Forms.CameraCaptureDialog:

    string originalFileName;
    using (CameraCaptureDialog dlg = new CameraCaptureDialog()) {
        dlg.Mode = CameraCaptureMode.Still;
        dlg.StillQuality = CameraCaptureStillQuality.Low;
        //dlg.Resolution = new Size(800, 600);
        dlg.Title = "Take the picture";
        DialogResult res;
        try {
            res = dlg.ShowDialog();
        }
        catch (Exception ex) {
            Trace.WriteLine(ex);
            return null;
        }

        if (res != DialogResult.OK)
            return null;
        this.Refresh();
        originalFileName = pictureFileName = dlg.FileName;
    }

Позже Изменить: { {1}} Некоторым из вас также может пригодиться эта ссылка: http://community.intermec.com/t5/General-Development-Developer/CN50-MS-Camera-Capture-Dialog -generates-error / mp / 12881 # M4083

8
ответ дан 5 December 2019 в 13:01
поделиться

Я думаю, вам следует программировать против оборудования напрямую, используя SDK или что-то подобное.

Так как программирование на аппаратном обеспечении напрямую обычно осуществляется на c / c ++, sdk, вероятно, будет родным. Так что либо вам, вероятно, придется использовать pinvoke и ключевое слово unsafe.

Но сначала вы должны найти способ доступа к камере, и, поскольку это зависит от оборудования, вы можете начать с веб-сайта производителя телефона.

1
ответ дан 5 December 2019 в 13:01
поделиться

Проверьте SmartDeviceFramework на OpenNetCF.org , есть некоторые инструменты для PocketPC, включая захват кадров с камеры.

1
ответ дан 5 December 2019 в 13:01
поделиться

Вам нужен предварительный просмотр, а не захват, который намного сложнее. Лучшее (и, возможно, единственное) решение - вставить фильтр DShow в графу фильтров, чтобы направить окно предварительного просмотра туда, где вы хотите.

COM - это медведь в Compact Framework, а DShow - это круто, независимо от того, на какой платформе вы работаете. В Интернете есть некоторые ресурсы, такие как библиотека DShow.NET на sourceforge и блог Алекса Могуренко , но ничего конкретного о создании захвата.

В нем есть образец встроенного захвата. WinMo SDK, который может быть полезным руководством для достижения этой цели.

3
ответ дан 5 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: