Visa föregående ämne :: Visa nästa ämne |
Startad av: |
Meddelande |
Emerald
Medlem i: 5470 dagar
Status: Offline
#742704
|
Skrivet: 2020-01-13 16:20
Ämne: Detektera om bild är ljus eller mörk
|
|
|
Försöker att bestämma ifall en bild vid uppladdning är i huvudsak ljus eller mörk, i syfte att bestämma överlappande textfärg så att den får hög kontrast.
Jag har i mina försök hittills lyckats få fram den mest "dominerande färgen" i bilden genom att bestämma rgb-värdet i ett antal pixlar och göra om det till ett histogram.
Min tanke är att eftersom 0 i rgb-värdena motsvarar svart, och 255 vitt, så bör jag kunna använda detta för att bestämma ljusheten i bilden. Skulle jag exempelvis kunna göra så här?
1: if((($r + $g + $b) / 3) > (255 / 2)){
2: // ljus nyans
3: }
4: else {
5: // mörk nyans
6: }
|
Är min logik rimlig? Finns det något bättre sätt att åstadkomma det jag är ute efter? |
|
|
|
Till toppen på sidan |
|
harald_b


Medlem i: 5330 dagar Från: Tavesta
Status: Offline
#742705
|
Skrivet: 2020-01-13 21:41
Ämne:
|
|
|
Det kan vara lite knepigt att räkna ut vilken färg på texten som kommer fungera. I vissa fall kommer varken svart eller vitt fungera, t.ex om bilden innehåller både svarta och vita ytor där texten skall vara.
Ett sätt att komma runt det är att lägga kontur eller skuggning på texten, ifall du har möjlighet till det. |
|
|
_________________ R.r - Ett fritt affärssystem |
Till toppen på sidan |
|
Emerald
Medlem i: 5470 dagar
Status: Offline
#742706
|
Skrivet: 2020-01-13 21:52
Ämne:
|
|
|
I mitt fall är det, förutom texten, även aktuellt att bestämma färgen på "black bars", vars storlek är beroende av hur bilden skalar. Även här skulle det vara bra med en hög kontrast, dvs ljus bakgrund om bilden är mörk och vice versa.
Kontur/skuggning/kantlinjer är ett alternativ. Men för bäst resultat vore det bra om jag kunde komma på en fungerande lösning så som tänkt. Kanske är det vettigt att läsa av färger längsmed kanterna, säg 10 pixlar för varje sida av bilden, eller något i den stilen? |
|
|
|
Till toppen på sidan |
|
|