Мне удалось изменить размер изображения в приложении UWP, и когда я открываю изображение, оно имеет правильный размер, но проблема в том, что метаданные изображения все еще показывают исходное значение размера изображения.
Должны ли метаданные изображения быть изменены в какой-то момент?
Большое спасибо за вашу помощь!
Вот код, который я использую:
private async Task ResizeFile(StorageFile resizedFile, StorageFile sourceFile, int width, int height)
{
var imageStream = await sourceFile.OpenReadAsync();
var decoder = await BitmapDecoder.CreateAsync(imageStream);
// get original picture size
int originalWidth = (int)decoder.PixelWidth;
int originalHeight = (int)decoder.PixelHeight;
// calculate aspect ratio
var ratioX = (float)width / (float)originalWidth;
var ratioY = (float)height / (float)originalHeight;
int newWidth = width;
int newHeight = height;
var ratio = Math.Min(ratioX, ratioY);
if (ratio != 0)
{
newHeight = (int)(originalHeight * ratio);
newWidth = (int)(originalWidth * ratio);
}
using (var resizedStream = await resizedFile.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateForTranscodingAsync(resizedStream, decoder);
encoder.BitmapTransform.InterpolationMode = BitmapInterpolationMode.Linear;
encoder.BitmapTransform.ScaledHeight = (uint)newHeight;
encoder.BitmapTransform.ScaledWidth = (uint)newWidth;
await encoder.FlushAsync();
}
}