Ich versuche, eine GIF-Datei in einem Windows Phone 8.1 (RT) Anwendung lokalen Ordner anzuzeigen. Bis jetzt habe ich mehrere Ansätze ausprobiert:Wie wird ein animiertes GIF in einer Windows Phone 8.1 (RT) -Anwendung angezeigt?
- Laden Sie die GIF in einem WebView-Steuerelement. Dies ist keine Lösung, da ich die Bilder in einem FlipView-Steuerelement anzeigen möchte (ich kann nicht zu einem anderen Bild wechseln). Außerdem ist es ziemlich langsam.
Rufen Sie die GIF-Frames mit der BitmapDecoder-Klasse ab und animieren Sie sie mithilfe eines Storyboards.
Der Code ist wie folgt:
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);
}
}
Das Problem ist, dass der Rahmen I aus dem GIF-Bild erhalten wird
verkorkstMache ich etwas falsch in dieser Ansatz? Was muss ich ändern, um gute Ergebnisse zu erzielen?
Ich möchte SharpDX nicht verwenden, da es sehr kompliziert zu sein scheint und ich ein Anfänger bin.
Imagetools ist nur für Silverlight
Die Leute benutzen heute noch animierte .gif? Ich hasse es sogar, vorzuschlagen, es zu behalten, aber du könntest einfach '' MediaElement Source = "YourAnimated.gif" /> '- Obwohl ich denke, wenn du es behalten willst, lass es mich wissen und ich werde das als Antwort, damit ich ein paar einfache Punkte einholen kann. :) –
Ich habe versucht, ein MediaElement zu der Seite hinzuzufügen und die gif-Datei als Quelle festzulegen. Nachdem ich "AreTransportControlsEnabled" auf "true" gesetzt habe, konnte der Fehler "Nicht unterstützter Videotyp oder ungültiger Dateipfad" angezeigt werden. Außerdem wurde der Pfad zur GIF-Datei korrekt festgelegt. – rhcpfan
Ich hätte schwören können, dass ich es vorher benutzt habe, vielleicht war es nicht WP? Ich werde später daran basteln, wenn ich Zeit habe. Das tut mir leid. –