login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Avatar resizen in verhouding

Offline Real - 12/02/2007 18:18 (laatste wijziging 13/02/2007 20:29)
Avatar van RealHTML interesse Hallo,

Ik heb een ledensysteem gemaakt waarbij een avatar geupload kan worden, alleen heb ik daar een probleempje waar ik niet uit kom.

De avatars worden automatisch verkleint in een kader van 100x140.

Als ik nu een foto upload van 500x1000 pixels dan word hij netjes verkleind naar 70x140. Pak ik een foto die 1325x1658 is dan verkleint hij hem niet in dat kader van 100x140 want dan worden de afmetingen 112x140

Afmetingen die ik genoemd heb zijn breedte x hoogte.

Dit is het script wat ik gemaakt heb.

  1. <?php
  2. $dimensions = getimagesize($foto); //Gegevens ophalen van image
  3. $bronbreedte = $dimensions[0]; // breedte van oude plaatje
  4. $bronhoogte = $dimensions[1]; // hoogte van oude plaatje
  5. $maxbreedte = 100; // maximale breedte van nieuwe plaatje
  6. $maxhoogte = 140; // maximale hoogte van nieuwe plaatje
  7.  
  8. if($bronbreedte <= $maxbreedte && $bronhoogte <= $maxhoogte)
  9. {
  10. $doelhoogte = $bronhoogte;
  11. $doelbreedte = $bronbreedte;
  12. }
  13. else
  14. {
  15. if($bronbreedte > $bronhoogte) // Als de breete groter is dan de hoogte
  16. {
  17. //nieuwe hoogte uitrekenen
  18. $doelhoogte = ($bronhoogte * $maxbreedte) / $bronbreedte;
  19. $doelhoogte = round($doelhoogte, 0);
  20. $doelbreedte = $maxbreedte;
  21. }
  22. if($bronbreedte < $bronhoogte) // Als de hoogte groter is dan de breete
  23. {
  24. //nieuwe breete uitrekenen
  25. $doelbreedte = ($bronbreedte * $maxhoogte) / $bronhoogte;
  26. $doelbreedte = round($doelbreedte, 0);
  27. $doelhoogte = $maxhoogte;
  28. }
  29. if($bronbreedte = $bronhoogte) // Als de hoogte gelijk is aan breete
  30. {
  31. //nieuwe breete uitrekenen
  32. $doelbreedte = $maxbreedte;
  33. $doelhoogte = $maxbreedte;
  34. }
  35. }
  36. ?>

7 antwoorden

Gesponsorde links
Offline Stijn - 12/02/2007 18:19 (laatste wijziging 12/02/2007 22:55)
Avatar van Stijn PHP expert
  1. $doelhoogte == $bronhoogte;
  2. $doelbreedte == $bronbreedte;

==> moet zijn

  1. $doelhoogte = $bronhoogte;
  2. $doelbreedte = $bronbreedte;
Offline JBke - 13/02/2007 00:41 (laatste wijziging 13/02/2007 00:43)
Avatar van JBke PHP gevorderde enkel de waardes vergelijken van je bronnen tov je doel op gelijkheid! gebruik dus = ipv == is een groot verschil.

Maar staat hierboven al. 
Offline Real - 13/02/2007 14:50
Avatar van Real HTML interesse Ja dat weet ik was ik vergeten te verranderen. maar zoals jullie weten lost dit het probleem niet op.
Offline ikkedikke - 13/02/2007 19:05 (laatste wijziging 13/02/2007 19:05)
Avatar van ikkedikke PHP expert maak van
elseif (){}

if() {
}
Offline Real - 13/02/2007 20:29 (laatste wijziging 13/02/2007 20:31)
Avatar van Real HTML interesse Heb het in de startpost aangepast en werkt niet

Zou je het anders uit kunnen leggen snap niet helemaal wat je bedoeld
Offline Thomas - 14/02/2007 12:07
Avatar van Thomas Moderator Als je nu eerst de breedte resized, en daarna kijkt of je de hoogte nog moet resizen (of andersom)?

Het kan namelijk best zo zijn dat je eerste de breedte resized naar de max-breedte, maar dat de hoogte (na resizen) nog steeds groter is dan de max-hoogte. Je dient in dat geval 2x te resizen.

Dit maakt e.e.a. een stuk makkelijker. Het eindresultaat is dan altijd een situatie waarin de breedte ten hoogste de max-breedte is, en de hoogte ten hoogste de max-hoogte.
Offline Real - 14/02/2007 14:16
Avatar van Real HTML interesse Ok ik ga proberen ty
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.187s