Avatar billede cmau Nybegynder
26. september 2006 - 19:14 Der er 12 kommentarer og
1 løsning

gd lib brug egen skriftype.

Hejsa

jeg har fået strikket noget kode sammen, som skriver en tekst centeret på et billede, men hvordan kan jeg selv vælge størrelse og skrifttype?

<?php
header("Content-type: image/jpeg");
$string = 'I fucking love you '.$_GET['text'];
$im = imagecreatefromjpeg("heart.jpg");
$color = imagecolorallocate($im, 255, 255, 255);
$px = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 170, $string, $color);
imagepng($im);
imagedestroy($im);
?>
Avatar billede Slettet bruger
26. september 2006 - 20:06 #1
Avatar billede cmau Nybegynder
26. september 2006 - 20:10 #2
Ja,har kigget på det men hvordan får jeg det flettet sammen med min $px?
Avatar billede coderdk Praktikant
26. september 2006 - 20:15 #3
Kopiér en af dine skrifttyper fra \Windows\Fonts og brug http://dk.php.net/imagettftext :)
Avatar billede coderdk Praktikant
26. september 2006 - 20:15 #4
For at udregne bredden af en tekst: http://dk.php.net/imagettfbbox
Avatar billede cmau Nybegynder
26. september 2006 - 20:43 #5
Nu har jeg leget lidt med det, men ved ikke hvordan jeg skal få den centreret
http://fuckingloveyou.com/asdd.php

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatefromjpeg("heart.jpg");

// Create some colors
$grey = imagecolorallocate($im, 128, 128, 128);
$white = imagecolorallocate($im, 250, 250, 250);

// The text to draw
if(!empty($_GET['text'])) {
$text = $_GET['text'];
} else {
$text = 'you';
}
$text = 'I fucking love '.$text.'!';
// Replace path by your own font path
$font = 'AGENCYR.TTF';

// Add some shadow to the text
imagettftext($im, 30, 0, 11, 171, $grey, $font, $text);

// Add the text
imagettftext($im, 30, 0, 10, 170, $white, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Avatar billede coderdk Praktikant
26. september 2006 - 21:01 #6
Dit link virker ikke, men prøv at tilføje:

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatefromjpeg("heart.jpg");

// Create some colors
$grey = imagecolorallocate($im, 128, 128, 128);
$white = imagecolorallocate($im, 250, 250, 250);

// The text to draw
if(!empty($_GET['text'])) {
$text = $_GET['text'];
} else {
$text = 'you';
}
$text = 'I fucking love '.$text.'!';
// Replace path by your own font path
$font = 'AGENCYR.TTF';

$sw = imagesx( $im );
$box = imagettfbbox( 30, 0, $font, $text );
$bw = abs( $box[4] - $box[0] );
$bh = abs( $box[5] - $box[1] );
// Add some shadow to the text
$posX = ( $sw - $bw ) / 2;
imagettftext($im, 30, 0, $posX+1, 171, $grey, $font, $text);

// Add the text
imagettftext($im, 30, 0, $posX, 170, $white, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Avatar billede cmau Nybegynder
26. september 2006 - 21:25 #7
Jeg har nu lavet en ændring i koden også vil jeg også gerne have teksten $name til at være centeret. http://coderdk.fuckingloveyou.com

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatefromjpeg("heart.jpg");

// Create some colors
$grey = imagecolorallocate($im, 128, 128, 128);
$white = imagecolorallocate($im, 250, 250, 250);

// The text to draw
if(!empty($_GET['name'])) {
    $name = $_GET['name'];
}
$text = 'I fucking love you,';
// Replace path by your own font path
$font = 'AGENCYR.TTF';

$sw = imagesx( $im );
$box = imagettfbbox( 30, 0, $font, $text );
$bw = abs( $box[4] - $box[0] );
$bh = abs( $box[5] - $box[1] );

// Add some shadow to the text
$posX = ( $sw - $bw ) / 2;
imagettftext($im, 30, 0, $posX+1, 171, $grey, $font, $text);
// Add the text
imagettftext($im, 30, 0, $posX, 170, $white, $font, $text);

// Add some shadow to the text
$posX = ( $sw - $bw ) / 2;
imagettftext($im, 60, 0, $posX+1, 271, $grey, $font, $name);
// Add the text
imagettftext($im, 60, 0, $posX, 270, $white, $font, $name);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Avatar billede coderdk Praktikant
26. september 2006 - 21:37 #8
heheh :) den ser da rimelig centreret ud?
Avatar billede coderdk Praktikant
26. september 2006 - 21:38 #9
Ah:

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatefromjpeg("heart.jpg");

// Create some colors
$grey = imagecolorallocate($im, 128, 128, 128);
$white = imagecolorallocate($im, 250, 250, 250);

// The text to draw
if(!empty($_GET['name'])) {
    $name = $_GET['name'];
}
$text = 'I fucking love you,';
// Replace path by your own font path
$font = 'AGENCYR.TTF';

$sw = imagesx( $im );
$box = imagettfbbox( 30, 0, $font, $text );
$bw = abs( $box[4] - $box[0] );
$bh = abs( $box[5] - $box[1] );

// Add some shadow to the text
$posX = ( $sw - $bw ) / 2;
imagettftext($im, 30, 0, $posX+1, 171, $grey, $font, $text);
// Add the text
imagettftext($im, 30, 0, $posX, 170, $white, $font, $text);

$box = imagettfbbox( 30, 0, $font, $name );
$bw = abs( $box[4] - $box[0] );
$bh = abs( $box[5] - $box[1] );
// Add some shadow to the text
$posX = ( $sw - $bw ) / 2;
imagettftext($im, 60, 0, $posX+1, 271, $grey, $font, $name);
// Add the text
imagettftext($im, 60, 0, $posX, 270, $white, $font, $name);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
Avatar billede coderdk Praktikant
26. september 2006 - 21:39 #10
Du får lige et svar :)
Avatar billede cmau Nybegynder
26. september 2006 - 21:40 #11
$bh behøves da ikke?
Avatar billede coderdk Praktikant
26. september 2006 - 22:06 #12
Nej, det er korrekt, det var hvis du ønskede at centrere på den anden led også :) Bare slet de to linjer :)
Avatar billede cmau Nybegynder
27. september 2006 - 12:35 #13
tusind tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester