het heeft iets te maken met height/100 ofzo ...
het script zoals ik het nu heb zal de afbeeldingen die een rechthoek zijn samenduwen
Link gekopieerd
Je wilt de verhoudingen gelijk houden?
Link gekopieerd
Daar ben ik ook naar op zoek, heeft iemand hier iets voor?
Link gekopieerd
<?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 ;)
Link gekopieerd
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);
Link gekopieerd
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
Link gekopieerd
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?
:-)))
Link gekopieerd
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...
Link gekopieerd
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");
?>
Link gekopieerd