php-Grafik-Cracks bitte mal schauen > Text in jpeg einfügen, geht/geht nicht

falkgottschalk

falkgottschalk

Aktives Mitglied
Thread Starter
Dabei seit
22.08.2005
Beiträge
24.076
Reaktionspunkte
1.619
Hallo liebe Chefentwickler,

hier kommt man wieder eine Denksportaufgaben.
Angelehnt an meinen anderen Thread mit der Webcam hier mein Lösungsansatz fürs Einbunden eines Timestamps.

PHP:
<?php
$filename = 'webcam.jpg';
if (file_exists($filename))
{
header ("Content-type: image/jpeg");
$string = "Aktuelles Foto von XXXXX   " . date("d.m.Y H:i:s", filemtime($filename));
$font = 5;
$width = imagefontwidth($font) * strlen($string) ;
$height = imagefontheight($font) ;
$im = imagecreatefromjpeg($filename);
$x = imagesx($im) - $width -5 ;
$y = imagesy($im) - $height -5;
$backgroundColor = imagecolorallocate ($im, 255, 255, 255);
$textColor = imagecolorallocate ($im, 255, 255,255);
imagestring ($im, $font, $x, $y,  $string, $textColor);
imagejpeg($im);
imagedestroy($im);
}
else
{
header ("Content-type: text/html");die('Das File => ' . $filename . ' <= wurde nicht gefunden');
}
?>

Liest sich toll, was?

Das funktioniert so - allerdings nur "meistens".
Die Webcam lädt alle "x" Minuten ein Foto rauf (immer mit dem selben Namen...) und das geht dann 99x gut und irgendwann kommt da "nix" bei raus.
Safari zeigt ein Fragezeichen an, FireFox ist so nett und meint "die Grafik kann nicht angezeigt werden, da sie fehlerhaft ist"
Wenn ich spaßhalber das Einfügen vom Text weglasse (also eigentlich nur

PHP:
imagecreatefromjpeg
und danach
PHP:
imagejpeg

machen lasse, ist das Ergebnis auch kaputt.

Kann natürlich an einer fragwürdigen Interpretation der jpg-Standards des chinesischen Herstellers liegen - die Originalfiles lassen sich aber alle über Safari / FireFox anzeigen.
Ganz kaputt sind sie also nicht...

Tja, und nun? Was meinen die guten php-Entwickler?

Ich wäre auch für fast jeden anderen Lösungsansatz dankbar..


Merci!
 
Servus.
Ist das noch aktuell, oder wurde schon eine Lösung gefunden???

Habe das Progrämmchen mal auf meinem kleinen Debian Server gestartet...
Von 114 Bildern waren 9 defekt.
Habe immer die gleiche Quelle genommen, nur halt beim Speichern immer einen neuen Dateinamen.
Nimm Imagemagick... Damit klappt es immer. :)

Stefan
 
Das Verwenden weiterer Tools lehne ich ab für so lächerliche Anforderungen.
Habe etwas html drum herum gemacht und zeige de Infos als Text an.
 
Das Verwenden weiterer Tools lehne ich ab für so lächerliche Anforderungen.
Habe etwas html drum herum gemacht und zeige de Infos als Text an.

Selbst wenn es viel weniger Code ist?
Und IM ist sicher auch auf deinem Server vorinstalliert
Code:
$pic='ausgangbild.jpg';
$out='endbild.jpg';
$x=300; //X POSITION des Textes
$y=300; //Y POSITION des Textes
$text='-fill #SCHRIFTFARBENHEX  -font TEXTTTFAUFSERVER.TTF  -pointsize SCHRIFTGRÖSSE -draw  "text '.$x.','.$y.' ICH Bin DER zu schreibende Text"';
exec('/usr/bin/convert '.$pic.'  '.$text.' '.$out);
 
Zurück
Oben Unten