ik wil images laten tonen op een maximale grootte van 100 x 100. ik heb nu dit:
<?
$exists = getimagesize($tabel[$i][$j][img]);
if($exists){
if(!isset($tabel[$i][$j][img_url])){ $tabel[$i][$j][img_url] = "#";}
list($width, $height, $type, $attr) = $exists;
echo "<a href=\"".$tabel[$i][$j][img_url]."\" onClick=\"javascript:img('".$tabel[$i][$j][img]."','bekijk','".$width."','".$height."','center','front');\">";
if($width > "100" OR $height > "100"){
if($width > "100"){$width = "100"; }
if($height > "100"){$height = "100"; }
$size = "width=\"".$width."\" height=\"".$height."\""; }
else{$size = $attr; } ?>
<img src="<? echo $tabel[$i][$j][img];?>" align="right" <? echo $size;?> hspace="5" border="0">
<? echo "</a>"; } ?>

dit kan je normaal ook met wiskundige berekeningen ofzo, maar ik vind niet hoe
het heeft iets te maken met height/100 ofzo ...

het script zoals ik het nu heb zal de afbeeldingen die een rechthoek zijn samenduwen
Je wilt de verhoudingen gelijk houden?
ja idd dat zocht ik
Daar ben ik ook naar op zoek, heeft iemand hier iets voor?
<?php
# Originele grootte lezen
$grootte = getimagesize('jeafbeelding.jpg');
# Resizen, vaste breedte van 100, de hoogte kan dus verschillen...
if ($grootte[0] > 100) { # Enkel resizen als de img al breder is dan 100
$breed = 100;
$deler = $grootte[0] / $breed;
$hoog = $grootte[1] / $deler;
} else {
$breed = $size[0];
$hoog = $size[1];
}
?>

Op deze manier zullen ze geresized worden naar 100 breed... Mits wat verder uit te breiden, kan je ook checken dat de hoogte binnen de 100 blijft...

Dit scriptje heb ik net getypt, dus fouten voorbehouden ;)
Ik heb hier een upload-resize script dat ik een tijdje geleden voor mezelf gemaakt heb. Eén dingetje: werkt alleen met JPG omdat ik van tevoren wist dat ik alleen met JPG's zou werken.

<?php
function upload_resize ($dir, $small_width = 64) {
global $id;
$upload_dir = $_SERVER['DOCUMENT_ROOT'] . $dir;

if (is_uploaded_file ($_FILES['userfile']['tmp_name'])) {
$tmp_name = $_FILES['userfile']['name'];
$tmp_name = get_schrijver_fullname ($id);
$tmp_name = eregi_replace ('[^a-z]', '', $tmp_name); // alle niet-alfabetische karakters eruit
$tmp_name = strtolower ($tmp_name);
$tmp_name .= '.jpg';
move_uploaded_file ($_FILES['userfile']['tmp_name'], $upload_dir . $tmp_name);
chmod ($upload_dir . $tmp_name, 0644);

$img = $upload_dir . $tmp_name;
$dimensions = getimagesize ($img);
$width = $dimensions[0];
$height = $dimensions[1];

$ratio_small = $small_width / $width;
$small_height = intval ($ratio_small * $height);

// small
$src = imagecreatefromjpeg ($img);
$dst_small = imagecreatetruecolor ($small_width, $small_height);
imagecopyresampled ($dst_small, $src, 0, 0, 0, 0, $small_width, $small_height, $width, $height);
$name_small = str_replace ('.jpg', '_small.jpg', $img);
imagejpeg ($dst_small, $name_small, 85);
imagedestroy ($dst_small);

$name_small = basename ($name_small);

imagedestroy ($src);
unlink ($img);

return $name_small;
}
}
?>

edit:
zo aanroepen: upload_resize ('jouwfolder', 100);
het image bestaat al, het moet enkel geresized worden weergegeven.

@rafael: het zou moeten max 100 hoog EN max 100 breed zijn met juiste verhoudingen
Hipska schreef op 31.12.2005 11:33
het image bestaat al, het moet enkel geresized worden weergegeven.


Hahaha, dat kun je ook uit mijn script halen. Of ben je een PHP baby die met een lepeltje gevoerd moet worden?
:-)))
Dan denk ik dat je makkelijker af gaat zijn, als je gewoon tijdens de upload afdwingt dat de gebruiker zijn plaatje binnen deze marges moet vallen...
Hier de mijne. Max breedte van 100 en max hoogte van 100.

<?php

function thumbnail($file, $name, $max=100)
{
$info = getimagesize($file);

if ($info['mime'] == "image/gif" || $info['mime'] == "image/jpeg")
{
if ($info[0] > $info[1])
{
$factor = $max / $info[0];
$height = round($info[1] * $factor);
$width = $max;
}

else
{
$factor = $max / $info[1];
$height = $max;
$width = round($info[0] * $factor);
}

$truecolor = imagecreatetruecolor($width,$height);

if ($info['mime'] == "image/gif")
$im = imagecreatefromgif($file);
elseif ($info['mime'] == "image/jpeg")
$im = imagecreatefromjpeg($file);
else return false;

imagecopyresampled($truecolor,$im,0,0,0,0,$width,$height,$info[0],$info[1]);
imagejpeg($truecolor, $name);

imagedestroy($truecolor);
imagedestroy($im);
return true;
}
else
{
return false;
}
}

?>

Bijvoorbeeld:

<?php

thumbnail($_FILES['tmp_name']['file'], "/upload/image.gif");
?>

Reageren