Собственно наткнулся на тему, о разработке альтернативной программы для фотографирования под WP7. По умолчанию WP7 не дает доступа к фотокамере, но тут описан способ как это обойти.
Собственно оригинальная тема на xda. Программа имеет один существенный недостаток - она умеет делать снимки только 640x480. Любопытства ради, потратил сегодня 40 минут и обошел эту проблему (никакой документации понятное дело нет - все методом тыка).
namespace CameraApp
{
public partial class MainPage : PhoneApplicationPage
{
PhotoCamera camera;
public MainPage()
{
InitializeComponent();
camera = new PhotoCamera();
cameraVisualizer.SetSource(camera);
camera.Initialized += new EventHandler(camera_Initialized);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
//список всех разрешений для камеры
foreach (CaptureResolution res in camera.GetAvailableResolutions())
{
listBox1.Items.Add(res.Height.ToString() + "x" + res.Width.ToString());
}
//ну и выбираем самое высокое - для моего аппарата 5MPix
camera.SetResolution(camera.GetAvailableResolutions().Last());
camera.CaptureImage();
}
void camera_Initialized(object sender, EventArgs e)
{
camera.ImageAcquired += new EventHandler(camera_ImageAcquired);
camera.ImageSavedToDisk += new EventHandler
}
void camera_ImageSavedToDisk(object sender, ContentReadyEventArgs e)
{
//собственно и все - неясно как до этого никто не допер
//картинка сохраняется в IsolatedStorage приложения - дальше делай с ней что хочешь
this.Dispatcher.BeginInvoke(() =>
{
listBox1.Items.Add(e.RelativePath);//тут у нас имя файла
});
}
void camera_ImageAcquired(object sender, EventArgs e)
{
//тут чего-нибудь можно вывести... тоже через Dispatcher - иначе вылетит исключение
}
}
Собственно сразу же про это и написал (тыц)... Вот она новая - система, все приколы познаются сейчас...
ЗЫ: последствия моей работы - SHCameraApp
ЗЗЫ: автор оригинального проекта остановил разработку после моего релиза, жаль - именно он сподвиг меня на шевеление мозгами...
Комментариев нет:
Отправить комментарий