• WriteableBitmap实现对图片的放大缩小


    xaml:

    <ScrollViewer Name="ScrollViewerName" Background="Transparent" Width="480" Height="480" VerticalScrollBarVisibility="Auto"                         VerticalContentAlignment="Center" HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Center">
                        <Image Name="SelectImage" Stretch="None"/></ScrollViewer>

    cs:

       private void ChooserButton_Click(object sender, RoutedEventArgs e)
            {
                PhotoChooserTask task = new PhotoChooserTask();
                task.Completed += new EventHandler<PhotoResult>(task_Completed);
                task.Show();
            }

            private int OriginWidth;
            private int OriginHeight;
            private Image OriginImage;
            void task_Completed(object sender, PhotoResult e)
            {
                BitmapImage bitmap = new BitmapImage();
                bitmap.SetSource(e.ChosenPhoto);
                OriginImage = new Image();
                OriginImage.Source = bitmap;
                OriginWidth = bitmap.PixelWidth;
                OriginHeight = bitmap.PixelHeight;

                SelectImage.Source = bitmap;
                HeightTextbox.Text = bitmap.PixelHeight.ToString();
                WidthTextbox.Text = bitmap.PixelWidth.ToString();
            }

            private void ReSizeButton_Click(object sender, RoutedEventArgs e)
            {
                double scale_X = Convert.ToDouble(WidthTextbox.Text) / OriginWidth;
                //OriginWidth = Convert.ToInt32(WidthTextbox.Text);//保存本次图片的宽度的pix值
                double scale_Y = Convert.ToDouble(HeightTextbox.Text) / OriginHeight;
                //OriginHeight = Convert.ToInt32(HeightTextbox.Text);//保存本次图片的高度的pix值

                ScaleTransform Scale= SizeAdjust(scale_X, scale_Y);

                WriteableBitmap writebitmap = new WriteableBitmap(OriginImage, Scale);
                //riteableBitmap writebitmap = new WriteableBitmap(SelectImage, Scale);//根据保存上次的长宽值来进行伸缩图片
                writebitmap.Invalidate();
                SelectImage.Source = writebitmap;
            }

            private ScaleTransform SizeAdjust(double x,double y)
            {
                ScaleTransform scale=new ScaleTransform ();
                scale.CenterX=0;
                scale.CenterY=0;
                scale.ScaleX=x;
                scale.ScaleY=y;
                return scale;
            }

  • 相关阅读:
    软件工程 2016.6.28 日报
    软件工程课程总结
    工大助手--项目总结
    工大助手--加权平均分计算
    工大助手--数据查询
    7.5
    7月4日日报
    7.3日报
    6.30日报
    6.29.日报
  • 原文地址:https://www.cnblogs.com/mokey/p/2282273.html
Copyright © 2020-2023  润新知