mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 18.04.2024 08:46 Benutzername: Passwort: Auto-Login

Thema: [php] Bildergallery vom 24.11.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] Bildergallery
Autor Nachricht
Lampenbauer
Threadersteller

Dabei seit: 22.09.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 24.11.2005 11:47
Titel

[php] Bildergallery

Antworten mit Zitat Zum Seitenanfang

Hallo Community,

ich habe folgendes Problem.
Ich bin noch ziemlicher Änfänger.
Ich bräuchte mal Eure Hilfe.

Ich habe zu einem dieses Script gefunden:

Script1:

Code:
 1 <?php
 2
 3                          $PfadThumbnails="thumbnails/";
 4                          $PfadBilder="images/";
 5                          $AnzahlThumbnailsProZeile=3;
 6                         
 7                          if($Verzeichniszeiger=opendir($PfadThumbnails))
 8                          {
 9                              $Table="<table border=\"0\" cellpadding=\"2\" cellspacing=\"5\"><tr>";
10                              $i=0;
11                              while($Datei=readdir($Verzeichniszeiger))
12                              {
13                                  if(substr($PfadThumbnails.strtolower($Datei), -4)==".jpg" || substr($PfadThumbnails.strtolower($Datei), -5)==".jpeg" || substr(strtolower($PfadThumbnails.$Datei), -4)==".gif" || substr($PfadThumbnails.strtolower($Datei), -4)==".png")
14                                  {
15                                      $Bilddaten=getimagesize($PfadBilder.substr($Datei, 3));
16                                      $Bildbreite=$Bilddaten[0];
17                                      $Bildhoehe=$Bilddaten[1];
18                                      $Thumbnaildaten=getimagesize($PfadThumbnails.$Datei);
19                                      $Thumbnailbreite=$Thumbnaildaten[0];
20                                      $Thumbnailhoehe=$Thumbnaildaten[1];
21                                      if($i%$AnzahlThumbnailsProZeile==0 && $i!=0)
22                                      {
23                                          $Table.="</tr><tr>";
24                                      }
25                                      $Table.="<td><a href=\"javascript:GrafikAnzeigen('".$PfadBilder.substr($Datei, 3)."', '".$Bildbreite."', '".$Bildhoehe."');\"><img border=\"0\" height=\"".$Thumbnailhoehe."\" src=\"".$PfadThumbnails.$Datei."\" title=\"Zum Vergrößern aufs Foto klicken\" width=\"".$Thumbnailbreite."\"></a></td>";
26                                      $i++;
27                                  }
28                              }
29                              $Table.="</tr></table>";
30                              closedir($Verzeichniszeiger);
31                          }
32                         
33                          ?>
34
35 <html>
36 <head>
37                          <title>Grafik passend in einem PopUp Fenster öffnen (mit PHP)</title>
38 <script>
39 <!--
40
41                          function GrafikAnzeigen(GrafikURL, Breite, Hoehe)
42 {
43                              Fensteroptionen="toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0";
44
45                              Grafikfenster=window.open("", "", Fensteroptionen + ',width=' + Breite + ',height=' + Hoehe);
46                              Grafikfenster.focus();
47                              Grafikfenster.document.open();
48                              with(Grafikfenster)
49                              {
50                                  document.write("<html><head>");
51                                  document.write("<title>Grafikanzeige</title>");
52                                  document.write("</head>");
53                                  document.write("<body leftmargin=\"0\" marginheight=\"0\" marginwidth=\"0\" topmargin=\"0\">");
54                                  document.write("<img border=\"0\" onclick=\"window.close();\" src=\""+ GrafikURL +"\" title=\"Zum Schließen auf das Foto klicken\">");
55                                  document.write("</body></html>");
56                              }
57 }
58
59 //-->
60 </script>
61 </head>
62 <body>
63
64 <?php
65                         
66                          echo$Table;
67                         
68                          ?>
69
70 </body>
71                          </html>


Und zum anderen dieses:

Script2:

Code:
<?
$PicPathIn="../bilder/";                         
$PicPathOut="../bilder/out/";

//                          Orginalbild
$bild="Foto.jpg";                         

// Bilddaten                          ermitteln
$size=getimagesize("$PicPathIn"."$bild");                         
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;                         
$neueHoehe=intval($hoehe*$neueBreite/$breite);                         

if($size[2]==1) {                         
// GIF
$altesBild=ImageCreateFromGIF("$PicPathIn"."$bild");                         
$neuesBild=imageCreate($neueBreite,$neueHoehe);                         
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);                         
imageGIF($neuesBild,"$PicPathOut"."TN"."$bild");
}                         

if($size[2]==2) {                         
// JPG
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");                         
$neuesBild=imageCreate($neueBreite,$neueHoehe);                         
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);                         
ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild");
}                         

if($size[2]==3) {                         
// PNG
$altesBild=ImageCreateFromPNG("$PicPathIn"."$bild");                         
$neuesBild=imageCreate($neueBreite,$neueHoehe);                         
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);                         
ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild");
}                         

echo "Altes                          Bild:<BR>";
echo                          "<IMG SRC=\"$PicPathIn$bild\"                          WIDTH=\"$breite\"                          HEIGHT=\"$hoehe\"><BR><BR>";
echo "Neues Bild:<BR>";
$Thumbnail=$PicPathOut."TN".$bild;
echo                          "<IMG SRC=\"$Thumbnail\"                          WIDTH=\"$neueBreite\"                          HEIGHT=\"$neueHoehe\">";                         
?>


So nun zu meinem Problem!
Script eins ist für mich persönlich toll!
Denn man erstellt 2 Ordner lädt dort die Dateien rein und das Script macht den Rest.
Was mich aber stört ist die Thumbnails die er nimmt sind nicht irgendwie neu berechnet
sondern er schiebt die original Bilder einfach auf einen von mir angegebenen Pixel-Wert
zusammen. Sprich die Thumbnails sind genauso groß wie die originalen.

Script 2 ist dort anders es erstellt aus der originalen ein neu berechnetes Thumbnail.
Aber das war es dann auch schon.

Ich hatte versucht die beiden Scripte zu kombinieren aber bin durch mein Änfängersatus
gescheitert.
Könnt Ihr mir vielleicht helfen das ich eine Automatische Bildergallery habe wo ich nur
sagen muss in welchem Ordner die originalen liegen und er dann automatisch
Thumbnails daraus neu berechnet? Mit draufklicken das ein popup vom original kommt.
Also wie im ersten Script.

Ich hoffe ich habe alles verständlich erklärt?

Danke...


Zuletzt bearbeitet von Lampenbauer am Do 24.11.2005 11:48, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
kaputt

Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 24.11.2005 11:55
Titel

Antworten mit Zitat Zum Seitenanfang

Es empfiehlt sich eigentlich nicht, zur Laufzeit die Bilder kleinrechnen zu lassen. Du solltest also entweder vorher mit einem Tool (irfanview oder so - kann auch nen ganzen Ordnerinhalt kleinrechnen usw...) die Thumbs erstellen, oder aber beim Upload (sofern der über ein PHP Script stattfindet). Das ist natürlich unpraktisch, aber naja :/
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Lampenbauer
Threadersteller

Dabei seit: 22.09.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 24.11.2005 12:38
Titel

Antworten mit Zitat Zum Seitenanfang

Aber z.b. deviantart.com macht es doch auch so oder täusche ich mich?
  View user's profile Private Nachricht senden
kaputt

Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 24.11.2005 16:26
Titel

Antworten mit Zitat Zum Seitenanfang

Also ich musste da immer bis zu 3 verschieden große Versionen meiner Bilder hochladen. Habe ich aber auch schon länger nicht mehr getan. Also keine Ahnung, ob das immer noch so ist.
  View user's profile Private Nachricht senden
Lampenbauer
Threadersteller

Dabei seit: 22.09.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 24.11.2005 17:15
Titel

Antworten mit Zitat Zum Seitenanfang

Nein Du brauchst nur noch das Original Bild angeben.
  View user's profile Private Nachricht senden
13pixelchen
Account gelöscht


Ort: -

Verfasst Do 24.11.2005 17:21
Titel

Antworten mit Zitat Zum Seitenanfang

Stichwort caching. Hier ist noch eins meiner scripte. Hochladen, Pfade einstellen, chmod, fertig.

Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quick Gallery</title>
<style type="text/css">
<!--

ul#galerie, ul#galerie li { margin: 0; padding: 0; list-style: none }
ul#galerie { padding: 20px 20px 20px 20px; width: 100%; overflow: hidden; } /* gesamt = Breite der maincol */
ul#galerie li {
   float: left;
   width: 100px;
   height: 100px;
   padding: 10px 10px 10px 10px;
   margin: 1px;
   border: 1px solid #BAC7D1;
}
ul#galerie li a {
   margin: 0 auto 0 auto;
   display: block;
   text-decoration: none;
}
#cl {
   position: absolute;
   top: -200em; left: -500em; display: none; color: #fff;
}
#cl a:link, #cl a:visited { color: #fff; text-decoration: none; }
-->
</style>
</head>

<?php

/*
   Quick Gallery (Copyright Mediendesign-schwarz.de) darf für frei verwendet werden.
   Das erste ist der Ordner, in dem die Bilder liegen. Hier ist es das Domainstammverzeichnis.
   Das zweite ist der Ordner, wo die Thumbs reingespeichert werden sollen. Es braucht chmod 777 (rwxrwxrwx).
   Beides sind absolute Pfade, aber ohne führenden Schrägstrich.
*/
define(GALLERYFOLDER, '');
define(THUMBFOLDER, 'thumbs/');


function Thumb($sourcefile, $targetfile, $maxWidth, $maxHeight) {
   $PicInfo = getimagesize($sourcefile);
   if ($PicInfo[0] > $PicInfo[1]) {  // maximale Abmessungen errechnen
      $new_width = $maxWidth;
      $new_height = floor(($new_width * $PicInfo[1]) / $PicInfo[0]);
   } else {
      $new_height = $maxHeight;
      $new_width = floor(($new_height * $PicInfo[0]) / $PicInfo[1]);
   }
   
   $PicData = ImageCreateFromJPEG($sourcefile);
   $PicDataResized = imagecreatetruecolor($new_width, $new_height);
   imagecopyresampled($PicDataResized, $PicData, 0, 0, 0, 0, $new_width, $new_height, $PicInfo[0], $PicInfo[1]);

   touch($targetfile);
   ImageJPEG($PicDataResized, $targetfile, 65);
   // header("Content-Type: image/jpg"); //Header manipulieren
   //imagejpeg($PicDataResized); //Bild ausgeben
   
    imagedestroy($PicDataResized);
    imagedestroy($PicData);
}

// ********************************************************************* mach Gallery


   $daten = '<ul id="galerie">';
   $galeriepfad = $_SERVER['DOCUMENT_ROOT'].GALLERYFOLDER;
   $galerieabsolutpfad = '/'.GALLERYFOLDER;
   $thumbpfad = $_SERVER['DOCUMENT_ROOT'].THUMBFOLDER;
   $thumbabsolutpfad = '/'.THUMBFOLDER;
   
   if (!is_dir($galeriepfad)) { die('Galeriepfad existiert nicht'); } // existiert bildverzeichnis?
   if (!is_dir($thumbpfad)) { die('Thumbpfad existiert nicht'); } // existiert bildverzeichnis?

   $dh = @opendir($galeriepfad);
   while (false !== ($file=readdir($dh)))
   {
      // $a = substr($file, 0, 2);
      $b = substr($file, -3);
      if ($b=='jpg') {    // if (($b=='jpg') && ($a!='th')) {   // Bilddatei, kein Thumb?
         if (!file_exists($thumbpfad.'th_'.$file)) { Thumb($galeriepfad.$file, $thumbpfad.'th_'.$file, 100, 100); }
         $daten .= '<li><a href="'.$galerieabsolutpfad.$file.'"><img src="'.$thumbabsolutpfad.'th_'.$file.'"></a></li>';
      }
   }
   closedir($dh);
   $daten .= '</ul>';
   echo $daten;



?>
<div id="cl"><a href="http://www.mediendesign-schwarz.de">MedienDesign Schwarz in Bad Urach / Ermstal</a></div>
<body>
</body>
</html>
 
Lampenbauer
Threadersteller

Dabei seit: 22.09.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 24.11.2005 17:53
Titel

Antworten mit Zitat Zum Seitenanfang

13pixelchen hat geschrieben:
Stichwort caching. Hier ist noch eins meiner scripte. Hochladen, Pfade einstellen, chmod, fertig.


Ich werds mir heute Nacht mal anschauen.
Danke
  View user's profile Private Nachricht senden
 
Ähnliche Themen bildergallery dreamweaver
[SUCHE] PHP-Bildergallery
Bildergallery+Text + Uploader
Simple, gut anzupassende Bildergallery
freies PHP script bildergallery gesucht
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.