Loading...   Upload Image

Thumbnail und Kategorieauswahl.Forum » Webzone » PHP & MySQL » Thumbnail und Kategorieauswahl.

Neues Thema verfassen Neues Thema

  • DJaneMauziUser ist offline
    Beginner


    DJaneMauzi

    Registriert: 27.04.2008
    Beitraege: 42

    21.07.2012 um 14:07 Uhr

    Hallo ich habe mal wieder ein paar Probleme! :(

    Ich möchte gerne eine Bildergallerie erstellen, wo es nur PNG/Tubes/Render zur Auswahl gibt. Es klappt auch wunderbar so wie ich es mir vorgestellt habe, doch hier liegt auch das Problem. Die Thumbnail-Hintergrund ist Schwarz, allerdings würde ich gerne den Hintergrund mit einem Bild verzieren. Allerdings finde ich keine passende Funktion.

    Auch da ich mit Include arbeite, lässt sich die Kategorie nicht richtig einarbeiten.

    Hier auf jedenfall mal meinen Code für die Thumbnails.

    destroy();
    				if (file_exists($data)) {
    					$this->fullName = $data;
    					$this->imgtyp = strtoupper($this->endung($data));
    					if($this->imgtyp == ".JPG") {
    						$this->img = @ImageCreateFromJpeg($data);
    					} elseif($this->imgtyp == ".GIF") {
    						$this->img = @ImageCreateFromGif($data);
    					} elseif($this->imgtyp == ".PNG") {
    						$this->img = @ImageCreateFromPng($data);
    					}
    					$this->fileInfo = basename($data);
    				} else {
    					$this->img = @ImageCreateFromString($data);
    				}
    		
    				if (!$this->img) {
    					$this->destroy();
    					return false;
    				} else {
    					$this->orgX = ImageSX($this->img);
    					$this->orgY = ImageSY($this->img);
    					return true;
    				}
    			}
    			
    			public function endung($datei) {
    				$endung = explode(".",$datei);
    				return ".".$endung[(count($endung)-1)];
    			}
    			public function umbruch($string) {
    				$string = str_replace(">",">",addslashes($string));
    				$string = str_replace("<","<",$string);
    				$string = str_replace("\n","
    ",$string); return $string; } // Höhe des aktuellen Bildes im Container zurückgeben, false bei Fehler function height() { if ($this->img) { return ImageSY($this->img); } else { return false; } } // Breite des aktuellen Bildes im Container zurückgeben, false bei Fehler function width() { if ($this->img) { return ImageSX($this->img); } else { return false; } } // Qualität für Ausgabe setzen function setQuality($quality = false) { if ($this->img && $quality) { $this->quality = $quality; } else { return false; } } // Thumbnail erzeugen function resize($newX = false,$newY = false) { if ($this->img) { $X = ImageSX($this->img); $Y = ImageSY($this->img); $newX = $this->_convert($newX,$X); $newY = $this->_convert($newY,$Y); if (!$newX && !$newY) { $newX = $X; $newY = $Y; } if (!$newX) { $newX = round($X / ($Y / $newY)); } if (!$newY) { $newY = round($Y / ( $X / $newX)); } if ( ! $newimg = ImageCreateTruecolor($newX,$newY)) { $newimg = ImageCreate($newX,$newY); } if ( ! ImageCopyResampled ($newimg, $this->img, 0, 0, 0, 0, $newX, $newY,$X,$Y)) { ImageCopyResized ($newimg, $this->img, 0, 0, 0, 0, $newX, $newY,$X,$Y); } $this->img = $newimg; return true; } else { return false; } } // Schneidet ein Bild neu zu /* Werte für cut (X stellt das Ergebnis dar) $srcX +---+--------------+ $srcY | | | +---+---+ | | | X | $newY | Ursprungsbild | +---+ | | $newX | | | +------------------+ */ function cut($newX,$newY,$srcX = 0,$srcY = 0) { if ($this->img) { $X = ImageSX($this->img); $Y = ImageSY($this->img); $newX = $this->_convert($newX,$X); $newY = $this->_convert($newY,$Y); if (!$newX) { $newX = $X; } if (!$newY) { $newY = $Y; } if ( ! $newimg = ImageCreateTruecolor($X,$Y)) { $newimg = ImageCreate($X,$Y); } ImageCopy ($newimg,$this->img,0, 0, 0, 0,$X,$Y); ImageDestroy($this->img); if ( ! $this->img = ImageCreateTruecolor($newX, $newY)) { $this->img = ImageCreate($newX, $newY); } imagecopy ($this->img,$newimg, 0, 0,$srcX, $srcY, $newX, $newY); ImageDestroy($newimg); return true; } else { return false; } } /* schneidet ein Teil mit Größe newX und newY an festgelegten Stellen des Bildes zu $pos = Position welches Teil verwendet werden soll +---+---+---+ | 1 | 2 | 3 | +---+---+---+ | 4 | 5 | 6 | +---+---+---+ | 7 | 8 | 9 | +---+---+---+ */ function autocut($newX,$newY,$pos = 5) { if ($this->img) { $X = ImageSX($this->img); $Y = ImageSY($this->img); $newX = $this->_convert($newX,$X); $newY = $this->_convert($newY,$Y); if (!$newX) { $newX = $X; } if (!$newY) { $newY = $Y; } switch ($pos) { case 1: $srcX = 0; $srcY = 0; break; case 2: $srcX = round(($X / 2)-($newX/2)); $srcY = 0; break; case 3: $srcX = ImageSX($this->img) - $newX; $srcY = 0; break; case 4: $srcX = 0; $srcY = round(($Y / 2)-($newY/2)); break; case 5: $srcX = round(($X / 2)-($newX/2)); $srcY = round(($Y / 2)-($newY/2)); break; case 6: $srcX = $X-$newX; $srcY = round(($Y / 2)-($newY/2)); break; case 7: $srcX = 0; $srcY = $Y - $newY; break; case 8: $srcX = round(($X / 2)-($newX/2)); $srcY = $Y-$newY; break; case 9: $srcX = $X- $newX; $srcY = $Y - $newY; break; default: $srcX = round(($X / 2)-($newX/2)); $srcY = round(($Y / 2)-($newY/2)); } return $this->cut($newX,$newY,$srcX,$srcY); } else { return false; } } // erzeugt ein Quadrat des Bildes mit Kantenlänge von $size // ist das Bild nicht quadratisch kann mit $pos // der Bildausschnitt festgelegt werden, Werte siehe function autocut function cube($size,$pos = 5) { if ($this->img) { $X = ImageSX($this->img); $Y = ImageSY($this->img); if ($X > $Y) { $newX = false; $newY = $size; } elseif ($X < $Y) { $newX = $size; $newY = false; } else { $newX = $size; $newY = $size; } if ($this->resize($newX,$newY)) { return $this->autocut($size,$size,$pos); } else { return false; } } else { return false; } } // erzeugt ein Bild dessen größte Kantenlänge $size ist function maxSize($size) { if ($this->img) { $X = ImageSX($this->img); $Y = ImageSY($this->img); if ($X > $Y) { $newX = $size; $newY = false; } elseif ($X < $Y) { $newX = false; $newY = $size; } else { $newX = $size; $newY = $size; } return $this->resize($newX,$newY); } else { return false; } } // erzeugt ein Bild dessen kleinste Kantenlänge $size ist function minSize($size) { if ($this->img) { $X = ImageSX($this->img); $Y = ImageSY($this->img); if ($X > $Y) { $newX = false; $newY = $size; } elseif ($X < $Y) { $newX = $size; $newY = false; } else { $newX = $size; $newY = $size; } return $this->resize($newX,$newY); } else { return false; } } // speichert das Bild als $fileName // wird $filename angegeben muss es ein voller Dateiname mit Pfad sein // ist $override wahr wird ein bestehendes Bild überschrieben, sonst nicht // Rückgabe: // true wenn geschrieben (oder überschrieben) // false on error // 0 wenn schon existiert (nur bei $override=false) function save($fileName, $override = true) { if ($this->img) { if (!file_exists($fileName) || $override) { if($this->imgtyp == ".JPG") { if (ImageJPEG($this->img,$fileName,$this->quality)) { return true; } else { return false; } } elseif($this->imgtyp == ".GIF") { if (ImageGIF($this->img,$fileName,$this->quality)) { return true; } else { return false; } } elseif($this->imgtyp == ".PNG") { if (ImagePNG($this->img,$fileName,$this->quality)) { return true; } else { return false; } } } else { return 0; } } else { return false; } } // Gibt Bild an Browser aus (Ausgabe des Headers, Destroy aufrufen), beide optional function output($sendHeader = true,$destroy = true) { if ($this->img) { if ($sendHeader) { if($this->imgtyp == ".JPG") { header("Content-type: image/jpeg"); } elseif($this->imgtyp == ".GIF") { header("Content-type: image/gif"); } elseif($this->imgtyp == ".PNG") { header("Content-type: image/png"); } } if($this->imgtyp == ".JPG") { ImageJPEG($this->img,"",$this->quality); } elseif($this->imgtyp == ".PNG") { ImagePNG($this->img,"",$this->quality); } elseif($this->imgtyp == ".GIF") { ImageGIF($this->img,"",$this->quality); } if ($destroy) { $this->destroy(); } } else { return false; } } // Setzt die Werte in der Klasse frei und löscht Bild function destroy() { if ($this->img) { ImageDestroy($this->img); } $this->img = false; $this->fileInfo = false; $this->fullName = false; $this->newX = false; $this->newY = false; $this->quality = 70; $this->orgX = false; $this->orgY = false; $this->imgtyp = false; } // rechnet prozentuale Angaben in Pixel um, erwartet // ist $value eine Prozentangabe $full als 100% in Pixel angegeben werden function _convert($value,$full = false) { if (strstr($value,"%")) { $value = trim(str_replace ("%", "", $value)); $value = ($full / 100) * $value; } if ($value < 1 && $value !== false) { $value = 1; } return $value; } } } if(file_exists($d)) { $thumbnail = new thumbnail(); $thumbnail->create($d); $thumbnail->setQuality(100); $thumbnail->resize(floor(1.3*$w)); $thumbnail->autocut($w,$h,5); $thumbnail->output(); } ?>


    Und hier ist der Code von meiner Renderseite.

    Renders

    Series:


    "; } ?>
    by autor."'","name") ?>



  • rompersUser ist offline
    Newbie


    rompers

    Registriert: 23.08.2012
    Beitraege: 3

    23.08.2012 um 11:49 Uhr

    Hallo DJaneMauzi,

    versuche diesen Code in deinem Code für PNG einzubauen.
    Bei meinen Capcha geht das so
    Da ich gerade einen Engpass an Zeit habe kann ich mir das erst zum WE anschauen

    //Hintergrund
    $bg = "background.png";
    //Orginal
    $ov = "overlay.png";
    $Grafik2 = imagecreatefrompng($ov);
    $Grafikhilf = imagecreatefrompng($bg);
    $Grafik = imagecreatefrompng($bg);
    imagecopy($Grafik, $Grafik2, 0, 0, 0, 0, 400, 120);
    imagepng($Grafik);
    imagedestroy($Grafik);



    LG rompers

[ 1 ] Seite 1 von 1


Affiliates:   Gallery Yuri  •   Blue-Graphics  •   Colorful Gfx  •   Design Grafixx  •   Chibi Graphics  •   Pat DG  •   The Seduction  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider