加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在Windows应用商店应用中编辑和保存照片?

发布时间:2020-12-15 21:45:01 所属栏目:百科 来源:网络整理
导读:我制作了一些编辑照片的应用程序并将其保存在其他位置.所以我找到一个 question,它显示了如何在Windows应用商店应用中调整照片大小.然后我在我的程序中实现它: private async void ResizeButton_Click(object sender,RoutedEventArgs e){ uint width,height
我制作了一些编辑照片的应用程序并将其保存在其他位置.所以我找到一个 question,它显示了如何在Windows应用商店应用中调整照片大小.然后我在我的程序中实现它:

private async void ResizeButton_Click(object sender,RoutedEventArgs e)
{
    uint width,height;
    if (uint.TryParse(WidthTextBox.Text,out width) && uint.TryParse(HeightTextBox.Text,out height) 
        && _folderWithPhoto != null && _targetFolder != null)
        //_folderWithPhoto and _targetFolder are StorageFolder values get from FolderPicker
    {
        var files = await _folderWithPhoto.GetFilesAsync();
        foreach (StorageFile item in files)
        {
            if (item.ContentType.Contains("image"))
            {
                StorageFile targetFile = await item.CopyAsync(_targetFolder,item.Name,NameCollisionOption.GenerateUniqueName);

                var fileStream = await targetFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
                BitmapDecoder decoder = await BitmapDecoder.CreateAsync(fileStream);

                InMemoryRandomAccessStream ras = new InMemoryRandomAccessStream();
                BitmapEncoder enc = await BitmapEncoder.CreateForTranscodingAsync(ras,decoder);

                enc.BitmapTransform.ScaledHeight = height;
                enc.BitmapTransform.ScaledWidth = width;

                await enc.FlushAsync();
            }
        }
    }
}

问题

此代码的结果与_targetFolder目录中保存的照片相同.所以我不知道如何解决它.

任何帮助,将不胜感激.

解决方法

Mateusz在你的foreach循环工作中会有类似的东西我不确定

ras.Seek(0);
fileStream.Seek(0);
fileStream.Size = 0;
await RandomAccessStream.CopyAsync(ras,fileStream);

fileStream.Dispose();
ras.Dispose();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读