使用PhotoChooserTask裁剪给定的图像

时间:2014-08-05 14:10:19

标签: image windows-phone-7 windows-phone-8

在我的Windows Phone应用中,用户可以使用PhotoChooserTask选择照片,并通过指定photoChooserTask.PixelWidthphotoChooserTask.PixelHeight将其裁剪为所需尺寸。

但是,用户还可以通过图片的编辑按钮(使用Photos_Extra_Image_Editor扩展程序)访问我的应用。问题是那些图像可以有任意尺寸,所以我也想在这里使用WP的内置裁剪机制。是否可以将PhotoChooserTask配置为使用一个特定图像并跳过选择部分?或者是否有专门用于裁剪的任务?

1 个答案:

答案 0 :(得分:1)

Nokia Imaging SDK有一些用于照片裁剪的内置控件。

以下是使用CropFilter类的示例:

async void CaptureTask_Completed(object sender, PhotoResult e)
{
    // Create a source to read the image from PhotoResult stream
    using (var source = new StreamImageSource(e.ChosenPhoto))
    {
        // Create effect collection with the source stream
        using (var filters = new FilterEffect(source))
        {
            // Initialize the filter 
            var sampleFilter = new CropFilter(new Windows.Foundation.Rect(0, 0, 500, 500));

            // Add the filter to the FilterEffect collection
            filters.Filters = new IFilter[] { sampleFilter };

            // Create a target where the filtered image will be rendered to
            var target = new WriteableBitmap((int)ImageControl.ActualWidth, (int)ImageControl.ActualHeight);

            // Create a new renderer which outputs WriteableBitmaps
            using (var renderer = new WriteableBitmapRenderer(filters, target))
            {
                // Render the image with the filter(s)
                await renderer.RenderAsync();

                // Set the output image to Image control as a source
                ImageControl.Source = target;
            }
        }
    }
}