Help met sigchat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frankyy

Frankyy

31/08/2007 14:04:00
Quote Anchor link
Hallo, ik heb nu een gewoon werkende sigchat,
Alleen hij zet alle tekst onder elkaar,
Mijn vraag is:, Hoe krijg je de tekst bijvoorbeeld in het midden, en hoe kan je kiezen waar hij bijv alleen 2 regels kan laten zien, (Bijv: Regel1: 35 pixel hoogte; Regel 2: 60 pixels)

Sigchat code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php

include 'config.php' ;

$image = imagecreatefrompng( "sigchat.png" ) ;// hier maakt hij het plaatje van.

/*kleuren in RGB */

$wit = imagecolorallocate( $image, 255, 255, 255 ) ;
$oranje = imagecolorallocate( $image, 255, 138, 0 ) ;
$roze = imagecolorallocate( $image, 255, 182, 193 ) ;
$groen = imagecolorallocate( $image, 0, 255, 0 ) ;
$rood = imagecolorallocate( $image, 255, 0, 0 ) ;
$blauw = imagecolorallocate( $image, 0, 0, 255 ) ;

$naam = imagecolorallocate( $image, 0,0,0 ) ;//Kleur naam instellen. 0,0,0 = Zwart 255,255,255 = Wit
$text = imagecolorallocate( $image, 255,255,255 ) ;//Kleur tekst instellen. 0,0,0 = Zwart 255,255,255 = Wit

$result = mysql_query( "SELECT * FROM signchat ORDER BY id DESC LIMIT 7" ) ;

$y = 0 ;

while ( $sql = mysql_fetch_assoc($result) )
{

    /* Hier kan je bepaalde namen een kleur geven zoals:
    $kleur = $naam;  
    if(strtolower($sql['naam']) == "superfun")
    $kleur = $rood;

    als je daarna nog een naam wilt toevoegen moet je de
    elseif functie gebruiken

    Je moet geen hoofdletters invullen.
    En boven nog even een kleur instellen
    zoals
    $oranje = imagecolorallocate($image,255,138,0);
    */
    
    $kleur = $naam ;
    if ( strtolower($sql['naam']) == "superfun" )
        $kleur = $rood ;

    elseif ( strtolower($sql['naam']) == "colour1" )
        $kleur = $groen ;

    elseif ( strtolower($sql['naam']) == "colour2" )
        $kleur = $oranje ;

    imagestring( $image, 3, 0, $y, $sql['naam'] . ":", $kleur ) ;

    $x = ( strlen($sql['naam'] . " :") * 7 ) ;
    imagestring( $image, 3, $x, $y, stripslashes($sql['bericht']), $text ) ;

    $y += 12 ;
}


header( "Content-Type: image/png" ) ;

imagepng( $image, "forum.png" ) ;
imagepng( $image ) ;

imagedestroy( $image ) ;
?>
  


Bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Frankyy
 
PHP hulp

PHP hulp

23/04/2024 18:23:05
 
Danny Roelofs

Danny Roelofs

31/08/2007 14:24:00
Quote Anchor link
Ik ken dit fenomeen verder niet, maar zo te zien wordt er dus tekst geplaatst in een plaatje en dit gebeurt via imagestring.

Met de derde parameter van de functie verplaatst je de tekst horizontaal, de zogenaamde X coordinaat.

Dus als je de tekst in het midden van het plaatje wil hebben moet je dus weten:

1. Hoe breed is het plaatje waar het tekst in komt.
2. Hoeveel neemt de tekst in beslag aan ruimte omgerekend in pixels.

De tweede parameter van imagestring is de keuze of om een voorgedefineerde font te gebruiken (0 t/m 5) en biedt ook de mogelijkheid om een externe font te gebruiken.

Maar dat is nu niet zo belangrijk, de keuze 3 heeft een bepaalde breedte en hoe breed die is, kan ik je niet zeggen maar dat is een kwestie van gokken en indien de berekening niet klopt dan verhoog of verlaag je een waarde.

Maar stel je voor dat 1 letter via imagestring, keuze font 3, 10 pixels breed is.

Je tekst die je invoert is 15 tekens lang, dus 15 tekens maal 10 pixels = 150 pixels, als het plaatje 500 pixels breed is dan hou je 500-150 = 350 pixels over.

350 gedeelt door 2 = 175

Dan heb je dus:
[175 pixels ] [je tekst van 150 pixels ] [175 pixels]

Daarmee heb je dus coordinaat X bepaald, dat dit dus 175 wordt en dan zal je tekst in theorie in het midden staan.
 
Frankyy

Frankyy

31/08/2007 18:24:00
Quote Anchor link
Ik snap hem,

Enigste nog, Hoe krijg je de tekst een stukje naar rechts ? (Ook wel, Wat moet ik veranderen in het script daarvoor)
Gewijzigd op 01/01/1970 01:00:00 door Frankyy
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.