Ik heb een div die 350x350px is waarin ik een image wil laten zien.
De images die ik heb hebben allen andere formaten en verhoudingen.
Nu wil ik dat de grootste waarde (lengte of breedte) max 350px wordt en dat de verhoudingen van de image gelijk blijven. Ik gebruik php pagina's.
Wie kan me op weg helpen?
- Image resizen, verhoudingen aanhouden
-
09-05-2010, 19:32 #1
- Berichten
- 98
- Lid sinds
- 15 Jaar
Image resizen, verhoudingen aanhouden
-
09-05-2010, 19:36 #2
- Berichten
- 491
- Lid sinds
- 17 Jaar
even door photoshop halen?
-
09-05-2010, 19:41 #3
- Berichten
- 98
- Lid sinds
- 15 Jaar
Helaas is dat een onmogelijke klus. Het gaat om productimages voor een webwinkel die middels een cms worden geuploaded. Ik wil/kan/mag de gebruiker hier niet mee lastig vallen.
Het kan namelijk gaan om duizenden afbeeldingen. Ik heb geen idee wat de eigenschappen van de afbeeldingen zijn omdat dit niet door mij wordt beheerd en uitgevoerd.
De afbeeldingen zijn de ene keer staand, andere keer liggend. De ene keer 2560x1600 en een andere keer weer 800x600. Alles hier tussenin is mogelijk.
Het script hoeft de uploads niet te resizen, daarin ben ik voorzien. Het gaat enkel om het juist weergeven en behouden van de juiste verhoudingen in de HTML.
-
09-05-2010, 19:53 #4
- Berichten
- 751
- Lid sinds
- 15 Jaar
Misschien heb je hier iets aan:
http://www.bitrepository.com/resize-...hp-and-gd.html
-
09-05-2010, 21:46 #5
- Berichten
- 2.971
- Lid sinds
- 18 Jaar
Kijk eens of overflow:hidden interessant voor je is
-
09-05-2010, 22:05 #6
- Berichten
- 199
- Lid sinds
- 16 Jaar
Je kan gebruik maken van een crop functie bij het uploaden (jQuery).
Of eventueel schalen naar een breedte van 350px en een min hoogte van 350 px en gebruik maken van overflow:hidden zoals Vincent al aangaf.
-
10-05-2010, 09:50 #7
- Berichten
- 98
- Lid sinds
- 15 Jaar
Ik ben er uit. Ik heb een simpele functie geschreven.
Ik zal hem in zijn geheel posten zodat een ander hem misschien kan gebruiken.
functie
PHP Code:<?phpclass image
{
public function resize($image_location, $max_width, $max_height) // Geef locatie, maximale breedte en hoogte op voor het nieuwe bestand.
{
list($width, $height, $type, $attr) = getimagesize($image_location); // Haal de attributen op van de image
$divider_height = $height/$max_height; // Bereken verhouding voor hoogte
$new_width = $width/$divider_height; // Bereken nieuwe breedte
$new_height = $height/$divider_height; // Bereken nieuwe hoogte
if($new_width >= $max_width) // Controleer of na het bepalen van de nieuwe hoogte de breedte groter is dan maximum
{
$divider_width = $width/$max_width; // Bereken verhouding voor breedte
$new_height = $height/$divider_width; // Bereken nieuwe hoogte
$new_width = $width/$divider_width; // Bereken nieuwe breedte
}
$returnvars = array($image_location, $new_width, $new_height); // Bepaal locatie, nieuwe breedte en hoogte
return $returnvars;
}
}
?>
PHP Code:<?php
include 'functions_images.php';
$function_images = new image();
?>
<html>
<head>
</head>
<body>
<?php
$image_location = "images/1.jpg";
$height = "200";
$width = "200";
list($image_location, $new_width, $new_height) = $function_images->resize($image_location, $width, $height);
echo "<img src='".$image_location."' width='".$new_width."' height='".$new_height."' />";
?>
</body>
</html>
-
10-05-2010, 09:55 #8
- Berichten
- 330
- Lid sinds
- 18 Jaar
Eén kanttekening: Waarom gebruik je een class als je maar 1 publieke functie in die class hebt staan? Dan is het totaal overbodig om een class te gebruiken en volstaat één functie.
-
10-05-2010, 09:58 #9
- Berichten
- 98
- Lid sinds
- 15 Jaar
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic