首页 > 解决方案 > BitmapEncoder.CreateForTranscoding 损坏 png 图像

问题描述

我正在尝试使用 BitmapEncoder 将元数据写入 png 文件。

stream = co_await storageFile.OpenAsync(WS::FileAccessMode::ReadWrite);
decoder = co_await Windows::Graphics::Imaging::BitmapDecoder::CreateAsync(stream);
encoder = co_await Windows::Graphics::Imaging::BitmapEncoder::CreateForTranscoding(stream, decoder);

auto propertySet = winrt::Windows::Graphics::Imaging::BitmapPropertySet();
auto ratingValue = winrt::box_value(L"10");
auto value = winrt::Windows::Graphics::Imaging::BitmapTypedValue(ratingValue, winrt::Windows::Foundation::PropertyType::String);
propertySet.Insert(L"/tEXt/{str=Rating}", value);

co_await encoder.BitmapProperties().SetPropertiesAsync(propertySet);
co_await encoder.FlushAsync();

之前的图片: 在此处输入图像描述

之后的图像: 在此处输入图像描述

标签: uwppngc++-winrtwicwinrt-xaml-toolkit

解决方案


推荐阅读