Thumbnails

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Thumbnails

Beitrag von BrahmA »

Ich habe ein php-funktion für thumbnails, bei der beim anklicken des Bildes ein neues Fenster aufgeht und das große Bild anzeigt! Allerdings mach der das im Vollbild.....:roll:

Wie muß ich folgenden Code ändern/erweitern damit das aufgehende Fenster nur so groß ist wie das Bild?

Code: Alles auswählen

while($file=readdir($handle)):
        $fileendung=explode(".",$file);
        for($i=0;$i<sizeof($dateiendung);$i++):
                if($fileendung[1]==$dateiendung[$i]):
                        if($count<($maxGrafik+$geschrieben) and $count>=$geschrieben):
                                # Datei wird ausgegeben
                                echo '
                                        <td>
                                                <a href="#" onClick="window.open(\''.$dir.'/'.$file.'\',\'open\',\'toolbar=no,scrollbars=no,status=no,locationbar=no,personalbar=no,menubar=no\')"><img src="'.$dir.'/'.$file.'" width="'.$maxBreite.'" border="0" alt="'.$file.'"></a>
                                        </td>
                                ';
                                $j++;
                        endif;
                        $count++;
                        if($j==$anzahlSpalten):
                                echo '</tr><tr>';
                                $j=0;
                        endif;
                        $anzahl++;
                        continue(1);
                endif;
        endfor;
endwhile;
Schon mal Danke!
Benutzeravatar
biototo
Mitglied
Beiträge: 803
Registriert: 10.04.2002 09:51
Wohnort: Düren - Rheinland (zw Köln u. Aachen)
Kontaktdaten:

Beitrag von biototo »

Besorg dir mit der PHP-Funkiotn getimagesize() die Grösse des Bildes in Pixeln und dann schreibste das in das window.open() des Javascript teils rein, das sollte dann funktionieren, zur Sicherheit würde ich das noch in den <img<-Tag einbinden height="xx" und width="xx". Kannst ja mal bescheid geben, ob das so funktioniert hat, dann merk ich mir das für die Zukunft :wink: , das wäre nett, danke.
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Beitrag von BrahmA »

ja schön und gut, aber ich erhalte das:

Code: Alles auswählen

Warning: Unable to access syl220.jpg in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70

Warning: getimagesize: Unable to open 'syl220.jpg' for reading. in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70

Warning: Unable to access syl221.jpg in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70

Warning: getimagesize: Unable to open 'syl221.jpg' for reading. in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70
hier meine änderungen:

Code: Alles auswählen

while($file=readdir($handle)):
        $fileendung=explode(".",$file);
        for($i=0;$i<sizeof($dateiendung);$i++):
                if($fileendung[1]==$dateiendung[$i]):
                        if($count<($maxGrafik+$geschrieben) and $count>=$geschrieben):
                                $info = getimagesize($file);
                                # Datei wird ausgegeben
                                echo '
                                        <td>
                                                <a href="#" onClick="window.open(\''.$dir.'/'.$file.'\',\'open\',\'toolbar=no,scrollbars=no,status=no,locationbar=no,personalbar=no,menubar=no\')"><img src="'.$dir.'/'.$file.'" width="'.$maxBreite.'" border="0" alt="'.$file.'"></a>
                                        </td>
                                ';
                                $j++;
                        endif;
                        $count++;
                        if($j==$anzahlSpalten):
                                echo '</tr><tr>';
                                $j=0;
                        endif;
                        $anzahl++;
                        continue(1);
                endif;
        endfor;
endwhile;
aber das ist noch nicht alles:
getimagesize() gibt ja als info auch den fertigen HTML_tag aud, also height=xxx width=xxx, nur wie binde ich das in das javascipt-gesocks ein?

in das image-tag kann ich das nicht integrieren, weil das ja das thumbnail ist und schon die größenangabe weiter oben im script angegeben wurde ($maxBreite)......
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

-=BrahmA=- hat geschrieben:ja schön und gut, aber ich erhalte das:

Code: Alles auswählen

Warning: Unable to access syl220.jpg in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70

Warning: getimagesize: Unable to open 'syl220.jpg' for reading. in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70

Warning: Unable to access syl221.jpg in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70

Warning: getimagesize: Unable to open 'syl221.jpg' for reading. in /home/www/web1/html/zeroworld/deig/Fotos/Bildergalerie.php on line 70
also da musst du glaub ich dem verzeichnis chmod 755 geben.
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

ach das zweite prob...
-=BrahmA=- hat geschrieben: hier meine änderungen:

Code: Alles auswählen

while($file=readdir($handle)):
        $fileendung=explode(".",$file);
        for($i=0;$i<sizeof($dateiendung);$i++):
                if($fileendung[1]==$dateiendung[$i]):
                        if($count<($maxGrafik+$geschrieben) and $count>=$geschrieben):
                                $info = getimagesize($file);
                                # Datei wird ausgegeben
                                echo '
                                        <td>
                                                <a href="#" onClick="window.open(\''.$dir.'/'.$file.'\',\'open\',\'toolbar=no,scrollbars=no,status=no,locationbar=no,personalbar=no,menubar=no\')"><img src="'.$dir.'/'.$file.'" width="'.$maxBreite.'" border="0" alt="'.$file.'"></a>
                                        </td>
                                ';
                                $j++;
                        endif;
                        $count++;
                        if($j==$anzahlSpalten):
                                echo '</tr><tr>';
                                $j=0;
                        endif;
                        $anzahl++;
                        continue(1);
                endif;
        endfor;
endwhile;
aber das ist noch nicht alles:
getimagesize() gibt ja als info auch den fertigen HTML_tag aud, also height=xxx width=xxx, nur wie binde ich das in das javascipt-gesocks ein?

in das image-tag kann ich das nicht integrieren, weil das ja das thumbnail ist und schon die größenangabe weiter oben im script angegeben wurde ($maxBreite)......
hm für die fenstergröße würd ich das so machen:

Code: Alles auswählen

 $info = getimagesize($file);
                                # Datei wird ausgegeben
                                echo '
                                        <td>
                                                <a href="#" onClick="window.open(\''.$dir.'/'.$file.'\',\'open\',\'toolbar=no,scrollbars=no,status=no,locationbar=no,personalbar=no,menubar=no,width='.$info[1].',height='.$info[2].'\')"><img src="'.$dir.'/'.$file.'" width="'.$maxBreite.'" border="0" alt="'.$file.'"></a>
                                        </td>
                                ';
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Beitrag von BrahmA »

hm, naja, ich hab dem verzeichnis jetzt die rechte 777 gegeben, und das hilft net!
und das pop-up ist immer noch volle fenstergröße......

sonst noch ideen?

wer will kanns sich ansehen unter http://www.zeroworld.de/zeroworld/deig/ ... lerie.html
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

hsat du dem verzeichnis (mit den "großen" Bilder) und dem Verzeichnis (mit den Thumbnails) chmod 777 gegeben?
Benutzeravatar
biototo
Mitglied
Beiträge: 803
Registriert: 10.04.2002 09:51
Wohnort: Düren - Rheinland (zw Köln u. Aachen)
Kontaktdaten:

Beitrag von biototo »

-=BrahmA=- hat geschrieben:hm, naja, ich hab dem verzeichnis jetzt die rechte 777 gegeben, und das hilft net!
und das pop-up ist immer noch volle fenstergröße......

sonst noch ideen?

wer will kanns sich ansehen unter http://www.zeroworld.de/zeroworld/deig/ ... lerie.html
Ich hab noch eine Idee, check mal in der phpinfo() den Grafiksupport.
Bei mir sieht das so aus :

gd
GD Support enabled
GD Version bundled (2.0.12 compatible)
FreeType Support enabled
FreeType Linkage with TTF library
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

soweit ich weiß braucht getimagesize() keine extra bib...
ich hab hier mal ne altes script von mir versuchs mal damit....

Code: Alles auswählen

<?php
$path = " "; //Pfad zu den "großen" Bildern
$thumbpath = " "; // Pfad zu den Thumbnails
$rowpics = 6; //Wieviele Spalten in deiner Gallerie sein sollen 
$gallerytitle = "blabla"; //ne Überschrift

function getFiles($path) {
 $result = false;
 $directory = opendir($path);
 if($directory) {
  while ($file = readdir($directory)) {
   if (eregi("(\.gif)|(\.jpg)|(\.jpeg)|(\.png)$", $file)) {
    $result[] = $file;
   }
  }
  closedir($directory);
 }
 return $result;
}

$files = getFiles($thumbpath);
?>

<html>
<body>
<div align="center">
<table border="1">
 <tr>
  <th colspan="<?=$rowpics?>"><b><?=$gallerytitle?></b></th>
 </tr>
 <tr>
 
<?php
if (is_array($files)) {
 natsort($files);

 $size = sizeof($files);
 $spaces = ($rowpics*ceil($size/$rowpics))-$size;

 foreach($files as $file) {
  if($imagenumber == $rowpics) {
   printf ("</tr>\n <tr>\n ");
   $imagenumber = 0;
  }
  $imageproperties = getimagesize($thumbpath.$file);
?>
 
 <td align="center" valign="middle"><a href="<?=$path?><?=$file?>"><img src="<?=$thumbpath?><?=$file?>" border="0" <?=$imageproperties[3]?> ></a></td>

<?php
  $imagenumber++;
  }

 for ($x=0;$x<$spaces;$x++) {
?> 

  <td align="center" valign="middle">&nbsp;</td>

<?php  
 }
}
?>

 </tr>
</table>
Benutzeravatar
BrahmA
Mitglied
Beiträge: 2283
Registriert: 25.07.2002 13:31
Wohnort: Münsterland

Beitrag von BrahmA »

getimagesize() braucht keine gd....

@ mungo: danke für das script, aber das ist nicht ganz so komfortabel wie meins!
ich muß bei meinem keine extra thumbnails erstellen, ich kopiere einfach die normalen bilder auf den space, rufe die thumbnail.php auf und übergebe das passende verzeichnis, also z.B. /Bilder/thumbnail.php?dir=phpBB-Bilder
und das script erstellt eine seite mit den thumnails, die man anklicken kann und es geht per pop-up das eigentliche bild auf, leider nur in einem vollbild-fenster.

und ich möchte jetzt, das das pop-up genauso groß ist wie das bild.....
Antworten

Zurück zu „Coding & Technik“