Bilder, Logos, Wasserzeichen ...

FP4Lisa

Mitglied
Hallöchen ihr lieben ...
ich brüte da über einem Problem.

Ersteinmal zu dem was ich machen will.

Ich habe da eine Bildergallerie,
diese kann man sich in einer Gallerie
auf meiner HP anschauen.

Nun möchte ich ein Logo
oder einen einfachen Schriftzug
auf die Bilder zaubern.

Zaubern deshalb,
da ich die Quelldateien als solche
NICHT verändern möchte.

Ich habe aber auch keine Lust,
jedes Bild 2 mal zu sichern,
denn was wenn sich das Logo
oder der Schriftzug ändert?


Nun habe ich schon die SUCHE benutzt.

Zuerst dachte ich auch das dieses imagecopymerge in php was für mich ist.

Doch ich scheitere daran !

PHP:
   				 <?PHP
 				 $dir = '../../design/pics/bestof/';
   			 $verz = opendir($dir);
   			 while ($file = readdir ($verz))
   				  {
 				 if($file != "." && $file != "..")
 						 {
 						 $datei = '.'.$file;
 				 	$dateiname = explode(".",$datei);
   			$datei = $dateiname[1];
   			$endung = $dateiname[2];
 						 	if ($endung == 'jpg' OR $endung == 'gif')
 								 {
 								 //WASSERZEICHEN
 									 //$foto = '../../design/pics/'.$file;
 								 //$wasserzeichen = '../../design/logos/wasserzeichen.gif';
   
 								 //$bild = imagecreatefromjpeg($foto);
 								 //$logo = imagecreatefromgif($wasserzeichen);
   
 								 //imagecopymerge($bild, $logo, 100, 100, 0, 0, 10, 10, 50);
   
   
 										 echo '<td class="filmdia">';
 				 				 echo '<img src="'.$dir.$file.'" height=100% border="0">';
 							 	 echo '</td>';
   
 										 	echo '<td class="filmbalken"></td>';
   
 								 }
 						 }
   			 }
   			 closedir($verz);
   			 ?>

So nun habe ich folgendes Problem:
Wo steckt das neue Bild?
Ich find es nicht.
Statt dem $file müsste ich es ja nun ausgeben,
um das Wasserzeichen zu sehen !
SORRY bitte nicht lachen ;o(( Hilfeeeeeeeeeee!

Ich wäre auch mit einer einfacheren Variante zufrieden, vielleicht eine Speichersparendere!
 
PHP:
 //WASSERZEICHEN
 $foto = '../../design/pics/'.$file; //Original
 $wasserzeichen = '../../design/logos/wasserzeichen.gif'; //Wasserzeichen
 
 // Erstellen der images
 $bild = imagecreatefromjpeg($foto);
 $logo = imagecreatefromgif($wasserzeichen);
 
 //Übereinander legen der beiden Bilder
 imagecopymerge($bild, $logo, 100, 100, 0, 0, 10, 10, 50);

Kann mir bitte jemand damit Helfen,
ich habe leider keine Ahnung wie ich das hier richtig in mein Script einbaue.
Vorallem fehlt mir der Ansatz zur Bildausgabe
 
was ich in deinem Script vermisse:
PHP:
header('Content-Type: image/jpg');
ImageJPG($bild);

//vllt dazu:
imagedestroy($bild);
imagedestroy($logo);

mfg,
pflaume
 
Herzlichen Dank schon einmal für die genialen Tips von euch beiden.

Habe nun folgendes gebastelt:

Diashow.php
PHP:
				 <?PHP
 				 $dir = '../../design/pics/bestof/';
  		 $dirfile = 'design/pics/bestof/';	
  			 $verz = opendir($dir);
  			 while ($file = readdir ($verz))
  				  {
 				 if($file != "." && $file != "..")
 						 {
 						 $datei = '.'.$file;
 				 	$dateiname = explode(".",$datei);
  			$datei = $dateiname[1];
  			$endung = $dateiname[2];
 						 	if ($endung == 'jpg' OR $endung == 'gif')
 								 {
  
 										 echo '<td class="filmdia">';
 				 			 echo '<img src="../../wasserzeichen.php?pic='.$dirfile.$file.'" height=100% border="0">';
 							 echo '</td>';
  
 										 	echo '<td class="filmbalken"></td>';
  
 								 }
 						 }
  			 }
  			 closedir($verz);
  			 ?>

Wasserzeichen.php

PHP:
<?php
  //WASSERZEICHEN
  
  $foto = $_GET['pic'];
  $wasserzeichen = 'design/logos/wasserzeichen.gif';
  
  $bild = imagecreatefromjpeg("$_GET[pic]");
  $logo = imagecreatefromgif("design/logos/wasserzeichen.gif");
  
  $pic = imagecopymerge($bild, $logo, 100, 100, 0, 0, 10, 10, 50);
  
  header ('Content-Type: image/jpeg', true);
  
  imagejpg($pic);
  
  imagedestroy($bild);
  imagedestroy($logo); 
  
  ?>

Leider es noch nicht wirklich ... er bleibt beim imagecreatefromjpeg hängen.
Code:
Fatal error:  Call to undefined function:  imagecreatefromjpeg() in
 
Mhmmm ... bin am verzweifeln ... habe schon dies und das probiert. Das letzte hat mich leider nicht weiter gebracht. Das php Script bleibt in Zeile 7 mit einem Fatal ERROR stehen, das ist Fakt.

Zeile 7 ist:
PHP:
  $bild = imagecreatefromjpeg("$_GET[pic]");
in Wasserzeichen.php

Nun ist die Frage was ist falsch. Die Meldung sagt ja aus, das ich in Zeile 7 eine nicht definierte Funktion aufrufe ... *grübel* ... gehe nochmal ins php Handbuch.
Weiß jemand von Euch Rat?
 
Ich weiß nicht ob es daran liegt aber seid wann setzt man Variablen in ""

Müsste es nicht $bild = imagecreatefromjpeg($_GET[pic]); heißen?
 
bist du dir sicher das deine gd-lib "richtig" bzw. dazu passend konfiguriert ist?
Also wenn er meint, das er bei der imagecreatefromjpeg() probleme hat...
PHP:
  $foto = $_GET['pic'];
  $wasserzeichen = 'design/logos/wasserzeichen.gif';
  
  $bild = imagecreatefromjpeg($_GET['pic']);
  $logo = imagecreatefromgif("design/logos/wasserzeichen.gif");
  
  $pic = imagecopymerge($bild, $logo, 100, 100, 0, 0, 10, 10, 50);
  
  header ('Content-Type: image/JPEG', true);
  
  imageJPEG($pic);
Laut php.net gibt es keine imagejpg() funktion.. wenn dann eine imagejpeg() ;)
 
Zurück