Zur Navigation

Bilderupload, resizen und mit Wasserzeichen versehen [2]

11 tobi

dann werd ich mal schauen wie diese Einstellung bei meinem Webspace ist.

wie ist dass nun mit dem Wasserzeichen?
wie bekomme ich das zusammen kombiniert, denn für Bilder welche kleiner als 2mb sind kann ich dass ja schon mal ausprobieren?

EDIT: upload_max_filesize liegt laut php-info bei 2M. heißt wohl, alle Bilder, welche größer als 2mb sind kann ich vergessen?

07.02.2010 18:08 | geändert: 07.02.2010 18:18

12 Jörg Kruse

wie ist dass nun mit dem Wasserzeichen?
wie bekomme ich das zusammen kombiniert, denn für Bilder welche kleiner als 2mb sind kann ich dass ja schon mal ausprobieren?

Wenn du nach dem von mir verlinkten Tutorial gehst, verlinkst du nicht das Bild direkt, sondern die PHP-Datei, die das Bild erzeugt und ausgibt

EDIT: upload_max_filesize liegt laut php-info bei 2M. heißt wohl, alle Bilder, welche größer als 2mb sind kann ich vergessen?

Es sei denn, du kannst die Einstellungen dort ändern (lassen). Falls PHP als Apache-Modul läuft und dein Webhoster solche Änderungen zulässt, kannst du die Grenze vielleicht auch über einen Eintrag in der .htaccess einstellen:

php_value upload_max_filesize "4M"

08.02.2010 01:39

13 tobi

ich habs nun mal so ausprobiert:
<?php
   if( isset($_POST['submit']) ) {
      include('SimpleImage.php');
 
      $image = new SimpleImage();
      $image->load($_FILES['uploaded_image']['tmp_name']);
	  $image->resize (700, 525); 
	  $image->save('bilder/Bild_01.JPG');
	  
//Bilder in Variablen Laden
$Grafik = ImageCreateFromJPEG("bilder/Bild_01.JPG");
$Wasserzeichen = ImageCreateFromJPEG("wasserzeichen.jpg");
//Bearbeitung
ImageCopy($Grafik, $Wasserzeichen,
imagesx($Grafik)-imagesx($Wasserzeichen),
imagesy($Grafik)-imagesy($Wasserzeichen), 0, 0,
imagesx($Wasserzeichen),
imagesy($Wasserzeichen));
//Bilder ausgabe
imagejpeg($Grafik);
//Bild Speichern
imagejpeg($Grafik, "bilder/Bild_01.JPG");	  
	  
   } else {
?>

   <form action="upload.php" method="post" enctype="multipart/form-data">
      <p>Bild 1:
	  <input type="file" name="uploaded_image" />
	  </p>
	  <input type="submit" name="submit" value="Upload" />
	  </p>
   </form>

<?php
   }
?>

das Bild wird mit dem Wasserzeichen gespeichert, allerdings tauchen auf meiner upload.php Seite, nach dem hochladen eine Menge an komischen Zeichen auf:
ÿØÿà?JFIF??????ÿþ?>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛ?C?    $.' ",#(7),01444'9=82<.342ÿÛ?C  2!!22222222222222222222222222222222222222222222222222ÿÀ? ¼"?ÿÄ??????????? ÿÄ?µ???}?!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ???????? ÿÄ?µ??w?!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ? ????ñüRâÓ»ROJ\qIüîÔ?«AëBÒµ?!û´£îÑü/Ý (Ç”sŠ?Eêh=(^´?^Ô'Z_á‹ÔÓ?ŽŸŽi§ïS©?w¤ïKÞ“½?9zÒúҝހŽiÇ¥7½>€#«V™æ«U‹3ó`^íT¯$«Â©Þ˜PLPGQT!)Eè¤âŠ( ŒQE?b’–˜b–*}ñIJ¿xP´_pS.Õš| ¦ÜÝš’ŠöñÂÃ.y«È¶ª;

etc.

wie schaut es aus mit einem Textwasserzeichen, gibts da auch ein schönes Tut? Denn ich würde gerne "© 123.de - 2010" und keine Grafik einbauen

08.02.2010 16:55 | geändert: 08.02.2010 16:55

14 Jörg Kruse

Da fehlt noch der HTTP-Header, der dem Browser sagt, dass es sich bei der Ausgabe um ein Bild handelt:

header('Content-type: image/jpeg');

wie schaut es aus mit einem Textwasserzeichen, gibts da auch ein schönes Tut?

Zum Schreiben von Text in Bilder gibt es die Funktion imagestring()

08.02.2010 18:40 | geändert: 08.02.2010 18:40

15 tobi

wenn ich den HTTP-Header einbaue kommt eine Fehlermeldung und die ganzen Zeichen:

Warning: Cannot modify header information - headers already sent by

EDIT: aber das Bild ist mit Grafik-Wasserzeichen gespeichert

08.02.2010 18:46 | geändert: 08.02.2010 18:48

16 Jörg Kruse

HTTP-Header müssen vor der ersten Ausgabe eingebaut werden (wozu z.B. auch Leerzeilen vor dem "<?php" zählen)

08.02.2010 18:50

17 tobi

da war in der tat noch ein leezeichen und zwar in der includeten Php-Datei. habe ich entfernt, nun zeigt er mir das fertige Bild an.

was anderes, ich habe nun mal testweise folgendes ausprobiert, welches in deinem einen Beitrag verlinkt war:
<?php
Header ("Content-type: image/gif");
$im = imagecreate (400, 30);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
ImageTTFText ($im, 20, 0, 10, 20, $white, "/path/arial.ttf",
"Teste... Omega: &#937;");
ImageGif ($im);
ImageDestroy ($im);
?>

laut Beschreibung sollte ja eine schwarze GIF-Grafik von 400x30 Pixel mit dem weissen Text "Teste..." im TT-Font Arial erzeugt werden, wird es aber bei mir nicht. Bei mir wird ausgegeben: Die Grafik "Webadresse" kann nicht angezeigt werden, weil sie Fehler enthält.

EDIT: Liegt dass evtl an der arial.tff?

EDIT2 : hab eben eine XFILES.TTF gefunden, welche ich ins gleiche Verzeichnis hochgeladen habe, und die Zeile dann so abgeändert:
ImageTTFText ($im, 20, 0, 10, 20, $white, "/XFILES.TTF",
ändert aber am Ergbnis auch nichts

09.02.2010 18:32 | geändert: 09.02.2010 19:13

18 Jörg Kruse

"/XFILES.TTF" bedeutet, dass die Datei im Rootverzeichnis des Betriebssystems liegt - wenn die Datei im gleichen Verzeichnis wie das PHP-Script liegt, musst du den führenden Slash weglassen.

10.02.2010 08:48 | geändert: 10.02.2010 08:48

19 tobi

Ändert auch nichts, leider.

10.02.2010 16:56 | geändert: 10.02.2010 16:57

20 Jörg Kruse

Ich habe es grad mal getestet, bei mir funktioniert es auch nur, wenn ich den absoluten Pfad angebe, unter Debian Linux:

ImageTTFText ($im, 20, 0, 10, 20, $white, "/usr/share/fonts/truetype/msttcorefonts/arial.ttf", "Teste... Omega: &#937;");

Andernfalls findet GD den Font wohl nicht

Musst halt schauen, wo die bei dir liegen

Ansonsten kommentier das header() mal aus, dann wird eine PHP-Fehlermeldung ausgegeben.

Und schau dir den Abschnitt von phpinfo() unter gd an, ob die GD- und FreeType-Bibliothek installiert sind; bei mir sieht der Abschnitt so aus:

GD Support          enabled 
GD Version          2.0 or  higher 
FreeType Support    enabled 
FreeType Linkage    with freetype 
FreeType Version    2.3.7 
T1Lib Support       enabled 
GIF Read Support    enabled 
GIF Create Support  enabled 
JPG Support         enabled 
PNG Support         enabled 
WBMP Support        enabled

11.02.2010 11:52 | geändert: 11.02.2010 11:54