GDlib thumbnail problem

Tags:    php

Hej, Jeg har lavet et script, der skal uploade et billede og derefter lave et thumbnail af billedet.
Men det virker ikke helt som det skal, billedet bliver uploadet som det skal, men thumbnailet kommer til at se underligt ud.
I kan se hvad jeg mener her:
det originale billede
den resizede version af billedet
som i kan se er der en underligt sort boks under billedet..

Her er lidt kode:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 25.01.2008 14:01 af Bruger #12926
5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
At formindske et billede, som er det du gør, er faktisk ikke en så simpel ting. Det kan gøres på flere måder.

Det du har gjort (nu har jeg ikke rigtig set på koden, men på billedet), det er at du har formindsket det til en bestemt størrelse samtidig med at du bibeholder den såkaldte "aspect ratio" som er forholdet mellem bredden og højden.

For at slippe for den sorte boks skal du være ligeglad med om det nye billede har samme bredde/højde-forhold, og blot blot lave billedet til den størrelse du ønsker. Resultatet er dog så at billeder ser helt forvrænget ud, men du kan ikke få det på begge måder.

Eller det vil sige, at det kan du næsten: Du kan nemlig udregne en passende thumbnail størrelse ud fra dets aspect ratio - så får du et lille billede uden en sort boks og med samme bredde/højde forhold som det originale billede. Men så vil alle billederne have en forskellig thumbnail-størrelse.

Jeg kender ikke PHP ejer heller GDlib, men kig nærmere på nogle af de funktioner du kalder og find ud af hvordan du håndterer aspect ratio.



Indlæg senest redigeret d. 25.01.2008 15:18 af Bruger #4522
Ok, jeg har prøvet det du siger med at lave et bestemt størrelsesforhold, men den sorte firkant er der stadig :S.



Du skal lave det uden af bibeholde den originale aspect ratio.



Ja, det var også det jeg gjorde, men nu virker det! af en eller anden grund.. så tak for svarene ;)



Kan faktisk se du har lavet en fejl; du skal bytte højde og bredde så det kommer til at ligne: list($width, $height);



t