PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Bilder kleiner anzeigen geht nicht (https://www.php-resource.de/forum/php-developer-forum/90661-bilder-kleiner-anzeigen-geht-nicht.html)

the-duke 07-03-2008 17:41

Bilder kleiner anzeigen geht nicht
 
Hallo,

ich bin leider kein php Profi. Mach das eher nebenbei als Hobby.
Ich versuche gerade bei meiner Bildergalerie eine Funktion einzubauen,
die die Bilder verkleinert wenn sie eine bestimte größe überschreiten.
Leider tut sie es nicht und ich weiß so langsam nicht mehr weiter.

Vielleicht kann sich ja jemand der sich mit php gut auskennt mal meinen code anschauen.
Ist bestimmt ein total dummer Fehler:
PHP-Code:

<?php
error_reporting
(0);
if(!
defined('pkFRONTEND') || pkFRONTEND!='public')
    die(
'Direct access to this location is not permitted.');

$picpfad "./images/gallery/jonas/";
$handle opendir($picpfad);
$lv 1;
while(
$file readdir($handle)){
if(
$file != "." && $file != ".."){
if(
preg_match("/.(jpg|gif|png)$/i"$file)){
$pic[$lv] = $file;
$lv++;
}
}
}
closedir($handle);

// Begin meiner Verkleinerungsfunktion

$size = ($picpfad.$pic[$_GET['display']]); // Bild einlesen
$imagewidth $size[0]; // Breite auslesen
$imageheight $size[1]; // Höhe auslesen
$maxwidth "340";
if (
$imagewidth $maxwidth)
  {
  
$imageprop=$maxwidth/$imagewidth;
  
$imagevsize$imageheight*$imageprop;
  
$imagewidth=$maxwidth;
  
$imageheight=ceil($imagevsize);
  }

// Ende meiner Verkleinerungsfunktion

$displaypictures count($pic);
$piceigenschaften getimagesize($picpfad.$pic[$_GET['display']]);
if(!isset(
$_GET['display'])) $_GET['display'] = 1;
if((
$displaypictures $displaypictures)+!= $_GET['display']) 

$helper0 ="<a href=\"include.php?path=galleryjonas.php&display=

"
.($_GET['display']-1)."\" title=\"zur&uuml;ck\">« zur&uuml;ck</a>&nbsp;&nbsp;";
if(
$displaypictures != $_GET['display']) $helper1 "
<a href=\"include.php?path=galleryjonas.php&display=
"
.($_GET['display']+1)."\" title=\"weiter\">weiter »</a>";

$helper "".$_GET['display']." von ".$displaypictures." &nbsp;";
$helper2 "<img src=\"".$picpfad.$pic[$_GET['display']]."\" ".$piceigenschaften[3].
width='$imagewidth' height='$imageheight' 
alt=\"Picture "
.$_GET['display']." / ".$displaypictures."\" />";
$helper3 "<a href=\"".$picpfad.$pic[$_GET['display']]."\" rel=\"lightbox\">";
eval(
"\$site_body.= \"".pkTpl("galleryjonas")."\";");
?>

leider funktioniert das irgendwie nicht.
Zur Info: DIe Ausgabe wird als Variable ($helper2 und $helper3)
an ein html Template übergeben. Vielleicht liegt es auch daran.

Ich hab die Variablen $imagewidth und $imageheight mal mit ausgeben lassen. Die geben mir . und / als Wert wieder.

Wenn ich nur die verkleinerungsfunktion in einer eigenen php seite
aufrufe und mit festen Pfaden und einem festen Bild arbeite,
geht es siehe unterer Code. Weiß jemand wo der Fehler ist?

code:
PHP-Code:

<?php
error_reporting
(1);
$size GetImageSize ("testbild.jpg"); // Bild einlesen
$imagewidth $size[0]; // Breite auslesen
$imageheight $size[1]; // Höhe auslesen
$maxwidth "400";
if (
$imagewidth $maxwidth)
  {
  
$imageprop=$maxwidth/$imagewidth;
  
$imagevsize$imageheight*$imageprop;
  
$imagewidth=$maxwidth;
  
$imageheight=ceil($imagevsize);
  }
echo 
"<a href=\"testbild.jpg\"rel=\"lightbox\"><img src=\"testbild.jpg\" 
width=\"$imagewidth\" height=\"$imageheight\"></a>"
// Bild anzeigen
echo "$imagewidth";
echo 
"$imageheight";
?>


Kropff 07-03-2008 18:10

code umbrechen! selbst ich mit einer auflösung von 1600x1200 muss noch horizontal scrollen.

gruß
peter

the-duke 07-03-2008 18:28

sorry, dachte das macht das Forum automatisch. Habs abgeändert. Hat denn jemand ne Lösung, was ich falsch mache? Liegt es daran, dass ich den Wert mit einer Variablen an ein html Template übergebe? Die Test php seite geht. Nur da geb ich per echo ja direkt auf der php seite aus.

the-duke 08-03-2008 20:13

Problem gelöst:
Und zwar hatte ich eine Variable für die Bildgröße in meinem <img>
PHP-Code:

".$piceigenschaften[3]." 

Daher hat er die Größe des Bildes genommen und die verkleinerte hinten rangehängt. Nur dass ja nur der erste Wert zählt.
Außerdem habe ich 2 mal getimagesize vergeben. einmal
PHP-Code:

$piceigenschaften getimagesize($picpfad.$pic[$_GET['display']]); 

und einmal hier
PHP-Code:

$piceigenschaften getimagesize($picpfad.$pic[$_GET['display']]); 

nur dass beim zweiten Mal halt das getimagesize fehlte

Jetzt funktioniert es. Allerdings nicht bei dem ersten Bild. Aber da komm ich bestimmt noch hinter warum das da nicht geht. Hab ja bisher erst bei einer Kategorie dieses Script eingebaut.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:39 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG