Tôi đã sử dụng mã từ http://www.codeproject.com/Tips/552141/Csharp-Image-resize-convert-and-save để đổi kích thước hình ảnh theo lập trình. Tuy nhiên, dự án đó sử dụng thư viện System.Drawing
, không có sẵn cho các ứng dụng Windows 10.Cách Sao chép và Đổi kích thước Hình ảnh trong Windows 10 UWP
Tôi đã thử bằng cách sử dụng lớp BitmapImage
từ Windows.UI.Xaml.Media.Imaging
thay vào đó, nhưng nó dường như không cung cấp các chức năng đã được tìm thấy trong System.Drawing
..
Có ai có bất kỳ may mắn là có thể thay đổi kích thước (quy mô xuống) hình ảnh trong Windows 10? Ứng dụng của tôi sẽ xử lý hình ảnh từ nhiều nguồn, ở các định dạng/kích thước khác nhau và tôi đang cố gắng thay đổi kích thước hình ảnh thực tế để tiết kiệm dung lượng, thay vì chỉ cho phép ứng dụng kích thước phù hợp với Image
mà nó đang được hiển thị.
EDIT
tôi đã sửa đổi mã từ liên kết nêu trên, và có một hack mà làm việc cho nhu cầu cụ thể của tôi. Ở đây là:
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;
}
Bằng cách này dường như làm việc, nhưng lý tưởng hơn là thay đổi bản gốc BitmapImage
, tôi muốn tạo ra một mới/bản sao của nó để sửa đổi và trở lại để thay thế.
Dưới đây là một ảnh chụp của nó trong hành động:
Tiêu đề gây hiểu lầm, OP. Bạn có một cách để thay đổi kích thước hình ảnh, những gì bạn thực sự muốn làm là tạo một bản sao của hình ảnh gốc, thay đổi kích thước bản sao, sau đó trả lại bản sao. –
@BrianDriscoll Tôi đã đăng câu hỏi trước khi chỉnh sửa. Bản chỉnh sửa đã thêm mã để thay đổi kích thước hình ảnh gốc. Tôi đã đăng nó như một câu trả lời, nhưng nó vẫn chưa đủ dài. Nhưng tôi thích tựa đề mới. Cảm ơn. –
Bạn có thể tạo một hằng số của hình ảnh không? Hoặc một tài sản riêng tư, bạn chỉ có thể tham khảo bản gốc của hình ảnh và sử dụng chức năng tương tự? – aguertin