Tôi đang cố gắng hiển thị tệp ảnh GIF được lưu trữ trong Windows Phone 8.1 (RT) thư mục cục bộ của ứng dụng. Cho đến bây giờ, tôi đã thử một số cách tiếp cận:Cách hiển thị GIF động trong ứng dụng Windows Phone 8.1 (RT)?
- Tải GIF trong điều khiển WebView. Đây không phải là giải pháp vì tôi muốn hiển thị hình ảnh trong điều khiển FlipView (tôi không thể lật sang hình ảnh khác). Ngoài ra, nó là khá chậm.
Lấy khung hình GIF bằng cách sử dụng lớp BitmapDecoder và tạo ảnh động bằng cách sử dụng bảng phân cảnh.
Mã này là như sau:
using (var stream = await storageFile.OpenReadAsync())
{
//I don't specify the type since I would like to load other type of images also
//It doesn't make any difference if I would use "BitmapDecoder.GifDecoderId"
var decoder = await BitmapDecoder.CreateAsync(stream);
uint frameCount = decoder.FrameCount;
for (uint frameIndex = 0; frameIndex < frameCount; frameIndex++)
{
var frame = await decoder.GetFrameAsync(frameIndex);
var writableBitmap = new WriteableBitmap((int)decoder.OrientedPixelWidth,
(int)decoder.OrientedPixelHeight);
var pixelDataProvider = await frame.GetPixelDataAsync
(BitmapPixelFormat.Bgra8,
decoder.BitmapAlphaMode, new BitmapTransform(),
ExifOrientationMode.IgnoreExifOrientation,
ColorManagementMode.DoNotColorManage);
var pixelData = pixelDataProvider.DetachPixelData();
using (var pixelStream = writableBitmap.PixelBuffer.AsStream())
{
pixelStream.Write(pixelData, 0, pixelData.Length);
}
_bitmapFrames.Add(writableBitmap);
}
}
Vấn đề là rằng khung tôi nhận được từ các hình ảnh GIF được sai lầm
Tôi có làm điều gì sai trong cách tiếp cận này? Tôi nên sửa đổi điều gì để có được kết quả tốt?
Tôi không muốn sử dụng SharpDX vì nó có vẻ rất phức tạp và tôi là người mới bắt đầu.
ImageTools chỉ có sẵn cho Silverlight
Mọi người vẫn sử dụng hoạt ảnh .gif những ngày này? Tôi ghét thậm chí phải đề xuất giữ nó, nhưng bạn chỉ có thể làm ' ' - Mặc dù tôi đoán nếu bạn sẽ giữ nó, hãy cho tôi biết và tôi sẽ đặt nó như trả lời để tôi có thể ghi lại một số điểm dễ dàng. :) –
Tôi đã thử thêm MediaElement vào trang và đặt tệp gif làm nguồn của nó. Sau khi tôi đã đặt 'AreTransportControlsEnabled' thành true, tôi có thể thấy lỗi nói 'Loại video không được hỗ trợ hoặc đường dẫn tệp không hợp lệ'. Ngoài ra, đường dẫn đến tệp GIF đã được đặt chính xác. – rhcpfan
Có thể đã thề tôi đã sử dụng nó trước đây, có lẽ không phải là WP mặc dù? Tôi sẽ tinker với nó sau này nếu tôi có thời gian. Xin lỗi vì điều đó. –