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

windows-8 – 如何在Windows 8 metro应用程序中将缩略图保存到设

发布时间:2020-12-14 02:05:16 所属栏目:Windows 来源:网络整理
导读:我正在创建缩略图并使用此代码在框架中显示 平台 – 使用c#的windows 8 metro应用程序 http://code.msdn.microsoft.com/windowsapps/File-and-folder-thumbnail-1d530e5d 在使用c#的windows 8 metro应用程序中.我需要保存或存储(在设备中)我在运行时创建的缩
我正在创建缩略图并使用此代码在框架中显示

平台 – >使用c#的windows 8 metro应用程序

http://code.msdn.microsoft.com/windowsapps/File-and-folder-thumbnail-1d530e5d

在使用c#的windows 8 metro应用程序中.我需要保存或存储(在设备中)我在运行时创建的缩略图.在constants.cs类文件的DisplayResult()中,我需要在设备中保存该图像如何实现这一点.请给我一些想法或示例我是移动设备的新手,从未参与过图像和缩略图部分.提前致谢 .

解决方法

试试这个.以下代码将在TempFolder中保存所选音频文件的专辑封面

private async void btnPickFile_Click(object sender,RoutedEventArgs e)
{
    string[] Music = new string[] { ".mp3",".wma",".m4a",".aac" };
    FileOpenPicker openPicker = new FileOpenPicker();
    foreach (string extension in Music)
    {
        openPicker.FileTypeFilter.Add(extension);
    }

    StorageFile file = await openPicker.PickSingleFileAsync();
    if (file != null)
    {
        await SaveThumbnail("MySongThumb.png",file);
    }
}

private async Task SaveThumbnail(string ThumbnailName,StorageFile file)
{
    if (file != null)
    {
        using (StorageItemThumbnail thumbnail = await file.GetThumbnailAsync(ThumbnailMode.MusicView,100))
        {
            if (thumbnail != null && thumbnail.Type == ThumbnailType.Image)
            {
                var destinationFile = await ApplicationData.Current.TemporaryFolder.CreateFileAsync(ThumbnailName,CreationCollisionOption.GenerateUniqueName);
                Windows.Storage.Streams.Buffer MyBuffer = new Windows.Storage.Streams.Buffer(Convert.ToUInt32(thumbnail.Size));
                IBuffer iBuf = await thumbnail.ReadAsync(MyBuffer,MyBuffer.Capacity,InputStreamOptions.None);
                using (var strm = await destinationFile.OpenAsync(FileAccessMode.ReadWrite))
                {
                    await strm.WriteAsync(iBuf);
                }
            }
        }
    }
}

更新1

private async Task<StorageFile> SaveThumbnail(StorageItemThumbnail objThumbnail)
{
    if (objThumbnail != null && objThumbnail.Type == ThumbnailType.Image)
    {
        var picker = new FileSavePicker();
        picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
        picker.FileTypeChoices.Add("JPEG Image",new string[] { ".jpg" });
        picker.FileTypeChoices.Add("PNG Image",new string[] { ".png" });
        StorageFile destinationFile = await picker.PickSaveFileAsync();

        if (destinationFile != null)
        {
            Windows.Storage.Streams.Buffer MyBuffer = new Windows.Storage.Streams.Buffer(Convert.ToUInt32(objThumbnail.Size));
            IBuffer iBuf = await objThumbnail.ReadAsync(MyBuffer,InputStreamOptions.None);
            using (var strm = await destinationFile.OpenAsync(FileAccessMode.ReadWrite))
            {
                await strm.WriteAsync(iBuf);
            }
        }

        return destinationFile;
    }
    else
    {
        return null;
    }
}

(编辑:李大同)

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

    推荐文章
      热点阅读