Bildergallery + Logo einbau als Schutz

Dolphon

Erfahrenes Mitglied
Moin.

Folgendes:
Ich habe ein Bildergallery Skript, was mir von nem großen Foto ein mittleres und ein Thump erstellt.
Jetzt würde ich allerdings gerne, das die Bilder mit einer Signatur geschützt werden.
Und zwar so wie in dem Bild was ich als Link angeben habe.

Link

Das Logo unten rechts haben wir per Hand eingebaut. Allerdings würde das vielzulange dauern.
Deswegen würde ich das geren automatiesiren.

MFG

Dolphon
 
so hab mal ein bisschen getüffelt,
Leider klappt es nicht ganz. gebe gleich mal einen Teil des Codes an. der zeigt mir nur noch ein großes Bild an. Der verkleinert die nicht mehr, auch gibt er nicht alle Fotos mehr aus.

PHP:
 function BildVerkleinern( $file, $new_sz, $kennzchng, $qual = 75) {


    $source = "source.gif";
    
    $image = imagecreatefromjpeg($file);
    $insert = imagecreatefromgif($source);
    
    imagecopymerge($image, $insert, 100, 100, 0, 0, 10, 10, 50 );
    
    $file2 = Imagejpeg($image);

     $src = ImageCreateFromJpeg( $file2 );

     //Neue Höhe und Breite berechnen:
     if( ImageSX($src) >= ImageSY($src) ) { //Breite >= Höhe
        $new_w = $new_sz; //Breite ist größer
        $new_h = ( $new_sz * ImageSY($src) ) / ImageSX($src);
     }
     else if( ImageSY($src) > ImageSX($src) ) { //Höhe > Breite
        $new_w = ( $new_sz * ImageSX($src) ) / ImageSY($src);
        $new_h = $new_sz; //Höhe ist größer
     }

     //Ziel:
     if( ! $this->version ) //GD-Version berücksichtigen
        $dst = ImageCreate( $new_w, $new_h );
     else
        $dst = ImageCreateTruecolor( $new_w, $new_h );

     //Bild verkleinern
     if( ! ImageCopyResized($dst, $src, 0, 0, 0, 0, $new_w, $new_h, ImageSX($src), ImageSY($src)) )
        return false;

     //Neuen Dateinamen erstellen:
     $new_bild = ereg_replace( ".".$this->bilder_endung."$", $kennzchng.".jpg", $file );

     //Bild mit Qualitätsangabe speichern
     if( ! imagejpeg ( $dst, $new_bild, $qual) )
        return false;

     return true;
   }
 
Ich stell dir mal meine Lösung (mit bikubischer Neuberechnung) ein.
PHP:
function c_thumb ($old, $new)
{

	// Bilddaten ermitteln 
	$size=getimagesize($old); 
	$breite=$size[0]; 
	$hoehe=$size[1]; 
	$neueBreite=100; 
	$neueHoehe=intval($hoehe*$neueBreite/$breite); 

/*	if($size[2]==1)
	{ 
		// GIF 
		$altesBild=ImageCreateFromGIF($new); 
		$neuesBild=imageCreate($neueBreite,$neueHoehe); 
		imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
		imageGIF($neuesBild,$new); 
	} 
*/
	if($size[2]==2)
	{ 
		// JPG 
		$altesBild=ImageCreateFromJPEG($old); 
		$neuesBild=imageCreate($neueBreite,$neueHoehe); 
		imageCopyResampleBicubic($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
		ImageJPEG($neuesBild,$new); 
	} 
/*
	if($size[2]==3)
	{ 
		// PNG 
		$altesBild=ImageCreateFromPNG($old); 
		$neuesBild=imageCreate($neueBreite,$neueHoehe); 
		imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe); 
		ImagePNG($neuesBild,$new); 
	} 
*/
}
function ImageCopyResampleBicubic ($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) 
/* 
port to PHP by John Jensen July 10 2001 -- original code (in C, for the PHP GD Module) by jernberg@fairytale.se 
*/ 
{ 
   for ($i = 0; $i < 256; $i++) {  // get pallete. Is this algoritm correct? 
       $colors = ImageColorsForIndex ($src_img, $i); 
       ImageColorAllocate ($dst_img, $colors['red'], $colors['green'], $colors['blue']); 
   } 

   $scaleX = ($src_w - 1) / $dst_w; 
   $scaleY = ($src_h - 1) / $dst_h; 

   $scaleX2 = $scaleX / 2.0; 
   $scaleY2 = $scaleY / 2.0; 

   for ($j = $src_y; $j < $dst_h; $j++) { 
       $sY = $j * $scaleY; 

       for ($i = $src_x; $i < $dst_w; $i++) { 
           $sX = $i * $scaleX; 

           $c1 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, (int) $sX, (int) $sY + $scaleY2)); 
           $c2 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, (int) $sX, (int) $sY)); 
           $c3 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, (int) $sX + $scaleX2, (int) $sY + $scaleY2)); 
           $c4 = ImageColorsForIndex ($src_img, ImageColorAt ($src_img, (int) $sX + $scaleX2, (int) $sY)); 

           $red = (int) (($c1['red'] + $c2['red'] + $c3['red'] + $c4['red']) / 4); 
           $green = (int) (($c1['green'] + $c2['green'] + $c3['green'] + $c4['green']) / 4); 
           $blue = (int) (($c1['blue'] + $c2['blue'] + $c3['blue'] + $c4['blue']) / 4); 

           $color = ImageColorClosest ($dst_img, $red, $green, $blue); 
           ImageSetPixel ($dst_img, $i + $dst_x, $j + $dst_y, $color); 
       } 
   } 
}
Musst du natürlich auch ein wenig anpassen. Aber sieht gut aus.
Du musst übrigens beim neuen Bild (das Thumbnail) zunächst ImageCreate () verwenden. Und erst am Ende ImageJPEG ().
 
Thx für deine Lösung, allerdings hab ich oben nur einen Teil das Code4s gepostet. Deien Lösung umzuschreiben würde viel eit kosten, und sicherlich wieder ne menge Fehler bei reinkommen.

Hab hier mal ne Funkiton geschrieben, die einfach nur ein Bild auf ein anders kopieren soll. Allerdigns klappt das nicht richitg. in der Ausgabe seh ich von dem anderen Bild nichts. Nachdem er die beiden Bilder zusammengebaut hat, soll er das original Bild auf welches das ander Foto kopiert hat, mit der zusammengesetzten Bild überschreiben.

PHP:
function Bildneubauen( $file ) {

//$source = "source.gif"; 
     
   // $image = imagecreatefromjpeg($file); 
    //$insert = imagecreatefromgif($source); 
     
    //imagecopymerge($image, $insert, 100, 100, 0, 0, 10, 10, 50 ); 
     
    //Imagejpeg($image); }


$im = "source.gif";


// create the resource id
$image_id = imageCreateFromGif($im);

// get image size
$im_X = ImageSX($image_id);
$im_Y = ImageSY($image_id);

// or use a background image like this
$backgroundimage = imageCreateFromJPG($file);


// merge the two together with alphablending on!
ImageAlphaBlending($backgroundimage, true);
imagecopy($backgroundimage, $image_id, 0, 0, 0, 0, $im_X, $im_Y);

//Neuen Dateinamen erstellen:
     $new_bild = ereg_replace( $file );

     //Bild mit Qualitätsangabe speichern
     if( ! imagejpeg ($backgroundimage, $new_bild) )
        return false;

     return true;


}
 
...und das ganze mit nem text aus ner db

hi leute,
hab eure beiträge mit spannung gelesen.

jetzt stellt sich für mich nur die frage, geht das auch mit normalem text oder evtl. sogar mit ner ttf schriftart.

ich bastel auch gerade an so einem script, komme aber nicht weiter.

ich möchte über ein hochgeladenes bild einen text legen, den ich aus ner datenbank hole.

das soll dann geschehen wenn ich z.B. das bild auto.jpg
so aufrufe

<IMG src="auto.php" xxxxxetc>

kann mir da jemand helfen?
danke im vorraus
 
ja das hab ich auch schonmal gelesen, werd daraus aber nicht schlau.
außerdem wir da auch ein neues bild erstellt, ich möchte diesem schriftzug ja über ein vorhandenes bild ziehen. aber trozdem danke. vielleicht kommt hier ja nich jemand vorbei der das problem auch schon mal hatte und posted hier seinen quelltext.
 
Das Bild was dabei erstellt wird ist sozusagen temporär und niemand hält dich davon ab, es unter dem gleichen Namen zu speichern, wie das Ausgangsbild.

Entsprechende Threads, die das Thema behandeln, gibt es übringens schon einige. Einfach mal die Suche bemühen und bitte in Zukunft unbedingt an unsere Netiquette in Bezug auf Groß/Kleinschreibung achten ;).
 
Habe ich, schon bevor ich diesen Thread gelesen habe.
Das macht man doch so bei euch?!

Ich poste hier auch nicht um nur zu hören: " guck doch wo anders, oder such doch bei google", dafür brauch ich in kein Forum schreiben.

Ich wollte mich mit Leuten unterhalten, die die selben Probleme haben oder nur Langeweile haben und mir einfach aus nettigkeit helfen.

mfg
 
Zurück