images resizen
kenzo - 23/02/2008 09:28
|
PHP beginner |
|
Hallo,
Ik heb een upload systeem voor maximaal 6 foto's.
Er kan vanalles geupload worden.. (jpg, gif, png etc).
Nu wil ik graag dat alle foto's geresized worden.
Kan dat meteen na het uploaden, en hoe?
Ik kan wel alleen jpg ofzo resizen, maar gif kan dan weer niet.
Ook weet ik niet hoe ik ze alle maximaal 6 in een keer kan doen.
Het kan dus ook dat maar 1, 2, 3, 4, of 5 foto's zijn geupload.
Bedankt!
|
8 antwoorden
Gesponsorde links |
|
kenzo - 23/02/2008 10:06 (laatste wijziging 23/02/2008 10:16)
|
PHP beginner |
|
misschien,
even kijken
Bedankt alvast!
// edit
Ok, dat snap ik, maar het probleem is dat de 1e afbeelding jpg kan zijn, de 2e png, de 3e gif etc...
Ik had ongeveer zoiets.
Dit werkt niet, kan ook niet, maar ik weet niet hoe ik kan laten zoeken of het jpg is of gif etc... en die dan te laten resizen:
<?php
// File and new size
$filename = 'uploads/1.jpg';
$filename .= 'uploads/1.gif';
$filename .= 'uploads/1.png';
$percent = 0.5;
// Content type
header('Content-type: image/jpeg');
header.('Content-type: image/gif');
header.('Content-type: image/png');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
$source = imagecreatefromgif($filename);
$source = imagecreatefrompng($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
imagegif($thumb);
imagepng($thumb);
?>
<?php // File and new size $filename = 'uploads/1.jpg'; $filename .= 'uploads/1.gif'; $filename .= 'uploads/1.png'; $percent = 0.5; // Content type header('Content-type: image/jpeg'); header.('Content-type: image/gif'); header.('Content-type: image/png'); // Get new sizes $newwidth = $width * $percent; $newheight = $height * $percent; // Load $thumb = imagecreatetruecolor($newwidth, $newheight); $source = imagecreatefromjpeg($filename); $source = imagecreatefromgif($filename); $source = imagecreatefrompng($filename); // Resize imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); // Output imagejpeg($thumb); imagegif($thumb); imagepng($thumb); ?>
|
Koen - 23/02/2008 10:37 (laatste wijziging 23/02/2008 10:40)
|
PHP expert |
|
<?php
ob_start();
if(isset($_POST['submit']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['afbeeldingen']))
{
foreach($_POST['afbeeldingen'] as $k => $v)
{
if(!empty($v['name'])) {
if(Is_Uploaded_File($v['tmp_name']))
{
if(move_uploaded_file($v['tmp_name'],'uploads/'.$v['name'])) {
$sFile = 'uploads/'.$v['name'];
chmod($sFile, 0755);
$percent = 0.5;
list($width, $height) = getimagesize($sFile);
$newwidth = $width * $percent;
$newheight = $height * $percent;
$sExt = array_pop(explode('.', $v['name']));
$thumb = imagecreatetruecolor($newwidth, $newheight);
switch($sExt) {
case 'gif':
$source = imagecreatefromgif($sFile);
$error = false;
break;
case 'jpg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'jpeg':
$source = imagecreatefromjpeg($sFile);
$error = false;
break;
case 'png':
$source = imagecreatefrompng($sFile);
$error = false;
break;
default:
$error = true;
}
if(!$error) {
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
switch($sExt) {
case 'gif':
imagegif($sFile, 'uploads/thumbs/'.$v['name']);
break;
case 'jpg':
imagejpeg($sFile, 'uploads/thumbs/'.$v['name']);
break;
case 'jpeg':
imagejpeg($sFile, 'uploads/thumbs/'.$v['name']);
break;
case 'png':
imagepng($sFile, 'uploads/thumbs/'.$v['name']);
break;
}
chmod('uploads/thumbs/'.$v['name'], 0755);
echo '<img src="uploads/thumbs/'.$v['name'].'" alt="'.$v['name'].'" /><br />';
}
}
}
}
}
} else {
?>
<form action="<?=$_SERVER['REQUEST_URI'];?>" method="post" enctype="multipart/form-data">
<input type="file" name="afbeeldingen[]" /><br />
<input type="file" name="afbeeldingen[]" /><br />
<input type="file" name="afbeeldingen[]" /><br />
<input type="file" name="afbeeldingen[]" /><br />
<input type="file" name="afbeeldingen[]" /><br />
<input type="file" name="afbeeldingen[]" /><br />
<input type="submit" name="submit" value="Verstuur!" />
<?php
}
?>
<?php if(isset($_POST['submit']) && $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['afbeeldingen'])) { foreach($_POST['afbeeldingen'] as $k => $v) { { $sFile = 'uploads/'.$v['name']; $percent = 0.5; $newwidth = $width * $percent; $newheight = $height * $percent; $thumb = imagecreatetruecolor($newwidth, $newheight); switch($sExt) { case 'gif': $source = imagecreatefromgif($sFile); $error = false; break; case 'jpg': $source = imagecreatefromjpeg($sFile); $error = false; break; case 'jpeg': $source = imagecreatefromjpeg($sFile); $error = false; break; case 'png': $source = imagecreatefrompng($sFile); $error = false; break; default: $error = true; } if(!$error) { imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); switch($sExt) { case 'gif': imagegif($sFile, 'uploads/thumbs/'.$v['name']); break; case 'jpg': imagejpeg($sFile, 'uploads/thumbs/'.$v['name']); break; case 'jpeg': imagejpeg($sFile, 'uploads/thumbs/'.$v['name']); break; case 'png': imagepng($sFile, 'uploads/thumbs/'.$v['name']); break; } chmod('uploads/thumbs/'.$v['name'], 0755); echo '<img src="uploads/thumbs/'.$v['name'].'" alt="'.$v['name'].'" /><br />'; } } } } } } else { ?> <form action="<?=$_SERVER['REQUEST_URI'];?>" method="post" enctype="multipart/form-data"> <input type="file" name="afbeeldingen[]" /><br /> <input type="file" name="afbeeldingen[]" /><br /> <input type="file" name="afbeeldingen[]" /><br /> <input type="file" name="afbeeldingen[]" /><br /> <input type="file" name="afbeeldingen[]" /><br /> <input type="file" name="afbeeldingen[]" /><br /> <input type="submit" name="submit" value="Verstuur!" /> <?php } ?>
Dit is een begin, ik weet niet of het werkt, heb het niet getest, maar zo moet het er ongeveer uitzien
Je moet wel zelf eerst deze mappenstructuur aanmaken:
|
Koen - 23/02/2008 10:52
|
PHP expert |
|
verwijder dan de eerste foto's mbv PHP.net: unlink nadat je die verkleinde foto's hebt geupload? |
kenzo - 23/02/2008 13:56
|
PHP beginner |
|
Is er misschien een mogelijkheid dat ik in een keer alle afbeeldingen (jpg, gif, png etc) in een map een bepaalde breedte kan geven.
Natuurlijk moet de hoogte dan mee resizen dat hij wel de standaard afmetingen houd (verhoudingsgewijs)
Is dat mogelijk via php bijvoorbeeld
Zo kan ik gewoon iedere dag een bepaald script laten uitvoeren??? |
Gesponsorde links |
|
Dit onderwerp is gesloten. |
|