• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PNG OnTheFly verkleinern

Status
Für weitere Antworten geschlossen.

Voodoo

Mitglied
Ja, ich weiß Google ist mein Freund, aber diesmal komme ich auch mit Google nicht weiter.
Und zwar geht es diesmal um richtiges OnTheFly. Das heißt die Source-Datei wird ebenfalls erst generiert.
Ok... folgendes.
Es wird ein Bild über die TTF-Funktionen erstellt. Leider greift das anti-aliasing erst ab 15pt. Ich hätte es aber gerne kleiner. Also möchte ich das Bild noch verkleinern. Dummerweise hab ich im Netz nur Beispiele mit existierenden Bilddateien gefunden.
Hier einmal mein bisheriger Code:

PHP:
$font = 'CALIBRI.TTF'; 

function lastrack() { // Ermittelt den letzten Track
    $handle = fopen ("http://ws.audioscrobbler.com/1.0/user/mrmaris/recenttracks.txt", "r");
while (!feof($handle) AND $as == 0) {
    $buffer .= fgets($handle, 4096);
    $as++;
}
$datum = preg_replace('/([0-9]+),(.+)/',"$1",$buffer);
$track = preg_replace('/([0-9]+),(.+)/',"$2",$buffer);
fclose ($handle);
return date("H:i:s",$datum) . " $track";
}

$text = lastrack();
$font_size = 15;
$bbox = imagettfbbox($font_size, 0, $font, $text);
$size_w = abs($bbox[2] - $bbox[0]);
$size_h = abs($bbox[7] - $bbox[1]);
$x = -abs($bbox[0]); 
$y = $size_h - abs($bbox[1]);

$im = imagecreatetruecolor($size_w+20, $size_h+20);// Wegen des Angle +20
$back = imagecolorallocate($im, 250, 250, 250); // background color
$fore = imagecolorallocate($im, 0, 0, 0); // foreground color

imagefilledrectangle($im, 0, 0, $size_w+20, $size_h+20, $back);
// filling with background color

imagettftext($im, $font_size, 4, $x+10, $y+20, - $fore, $font, $text);
            
imagecolortransparent ( $im, $back );
// rendering text

header("Content-type: image/png");
ImagePNG($im); 
imagedestroy($im);

Es wäre toll, wenn mir jemand helfen könnte

mfG
Voodoo
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben