Windows Phone 8.1 多媒体(1):相片

原文:Windows Phone 8.1 多媒体(1):相片

Windows Phone 8.1 多媒体(1):相片

Windows Phone 8.1 多媒体(2):视频

Windows Phone 8.1 多媒体(3):音乐

 



 

(1)拍摄相片

1)CaptureElement

CaptureElement 是放在应用界面上预览拍照的控件:

<Grid>
    <CaptureElement x:Name="capturePhotoElement"/>
</Grid>

<Page.BottomAppBar>
    <CommandBar>
        <AppBarButton x:Name="btnCapturePhoto"
                      Icon="Camera" Label="Capture"
                      Click="btnCapturePhoto_Click"/>
    </CommandBar>
</Page.BottomAppBar>

 

2)MediaCapture

MediaCapture 是控制拍摄的重要类。

首先初始化 MediaCapture,并将 CaptureElement 的 Source 设为 该 MediaCapture:

MediaCapture photoCapture;
ImageEncodingProperties imgEncodingProperties;

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    capturePhotoElement.Source = await Initialize();

    await photoCapture.StartPreviewAsync();
}

private async Task<MediaCapture> Initialize()
{
    photoCapture = new MediaCapture();
    await photoCapture.InitializeAsync();

    photoCapture.VideoDeviceController.PrimaryUse = CaptureUse.Photo;

    imgEncodingProperties = ImageEncodingProperties.CreateJpeg();
    imgEncodingProperties.Width = 640;
    imgEncodingProperties.Height = 480;

    return photoCapture;
}

然后在按下某个按钮的时候完成拍摄:

private async void btnCapturePhoto_Click(object sender, RoutedEventArgs e)
{
    var photo = await KnownFolders.PicturesLibrary.CreateFileAsync("photo.jpg", CreationCollisionOption.GenerateUniqueName);

    await photoCapture.CapturePhotoToStorageFileAsync(imgEncodingProperties, photo);
}

也可以添加手机实体按键的事件:

HardwareButtons.CameraHalfPressed += HardwareButtons_CameraHalfPressed;

async void HardwareButtons_CameraHalfPressed(object sender, CameraEventArgs e)
{
    await photoCapture.VideoDeviceController.FocusControl.FocusAsync();
}

最后记得在离开页面时释放 MediaCapture 资源:

protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    if( photoCapture != null )
    {
        photoCapture.Dispose();
        photoCapture = null;
    }
}

 

(2)编辑相片

我在这里使用了 Nokia Imaging SDK 和 WritableBitmapEx 库,可在 Nuget 中搜索并安装。

注意要将配置管理器中的 CPU 改成 ARM,否则 Nokia Imaging SDK 将不可用。

使用方法非常简单,比如以下为一张图片添加滤镜:

WriteableBitmap originBitmap;
WriteableBitmap editedBitmap;

private async void editButton_Click(object sender, RoutedEventArgs e)
{
    var imageSource = new BitmapImageSource(originBitmap.AsBitmap());

    using( var effect = new FilterEffect(imageSource) )
    {
        var filter = new AntiqueFilter();

        effect.Filters = new[] { filter };

        var renderer = new WriteableBitmapRenderer(effect, originBitmap);
        editedBitmap = await renderer.RenderAsync();

        editedBitmap.Invalidate();
    }

    myImage.Source = editedBitmap;
}

更多的使用方法可到诺基亚帮助中心查看:链接

时间: 2014-06-16

Windows Phone 8.1 多媒体(1):相片的相关文章

Windows Phone 8.1 多媒体(2):视频

原文:Windows Phone 8.1 多媒体(2):视频 Windows Phone 8.1 多媒体(1):相片 Windows Phone 8.1 多媒体(2):视频 Windows Phone 8.1 多媒体(3):音乐     (1)拍摄视频 拍摄视频和拍摄相片的方法是基本一致的: MediaCapture mediaCapture; MediaEncodingProfile videoEncodingProperties; protected override async void

Windows Phone 8.1 多媒体(3):音乐

原文:Windows Phone 8.1 多媒体(3):音乐 Windows Phone 8.1 多媒体(1):相片 Windows Phone 8.1 多媒体(2):视频 Windows Phone 8.1 多媒体(3):音乐     (1)前台 说是前台,其实音乐的播放都是利用系统后台的 BackgroundMediaPlayer: BackgroundMediaPlayer.Current.SetUriSource(new Uri("ms-appx:///djlang59_-_Drops_

Silverlight for Windows Phone 7开发系列(3):多媒体开发

前言 在上篇文章讲述了如何新建一个Silverlight for Windows Phone的应用程序,这篇文章讲述如何在Windows Phone上进行多媒体应用的开发.同时介绍当前Windows Phone Beta版本所支持媒体文件格式,以及讲述Windows Phone多媒体开发的一些限制性和注意点. MediaElement控件的使用 使用Silverlight开发一般的多媒体应用,使用MediaElement控件就足够了,MediaElement控件支持音频和视频文件,也支持本地和网

浅谈Windows Embedded的工控与节能

嵌入式系统,作为现如今计算机的两大分支之一,已经从不同的角度影响着我们的生活.只要你细心的观察就可以发现,现在我们每个家庭,除了台式电脑之外,类似如PDA.汽车的控制部件.冰箱.手机.DVD.数码相机.智能家具等日常生活中使用的电子产品,其实都是由各种嵌入式系统组成的.   而正是基于人们对智能连接设备的需求不断提高的趋势,如今的各种电子产品也不断的在软硬件平台上进行创新和升级.这也无形中使得市场中大量基于32位嵌入式处理器的电子产品得到了广泛的应用,随之而来其配套的操作系统也就得到了广泛的应用

Windows下的高精度计时和高频事件的产生

在开发 Windows 下的应用程序时,经常需要用的计时,尤其在一些对时间要求比较高的程序中,计时的精确性是很重要的,本文介绍了两种精确计时的方法,计时的精度可以达到ms级,而且可以认为它是精确的,可以在大多数情况下作为时间的基准. 用API函数::timeGetTime()获取从开机到现在经过的ms数,它的返回类型为DWORD类型,因此它的最大计时长度为2^32ms,约等于49天,::timeGetTime()是一个多媒体函数,所以它的优先级是很高的,一般可以将它看成是精确的. 用查询系统定时

win7系统下无法打开Windows Media Center的解决方法

  Windows Media Center是微软windows系统下的多媒体应用程序,默认情况下用户可直接听过该应用打开电脑中的媒体文件,不过近期有部分win7系统用户却出现无法正常使用Windows Media Center播放器的用户,对于这类问题我们如何解决呢?下面河东小编就为大家提供了一种有效的解决方法, 我们一起来了解下吧! 操作方法 1.点击开始菜单,点击"控制面板"; 2.将控制面板中的查看方式修改为"类别",点击下面的"卸载";

Windows XP Embedded搭建网络视频会议平台

会议多,是目前我国各级政府机关以及企事业单位所共同面临的一个问题.如果参会者所处的物理位置比较分散,会议的组织将相对比较麻烦,花费也巨大.随着互联网的发展,可视性网络视频会议系统能够有效帮助会议的组织者节省会议成本,提高效率. 可视性网络视频会议系统使用网络作为媒介,由一方发起和主持,可以有在地理上分散的多方参加,同时使用视频音频会议和数据会议进行交流,不需要专门的会议场所和专职的会务人员.可视性网络视频会议系统的底层平台所选择的嵌入式系统就必须要很好地适应系统的功能,在安全性.稳定性以及多媒体

Windows 7中如何诊断DirectX的基本问题

如果无法正常运行游戏或播放电影,http://www.aliyun.com/zixun/aggregation/33840.html">DirectX 诊断工具可帮助您查明问题来源.DirectX 是 Windows 中的许多多媒体程序使用的一套技术.  打开诊断工具的步骤:• 单击「开始」按钮,在搜索框中键入 dxdiag,然后按 Enter. 诊断工具完成后,请执行以下三项检查:• 检查视频卡. 某些程序运行很慢或完全不运行(除非打开了 Microsoft DirectDraw 或 D

电脑基本常识

   1,Q:快速改变 Windows 窗口状态: A:双击窗口上方的标题栏(通常为蓝色),可以使窗口在最大化和常规大小间切换. 2,Q:一次打开编辑众多 Windows 系统文件: A:在"开始/运行"中输入"sysedit",确定,可以一次打开五个系统文件进行编辑:autoexec.bat,config.sys,win.ini,system.ini,protocol.ini. 3,Q:除过操作系统,电脑初学者应安装和熟悉什么应用软件? A:建议安装和熟悉以下应用