Bildergalerie mit PHP
|
|
Seite: 1 |
| Autor |
|
HyP3r |
Bildergalerie mit PHP - Beitrag verfasst:
14.07.2007, 15:45 Uhr |
|
Mehrposter
Anmeldedatum: 27.03.2007 16 Posts und 5 Themen. |
ich würde gerne ein php script schreiben wo aus dem verzeichnis wo die datei liegt alle *.jpg datein such und dann sie alle in einer 4xX Tabelle wiedergibt (X = je nach dem wie viele datein) nur das problem ist das die bilder davor kleiner gemacht werden soll also z.b. alle sollen die breite 200 haben da ich aber die bilder nicht verzerren will muss ich bevor ich die 200 angibt durch prozentrechnen die höhe errechnen wie bekomme ich solche infos via php aus ner JPG
mfg
HyP3r
|
| |
|
Nach Oben  |
|
HyP3r |
Beitrag verfasst:
14.07.2007, 15:56 Uhr |
|
Mehrposter
Anmeldedatum: 27.03.2007 16 Posts und 5 Themen. |
also quasi so fehlt nur noch das mit höhe und breite alle sollen z.b. 200 breit werden:
| Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<html>
<head>
<title>Bildergalarie</title>
</head>
<body>
<table width="100%">
<tr>
<?php
$files = array();
$ordner = ".";
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
if(substr($file,strlen($file)-4) == ".jpg")
{
array_push($files,$file);
}
}
}
closedir($handle);
foreach($files as $file) {
$count = $count + 1;
if($count == 4) {
$count = 0; ?></tr><tr><?php
}
?><td><img src="<?php echo $file; ?>" /></td><?php
}
?>
</tr>
</table>
</body>
</html>
|
|
ich hab das so gescriptet mit dem $count damit ich immer 4 spalten habe
1 x geändert, zuletzt am 14.07.2007 von HyP3r
|
| |
|
Nach Oben  |
|
cinic |
Beitrag verfasst:
14.07.2007, 16:53 Uhr |
|
Admin

Anmeldedatum: 05.08.2004 426 Posts und 116 Themen. |
getImageSize (gibt dir diese Informationen)
http://www.phpcenter.de/de-html-manual/function.getimagesize.html
Ich würde aber die Bilder auch physisch per GdLib oder ImageMagick verkleinern... um die Ladezeit zu verringern...
____________________ v-basic.de
|
| |
|
Nach Oben  |
|
HyP3r |
Beitrag verfasst:
14.07.2007, 21:06 Uhr |
|
Mehrposter
Anmeldedatum: 27.03.2007 16 Posts und 5 Themen. |
ich habs jetzt so gemacht das er die großen bilder in den ordner big tun soll und davon ein kleines (also 200er breite) in den root ordner somit kann ich für die kommenden leute garantieren das die net so lang warten müssen:
| Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<html>
<head>
<title>Bildergalarie</title>
</head>
<body>
<table>
<tr>
<?php
$files = array();
$ordner = ".";
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
if(substr($file,strlen($file)-4) == ".jpg" or substr($file,strlen($file)-4) == ".JPG")
{
array_push($files,$file);
}
}
}
closedir($handle);
foreach($files as $file) {
// ermittlung der Höhe und Breite
$count = $count + 1;
$size = getimagesize($file);
$hei = $size[1];
$wit = $size[0];
if($wit <> 200) {
copy($file,"big/".$file);
// Original resizen - start
$target = $file;
$max_width = "200";
$quality = "100";
$src_img = imagecreatefromjpeg($file);
$src_width = $size[0];
$src_height = $size[1];
if($src_width > $max_width)
{
$convert = $max_width/$src_width;
$dest_width = $max_width;
$dest_height = ceil($src_height*$convert);
}
else
{
$dest_width = $src_width;
$dest_height = $src_height;
}
$dst_img = imagecreatetruecolor($dest_width,$dest_height);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height);
imagejpeg($dst_img, "$target", $quality);
// Original resizen - ende
}
?><td width="210" align="center">
<a href="big/<?php echo $file; ?>" target="_blank">
<img src="<?php echo $file; ?>" alt="<?php echo $file; ?>"/>
</a>
</td>
<?php
// schleife zum richtigen setzen von den Spalten
if($count == 4) {
$count = 0; ?></tr><tr><?php
}
}
?>
</tr>
</table>
</body>
</html>
|
|
|
| |
|
Nach Oben  |
|
HyP3r |
Beitrag verfasst:
15.07.2007, 20:31 Uhr |
|
Mehrposter
Anmeldedatum: 27.03.2007 16 Posts und 5 Themen. |
so und das hier ist die vollständige vollendung:
| Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<html>
<head>
<title>Bildergalarie</title>
</head>
<body>
<table>
<tr>
<?php
$files = array();
$ordner = ".";
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
if(substr($file,strlen($file)-4) == ".jpg" or substr($file,strlen($file)-4) == ".JPG")
{
array_push($files,$file);
}
}
}
closedir($handle);
foreach($files as $file) {
// ermittlung der Höhe und Breite
$count = $count + 1;
$size = getimagesize($file);
$hei = $size[1];
$wit = $size[0];
if($wit <> 200) {
copy($file,"big/".$file);
// Original resizen - start
$target = $file;
$max_width = "200";
$quality = "100";
$src_img = imagecreatefromjpeg($file);
$src_width = $size[0];
$src_height = $size[1];
if($src_width > $max_width)
{
$convert = $max_width/$src_width;
$dest_width = $max_width;
$dest_height = ceil($src_height*$convert);
}
else
{
$dest_width = $src_width;
$dest_height = $src_height;
}
$dst_img = imagecreatetruecolor($dest_width,$dest_height);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_height, $src_width, $src_height);
imagejpeg($dst_img, "$target", $quality);
// Original resizen - ende
}
?><td width="210" align="center">
<a href="big/<?php echo $file; ?>" target="_blank">
<img src="<?php echo $file; ?>" alt="<?php echo $file; ?>"/>
</a>
</td>
<?php
// schleife zum richtigen setzen von den Spalten
if($count == 4) {
$count = 0; ?></tr><tr><?php
}
}
?>
</tr>
</table>
</body>
</html>
|
|
|
| |
|
Nach Oben  |
|
| Information |
| Wo bin ich? |
|
Programming Community » Sprachen » PHP / MySQL / SQLite » Bildergalerie mit PHP |
| Rechte |
|
Du darfst:
Beiträge lesen,
Themen eröffnen,
auf Beiträge antworten und hier
keine Umfragen erstellen |
| Statistik |
|
Seit dem 31.07.2002 (3476 Tage) wurden 7013 Beiträge in 1977 Themen verfasst. |
|
Wir haben 1278 User und begrüßen unser neustes Mitglied:
g.schief
|
Rekord: 8 registrierte waren gleichzeitig hier (27.07.2006, 14:54 Uhr). Im Moment: 0 registrierte Benutzer und 2 Gäste online!
|
|