码迷,mamicode.com
首页 > 其他好文 > 详细

wp8 入门到精通 ImageCompress 图片压缩

时间:2014-10-29 23:50:25      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   os   ar   for   sp   文件   

//实例化选择器
        PhotoChooserTask photoChooserTask = new PhotoChooserTask();
        BitmapImage bimg;
        int newPixelWidth;
        int newPixelHeight;    

//构造函数里

            //从页面读取输入值作为目标分辨率     
            newPixelHeight = int.Parse(textBox2.Text.ToString());
                       //从页面读取输入值作为目标分辨率     
            newPixelHeight = int.Parse(textBox2.Text.ToString());
            newPixelWidth = int.Parse(textBox1.Text.ToString());
           
            textBox1.TextChanged += new TextChangedEventHandler(textBox1_TextChanged);
            textBox2.TextChanged += new TextChangedEventHandler(textBox2_TextChanged);
        

        void textBox2_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (textBox2.Text != "" && int.Parse(textBox2.Text.ToString()) != 0)
            {
                newPixelHeight = int.Parse(textBox2.Text.ToString());
            }
        }

        void textBox1_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (textBox1.Text != "" && int.Parse(textBox1.Text.ToString()) != 0)
            {
                 newPixelWidth = int.Parse(textBox1.Text.ToString());
            }
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            //为JPEG文件创建一个流
            StreamResourceInfo sri = null;

            //将Tulips.jpg的Build Action设为Content
            Uri jpegUri = new Uri("Images/Tulips.jpg", UriKind.Relative);
            sri = Application.GetResourceStream(jpegUri);

            //将该流解码
            WriteableBitmap bitmap = PictureDecoder.DecodeJpeg(sri.Stream);
            img.Source = bitmap;
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            String tempjpg = "tempimg";

            //创建虚拟存储
            var myStore = IsolatedStorageFile.GetUserStoreForApplication();
            if (myStore.FileExists(tempjpg))
            {
                myStore.DeleteFile(tempjpg);
            }

            IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempjpg);
            StreamResourceInfo sri = null;
            sri = Application.GetResourceStream(new Uri("Images/Tulips.jpg", UriKind.Relative));

            //创建WriteableBitmap对象,
            BitmapImage bitmap = new BitmapImage();
            bitmap.CreateOptions = BitmapCreateOptions.None;
            bitmap.SetSource(sri.Stream);
            WriteableBitmap wb = new WriteableBitmap(bitmap);

            //WriteableBitmap对象编码,设置目标分辨率
            wb.SaveJpeg(myFileStream, newPixelWidth, newPixelHeight, 0, 85);
            myFileStream.Close();

            myFileStream = myStore.OpenFile(tempjpg, FileMode.Open, FileAccess.Read);

            //保存图片到图片库
            MediaLibrary library = new MediaLibrary();
            Picture pic = library.SavePicture("SavedPicture.jpg", myFileStream);

            myFileStream.Close();
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            //打开图片库
            photoChooserTask.Show();
            photoChooserTask.Completed += new EventHandler<PhotoResult>(photoChooserTask_Completed);

        }

        void photoChooserTask_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK)
            {
                bimg = new BitmapImage();
                bimg.SetSource(e.ChosenPhoto);
                //设置Image控件的数据源
                img.Source = bimg;
            }
        }

UI

    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <Image x:Name="img" Height="300"  VerticalAlignment="Top" />
            <Button Content="加载图片" Height="82" HorizontalAlignment="Left" Margin="150,0,0,219" Name="button1" VerticalAlignment="Bottom" Width="160" Click="button1_Click" />          
            <Button Content="保存图片" Height="72" HorizontalAlignment="Left" Margin="150,376,0,0" Name="button2" VerticalAlignment="Top" Width="160" Click="button2_Click" />
            <Button Content="查看图片" Height="72" HorizontalAlignment="Left" Margin="150,438,0,0" Name="button3" VerticalAlignment="Top" Width="160" Click="button3_Click" />
            <TextBox Height="72" HorizontalAlignment="Left" Margin="150,535,0,0" Name="textBox1" Text="20" VerticalAlignment="Top" Width="114" />
            <TextBox Height="72" HorizontalAlignment="Left" Margin="251,535,0,0" Name="textBox2" Text="20" VerticalAlignment="Top" Width="116" />
            <TextBlock Height="46" HorizontalAlignment="Left" Margin="-12,555,0,0" Name="textBlock1" Text="设置目标分辨率" VerticalAlignment="Top" Width="156" />
        </Grid>
    </Grid>

 

wp8 入门到精通 ImageCompress 图片压缩

标签:style   blog   io   color   os   ar   for   sp   文件   

原文地址:http://www.cnblogs.com/luquanmingren/p/4060721.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!