php gd deel plaatje shaden

Status
Niet open voor verdere reacties.

That Guy

Meubilair
Lid geworden
28 nov 2006
Berichten
5.010
Beste allen,

Ik heb hier een maan plaatje (plaatje van de maan). Nu wil ik deze via php een bepaald deel 'shaden' , zodat je zegmaar de maan-fase kan laten zien (bijvoorbeeld). Het berekenen van de maanfase heb ik al, krijg een getal in procenten (dus 50 op de helft, maar het kan ook 3 of 89 zijn, het is een getal tussen de 0 en 100). Nu mijn vraag: op welke manier kan ik het beste dit doe via php?

Heb wat gezocht, kwam dus uit op de arc fill functie, maar deze heeft een achtergrondkleur als parameter. Had al heel slim een 2x2 pixel plaatje gemaakt wat dus voor 50% transparant is, zodat je een schaduw effect krijgt als je het over een ander plaatje plakt, maar dit gaat dus niet met deze functie? En als het wel kan, hoe kan ik dit het beste maken?



Alvast bedankt :thumb:
 
Laatst bewerkt:
Ik ken niet veel van PHP, dus ik zou het zo doen:
Bewerk de afbeeldingen in bv. photoshop.
Doet dit voor elke maanfase.
Dan laat je php berekenen welke fase het is en laat dat de bijpassende afbeelding zien.

Dus dat je bv in een map verschillende afbeeldingen voor elke fase hebt staan:
Maan25.jpg
maan50.jpg
maan75.jpg
maanvol.jpg

or what ever de maanfases zijn :p
 
yea, maar het punt is juist dat ik een procentueel iets krijg. Dus, van 0 tot 100, ofwel 100 afbeeldingen... Dat leek me niet zo'n goed idee om 100 losse plaatjes te maken. Vandaar dat ik dacht dat php mischien de oplossing kon hebben.


:thumb:
 
Het ziet ernaar uit dat dit misschien zou lukken met alphablending, maar zelf heb ik zo goed als geen ervaring met gd-lib.

Wanneer je dat aanzet en daarna de arcfill uitvoert, lijkt het mij alsof je deze dan in het alphachannel kan uitvoeren.

Kijk ook zeker eens naar de 2de comment (jeppe dot dyrby at gmail dot com, 14aug) waarin een watermerk-functie staat.

php.net - imagealphablending
 
De imagefilledarc() functie vraagt toch om een kleur?

Als je nu met imagecolorallocatealpha() de volgende kleur maakt:

PHP:
<?php
$shade = imagecolorallocatealpha($image, 0, 0, 0, 64);
?>

Dan krijg je een half transparante zwarte kleur.

Dan kun je in je imagefilledarc() het volgende doen:

PHP:
<?php
imagefilledarc( $image , 400 , 400 , 800  , 800  , -(1.8 * $perc) , (1.8 * $perc) , $shade , IMG_ARC_PIE );
?>

Ik denk dat het dan zoiets zou moeten worden.
 
Laatst bewerkt:
Guys,

Heel erg bedankt, hiermee gaat het wel lukken. Ga er nu even mee klooien :)
[edit]
Okay, stom van me. Het probleem is dat het wel werkt, maar dus een 'pie' laat zien. Taartvorm dus. Zie afbeelding bijlage.
Iemand een idee hoe je kan bereiken dat het een 'halvemaanvorm' wordt? (als het al kan, en niet te-extreem-lastig)
Ohja, in het plaatje kloppen de verhoudingen van procent niet, maargoed, gaat het niet om.
[/edit]


[edit]
Extra edit: ik heb het kunnen oplossen met wat javascript en plaatjes. Niet zo stijlvol als met php, maargoed, het werkt.[/edit]

:thumb:
 

Bijlagen

  • moonvoorbeeld.jpg
    moonvoorbeeld.jpg
    13,8 KB · Weergaven: 43
Laatst bewerkt:
Dag Vegras,

Ik snap dat het een beetje laat is, maar ik vond vandaag in mijn mailbox de dagelijkse update van PHP-classes en moest meteen aan jou denken ;)

MoonPhase

En script om de stand van de maan te berekenen én weer te geven.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan