zoukankan      html  css  js  c++  java
  • uwp 图片剪切

      public async void BitmapTransformAndSaveTest()
            {
                var uncroppedfile = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("uncropped.jpg");
                if (uncroppedfile == null)
                {
                    return;
                }
    
                WriteableBitmap wb = null;
    
                // create a stream from the file and decode the image
                var fileStream = await uncroppedfile.OpenAsync(Windows.Storage.FileAccessMode.Read);
                var decoder = await BitmapDecoder.CreateAsync(fileStream);
    
                // create a new stream and encoder for the new image
                using (InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream())
                {
                    var enc = await BitmapEncoder.CreateForTranscodingAsync(ras, decoder);
    
                    // convert the entire bitmap to a 100px by 100px bitmap
                    enc.BitmapTransform.ScaledHeight = 100;
                    enc.BitmapTransform.ScaledWidth = 100;
    
                    var bounds = new BitmapBounds();
                    bounds.Height = 50;
                    bounds.Width = 50;
                    bounds.X = 50;
                    bounds.Y = 50;
                    enc.BitmapTransform.Bounds = bounds;
    
                    // write out to the stream
                    await enc.FlushAsync();
    
                    // create a writeable bitmap from the stream
                    ras.Seek(0);
                    wb = new WriteableBitmap(100, 100);
                    wb.SetSource(ras);
                }
    
                // save the cropped file now
                var croppedfile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("cropped.jpg", Windows.Storage.CreationCollisionOption.ReplaceExisting);
                using (var stream = await croppedfile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite))
                {
                    var pixelStream = wb.PixelBuffer.AsStream();
                    var bytes = new byte[pixelStream.Length];
                    pixelStream.Seek(0, SeekOrigin.Begin);
                    await pixelStream.ReadAsync(bytes, 0, (int)pixelStream.Length);
                    await pixelStream.FlushAsync();
    
                    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream);
                    encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)wb.PixelWidth, (uint)wb.PixelHeight, 0, 0, bytes);
                    await encoder.FlushAsync();
                    await stream.FlushAsync();
                }
            }
    

      

    fffffffffffffffff
    test red font.
  • 相关阅读:
    pc 端支付宝支付流程
    crontab
    Java集合之HashSet
    Java内存与垃圾收集知识总结
    Volley设计思想和流程分析
    java内部类
    HandlerThread源码分析
    IntentService源码分析
    Android消息机制:Looper,MessageQueue,Message与handler
    LeetCode340 Longest Substring with At Most K Distinct Characters
  • 原文地址:https://www.cnblogs.com/wgscd/p/14450812.html
Copyright © 2011-2022 走看看