Hallo,

Eigenlijk misschien al meer een gevorderd vraagje dan een beginners vraag, maar is er ergens een nederlandstalige handleiding wat om plaatjes te maken met php.

Ik zie in de documentatie verschillende mogelijkheden om met php plaatjes te manipuleren. Ik zou willen weten of het mogelijk is om een functie te schrijven die van één van de plaatjes de voorgrond kleur aan past en dan een ander plaatje er overheen zetten?

Of om nog duidelijker te zijn wil ik markers maken om met leaflet op een OSM kaart te zetten. De markers moeten verschillende kleuren kunnen krijgen en er moet een symbooltje op de marker te maken zijn. Het symbooltje is in feite een ander .png bestandje.

Alvast bedankt voor een reactie
Hoi Ward,

Dank voor je reactie, maar weet je misschien ook iets in het Nederlands?

Technisch het makkelijkst: een deels doorzichtige PNG (in de beschikbare kleurvarianten) boven op een ondoorzichtige achtergrond plaatsen.

Is de kleur ook te wijzigen met php of is dat een stap te hoog gegrepen?
Hoeveel kleuren heb je? Is die bijvoorbeeld door de gebruiker in te stellen?

Als je een beperkt aantal standaardkleuren hebt, zou ik voor elke kleur een aparte PNG maken. Dan krijg je de natuurlijkste kleuren en kleurovergangen.

Maar met een monochrome bitmap zou je inderdaad zelf ook de voorgrondkleur moeten kunnen veranderen. Bitmaps gebruiken namelijk een kleurindex: in het beeld staat "deze pixel heeft kleur x" en in de index staat vervolgens "kleur x is deze kleur rood". Je hoeft daarom alleen de index te wijzigen. Hoe weet ik niet precies, maar je moet de oplossing in die richting zoeken.
ik wil een stuk of 20 verschillende kleuren markers (.png) maken met (voorlopig) 5 verschillende plaatjes er op. Dat zou neer komen op het maken van 100 plaatjes. Dus alles wat het flexibeler maakt is welkom.

[size=xsmall]Toevoeging op 16/02/2017 15:32:14:[/size]

hmmm, de eerste test is niet erg veelbelovend. Ik heb de code uit de documentatie over genomen:

<!DOCTYPE HTML>
<html>
<head>
<title><? echo $_SERVER['PHP_SELF'] ?></title>
</head>
<body>
<?php
	$im = imagecreatefrompng("marker_overlijden.png");
	
	header('Content-Type: image/png');
	
	imagepng($im);
	imagedestroy($im);	
?>
</body>
</html>


Ik krijg de volgende foutmelding:
<img src="view-source:http://xxxxxxxxxxx/test_img.php"; alt="De afbeelding ‘view-source:http://xxxxxxxxx/test_img.php’ kan niet worden weergegeven, omdat deze fouten bevat.">


Is mijn plaatje corrupt, of is mijn code niet goed?
Ik zou eerst een de header op lijn 10 even tijdelijk weghalen/web-commentariseren, als het goed is zie je dan een foutmelding in de vorm van een 'Headers already sent by....'. ;-)

Een plaatje is immers niet voorzien van HTML, dus dan zou je alle HTML dus moeten strippen. Je wilt een plaatje genereren, dus die zul je dan ook met de img-tag in HTML moeten aanroepen.
Ja dat scheelt :-): maar ik krijg niet het plaatje dat ik verwachte:

Dit is maar een stukje er van ;-)
Ik zou eerst maar eens je HTML weghalen uit je code, want dat zijn niet de ingrediënten waaruit een gecomprimeerde afbeelding bestaat.
@ Ariën

Het blijft een scherm vol met vreemde tekens ook zonder header en zonder de html code.

<?php
    $im = imagecreatefrompng("marker_overlijden.png");
    
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);    
?>


This is all you need ;-)
Als dit niet werkt, zou ik de header even uitschakelen om te kijken of je een foutmelding krijgt.
Met header werkt het, zonder header niet. Maar hoe voeg je het nou in een document met html code in?

Reageren