mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 03:44 Benutzername: Passwort: Auto-Login

Thema: [PHP] Advanced-Thumbnails erstellen? vom 04.05.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP] Advanced-Thumbnails erstellen?
Seite: Zurück  1, 2, 3, 4, 5  Weiter
Autor Nachricht
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 23.05.2008 16:18
Titel

Antworten mit Zitat Zum Seitenanfang

Hmm... es war mir irgendwe schon klar, dass es irgendein verdammter Flüchtigkeitsfehler ist. Danke, m!

Noch kurz eine Frage: Warum ist die Qualität so schlimm, trotz 100% JPEG? Schau mal hier: http://knipsolina.management-panel.com/Galerie/thumb.php?path=Galerie/images/11.jpg

EDIT:
Ach, und wo wir schon dabei sind *ha ha* (sorry wenn ich langsam nerv). Bei der großen Bildanzeige links sind ja weiter und zurück Buttons. Da stimmt was nicht. Eigentlich sollte die nächste ID bzw vorherige aufgerufen werden, wenn man drauf klickt. Nur irgendwie springt er immer auf einen festen Wert (ca 3 Bilder weiter) und dann gar nicht mehr weiter.

Der Code dazu:
Code:

<?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&amp;sub=<?php echo $category; ?>&amp;page=<?php echo $page; ?>&amp;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&amp;sub=<?php echo $category; ?>&amp;page=<?php echo $page; ?>&amp;img=<?php echo $vor; ?>"><img src="Galerie/imghandler_invisible.gif" alt="Bild weiter" width="60" height="60" /></a>
        </div>


Vor allem zu beachten eben die letzten Zeilen mit den Links.

Wäre nett, wenn du oder jmd anderes mir dabei noch helfen könnte(s)t! Lächel


Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 16:22, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pRiMUS

Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht: Männlich
Verfasst Fr 23.05.2008 17:35
Titel

Antworten mit Zitat Zum Seitenanfang

ich sehe da nichts, was dein bild erzeugt, aber ich vermute du hast nicht imagecopyresampled() und imagecreatetruecolor() verwendet.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 23.05.2008 17:37
Titel

Antworten mit Zitat Zum Seitenanfang

pRiMUS hat geschrieben:
ich sehe da nichts, was dein bild erzeugt, aber ich vermute du hast nicht imagecopyresampled() und imagecreatetruecolor() verwendet.

Die Bilder werden mit
Code:
imagecreatetruecolor();             
imagecopyresized();
erzeugt.

Code steht bisschen weiter oben.


Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 17:37, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Fr 23.05.2008 19:29
Titel

Antworten mit Zitat Zum Seitenanfang

versuch mal imagecopyresampled() anstelle von ...resized()
  View user's profile Private Nachricht senden
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 23.05.2008 19:59
Titel

Antworten mit Zitat Zum Seitenanfang

Wunderbar! Lächel Wozu gibts dann eigentlich imagecopyresized();?

Habt ihr für das andere Problem ne Lösung?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 23.05.2008 21:00
Titel

Antworten mit Zitat Zum Seitenanfang

Smooth-Graphics hat geschrieben:
Wunderbar! Lächel Wozu gibts dann eigentlich imagecopyresized();?


Zum resizen ohne Interpolation *zwinker*

Smooth-Graphics hat geschrieben:
Habt ihr für das andere Problem ne Lösung?


Ich habe mir dass jetzt nicht genau angesehen, aber ich gehe mal davon aus dass die ids der Bilder
nicht durchlaufend sind, da anscheinend unters. Kategorien vorhanden sind.
Die aktuelle Zeile daher anhand der ID zu identifzieren wird nicht funktionieren wenn du nicht die
vorherige und folgende ID ermittelst. Daher solltest du es etwas anders angehen:

Code:
$page = (int) $_GET['page']
$c = SELECT COUNT(id) as ...
bild = SELECT pfad FROM ... LIMIT $page, $page+1

$c ist in dem fall ja gleich der anzahl an seiten (ein bild pro seite)

if($page > 1) {
   zurück
}
if($page<$c) {
   vor
}
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Smooth-Graphics
Threadersteller

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Fr 23.05.2008 22:35
Titel

Antworten mit Zitat Zum Seitenanfang

Hab das jetzt so gelöst:

Code:

// Vor / Zurück Link
         $sqlx = "SELECT ID, path, thumb, name FROM galerie";
         $resultx = mysql_db_query("knipsolina_galerie", $sqlx);
         $rowsx = mysql_num_rows($resultx);
         
         // Zurück Link
         $lastid = "SELECT max(ID) FROM galerie WHERE category='".$category."' AND ID<'".$img."'";
         $last_id = mysql_db_query("knipsolina_galerie", $lastid);
         while($zeile=mysql_fetch_array($last_id))
         {
            $minus_id = $zeile[0];
         }
         // Vor Link
         $nextid="SELECT min(id) FROM galerie WHERE category='".$category."' AND id>'".$img."'";
         $next_id= mysql_query($nextid);
         while ($zeile=mysql_fetch_array($next_id))
         {
            $plus_id = $zeile[0];
         }


Danke an euch alle! Danke für eure Hilfe!!! Lächel


Zuletzt bearbeitet von Smooth-Graphics am Fr 23.05.2008 22:36, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst So 25.05.2008 03:16
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Wunderbar! Lächel Wozu gibts dann eigentlich imagecopyresized();?

Klick
Bist du eigenzlich schon mal auf die Idee gekommen, einen Blick ins PHP-Handbuch zu werfen?
Das sollte eigentlich jeder PHP-Programmierer kennen.

Und ansonsten könnte auch SelfPHP noch für dich interessant sein.


und was mir noch aufgefallen ist...
Code:
$resultx = mysql_db_query("knipsolina_galerie", $sqlx);

Warum arbeitest du mit der Funktion mysql_db_query()?
Setz besser mysql_query() ein.
Denn:
Zitat:
Hinweis: Diese Funktion ist seit PHP 4.0.6 veraltet. Verwenden Sie diese Funktion nicht. Stattdessen sollten Sie die Funktionen mysql_select_db() und mysql_query() verwenden.
(Quelle)

Außerdem frage ich mich, wo deine Variablen herkommen, die du in deine Abfragen einbaust.
Ich kann das nicht erkennen, wie/ob du die behandelst/sicherst.
Wenn Variablen von außen kommen, darfst du diese niemals ungeprüft in deine Abfragen einbauen.
Eine Absicherung mit mysql_real_escape_string() ist das Mindeste, was du tun solltest.
Andernfalls wäre ein Angriff auf dein Script per SQL-Injektion denkbar.
  View user's profile Private Nachricht senden
 
Ähnliche Themen [Hilfe] Thumbnails erstellen
Thumbnails mit Dateiinformationen erstellen
[PHP Advanced] Grafik aus PLZ erzeugen
Advanced Image Swap
[CSS advanced?] flexiblen werbebanner positionieren
PHP Thumbnails per FTP speichern?
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4, 5  Weiter
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.