2016-08-02 14 views
2

Ich verwende eine API, die Bilder basierend auf ihrer Farbe zurückgibt. Ich sende einen hexadezimalen Wert, d. H. FF0000 und es gibt Bilder mit dieser roten Farbe zurück.Angrenzende Farben in swift

Die API ist jedoch eher zu spezifisch. Für die obige Farbe zum Beispiel würde ich alle roten Sachen zurückgeben wollen, nicht nur diese spezielle Farbe.

Zum Glück erlaubt die API eine Vereinigung von Farben FF0000u0000FF ist rein rot und blau.

Also, was ich tun, um eine Reihe von Farben zu erzeugen, die die Hauptfarbe umgeben, so dass ich es an die API übergeben kann,

Wie würde ich dies tun in Swift?

+1

Ich bin mir nicht sicher, ob ich die Frage vollständig verstehe, aber ich habe ähnliche Dinge getan, indem ich RGB in HSB transformiert habe und dann in der H-Dimension gesucht habe. – Grimxn

Antwort

0

Es sind weit über 16 Millionen Farben in diesem Farbraum verfügbar, daher glaube ich nicht, dass das Erstellen eines Arrays praktisch ist, da es leicht Hunderttausende von Rots geben kann, die zu diesem Array hinzugefügt werden. Ein besserer Ansatz bestünde darin, die api anzupassen, um einen Bereich von Werten jedes einzelnen Kanals zu vergleichen, statt rot mit FF0000 gleichzusetzen, würde man sagen, dass "rot" jede Farbe ist, bei der der rote Kanal größer als 88 (HEX) ist andere Kanäle sind beispielsweise kleiner als 66 (HEX). Es ist eine komplexe Aufgabe, die Sie versuchen zu erreichen, so dass es keine triviale Aufgabe sein wird, es zu lösen. Wenn Sie Code oder einen Link für die API freigeben, kann Ihnen jemand möglicherweise spezifischere Hilfe anbieten.