<?php
/***********************************************************************************/
/* */
/* K O N F I G U R A T I O N */
/* */
/***********************************************************************************/
$dir = "./mod_photos/"; // ["./x/y"] // definiert den Stammordner --> ACHTUNG: include() beachten!!!
$small_dir = "small"; // ["x"] // definiert den Unterordner, in dem die kleinen Bilder erstellt werden
$resize_size = "620"; // ["x" in px] // definiert die max Breite & Höhe des Stammbildes
$resize_quality = "80"; // [in %] // definiert die Qualität des Stammbildes
$new_size = "120"; // ["x" in px] // definiert die max Breite & Höhe des neuen Bildes
$new_quality = "50"; // [in %] // definiert die Qualität des neuen Bildes
$show = 1; // [0 | 1] // definiert, ob dem User die Ergebnisse angezeigt werden sollen
$handle=@opendir($dir); // angegebener Ordner wird geöffnet
while($img_dir=@readdir($handle)) // geht den Inhalt des Ordners durch (Dateien UND Ordner)
if(is_dir($dir.$img_dir) && $img_dir!="." && $img_dir!="..") // prüft, ob das Element ein Ordner ist (also keine Datei und nicht "." / "..")
img_config($dir.$img_dir."/", $new_size, $new_quality, $resize_size, $resize_quality, $small_dir);
// ruft Funktion img_config() auf
if(count($ok_array) > 0 && $show==1) {
for($i=0; $i<count($ok_array); $i++)
echo $ok_array[$i]." gemacht
";
echo "
[b]alles gemacht[/b]";
}
/***********************************************************************************/
/* */
/* M A R C S C H M I D */
/* 2 4 . 1 1 . 2 0 0 5 */
/* V 1 . 1 . 3 */
/* */
/* S C R I P T Z U M V E R Ä N D E R N D E R D A T E I G R Ö S S E D E R */
/* B I L D E R I M S T A M M O R D N E R & S C R I P T Z U M */
/* E R S T E L L E N V E R K L E I N E R T E R V E R S I O N E N A L L E R */
/* B I L D E R I M U N T E R O R D N E R " S M A L L " */
/* */
/* E S W I R D M I T I M G _ C O N F I G ( P A R A M E T E R 1 , 2 , ) ; */
/* A U F G E R U F E N */
/* */
/***********************************************************************************/
function img_config($dir, $new_size, $new_quality, $resize_size, $resize_quality, $small_dir) {
global $ok_array;
$handle=@opendir($dir); // angegebener Ordner wird geöffnet
if(!is_dir($dir.$small_dir)) // prüft, ob Unterordner $small_dir nicht existiert
@mkdir($dir.$small_dir, 755); // erstellt Unterordner $small_dir
while($img=@readdir($handle)) { // geht den Inhalt des Ordners durch (Dateien UND Ordner)
if(is_file($dir.$img)) { // prüft, ob das Element eine Datei ist (also kein Ordner)
if(strtoupper(substr($img,-4))==".JPG" ||
strtoupper(substr($img,-5))==".JPEG") { // prüft, ob die Datei die Endung .jpg oder .JPG hat
$img_size = getimagesize($dir.$img);
if($img_size[0] > $resize_size || $img_size[1] > $resize_size)
// prüft, ob das Bild grösser als die Vorgabe ist
img_resize($dir, $resize_size, $resize_quality, $img, $small_dir, 0);
// ruft Funktion img_new_resize() auf
// "0" bestimmt, dass das Bild in Stammordner geschrieben wird
if(!is_file($dir.$small_dir."/".$img)) // prüft, ob das kleine Bild im Unterordner $small_dir nicht existiert
img_resize($dir, $new_size, $new_quality, $img, $small_dir, 1);
// ruft Funktion img_new_resize() auf
// "1" bestimmt, dass das Bild in Unterordner $small_dir geschrieben wird
}
}
}
}
/***********************************************************************************/
/* */
/* F U N K T I O N " I M G _ R E S I Z E " */
/* */
/***********************************************************************************/
function img_resize($dir, $new_size, $quality, $img, $small_dir, $OI) { // die eigentliche Kopier- und Grössenveränderungsfunktion
global $ok_array;
$file = $dir.$img;
$src_img = imagecreatefromjpeg($file); // lädt Abbdild des Stammbildes in den Speicher
$img_size = getimagesize($file); // speichert die Grösse des Stammbildes
$new_width = $new_size;
$new_height = $new_size;
if($img_size[0]>=$img_size[1]) // prüft, ob die Breite >= die Höhe des Stammbildes ist
$new_height = $img_size[1]/$img_size[0]*$new_width; // setzt die Höhe für das kleine Bild im Verhältnis zur Breite, die in $new_size gesetzt wurde
else
$new_width = $img_size[0]/$img_size[1]*$new_height; // das Umgekehrte (Höhe <-> Breite) des Codes von 2 Zeilen weiter oben
$new_img = imagecreatetruecolor($new_width,$new_height); // erstellt Abbild einer neuen Datei im Speicher
imagecopyresampled($new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $img_size[0], $img_size[1]);
// kopiert das Bild zur gewünschten Grösse in $new_img
if($OI==1) {
if(is_file($dir.$small_dir."/".$img))
chmod($dir.$small_dir."/".$img, 0755);
imagejpeg($new_img, $dir.$small_dir."/".$img, $quality);// speichert das grössenveränderte Bild im Ordner $small_dir
$ok_array[] = $dir.$small_dir."/".$img;
} else {
if(is_file($dir.$img))
chmod($dir.$img, 0755);
imagejpeg($new_img, $dir.$img, $quality); // speichert das grössenveränderte Bild im Stammordner
$ok_array[] = $dir.$img;
}
}
/***********************************************************************************/
/* */
/* E N D E */
/* */
/***********************************************************************************/
?>