2017-02-16 1 views
1

Wenn Sie den folgenden Code in einer PCL verwenden, erhalte ich eine ArgumentNullException für Parametername codec.SkiaSharp und Xamarin.Forms - Decodierung von PNG nicht möglich

using (var stream = new SKFileStream("image.png")) 
using (var bitmap = SKBitmap.Decode(stream)) { 
    ... 
} 

Die Ausnahme wird in SKBitmap.Decode geworfen. Ich kann überprüfen, dass das Bild eine gültige PNG-Datei ist und dass die Länge des Streams größer als 0 ist.

Muss ich Codecs separat oder etwas installieren? Ich sehe in den Proben nichts davon.

+0

Können Sie die vollständige Ausnahme teilen? Und wenn möglich, die PNG? Und, funktionieren andere PNGs? – Matthew

+1

SkiaSharp enthält alle Codecs, also wird nichts extra benötigt. – Matthew

+0

@Matthew - Danke für Ihre Eingabe, Sie haben mich in die richtige Richtung gezeigt. Siehe meine Antwort unten. Du bist im SkiaSharp-Team, richtig? Vielleicht könnte Unterstützung für pngcrush'd Bilder in der Zukunft hinzugefügt werden? –

Antwort

1

Durch Deaktivieren der PNG-Optimierung (PNGcrush) unter iOS Build-Einstellungen konnte ich das Problem beheben.

+0

Leider ist dies die Antwort von Google: "Es handelt sich um ein proprietäres png-Format, das nur von iOS unterstützt wird. Wir haben keine Pläne, dies zu unterstützen" https://groups.google.com/forum/#!searchin/skia-discuss/ png $ 20ios% 7Csort: Relevanz/skia-diskutieren/nbRQI7pfqbw/go5v1nF6CwAJ – Matthew

+1

Bummer. Danke nochmal für deine Hilfe. –

Verwandte Themen