Heeft er iemand een resize script, waarbij je de procenten in kan voeren / berekenen i.p.v de pixels?
Bedankt alvast!
Lars
Heeft er iemand een resize script, waarbij je de procenten in kan voeren / berekenen i.p.v de pixels?
Bedankt alvast!
Lars
Ik denk dat je wel iets kunt met de volgende PHP functie:
<?php
if($_GET['image'] && $_GET['width'])
{ // het is niet handig om de grootte mee te geven maar voor test doeleinden wel
//Waar komt het bestand vandaan?
$bronvanhetbestand = "upload/". $_GET['image'];
//De hoogte en breedte ophalen van het plaatje
$dimensions = getimagesize($bronvanhetbestand);
//Dit is de breedte die alle plaatjes krijgen
$doelbreedte = $_GET['width'];
//Hoogte en breedte toekennnen aan nieuwe variabelen
$bronbreedte = $dimensions[0];
$bronhoogte = $dimensions[1];
//De nieuwe hoogte berekenen aan de gegevens van het oude plaatje en de doel breedte
$doelhoogte = ($bronhoogte * $doelbreedte) / $bronbreedte;
//De hoogte, als het nodig is, afronden
$doelhoogte = round($doelhoogte, 0);
//Zeggen dat dit bestand een plaatje is
header('content-type: image/jpeg');
//Het plaatje inlezen in de variabele $image
$image = imagecreatefromjpeg($bronvanhetbestand);
//een nieuw klein plaatje maken met de gewenste grootte
$destination = imagecreatetruecolor($doelbreedte, $doelhoogte);
//Het nieuwe plaatje vullen met verkleinde plaatje
imagecopyresampled($destination, $image, 0, 0, 0, 0, $doelbreedte, $doelhoogte, $bronbreedte, $bronhoogte);
//Het plaatje weergeven
imagejpeg($destination);
//Het bronplaatje verwijderen
imagedestroy($image);
//Het doelplaatje verwijderen
imagedestroy($destination);
}
else
{
echo "Er is geen plaatje meegegeven";
}
?>
Toon Meer
pekelterror, is die wel met procenten en niet met pixels?
En hoe sla je de afbeelding weer op?
Nieuwe reactie samengevoegd met originele reactie op 05.12.09 10:11:15:
Ik heb nu dit:
<?php
error_reporting(E_ALL);
if(isset($_POST['name']) && isset($_POST['percent']) && isset($_POST['resize'])){
// File and new size
$map = 'lars/';
$ext = '.jpg';
$name = $_POST['name'];
$pattern = '/.jpg/';
$replacement = '';
preg_replace($pattern, $replacement, $name);
$filename = $map.$name.$ext;
$percent = $_POST['percent'];
// Content type
header('Content-type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
// Save
$fileget = $name;
$rand = rand(0,9999);
imagejpeg($thumb, $map.$fileget.$rand.$ext);
echo '
Het is gelukt!, het bestand is weer in je map gezet!.<br />';
echo 'De afbeelding is hieronder geresized weer gegeven:<br />
<img src="'; echo $map; echo '/'; echo $fileget.$rand.$ext; echo '"><br />';
echo 'De link is:<br /><a href="'; echo $map; echo '/'; echo $fileget.$rand.$ext; echo '">Hier</a>';
} else{
echo 'Welkom bij het resizen van een JPEG afbeelding.<br />';
echo 'Als u niks van die graden en pixels afweet, hier kan het met procenten.<br />';
echo 'Kies uw afbeelding, door het rondje aan te kruisen, en vul daarachter het aantal procent in wat er af of bij moet.<br />';
echo 'LET OP!, 1 procent is de grootte nu. Alles hoger dan 1% word de afbeelding groter, anders kleiner. Dus 0.5 is de helft kleiner, en 2 is dubbel zo groot!<br />';
$slash = '/';
$map = 'lars/';
$dir = $map;
?>
<form method="post">
<?php
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
?><a href="<?php echo $map.$file;?>"><?php echo $file; ?></a> <input type="radio" name="name" value="<?php echo $file; ?>"><br /><?php
}
closedir($dh);
}
}
?>
<br />Welke procent?<br />
<input type="text" name="percent" value="0.5" size="5"><br />
<input type="submit" name="resize">
</form>
<?php
}
?>
Toon Meer
Maar, ik krijg enkel m'n sitelink in beeld, en dan nog de script url erachter... (als plaatje)
Sorry heb dit verder nog nooit gebruikt maar had dit nog liggen (had keer gedownload).
Het werkt weer, heb nu dit:
<?php
error_reporting(E_ALL);
if(isset($_POST['name']) && isset($_POST['percent']) && isset($_POST['resize'])){
// File and new size
$map = 'lars/';
$ext = '.jpg';
$name = $_POST['name'];
$pattern = '/.jpg/';
$replacement = '';
$name = preg_replace($pattern, $replacement, $name);
$filename = $map.$name.$ext;
$percent = $_POST['percent'];
// Content type
header('Content-type: image/jpeg');
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Save
$fileget = $name;
$rand = rand(0,9999);
imagejpeg($thumb, $map.$fileget.$rand.$ext);
$img = imagejpeg($thumb);
echo $img;
echo '
Het is gelukt!, het bestand is weer in je map gezet!.<br />';
echo 'De afbeelding is hieronder geresized weer gegeven:<br />
<img src="'; echo $map; echo '/'; echo $fileget.$rand.$ext; echo '"><br />';
echo 'De link is:<br /><a href="'; echo $map; echo '/'; echo $fileget.$rand.$ext; echo '">Hier</a>';
} else{
echo 'Welkom bij het resizen van een JPEG afbeelding.<br />';
echo 'Als u niks van die graden en pixels afweet, hier kan het met procenten.<br />';
echo 'Kies uw afbeelding, door het rondje aan te kruisen, en vul daarachter het aantal procent in wat er af of bij moet.<br />';
echo 'LET OP!, 1 procent is de grootte nu. Alles hoger dan 1% word de afbeelding groter, anders kleiner. Dus 0.5 is de helft kleiner, en 2 is dubbel zo groot!<br />';
$slash = '/';
$map = 'lars/';
$dir = $map;
?>
<form method="post">
<?php
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
?><a href="<?php echo $map.$file;?>"><?php echo $file; ?></a> <input type="radio" name="name" value="<?php echo $file; ?>"><br /><?php
}
closedir($dh);
}
}
?>
<br />Welke procent?<br />
<input type="text" name="percent" value="0.5" size="5"><br />
<input type="submit" name="resize">
</form>
<?php
}
?>
Toon Meer
Maar, de tekst die weergegeven zou moeten worden, word niet weergegeven, enkel de afbeelding. Hoe kan ik die tekst wel weergeven:
Vanaf "het is gelukt!" enzo?
(er komt dus enkel die afbeelding, de tekst staat er wel, krijg geen errors, maar ook niet die tekst).
Ik heb al geprobeerd om de tekst voor imagecreatefromjpeg(); te zetten, maar dan word de afbeelding niet weergegeven.
Hier staat ie online:
http://image.pretpark-online.nl/resize.php
Bedankt!
Lars
Ok, het werkt nu :p
Dankje!
Heb je nog geen account? Registreer je nu en word deel van onze community!