Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
<html>
<head>
<title>Image-Resizer</title>
</head>
<body>
<?php
if ( ! isset($_POST["submit"]))
{
?>
<div align='center'>
<center>
<form action='<?php echo $_SERVER["SCRIPT_NAME"]; ?>' method='POST'>
<table border='0' width='50%'>
<tr>
<td width='16%'></td>
<td width='84%'><font size='5'><b>Image-Resizer</b></font></td>
</tr>
<tr>
<td width='16%' height='20'> </td>
<td width='84%' height='20'> </td>
</tr>
<tr>
<td width='16%'>Quellverzeichnis:</td>
<td width='84%'><input type='text' name='source' size='30'></td>
</tr>
<tr>
<td width='16%'>Zielverzeichnis:</td>
<td width='84%'><input type='text' name='destination' size='30'></td>
</tr>
<tr>
<td width='16%'>Breite in Pixel:</td>
<td width='84%'><input type='text' name='width' size='4'></td>
</tr>
<tr>
<td width='16%'>Höhe in Pixel:</td>
<td width='84%'><input type='text' name='height' size='4'></td>
</tr>
<tr>
<td width='16%'>Qualität:</td>
<td width='84%'><input type='text' name='quality' size='4' value='100'></td>
</tr>
<tr>
<td width='16%'>Proportional:</td>
<td width='84%'><input type='checkbox' name='fixed' checked></td>
</tr>
<tr>
<td width='16%'></td>
<td width='84%'></td>
</tr>
<tr>
<td width='16%'></td>
<td width='84%'><input type='submit' name='submit' value='Abschicken'</td>
</tr>
</table>
</form>
</center>
</div>
<?php
}
else
{
// Bei Timeout-Problemen den Wert erhöhen
ini_set("max_execution_time", "3000");
$source = $_POST["source"];
$dest = $_POST["destination"];
$width = $_POST["width"];
$height = $_POST["height"];
$quality = $_POST["quality"];
if (isset($_POST["fixed"]))
$fixed = true;
else
$fixed = false;
if (! strlen ($source))
{
echo "Kein Quellverzeichnis";
exit;
}
if (! strlen ($dest))
{
echo "Kein Zielverzeichnis";
exit;
}
if (! strlen ($width) && ! strlen ($height))
{
echo "Keine Größen angegeben";
exit;
}
if ($fixed)
{
if (strlen ($width))
$height = 0;
else if (strlen ($height))
$widht = 0;
}
include_once("./functions.inc.php");
$data = getImagesFromPath($source);
if (! file_exists($dest))
{
if ( ! mkdir ($dest, "0777"))
{
echo "Verzeichnis $dest konnte nicht angelegt werden";
exit;
}
}
foreach($data as $name)
{
$in = $source . "/" . $name;
$out = $dest . "/" . $name;
$out = str_replace(" ", "_", $out);
$ret = resizeImage($in, $out, $width, $height, $quality);
if ($ret)
echo "Grafik $out erzeugt<br>\n";
else
echo "<font color='#FF0000'>Grafik $out konnte nicht erzeugt werden</font><br>\n";
}
}
?>
</body>
</html>
<?php
function getImagesFromPath($path)
{
$result = array();
$handle=opendir($path);
while ($file = readdir ($handle))
{
if ($file != "." && $file != "..")
{
if (! is_dir($file))
{
$tmp = strtolower($file);
$sub = substr($tmp, -4);
if ($sub == ".png" || $sub == ".jpg" || $sub == ".gif")
$result[] = $file;
}
}
}
return $result;
}
function resizeImage($file_name_src, $file_name_dest, $width = 0, $height = 0, $quality = 100)
{
if (file_exists($file_name_src) && isset($file_name_dest))
{
if ($width == 0 && $height == 0)
return false;
$file_name_dest = strtolower($file_name_dest);
$est_src = pathinfo(strtolower($file_name_src));
$est_dest = pathinfo(strtolower($file_name_dest));
$size = getimagesize($file_name_src);
if ($height && ! $width)
{
$h = number_format($height, 0, ',', '');
$w = number_format(($size[0]/$size[1])*$height,0,',','');
}
else if (! $height && $width)
{
$w = number_format($width, 0, ',', '');
$h = number_format(($size[1]/$size[0])*$width,0,',','');
}
else
{
$h = number_format($height, 0, ',', '');
$w = number_format($width, 0, ',', '');
}
if ($est_dest['extension'] == "gif" || $est_dest['extension'] == "jpg" || $est_dest['extension'] == "png")
{
$dest = imagecreatetruecolor($w, $h);
imageantialias($dest, TRUE);
}
else
{
return FALSE;
}
switch($size[2])
{
case 1: //GIF
$src = imagecreatefromgif($file_name_src);
break;
case 2: //JPEG
$src = imagecreatefromjpeg($file_name_src);
break;
case 3: //PNG
$src = imagecreatefrompng($file_name_src);
break;
default:
return FALSE;
break;
}
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
switch($size[2])
{
case 1:
imagegif($dest,$file_name_dest);
break;
case 2:
imagejpeg($dest,$file_name_dest, $quality);
break;
case 3:
imagepng($dest,$file_name_dest);
}
return TRUE;
}
return FALSE;
}