Hi!
Jo, brauche mal Hilfe ^^
also, ich habe mir nen Galleriescript, basierend auf mysql gebastelt...da ich nicht möchte das in der preview, wo die bilder kurz vorgeführt werden, damit man die, die interessant aussehen anklicken kann, in voller größe geladen werden, versuche ich die via php zu verkleinern...
das problem ist nur...wenn ich den skript ausführe, dann läd sich apache kaputt (teste es ja vorher auf meinem pc hier)...ich bin auch nicht gerade ein php-anfänger, aber habe noch nicht viel mit den image-functionen zu tun gehabt Oo
naja, ich poste mal meinen code, hoffe hier kann mir jemand helfen, und mir sagen warum sich apache dadurch totlädt ^^
und die exportierte sql-tabelle habe ich auch mal dazugeschrieben für das evtl. bessere verständniss
sorry, hab den code richtig umgebrochen
Jo, brauche mal Hilfe ^^
also, ich habe mir nen Galleriescript, basierend auf mysql gebastelt...da ich nicht möchte das in der preview, wo die bilder kurz vorgeführt werden, damit man die, die interessant aussehen anklicken kann, in voller größe geladen werden, versuche ich die via php zu verkleinern...
das problem ist nur...wenn ich den skript ausführe, dann läd sich apache kaputt (teste es ja vorher auf meinem pc hier)...ich bin auch nicht gerade ein php-anfänger, aber habe noch nicht viel mit den image-functionen zu tun gehabt Oo
naja, ich poste mal meinen code, hoffe hier kann mir jemand helfen, und mir sagen warum sich apache dadurch totlädt ^^
und die exportierte sql-tabelle habe ich auch mal dazugeschrieben für das evtl. bessere verständniss
PHP-Code:
<?php
/*
--
-- Tabellenstruktur für Tabelle `gallerie`
--
CREATE TABLE `gallerie` (
`id` int(10) NOT NULL auto_increment,
`pic_title` varchar(255) NOT NULL default '',
`pic_desc` varchar(255) NOT NULL default '',
`file_name` varchar(255) NOT NULL default '',
`hits` varchar(20) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
--
-- Daten für Tabelle `gallerie`
--
INSERT INTO `gallerie` VALUES (1, 'Test', 'Ich', 'me_new.jpg', '0');
INSERT INTO `gallerie` VALUES (2, 'Test 2', 'Ich 2', 'hc_014.jpg', '0');
INSERT INTO `gallerie` VALUES (3, 'Test 3', 'Ich 3', '1018_190820.jpg', '0');
INSERT INTO `gallerie` VALUES (4, 'Test 4', 'Ich 4', '000_164.JPG', '0');
*/
// Einstellungen
$max_width = 157; // Maximale Breite der Vorschau-Bilder
$max_height = 135; // Maximale Höhe der Vorschau-Bilder
$gallerie_dir = 'images/gallerie'; // Ordnerpfad der Bilder
$preview_dir = 'images/gallerie/kl'; // Ordnerpfad der Vorschau-Bilder
$proportion = 2; /* Muss größer als 1 sein,
je kleiner desto besser die Preview und desto höher die Recourcen-Auslastung*/
$query = mysql_query("SELECT *
FROM `gallerie`
ORDER BY `id` DESC
LIMIT 0 , 30");
$anz = mysql_num_rows($query);
while ($picture = mysql_fetch_assoc($query)) {
if (file_exists($gallerie_dir.'/'.$picture['file_name'])) {
if (!file_exists($preview_dir.'/'.$picture['file_name'])) {
// Preview erstellen
$size = getimagesize($gallerie_dir.'/'.$picture['file_name']);
// höhe und breite des bildes
$size_width = $size[0];
$size_height = $size[1];
$size_type = $size[2]; // 1 = GIF, 2 = JPG, 3 = PNG, SWF = 4
while ($size_width > $max_width OR $size_height > $max_height)
{ $new_size_width = $size_width/$proportion;
$new_size_height = $size_height/$proportion; }
// Preview-Größe Proportional brechnen
//echo 'Width: '.$size_width.' Height: '.$size_height.' Type: '.$size_type;
//echo ' New-Width: '.$new_size_width.' New-Height: '.$new_size_height;
if ($size_type == 1)
$im = imagecreatefromgif($gallerie_dir.'/'.$picture['file_name']);
// Großes Bild
if ($size_type == 2)
$im = imagecreatefromjpeg($gallerie_dir.'/'.$picture['file_name']);
// Großes Bild
if ($size_type == 3)
$im = imagecreatefrompng($gallerie_dir.'/'.$picture['file_name']);
// Großes Bild
$small = imagecreatetruecolor($max_width, $max_height);
imagecopyresampled($small, $im, 0, 0, 0, 0, $new_size_width,
$new_size_height, $size_width, $size_height);
imagedestroy($im); // Speicher freigeben
if ($size_type == 1)
imagegif($small, $preview_dir.'/'.$picture['file_name'], 100);
// Datei als GIF speichern
if ($size_type == 2)
imagejpeg($small, $preview_dir.'/'.$picture['file_name'], 100);
// Datei als JPEG speichern
if ($size_type == 3)
imagepng($small, $preview_dir.'/'.$picture['file_name'], 100);
// Datei als PNG speichern
}
echo '<a href="'.$gallerie_dir.'/'.$picture['file_name'].'">
<img src="'.$preview_dir.'/'.$picture['file_name'].'" border="0"></a>';
}
}
?>
Kommentar