2015-10-19 11 views
5

Ich bin mir nicht sicher, was genau passiert, aber ich versuche, Kacheln über eine Google Maps-Karte zu rendern und erhalte die folgenden Meldungen:Little Endian-Bitmaps & "GMSGLImageTile kann aufgrund schlechter Grafikdaten nicht erstellt werden"

  • ((null)) falsch war: Kann nicht GMSGLImageTile wegen schlechten Grafikdaten erstellen
  • ((null)) war falsch: nicht little-endian-Bitmaps

gibt es eine Unterstützung Sie Einfacher Weg, um eine UIImage zu einem Big Endian zu konvertieren oder gibt es etwas, was ich kn kn über die Verwendung/Unterklasse GMSSyncTileLayer?

Die Bilder, die ich als Kacheln rendern möchte, sind PNG-Bilder.

Antwort

1

Dieser Fehler tritt auf, wenn Ihre PNG-Bilder für Ihre Kacheln nicht auf eine Farbtiefe von 8 Bit eingestellt sind.

Wenn Sie die Farbtiefe Ihrer Bilder auf 8 Bit ändern, sollte das Problem behoben sein.

1

Wenn es nur das Big-Little-Endian-Problem ist, ja. Hast du die Bitmap von NSDate bekommen oder ist es möglich eine zu erstellen? Ist dies der Fall, wandeln Sie es in ein Byte-Array um und tauschen Sie die Bits aus.

* Herausgegeben

Ich und die anderen Jungs haben einige Antworten hier gemacht: https://stackoverflow.com/a/33051250/1900120

+0

I versuchte, eine Methode zu schreiben, die diese Bits vertauschte , aber das Bild wurde wirklich verstümmelt. Es hat lange gedauert, bis wir herausgefunden hatten, was vor sich ging, also verwendeten wir eine andere Implementierung, die 8-Bit-Bilder lieferte. Danke für Ihre Hilfe! –

+0

Gern geschehen, Brian. Ich bin so neugierig auf Ihre Implementierung ~ Ist es eine Datenstruktur und Algo, die speziell für die Konvertierung der Underlay Bits entwickelt? Bitte geben Sie mir einen Hinweis, wenn es Ihnen nichts ausmacht, da diese Informationen vielen von uns in Zukunft helfen können. – MatthewLuiHK