Beste mensen,

Ik ben begonnen met een website voor een band (eigenlijk mijn eigen band ;)) waarop ik link naar youtube video's. dit gebeurt doormiddel van een videoalbum, die allemaal thumbnails laat zien van de video's en op verzoek de video toont in een lightbox. De momentopnames van video's haal ik van de website van youtube af, die ze in een resolutie van 480x360 serveert. Ceze resize ik tot 126x125 pixels. nu gebeurt het dat er video's tevoorschijn komen die door welke reden dan ook een zwarte balk vertonen boven, onder of naast de momentopname. Omdat het later tot een thumbnail verkleint wordt blijft er weinig over van de momentopname zelf en zit ik met een thumbnail met zwarte randen opgescheept. Ik wil nu vóór het resizen de zwarte randen wegsnijden, de randloze afbeelding verkleinen en die weergeven.

In een kleine brainstorm had ik bedacht pixel voor pixel na te gaan of het een zwarte pixel is. Dit is nauwkeurig, maar niet exact. een paar problemen doen zich dan voor; De randen zijn nooit 100% zwart maar wijken (soms) een klein beetje af. bovendien moet ik 480 * 320 = 153600 berekeningen uitvoeren. lijkt me niet dat PHP dat snel kan afhandelen..

verder bedacht ik me dat ik met php een bepaalde kleur met marge om kan zetten naar transparant kleur. aan de hand daarvan kan ik bovenstaande methode uitvoeren maar dan kan ik anticiperen op een transparante kleur. met wat berekeningen kan ik uitrekenen wat ik weg kan snijden en dan alle transparantie omzetten naar een zwarte kleur.


Zijn er verder nog mensen met een visie op dit probleem? alle hulp is welkom!
Idee:

Midden pakken van de x as pakken en dan over de y as lopen van af links de pixel controleren of ze binnen een (zwart) kleur range liggen.

Zelfde doe je vanaf de rechter kant en voor de y as.

Daarna kun je de coordinaten berekenen vanaf waar je 'echte' tumbnail, en dan hebben we als laatst imagecopy nodig om je plaatje zonder border te krijgen.

Succes :-)
Volgens mij komen die zwarte randen door het resizen van je afbeelding/thumbnail. Youtube bestand is 480x360 (rechtboek) en je thumbnail is 126x125 (vierkant) dus als je de afbeelding dan mooi wilt schalen word het 480/126 = 3.80 % 360/3,80 = 95 pixels. Oftewel de afbeelding word geresized naar 480x95 alleen omdat je thumnail 125 pixels hoog is heb je aan de onder en boven kant nog zo'n 15 pixels zwart ruimte... Logisch toch? Je moet de verhoudingen van de thumbnail houden (volgens mij is die van youtube 16:9 ofzo).

Je moet de afbeelding dus gaan croppen, gedeeltes van de afbeelding afsnijden zodat de verhoudingen goed blijven. Volgens mij lost dan het probleem van je zwarte randen op.

Reageren