HTML-site forum


 · Forums · Reactie · Statistieken · Registreren · Zoeken · Regels · Tips · FAQ
HTML-site forum / Tutorials / [PHP] Tekst/Watermerk in een plaatje D.M.V. PHP
Schrijver Bericht
Wilco
Forum Lid

1503 posts
# Geplaatst: 5 Feb 2009 10:25


Tutorial Tekst in een plaatje zetten d.m.v. PHP:

Voor mensen die eventueel een tekst/watermerk in een afbeelding op hun site willen zetten, of mensen die tekst in een plaatje willen hebben en die afbeelding mag niet worden opgeslagen, heb ik deze tutorial geschreven.
met deze tutorial kun je heel gemakkelijk iets in een bestaan plaatje zetten. (je kunt met deze tut geen NIEUWE afbeeldingen maken).
Op fora's zie je nog wel eens dat rechts onderin je plaatje www.datforum.com komt te staan, of net wat, als bewijs dat dat plaatje van dat forum afkomt.
Dit is zeer gemakkelijk te creeëren d.m.v. PHP.
De code om een plaatje te creeëren is:

create_img.php:
php code
<?php
//de tekst uit je URL halen, kun je eventueel weg laten en bij $text gewoon $_GET['tekst'] zetten.
$tekst = $_GET['tekst'];
 
//aangeven dat het om een plaatje gaan d.m.v. een header (LET OP: ik heb PNG gebruikt voor betere kwaliteit!! het werkt dus WEL)
header('Content-type: image/png');
 
//Geef het plaatje aan waar dat de tekst in moet komen (kun je evt. uit database of URL halen, maar zorg ervoor dat het plaatje op je host staat!)
//het plaatje MOET .jpg of .jpeg zijn, voor andere extensies zie php.net
$im = imagecreatefromjpeg('plaatje.jpg'); 
 
//Kleuren maken: 
$white = imagecolorallocate($im, 255, 255, 255); //kleur wit
$grey = imagecolorallocate($im, 128, 128, 128); // kleur grijs
$black = imagecolorallocate($im, 0, 0, 0); //kleur zwart
//eventueel een vierkantje, dan moet je de dubbel slash voor de volgende regel weg halen.
//imagefilledrectangle($im, 0, 0, 399, 29, $white);
 
//de tekst die uit je URL komt als tekst gebruiken. ($tekst heb ik in het begin gekoppeld aan $_GET['tekst'] je kunt ook $tekst weglaten en ipv $tekst hier $_GET['tekst'] plaatsen)
$text = $tekst; 
 
//Het lettertype, let op dat deze zich op je host MOET bevinden.
$font = './fonts/TAHOMA.TTF';
 
//bij deze code zit er een schaduw achter, kan je eventueel weglaten door dubbel slash voor de volgende regel te plaatsen.
imagettftext($im, 13, 0, 13, 51, $grey, $font, $text);
 
//De originele tekst, in het zwart. en de positie ervan.
imagefttext($im, 13, 0, 12, 50, $black, $font, $tekst);
 
//Gebruik imagepng() voor een mooier en duidelijker resultaat van je plaatje!!
imagepng($im); //output
//verwijder de afbeelding weer om plaats op je host te behouden.
imagedestroy($im);
?>


Sla deze code op op je host als create_img.php en de volgende code op als: plaatje.html (namen kunnen evt veranderen, maar verander dan ook de url in je img src!
In je html kun je nou het plaatje oproepen door:

html code
<img src="create_img.php?tekst=Mijn eigen eerste plaatje!!" alt="plaatje" />


Ik hoop dat jullie er wat aan hebben. Voor meer functies en extensies zie: http://nl2.php.net/imagecreate .

 
Marcel vd Weerd
Forum Lid

1215 posts
# Geplaatst: 5 Feb 2009 12:26


Ja en wat nou als je een .gif of .bmp plaatje upload? Dan krijg je toch een error?

Wilco
Forum Lid

1503 posts
# Geplaatst: 5 Feb 2009 13:28 · Aangepast door: Wilco


Quoting: Marcel vd Weerd

Ja en wat nou als je een .gif of .bmp plaatje upload? Dan krijg je toch een error?


ja uiteraard -_-* daarom staat er:
Quoting: Wilco

Voor meer functies en extensies zie: http://nl2.php.net/imagecreate .


misschien als je logisch nadenkt dat je erop komt om imagecreatefrombmp of imagecreatefromgif te maken van imagecreatefromjpeg.

Matthew
Forum Lid

1 posts
# Geplaatst: 8 Aug 2009 05:01


hallo ik had een vraagje over dit pracht script zoek er al een tijdtje naar
iedergeval ik wil eerst zeggen ik ben nog niet super in php ben het vlink aan het leren

iedergeval je zij hier boven { Ik hoop dat jullie er wat aan hebben. Voor meer functies en extensies zie: http://nl2.php.net/imagecreate .
}

ik ben op die site nu al 3 uur bezig heb meerdere exstensies gevonden

maar kom er nog niet uit

want wat het is ik gooi op mijn site twee soorten image files en dat zijn .jpg en .png

nu begrijp ik dat als ik een png wil gebruiken

$im = imagecreatefromjpeg('plaatje.jpg');

moet veranderen naar

$im = imagecreatefromPNG('plaatje.PNG');


maar dan is dit nu me probleem hoe krijg ik die twee er in dat het niet twee scripts moet draaien om png en jpg te ondersteunen

moet ik dan

$im = imagecreatefromjpeg('plaatje.jpg');

else

$im = imagecreatefromPNG('plaatje.png');

ik kom er niet uit op die andere site zal misschien komen om dat me engels niet goed is want ik ken alleen technisch engels

ik hoop dat je kan helpen

ik zeg nogmaals ik ben niet super in php en als ik een domme vraag stel dan moet je het zeggen

vriendelijke groeten

matthew

egaTniv
Forum Lid

3599 posts
# Geplaatst: 8 Aug 2009 08:52


Je zal een extra variable mee kunnen geven in de url, dus bijvoorbeeld:
src="create_img.php?soort=png&tekst=Mijn eigen eerste plaatje!!"

In create_img.php maak je dan een zooitje if's :

php code
<?php
if(isset($_GET['soort']))
{
	if($_GET['soort'] == "gif")
	{
	  //gif code
	}
	elseif($_GET['soort'] == 'png')
	{
	  //png code
	}
	elseif($_GET['soort'] == 'jpg')
	{
	  //jpg code
	}
	else
	{
	  echo 'bestandstype wordt niet ondersteund';	
	}
}
else
{
 echo 'wat voor soort plaatje?';
}
?>


BaZz
Forum Lid

3574 posts
# Geplaatst: 8 Aug 2009 10:22 · Aangepast door: BaZz


't is een late post/reactie, maar toche even op die .bmp reageren:

Quoting: Marcel vd Weerd

Ja en wat nou als je een .gif of .bmp plaatje upload?


alleen een dwaas zou .bmp online gebruiken.... zonde van je serverruimte, bandwith en het geduld van je bezoekers....

jwvos
Forum Lid

1391 posts
# Geplaatst: 8 Aug 2009 11:02 · Aangepast door: jwvos


Update
(Update verouderd, nieuwe update beschikbaar)

Update 2 (voorbeeldje)
Ik heb er een tool aan toegevoegd waarmee je zelf de kleur van de text kunt opvragen via de html code (bv.: Zwart: #000, Wit: #FFFFFF) (de kleuren 'grey', 'black' en 'white' zijn op te vragen via de naam):
Code:
php code
<?php
//de tekst uit je URL halen, kun je eventueel weg laten en bij $text gewoon $_GET['tekst'] zetten.
$tekst = addslashes($_GET['tekst']);
$image = addslashes($_GET['img']); 
//aangeven dat het om een plaatje gaan d.m.v. een header (LET OP: ik heb PNG gebruikt voor betere kwaliteit!! het werkt dus WEL)
 
 
if (!file_exists($image)){
  die ("Unknown image file");
}
 
//Geef het plaatje aan waar dat de tekst in moet komen (kun je evt. uit database of URL halen, maar zorg ervoor dat het plaatje op je host staat!)
//het plaatje MOET .jpg of .jpeg zijn, voor andere extensies zie php.net
$extension = explode(".", $image);
$extension = strtolower(end($extension));
 
switch ($extension){
 
  case 'jpg':
    $im = imagecreatefromjpeg($image); 
  break;
  case 'jpeg':
    $im = imagecreatefromjpeg($image);
  break;
  case 'gif':
    $im = imagecreatefromgif($image);
  break;
  case 'bmp':
    $im = imagecreatefrombmp($image);
  break;
  default:
    die("Unknown filetype");
  break;
 
}
 
header('Content-type: image/png');
 
$c = imagecolorallocate($im, 0, 0, 0); //kleur zwart
 
if (isset($_GET['txtcolor'])){
  $colorArray = Array ("white" => "FFFFFF", "black" => "000", "grey" => "808080");
 
  if (isset($colorArray[strtolower(addslashes($_GET['txtcolor']))]))
    $a = $colorArray[strtolower(addslashes($_GET['txtcolor']))];
  else
    $a = addslashes($_GET['txtcolor']);
 
  $hexArray = sscanf('#'.$a, '#%2x%2x%2x');
  $c = imagecolorallocate($im, $hexArray[0], $hexArray[1], $hexArray[2]);
}
 
//eventueel een vierkantje, dan moet je de dubbel slash voor de volgende regel weg halen.
//imagefilledrectangle($im, 0, 0, 399, 29, $white);
 
//Het lettertype, let op dat deze zich op je host MOET bevinden.
$font = 'calibri.ttf';
 
//De originele tekst, in het zwart. en de positie ervan.
imagefttext($im, 20, 0, 5, 25, $c, $font, $tekst);
 
//Gebruik imagepng() voor een mooier en duidelijker resultaat van je plaatje!!
imagepng($im); //output
//verwijder de afbeelding weer om plaats op je host te behouden.
imagedestroy($im);
?>


Reactie

Tekst vet maken  Tekst cursief maken  Tekst onderstrepen  Afbeelding invoegen  Insert YouTube video  Link invoegen  html code invoeren  css code invoeren  php code invoeren   javascript code invoeren  Uitschakelen *Wat is dat?


» Naam  » Wachtwoord 
 Alleen geregistreerde bezoekers kunnen hier een bericht plaatsen. Je kunt inloggen of je hier registreren.

 



Dit forum is gebaseerd op miniBB © 2001-2010

cursus html


Sponsor: BlueYellow

Sitemap