BitmapDecoder与BitmapEncoder

BitmapDecoder decoder = await BitmapDecoder.CreateAsync(randomAccessStream);
            BitmapTransform transform = new BitmapTransform()
            {
                ScaledWidth = 200,
                ScaledHeight = 200
            };
            var pixelData = await decoder.GetPixelDataAsync(
                decoder.BitmapPixelFormat,
                decoder.BitmapAlphaMode,
                transform,
                ExifOrientationMode.RespectExifOrientation,
                ColorManagementMode.ColorManageToSRgb);
            byte[] pixelDataByte = pixelData.DetachPixelData();
            InMemoryRandomAccessStream resizedStream = new InMemoryRandomAccessStream();
            IOutputStream outputStream = resizedStream.GetOutputStreamAt(0);
            DataWriter dataWriter = new DataWriter(outputStream);
            dataWriter.WriteBytes(pixelDataByte);
            await dataWriter.StoreAsync();
            await outputStream.FlushAsync();
       InMemoryRandomAccessStream newStream = new InMemoryRandomAccessStream();
BitmapEncoder encoder
= await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, newStream); encoder.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Ignore, 200, 200, 96d, 96d, pixelDataByte); await encoder.FlushAsync(); var image = new BitmapImage(); image.SetSource(resizedStream); this.img.Source = image;

 

posted @ 2012-05-23 16:33  无尽空虚  阅读(1761)  评论(0)    收藏  举报