Jakob Munck wrote:
> På denne php-side kan man læse, men ikke kopiere teksten, og der er ikke
> tale om at teksten er omdannet til et grafisk billede:
>
>
http://www.litencyc.com/php/stopics.php?rec=true&UID=1595
>
> Hvordan laves det?
>
> v.h.
> Jakob
>
>
Kig på GDlib
http://dk2.php.net/gd
F.eks.
<?php
// Set the content-type
header("Content-type: image/png");
// Create the image
$im = imagecreatetruecolor(400, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';
// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im); // Denne smider billedet til browseren
imagedestroy($im); // Frigiv hukommelse
?>
Giver noget lignende:
http://dk2.php.net/manual/en/figures/image.imagettftext.png
Du kan bruge \n i $text = 'testing...\ntesting...\n';
Bare husk at have et stort nok billede (imagecreatetruecolor)
Evt. dette eksempel:
==========
Left Right Center align/justify of text in image. It is easy and simple
to do in PHP.
Create an image from text and align them as you want. After that save or
display image.
<?php
/**
* Function for converting Text to Image.
* Kip CENTURY.TTF file in same folder.
*
* @author Taslim Mazumder Sohel
* @deprecated 1.0 - 2007/08/03
*
*/
//Example call.
$str = "New life in programming.\nNext Line of Image.\nLine Number
3\n" .
"This is line numbet 4\nLine number 5\nYou can write as you
want.";
header("Content-type: image/gif");
imagegif(imagettfJustifytext($str,"CENTURY.TTF",2));
//End of example.
/**
* @name : makeImageF
*
* Function for create image from text with selected font. Justify
text in image (0-Left, 1-Right, 2-Center).
*
* @param String $text : String to convert into the Image.
* @param String $font : Font name of the text. Kip font file
in same folder.
* @param int $W : Width of the Image.
* @param int $H : Hight of the Image.
* @param int $X : x-coordinate of the text into the image.
* @param int $Y : y-coordinate of the text into the image.
* @param int $fsize : Font size of text.
* @param array $color : RGB color array for text color.
* @param array $bgcolor : RGB color array for background.
*
*/
function imagettfJustifytext($text, $font="CENTURY.TTF",
$Justify=2, $W=0, $H=0, $X=0, $Y=0, $fsize=12,
$color=array(0x0,0x0,0x0), $bgcolor=array(0xFF,0xFF,0xFF)){
$angle = 0;
$L_R_C = $Justify;
$_bx = imageTTFBbox($fsize,0,$font,$text);
$W = ($W==0)?abs($_bx[2]-$_bx[0]):$W; //If Height not
initialized by programmer then it will detect and assign perfect height.
$H = ($H==0)?abs($_bx[5]-$_bx[3]):$H; //If Width not
initialized by programmer then it will detect and assign perfect width.
$im = @imagecreate($W, $H)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, $bgcolor[0],
$bgcolor[1], $bgcolor[2]); //RGB color background.
$text_color = imagecolorallocate($im, $color[0], $color[1],
$color[2]); //RGB color text.
if($L_R_C == 0){ //Justify Left
imagettftext($im, $fsize, $angle, $X, $fsize, $text_color,
$font, $text);
}elseif($L_R_C == 1){ //Justify Right
$s = split("[\n]+", $text);
$__H=0;
foreach($s as $key=>$val){
$_b = imageTTFBbox($fsize,0,$font,$val);
$_W = abs($_b[2]-$_b[0]);
//Defining the X coordinate.
$_X = $W-$_W;
//Defining the Y coordinate.
$_H = abs($_b[5]-$_b[3]);
$__H += $_H;
imagettftext($im, $fsize, $angle, $_X, $__H,
$text_color, $font, $val);
$__H += 6;
}
}
elseif($L_R_C == 2){ //Justify Center
$s = split("[\n]+", $text);
$__H=0;
foreach($s as $key=>$val){
$_b = imageTTFBbox($fsize,0,$font,$val);
$_W = abs($_b[2]-$_b[0]);
//Defining the X coordinate.
$_X = abs($W/2)-abs($_W/2);
//Defining the Y coordinate.
$_H = abs($_b[5]-$_b[3]);
$__H += $_H;
imagettftext($im, $fsize, $angle, $_X, $__H,
$text_color, $font, $val);
$__H += 6;
}
}
return $im;
}
?>