Background bij imagerotate

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lars Groot

Lars Groot

02/08/2010 13:38:48
Quote Anchor link
Heey,

Ik heb een probleem:
Ik ben voor planemania.nl een script aan het maken, die weergeeft waar je vliegtuig op dit moment is.
Voorbeeld:
http://planemania.nl/line.php
Je ziet het waarschijnlijk al, het vliegtuigje heeft een zwarte en witte achtergrond.
Nu mijn vraag:
Is het mogelijk deze gewoon transparant te maken, zodat je op de achtergrond de landkaart ziet?

Ik hoop dat jullie het weten,

Lars
 
PHP hulp

PHP hulp

23/12/2024 20:32:50
 
The Ultimate

The Ultimate

02/08/2010 13:45:22
Quote Anchor link
Ja, dan dien je een .png te gebruiken. PNG heeft namelijk transparantie.

EDIT:
Hmmm, ik weet trouwens niet of je dan helemaal van het probleem af bent. Waarschijnlijk zal je dan alsnog zwarte gedeeltes krijgen op de plaats waar eerst het vliegtuig zat, maar je kunt het proberen. Ik zie ook nu pas wat je precies bedoelt. Ik dat dat het gewoon een rare afbeelding was, maar het gedeelte dat ie roteert wordt zwart gemaakt. Vaag...
Gewijzigd op 02/08/2010 13:48:22 door The Ultimate
 
John D

John D

02/08/2010 13:49:48
Quote Anchor link
Ik denk dat je ook aan moet geven wat transparant is, de transparante kleur aangeven in de PNG of GIF. Meestal is dat wit. Aanpassen dus van het PNG of GIFje
 
Lars Groot

Lars Groot

02/08/2010 13:56:09
Quote Anchor link
@The Ultimate,

Het is nu in .PNG formaat, zelfde probleem.

@John D,
Hoe bedoel je?
Ik gebruik btw. Paint.NET.

Dit is de PHP code die ik gebruik:

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
<?php
header("Content-type: image/png");
$dest = imagecreatefrompng('http://planemania.nl/nl1/images/kaart.png');
$src = imagecreatefrompng('http://planemania.nl/nl1/images/planeicon.png');
//$srctransparent = imagecolortransparent($src);

$red = imagecolorallocate($dest, 255, 0, 0);
$degrees = -127;
imageline($dest, 208, 95, 244, 124, $red);
$src2 = imagerotate($src, $degrees, 0, 0);
imagecopy($dest, $src2, 214, 98, 0, 0, 24, 24);
imagepng($dest);
imagedestroy($dest);
?>


Bedankt alvast,

Lars
 
The Ultimate

The Ultimate

02/08/2010 14:00:14
Quote Anchor link
@Lars:
Je moet dan natuurlijk wel even het 'wit' om het vliegtuigje weghalen anders dan heeft het alsnog geen zin. Kijkt u eens: http://www.clker.com/clipart-6899.html
 
Lars Groot

Lars Groot

02/08/2010 14:01:26
Quote Anchor link
Dat is gewoon weg?
http://planemania.nl/nl1/images/planeicon.png

Kijk maar eens, en open maar eens in PS / Paint.NET, dan zul je zien dat het wel degelijk transparant is ;)

Lars
 
The Ultimate

The Ultimate

02/08/2010 14:08:42
Quote Anchor link
Hmmmm, ik zie het ja. Je hebt gelijk. Bizar.

Dit kwam ik ergens tegen:
$transparent = imagecolorallocatealpha($destination_handle, 255, 255, 255, 0);
imagealphablending($destination_handle, false);
imagesavealpha($destination_handle,true);

Saw this on another forum.. should help you. Just provide the RGB values in the first line for the color you want to make transparent. Oh and replace $destination_handle with the variable that is holding your image handle. ($var = imagecreate() or whatever)

En vergeet niet: Google is je vriend:
http://www.google.nl/#hl=nl&source=hp&q=php+imagerotate+transparent+background&aq=3&aqi=g1g-s1g5&aql=&oq=php+imager&gs_rfai=&fp=29d7fadb010ccc72
 
Lars Groot

Lars Groot

02/08/2010 14:34:12
Quote Anchor link
Goed, het is nu redelijk opgelost:
http://planemania.nl/line.php
Je ziet helaas nog wel wat zwarte vlakjes er tussen door, maar daar kan ik volgens mij niks meer aan doen.

Dit is me huidige script:
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
<?php
header("Content-type: image/gif");
$dest = imagecreatefromgif('http://planemania.nl/nl1/images/kaart.gif');
$src = imagecreatefromgif('http://planemania.nl/nl1/images/planeicon_16.gif');
$srctransparent = imagecolortransparent($src, imagecolorallocate($src, 0, 0, 0));

$red = imagecolorallocate($dest, 255, 0, 0);
$degrees = -85;
imageline($dest, 208, 95, 244, 124, $red);
$src2 = imagerotate($src, $degrees, $srctransparent, 0);
imagecolortransparent($src2, imagecolorallocate($src2, 0, 0, 0));
imagecopymerge($dest, $src2, 218, 102, 0, 0, 24, 24, 100);
imagegif($dest);
imagedestroy($dest);
?>


Dan nu even een hele andere vraag:

Dit script is voor mijn spel, en daar voor heb ik het volgende nodig:
Ik wil graag een live overzicht van waar je vliegtuig op dat moment is.

Ik weet de vertrektijd (in een Datetime in de MySQL) en ik weet de totale vliegtijd (in seconden).
Dit vliegtijd is heen en terug, dus de helft ervan is alleen heen.
Dus als je bijvoorbeeld om 10:00 vertrekt, en het duurt 4800 seconden (= 2 uur) dan is hij dus om 11:00 op bijv. Antalya, en om 12:00 bij Amsterdam.
En ik weet uiteraard het aantal kilometers, en de coordinaten van de vertrekplaats en aankomstplaats.

Hoe kan ik dan uitrekenen op welke coordinaat X en op welke coordinaat Y hij is?

Ik hoop dat jullie het weten,

Lars
P.S.
Dit is inderdaad meer Wiskunde dan PHP :)
 



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.