Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 02:26
Titel
|
|
|
Danke m, das Codebeispiel scheint hier sehr gut zu passen.
Aber es wird leider nix angezeigt:
Zitat: |
$category = htmlspecialchars($_GET['sub']);
$dbq = "SELECT * FROM galerie WHERE category='".$category."' LIMIT ".$limit."";
$result = mysql_db_query("xyz_galerie", $dbq);
while ($row = mysql_fetch_array($result)) {
// Thumbnails erstellen
$currimg = $row[path];
// Rest der DBQ auswerten
$currname = $row[name];
$currid = $row[ID];
// Breite und Höhe des Bildes auslesen:
list($thumb_origwidth, $thumb_origheight) = getimagesize($row[path]);
$img = imagecreatefromjpeg($row[path]);
$thumbwidth = 125;
$thumbheight = 125;
$minsize = 125; # bei ungleichen seitenverhältnissen die längere seite
$width = $thumb_origwidth; # ermitteln z.b. per getimagesize
$height = $thumb_origheight; # ermitteln z.b. per getimagesize
$scale = max($minsize/$width, $minsize/$height); # skalierungsfaktor ermitteln
$newwidth = ceil($width*$scale);
$newheight = ceil($height*$scale);
$x = ($newwidth - $thumbwidth)/2;
$y = ($newheight - $thumbheight)/2;
$cropimg = imagecreatetruecolor($thumbwidth,$thumbheight);
$thumbnail = imagecopyresized($cropimg, $img, -$x, -$y, 0, 0, $newwidth, $newheight, $width, $height);
echo "<div class=\"thumbs\"><a id=\"ajaxgo\" href=\"?id=portfolio&sub=$category&page=".$page."&img=$currid\">";
echo "<img src=\"".imagejpeg($thumbnail)."\" alt=\"$row[name]\" width=\"$thumb_width\" height=\"$thumb_height\" /></a>";
echo '</div>';
}
|
Das ganze wird aber nur so dargestellt:
[/img]
Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 13:39, insgesamt 2-mal bearbeitet
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Fr 23.05.2008 03:34
Titel
|
|
|
Wie rufst du die Funktion denn auf? Was übergibst du als Parameter?
Die Verbindung zur Datenbank wird vorher hergestellt und das funktioniert dann auch?
Wie sieht denn der Rest von deinem Script aus?
|
|
|
|
|
Anzeige
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 10:14
Titel
|
|
|
rob hat geschrieben: | Wie rufst du die Funktion denn auf? Was übergibst du als Parameter?
Die Verbindung zur Datenbank wird vorher hergestellt und das funktioniert dann auch?
Wie sieht denn der Rest von deinem Script aus? |
Ich habs mal rot oben im Code markiert, wo ich die Funktion aufrufe und welche Parameter übergeben werden.
Die Datenbankverbindung funktioniert und wird vorher schon hergestellt.
Ach was solls, hier mal das ganze Script. Die DB-Verbindung ist gegeben, das Script hier ist nur ein include...
Code: |
<div id="showoverview">
<?php
// Seitenpruefung GET['page']
if(isset($_GET['page']) or !empty($_GET['page'])) {
$page = strip_tags($_GET['page']);
} else {
$page = '1';
}
//ID for Page
if(htmlspecialchars($_GET['page'])=='1') {
$limit = "0,6";
} elseif(htmlspecialchars($_GET['page'])=='2') {
$limit = "6,6";
} elseif(htmlspecialchars($_GET['page'])=='3') {
$limit = "12,6";
} elseif(htmlspecialchars($_GET['page'])=='4') {
$limit = "18,6";
} elseif(htmlspecialchars($_GET['page'])=='5') {
$limit = "24,6";
} elseif(htmlspecialchars($_GET['page'])=='6') {
$limit = "30,6";
} elseif(htmlspecialchars($_GET['page'])=='7') {
$limit = "36,6";
} elseif(htmlspecialchars($_GET['page'])=='8') {
$limit = "42,6";
} elseif(htmlspecialchars($_GET['page'])=='9') {
$limit = "48,6";
} elseif(htmlspecialchars($_GET['page'])=='10') {
$limit = "54,6";
} else {
$limit = "0,6";
}
// category?
$category = htmlspecialchars($_GET['sub']);
$dbq = "SELECT * FROM galerie WHERE category='".$category."' LIMIT ".$limit."";
$result = mysql_db_query("knipsolina_galerie", $dbq);
while ($row = mysql_fetch_array($result)) {
// Thumbnails erstellen
$currimg = $row['path'];
// Rest der DBQ auswerten
$currname = $row['name'];
$currid = $row['ID'];
// Breite und Höhe des Bildes auslesen:
list($thumb_origwidth, $thumb_origheight) = getimagesize($row['path']);
$img = imagecreatefromjpeg($row['path']);
$thumbwidth = 125;
$thumbheight = 125;
$minsize = 125; # bei ungleichen seitenverhältnissen die längere seite
$width = $thumb_origwidth; # ermitteln z.b. per getimagesize
$height = $thumb_origheight; # ermitteln z.b. per getimagesize
$scale = max($minsize/$width, $minsize/$height); # skalierungsfaktor ermitteln
$newwidth = ceil($width*$scale);
$newheight = ceil($height*$scale);
$x = ($newwidth - $thumbwidth)/2;
$y = ($newheight - $thumbheight)/2;
$cropimg = imagecreatetruecolor($thumbwidth,$thumbheight);
$thumbnail = imagecopyresized($cropimg, $img, -$x, -$y, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($thumbnail);
echo "<div class=\"thumbs\"><a id=\"ajaxgo\" href=\"?id=portfolio&sub=$category&page=".$page."&img=$currid\">";
// No JS Version <a id=\"ajaxgo\" href=\"?id=portfolio&sub=$category&page=".$page."&img=$currid\">
// AJAX Version: Doesn't play because mootools has problems -> <a id=\"ajaxgo\" href='#'>
if(isset($notmf))
{
echo $notmf;
}
#if(isset($notmf2))
#{
# echo $notmf2;
#}
echo "<img src=\"".imagejpeg($thumbnail)."\" alt=\"$row[name]\" width=\"$thumb_width\" height=\"$thumb_height\" /></a>";
echo '</div>';
}
?>
<br />
<div id="overviewnavi">
<?php
//letzes gültiges Bild
$sqlstatement = "SELECT COUNT(id) as count FROM galerie";
$ergebnis = mysql_db_query("knipsolina_galerie", $sqlstatement);
$gesseiten = ($ergebnis/6);
// Überprüfen ob nicht erste Seite, dann "previous page" Link anzeigen
if($page>1)
{
echo " <a href=\"?id=portfolio&sub=$category&page=".($page-1)."&img=".($currid-6)."\"><img src=\"Galerie/imghandler_pageback.png\" alt=\"Eine Seite zurück\" width=\"20\" height=\"20\" /></a> ";
}
// aktuelle Seite anzeigen
echo "Seite $page ";
// Überprüfen ob letztes Bild angezeigt wird, wenn nicht, "next page" Link anzeigen
if($page<$gesseiten)
{
echo " <a href=\"?id=portfolio&sub=$category&page=".($page+1)."&img=".($currid+1)."\"><img src=\"Galerie/imghandler_pagenext.png\" alt=\"Eine Seite vorwärts\" width=\"20\" height=\"20\" /></a>";
}
?>
</div>
</div>
<div id="showfullimage">
<?php
// per SQL erstes Bild der Sektion auswerten
$dbq_firstimg = "SELECT DISTINCT * FROM galerie WHERE category='".$category."'";
$result_firstimg = mysql_db_query("knipsolina_galerie", $dbq_firstimg);
$row_firstimg = mysql_fetch_array($result_firstimg);
$firstcatimg = $row_firstimg['ID'];
// erstes Bild ausgeben oder gewähltes ausgeben
if(isset($_GET['img'])) {
$img = strip_tags($_GET['img']);
} else {
$img = $firstcatimg;
}
$dbq2 = "SELECT * FROM galerie WHERE ID='".$img."'";
$result2 = mysql_db_query("knipsolina_galerie", $dbq2);
$row2 = mysql_fetch_array($result2);
// Breite und Höhe des Bildes auslesen:
list($origwidth, $origheight) = getimagesize($row2['path']);
// Breite und Höhe für Fullsize bestimmen:
if($origwidth > $origheight) {
$width = 400;
$Skalierungsfaktor = $origwidth/$width;
$height = intval($origheight/$Skalierungsfaktor);
$divheight = (400-$height)/2;
echo '<img src="whitespace.gif" alt="whitespace holder" width="400" height="'.$divheight.'" />';
}
if($origheight > $origwidth) {
$height = 400;
$Skalierungsfaktor = $origheight/$height;
$width = intval($origwidth/$Skalierungsfaktor);
}
if($origheight == $origwidth) {
$width = 400;
$height = 400;
}
// Vor / Zurück Link
$vor = $currid + 1;
$back = $currid - 1;
?>
<img src="<?php echo $row2['path']; ?>" alt="<?php echo $row2['name']; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />
<div id="previmg">
<a href="?id=portfolio&sub=<?php echo $category; ?>&page=<?php echo $page; ?>&img=<?php echo $back; ?>"><img src="Galerie/imghandler_invisible.gif" alt="Bild zurück" width="60" height="60" /></a>
</div>
<div id="nextimg">
<a href="?id=portfolio&sub=<?php echo $category; ?>&page=<?php echo $page; ?>&img=<?php echo $vor; ?>"><img src="Galerie/imghandler_invisible.gif" alt="Bild weiter" width="60" height="60" /></a>
</div>
</div> |
Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 13:39, insgesamt 2-mal bearbeitet
|
|
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 13:31
Titel
|
|
|
So, jetzt auch Fehlermeldungen:
Code: |
Warning: imagejpeg(): supplied argument is not a valid Image resource in /srv/www/vhosts/management-panel.com/subdomains/knipsolina/httpdocs/Galerie/show_new_mysql.php on line 114
Notice: Undefined variable: thumb_width in /srv/www/vhosts/management-panel.com/subdomains/knipsolina/httpdocs/Galerie/show_new_mysql.php on line 114
Notice: Undefined variable: thumb_height in /srv/www/vhosts/management-panel.com/subdomains/knipsolina/httpdocs/Galerie/show_new_mysql.php on line 114
|
Was stimmt denn beim imagejpeg(); nicht?
Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 13:47, insgesamt 2-mal bearbeitet
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 13:50
Titel
|
|
|
Ein Pfadproblem. Zudem solltest du dir die Doku zu imagejpeg nochmal ansehen, imagejpeg
gibt wenn du nur den ersten Paramter angibst die Datei direkt im Browser aus (dazu sollte man
dann noch den korrekten header senden), die Anwendung innerhalb eines image tags ist somit
falsch.
Das heißt, die erstellst deine Bildquelle.
Code: | imagecreatefrom___('ein/gültiger/pfad/zu/einer/bilddatei'); |
Dann kommt der Teil zur Berechnung der Thumbgröße usw., und zur Ausgabe
Code: | header senden (je nach bildtype)
imagejpeg($thumb); |
Zuletzt bearbeitet von m am Fr 23.05.2008 13:53, insgesamt 1-mal bearbeitet
|
|
|
|
|
Smooth-Graphics
Threadersteller
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 13:52
Titel
|
|
|
m hat geschrieben: | Ein Pfadproblem. Zudem solltest du dir die Doku zu imagejpeg nochmal ansehen, imagejpeg
gibt wenn du nur den ersten Paramter angibst die Datei direkt im Browser aus (dazu sollte man
dann noch den korrekten header senden), die Anwendung innerhalb eines image tags ist somit
falsch. |
Hm, grade gelesen. So, dann aber die Frage: Wie mach ich das jetzt, dass ich ohne speichern die Thumbnails anzeigen kann?
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 23.05.2008 13:58
Titel
|
|
|
Du kannst aus dem Image Tag heraus die php datei aufrufen welche dann dein Bild ausgibt.
Code: | imagecreatefrom__($_GET["img"]);
# resizen des bildes wie gehabt und dann ausgeben
header("Content-type: image/jpeg");
imagejpeg($cropimg, "", 70);
imagedestroy($cropimg); |
Code: | <img src="thumbs.php?img=datei.jpg" /> |
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 23.05.2008 14:05
Titel
|
|
|
m hat geschrieben: |
Code: | imagecreatefrom___('ein/gültiger/pfad/zu/einer/bilddatei'); |
|
welch ironie und schon mal schönes wochenende ihr nasen!!! (und nicht zuviel gerüstbau am wochenende!!!)
|
|
|
|
|
|
|
|
Ähnliche Themen |
[Hilfe] Thumbnails erstellen
Thumbnails mit Dateiinformationen erstellen
Advanced Image Swap
[PHP Advanced] Grafik aus PLZ erzeugen
[CSS advanced?] flexiblen werbebanner positionieren
PHP Thumbnails per FTP speichern?
|
|
|
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.
|
|