Frage

I GD habe vorher benutzt, aber immer nur zum Ändern der Größe / Bilder on the fly zu erzeugen -. Obwohl ich ziemlich sicher bin es, die Fähigkeiten zu tun hat, was mich nach

So einfach wie möglich, ich brauche ein Bild zu überprüfen, um herauszufinden, ob es einen hellen Hintergrund hat oder einen dunklen Hintergrund. D. h wenn der Hintergrund überwiegend ‚Licht‘ ist, ich bin mit einem Wert von 1 zurückgegeben, und wenn es überwiegend ‚dunkel‘ ist es wieder ‚0‘.

Es gibt nur gehen 5 Bilder in diesem Prozess zu einer Zeit wiederholt durch sein, aber ich bin sehr concious hier die Bearbeitungszeit -. Die Seite oft genannt werden wird

Kann mich jemand in der richtigen Richtung, wo mit diesem gehen?

War es hilfreich?

Lösung

Zuerst sehen, ob es irgendwelche Muster sind Sie nutzen können - zum Beispiel, ist oben links oder rechts oben (zum Beispiel) immer von der Hintergrundfarbe sein würden? Wenn ja, schauen Sie in der Farbe dieses Pixels.

Vielleicht können Sie eine „gut genug“ Idee erhalten, indem auf einige der wichtigsten Punkte suchen und Mitteln sie.

etwas Failing einfach so, die Arbeit, die Sie brauchen, beginnt zu tun um Größenordnungen zu steigen.

Eine nette Idee, die ich hatte wäre das Band des Pixels nehmen gegenüber der oberen linken Ecke geht diagonal zur unteren rechten Ecke (vielleicht einen Blick auf Bresenham-Algorithmus ). Geben Sie für Läufe von dunklen und hellen Farbe und wahrscheinlich die längste Lauf nehmen; Wenn das nicht funktioniert, sollten Sie vielleicht „Score“ läuft auf, wie hell und dunkel sie sind.

Wenn Ihr Bild ist unnötig groß (etwa 1000x1000 oder mehr), dann imagecopyresized verwenden, um es billig vernünftig etwas verringern (etwa 80x80).

Etwas, das, wenn die meisten des Bildes arbeitet Hintergrund-Farbe ist, ist das Bild auf 1 Pixel sampeln und die Farbe dieses Pixels überprüfen (oder vielleicht etwas klein, 4x4 oder so, nach dem Sie Pixel zählen zu sehen, ob das Bild ist überwiegend hell oder dunkel).

Beachten Sie, dass imagecopyresampled als imagecopyresized wesentlich teurer ist, da ‚die Größe verändern nur einzelne Pixel vom ursprünglichen nimmt während‘ resampled tatsächlich die Pixel zusammen mischt.

Wenn Sie ein gewisses Maß an „Leichtigkeit“ wollen Sie einfach könnten die R-, G- und B-Werte zusammen fügen. Oder Sie für die Formel für Luma in YCbCr :

Y' = 0.299 * R + 0.587 * G + 0.114 * B

Dies ergibt ein "menschlicher-centric" Maß der Leichtigkeit.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top