zoukankan      html  css  js  c++  java
  • Win10 for Phone 裁剪保存

    //StorageFolder savedPics = ApplicationData.Current.LocalFolder;
    //BitmapImage bi = new BitmapImage();

    //RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
    //await renderTargetBitmap.RenderAsync(GridImage);

    //IBuffer buffer = await renderTargetBitmap.GetPixelsAsync();
    //StorageFile newfile = await savedPics.CreateFileAsync("snap.jpg", CreationCollisionOption.ReplaceExisting);
    //using (var writeStream = await newfile.OpenAsync(FileAccessMode.ReadWrite))
    //{
    // BitmapEncoder jpgencode = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, writeStream);
    // byte[] data = buffer.ToArray();

    // Rect temp = MeasureUtil.GetBounds(GridImage, LayoutRoot);

    // jpgencode.BitmapTransform.Bounds = new BitmapBounds
    // {
    // X = (uint)Math.Round((measureRect.X - temp.X), 0),
    // Y = (uint)Math.Round((measureRect.Y - temp.Y), 0),
    // Width = (uint)Math.Round(measureRect.Width, 0),
    // Height = (uint)Math.Round(measureRect.Height, 0)
    // };

    // jpgencode.SetPixelData(
    // BitmapPixelFormat.Bgra8,
    // BitmapAlphaMode.Straight,
    // (uint)renderTargetBitmap.PixelWidth,
    // (uint)renderTargetBitmap.PixelHeight,
    // 96d, 96d, data);


    // bi.SetSource(writeStream);

    // // 如果需要设置图片的固定宽、高,可以使用 WriteableBitmap 对象
    // //WriteableBitmap wb = new WriteableBitmap(480, 480);
    // //wb.SetSource(WriteStream);
    // //imgResult.Source = wb;

    // await jpgencode.FlushAsync();
    //}

    RenderTargetBitmap render = new RenderTargetBitmap();
    await render.RenderAsync(CroppedImage);

    IBuffer pixelBuffer = await render.GetPixelsAsync();

    StorageFolder fold = ApplicationData.Current.LocalFolder;
    StorageFile file = await fold.CreateFileAsync("save.jpg", CreationCollisionOption.ReplaceExisting);

    using (var randstream = await file.OpenAsync(FileAccessMode.ReadWrite))
    {
    var logicalDpi = DisplayInformation.GetForCurrentView().LogicalDpi;
    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, randstream);
    encoder.SetPixelData(
    BitmapPixelFormat.Bgra8,
    BitmapAlphaMode.Ignore,
    (uint)render.PixelWidth,
    (uint)render.PixelHeight,
    logicalDpi,
    logicalDpi,
    pixelBuffer.ToArray());

    await encoder.FlushAsync();

    }

  • 相关阅读:
    nodejs+express+mysql实现restful风格的增删改查示例
    使百度统计排除自己
    node.js和JavaScript的关系
    完善chrome翻译插件ChaZD,支持有道智云api
    面向对象编程 —— java实现函数求导
    我的第一篇博客 —— 博客内容简介
    微信公众号支付
    Shiro的原理及Web搭建
    AOP 切面编程------JoinPoint ---- log日志
    quartz 不同时间间隔调度任务
  • 原文地址:https://www.cnblogs.com/luquanmingren/p/4545352.html
Copyright © 2011-2022 走看看