• 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.
  • 相关阅读:
    Redis 7.0 新功能新特性总览
    adb实现钉钉自动打卡 MKY
    vue2+webpack 转 vite
    zsh: command not found:nvm 的解决方案
    SSH keys 生成
    sass(dart sass)和nodesass 的区别以及 /deep/、::vdeep的支持
    nvm(node的版本管理)简介以及nvm管理node的命令介绍
    处理 code.matchAll(...) is not a function 问题
    package.json 里面的~、^
    处理 vite 里面 __require() 方法报错
  • 原文地址:https://www.cnblogs.com/wgscd/p/14450812.html
Copyright © 2020-2023  润新知