首页 > 代码库 > wp8 入门到精通 ImageCompress 图片压缩

wp8 入门到精通 ImageCompress 图片压缩

//实例化选择器        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 图片压缩