Книга: Программирование КПК и смартфонов на .NET Compact Framework
Работа с фотокамерой
Разделы на этой странице:
Работа с фотокамерой
Мобильные устройства все чаще снабжаются фотокамерами. Причем многие пользователи отсутствие камеры на смартфоне считают очень большим недостатком. Система Windows Mobile 5.0 предлагает поддержку работы с камерой, чтобы разработчики могли использовать ее возможности в своих приложениях.
Диалоговое окно захвата изображения позволяет интегрировать фотографии и видеоматериал в приложения. При этом разработчик получает возможность управлять поведением камеры. Доступ к возможностям камеры осуществляется при помощи класса Microsoft.WindowsMobile.Forms.CameraCaptureDialog
. Класс CameraCaptureDialog
очень похож на класс SelectPictureDialog
.
Свойство Mode
позволяет управлять режимом съемки. Камера может работать, как обычный фотоаппарат, что задается значением CameraCaptureMode.Still
, или записывать видеоролик. Диалоговое окно вызывается методом ShowDialog
, который возвращает значение, показывающее, как было закрыто окно. Если пользователь выбрал кнопку OK
, то возвращается значение DialogResult.OK
. Имя выбранной картинки записывается в свойство FileName
. В листинге 10.17 приведен пример работы с фотокамерой.
Листинг 10.17
private void butPhotoMake_Click(object sender, EventArgs e) {
CameraCaptureDialog cameraCaptureDialog = new CameraCaptureDialog();
cameraCaptureDialog.Owner = this;
cameraCaptureDialog.Title = "Фотограф";
cameraCaptureDialog.Mode = CameraCaptureMode.Still;
if (cameraCaptureDialog.ShowDialog() == DialogResult.OK &&
cameraCaptureDialog.FileName.Length > 0) {
PictureBox.Image = new Bitmap(cameraCaptureDialog.FileName);
MessageBox.Show("Снято!");
}
}
Для записи видеоролика используется аналогичный способ, но надо поменять режим съемки. Так, для записи видеоматериала вместе со звуком используется режим VideoWithAudio
. Пример записи видеоролика приведен в листинге 10.18.
Листинг 10.18
private void butCaptureClick(object sender, EventArgs e) {
CameraCaptureDialog cameraCapture = new CameraCaptureDialog();
cameraCapture.Owner = null;
cameraCapture.InitialDirectory = @"My Documents":
cameraCapture.DefaultFileName = @"test.3gp";
cameraCapture.Title = "Камера - Демонстрация";
cameraCapture.VideoTypes = CameraCaptureVideoTypes.Messaging;
cameraCapture.Resolution = new Size(176, 144);
// Лимит в 10 секунд для видео
cameraCapture.VideoTimeLimit = new TimeSpan(0, 0, 10);
cameraCapture.Mode = CameraCaptureMode.VideoWithAudio;
if (DialogResult.OK == cameraCapture.ShowDialog()) {
MessageBox.Show("Картинка или видео успешно записаны в:n{0}",
cameraCapture.FileName);
}
}
Легко заметить, что эти два примера практически идентичны. Существует еще режим записи видео без звукового сопровождения. В этом случае для свойства Mode
задается значение CameraCaptureMode.VideoOnly
. Если перед вызовом метода ShowDialog
использовать свойство DefaultFileName
, то указанное имя будет использоваться как имя файла для записи новых фотографий или видеоматериала. Свойство InitialDirectory
позволяет указать папку, в которой будут сохраняться отснятые материалы. Свойство Resolution
позволяет задать разрешение снимаемого материала, что иллюстрирует следующая строка кода:
cameraCaptureDialog.Resolution = new Size(320, 240);
Свойство StillQuality
позволяет установить качество сжатия для фотографий при помощи перечисления CameraCaptureStillQuality
. Используемые значения перечислены в следующем списке:
? High
— указывает на наилучшее качество картинки с минимальным сжатием;
? Normal
— среднее качество картинки;
? Low
— высокая степень сжатия, плохое качество.
Свойство VideoTimeLimit
позволяет установить максимальную продолжительность записи видеоматериала. По умолчанию используется нулевое значение, что означает отсутствие временного ограничения. В этом случае запись съемки будет вестись до тех пор, пока позволяют ресурсы системы. Свойство VideoTypes
позволяет выбрать тип видеоматериала. На устройствах под управлением Windows Mobile 5.0 используется видеоматериал двух типов — Multimedia Messaging Service (MMS) и Windows Media Video (WMV).
- Первый взгляд
- Подготовка к работе
- Microsoft.WindowsMobile.PocketOutlook
- Встречи (Appointment)
- Работа с адресной книгой
- Электронная почта
- SMS-сообщения
- Прием и обработка SMS-сообщений
- Телефония
- State and Notifications Broker
- Мультимедиа
- Выбор изображения
- Работа с фотокамерой
- Повторение пройденного
- Встречи
- Отсылка письма
- Мелочь, а приятно
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Лекция 15. Работа с базами данных
- Работа с ресурсами локальной сети
- Эффективная работа с временными файлами сортировки
- Ускоренная работа с индексами
- HR-брендинг: Работа с поколением Y, новые инструменты для коммуникации, развитие корпоративной культуры и еще 9 эффектив...
- Безопасная работа с внешними таблицами
- Работа со строками
- 9.2. Работа прокси-сервера
- 3. Заработок для фотографов: заработать на фото – сайты фотобанков
- Работа с активным документом
- Работа с переменными