Как скопировать и изменить размер изображения в Windows 10 UWP
Я использовал код изhttp://www.codeproject.com/Tips/552141/Csharp-Image-resize-convert-and-save изменить размер изображения программно. Тем не менее, этот проект используетSystem.Drawing
библиотеки, которые недоступны для приложений Windows 10.
Я пытался использоватьBitmapImage
класс отWindows.UI.Xaml.Media.Imaging
вместо этого, но он, кажется, не предлагает функциональность, которая была найдена вSystem.Drawing
..
Кому-нибудь повезло с возможностью изменения размера (уменьшения) изображений в Windows 10? Мое приложение будет обрабатывать изображения из разных источников, в разных форматах / размерах, и я пытаюсь изменить размеры реальных изображений для экономии места, а не просто позволить приложению изменить его размер в соответствии сImage
в котором это отображается.
РЕДАКТИРОВАТЬ
Я изменил код из вышеупомянутой ссылки, и у меня есть взлом, который работает для моей конкретной необходимости. Вот:
public static BitmapImage ResizedImage(BitmapImage sourceImage, int maxWidth, int maxHeight)
{
var origHeight = sourceImage.PixelHeight;
var origWidth = sourceImage.PixelWidth;
var ratioX = maxWidth/(float) origWidth;
var ratioY = maxHeight/(float) origHeight;
var ratio = Math.Min(ratioX, ratioY);
var newHeight = (int) (origHeight * ratio);
var newWidth = (int) (origWidth * ratio);
sourceImage.DecodePixelWidth = newWidth;
sourceImage.DecodePixelHeight = newHeight;
return sourceImage;
}
Этот способ, кажется, работает, но в идеале, а не изменение оригиналаBitmapImage
Я хотел бы создать новый / копию этого, чтобы изменить и вернуть вместо этого.