示例#1
0
 private void SetImageSource(string imageKey, BitmapSource imageSource, Stream imageDataStream)
 {
     if (imageSource == null)
     {
         throw new ArgumentNullException("imageSource");
     }
     try
     {
         imageSource.SetSource(imageDataStream);
     }
     catch (Exception)
     {
         DeleteImageFromCache(imageKey);
         DeleteImageFromMemoryCache(imageKey);
     }
 }
 /// <summary>
 /// Util: Dispose a bitmap resource
 /// </summary>
 /// <param name="image">BitmapSource subclass to dispose</param>
 private void DisposeImage(BitmapSource image)
 {
     if (image != null)
     {
         try
         {
             using (var ms = new MemoryStream(new byte[] { 0x0 }))
             {
                 image.SetSource(ms);
             }
         }
         catch (Exception)
         {
         }
     }
 }
        void photoChooser_Completed(object sender, PhotoResult e)
        {
            if (e.Error != null || e.ChosenPhoto == null)//没有选择图片则返回跳出该方法
            {
                return;
            }
            //创建BitmapImage来存储选择器的图片

            if (IsFromPhoto == false)
            {
                BitmapImage bitmapImage = new BitmapImage();
                bitmapImage.SetSource(e.ChosenPhoto);
                Image imgBase = new Image();
                imgBase.Source = bitmapImage;

                WriteableBitmap writeableBitmap = new WriteableBitmap(480, 600);

                ScaleTransform scale = new ScaleTransform();
                scale.ScaleX = 480.0 / bitmapImage.PixelHeight;
                scale.ScaleY = 640.0 / bitmapImage.PixelWidth;

                RotateTransform rotate = new RotateTransform();
                rotate.Angle = 90;
                //rotate.CenterX = 4.0 / 2;
                //rotate.CenterY = 640.0 / 2;

                TranslateTransform translate = new TranslateTransform();
                translate.X = 480;
                //translate.Y = -60;

                TransformGroup transGroup = new TransformGroup();
                transGroup.Children.Add(scale);
                transGroup.Children.Add(rotate);
                transGroup.Children.Add(translate);

                writeableBitmap.Render(imgBase, transGroup);//在位图中呈现元素
                writeableBitmap.Invalidate();
                bitmapSource = writeableBitmap;
            }
            else
            {
                bitmapSource = new BitmapImage();
                bitmapSource.SetSource(e.ChosenPhoto);
            }
            //   this.NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
            Dispatcher.BeginInvoke(() =>
            {
                NavigationService.Navigate(new Uri("/GamePage.xaml", UriKind.Relative));
            });
        }