2015-10-19 17 views
5

Nie jestem pewien, co dokładnie się dzieje, ale próbuję renderować płytki radaru nad mapą Map Google i otrzymuję następujące wiadomości:Little endian bitmaps & "Nie można utworzyć GMSGLImageTile ze względu na złe dane graficzne"

  • ((null)) był fałszywy: nie można utworzyć GMSGLImageTile powodu złych danych graficznych
  • ((null)) był fałszywy: nie obsługują little endian bitmap

Czy istnieje łatwy sposób przekonwertować UIImage na dużego endiana, czy jest coś, czego potrzebuję kn ow o użyciu/podklasy GMSSyncTileLayer?

Obrazy, które próbuję wyświetlić jako kafelki, to obrazy PNG.

Odpowiedz

1

Ten błąd wystąpi, jeśli obrazy PNG dla płytek nie są ustawione na 8-bitową głębię kolorów.

Zmiana głębi kolorów obrazów na 8-bitowe powinno rozwiązać problem.

1

Jeśli to tylko duży, mały problem endian, tak. Czy otrzymałeś mapę bitową od NSDate, czy można ją utworzyć? Jeśli tak, przekonwertuj go na tablicę bajtów, a następnie zamień bity.

* Zmieniano

Me i inne chłopaki dokonały kilka odpowiedzi tutaj: https://stackoverflow.com/a/33051250/1900120

+0

I próbowałem napisać metodę, która zamieniłaby te bity , ale obraz został naprawdę zniekształcony. Trzeba było naprawdę dużo czasu, aby dowiedzieć się, co się dzieje, więc wykorzystaliśmy inną implementację obsługującą obrazy 8-bitowe. Dziękujemy za pomoc! –

+0

Proszę bardzo, Brian. Jestem bardzo ciekawy twojej implementacji ~ Czy jest to struktura danych i algo, która jest specjalnie zaprojektowana do konwersji bitów podkładania? Proszę dać mi znać, jeśli nie masz nic przeciwko, ponieważ te informacje mogą pomóc tak wielu z nas w przyszłości. – MatthewLuiHK