Ik kwam deze code tegen, en snap hem niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Henk

Henk

26/10/2007 23:51:00
Quote Anchor link
Wie kan mij dit uitleggen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$P
  = imageColorAt ( $image, $x, $y );
                $R  = ( $P >> 16 ) & 0xFF;
                $G  = ( $P >>  8 ) & 0xFF;
                $B  = ( $P >>  0 ) & 0xFF;
?>
 
PHP hulp

PHP hulp

23/11/2024 12:05:30
 
- -

- -

26/10/2007 23:53:00
Quote Anchor link
Hmm, ziet er apart uit. Ben ook wel nieuwsgierig wat het inhoudt.
 
Gerben Jacobs

Gerben Jacobs

26/10/2007 23:53:00
Quote Anchor link
We missen sowieso de functie imageColorAt.

En tja.. geen idee wat >> en & betekent in die syntax.
 
Henk

Henk

26/10/2007 23:58:00
Quote Anchor link
Het gaat niet om de functie dat is alleen even om aan te tonen waar $P vandaan komt. Ik snap niet wat het >> en & doet. Iets meer code is trouwens dit
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
        for ( $y = 0; $y < $iHeight; $y++ ) {
            for ( $x = 0; $x < $iWidth; $x++ ) {
                $P  = imageColorAt ( $oImage, $x, $y );
                $R  = ( $P >> 16 ) & 0xFF;
                $G  = ( $P >>  8 ) & 0xFF;
                $B  = ( $P >>  0 ) & 0xFF;
                $N  = rand ( 0, $G0 ) - $G1;
                $R += 255 + $N + mt_rand ( 0, $C0 ) - $C1;
                $G += 255 + $N + mt_rand ( 0, $C0 ) - $C1;
                $B += 255 + $N + mt_rand ( 0, $C0 ) - $C1;
                imageSetPixel ( $oImage, $x, $y, ( $arrLUT [ $R ] << 16 ) | ( $arrLUT [ $G ] << 8 ) | $arrLUT [ $B ] );
            }
        }

?>
Ook de laatste regel is raar, het vierde argument van imageSetPixel().
 
Roy

Roy

27/10/2007 00:02:00
Quote Anchor link
mmm, ik denk dat dit een script is voor auto-adjustment voor een plaatje/beeldscherm van kleuren gaan tot 255


maarja ik ken geen PHP dus ik kan verkeerd zitten
 
Joren de Wit

Joren de Wit

27/10/2007 00:05:00
Quote Anchor link
De operators >> en & zijn bitwise operators. Zie de php handleiding voor meer uitleg.
 
Henk

Henk

27/10/2007 00:07:00
Quote Anchor link
Ja zoiets ie het inderdaad, het maakt ruis aan op een plaatje, end an op elke pixel. Ik weet niet waarom ik het niet eerder postte, maar hier is de hele functie gewoon
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
<?php
    function DoNoise ( $oImage, $G0, $C0 ) {
        $iWidth = imageSX ( $oImage );
        $iHeight = imageSY ( $oImage );

        for ( $i = 0; $i < 768; $i++ ) {
            $arrLUT [ $i ] = $i < 512 ? ( $i < 255 ? 0 : ( $i - 256 ) ) : 255;
        }


        $G1 = $G0 / 2;
        $C1 = $C0 / 2;
        for ( $y = 0; $y < $iHeight; $y++ ) {
            for ( $x = 0; $x < $iWidth; $x++ ) {
                $P  = imageColorAt ( $oImage, $x, $y );
                $R  = ( $P >> 16 ) & 0xFF;
                $G  = ( $P >>  8 ) & 0xFF;
                $B  = ( $P >>  0 ) & 0xFF;
                $N  = rand ( 0, $G0 ) - $G1;
                $R += 413 + $N + mt_rand ( 0, $C0 ) - $C1;
                $G += 255 + $N + mt_rand ( 0, $C0 ) - $C1;
                $B += 255 + $N + mt_rand ( 0, $C0 ) - $C1;
                imageSetPixel ( $oImage, $x, $y, ( $arrLUT [ $R ] << 16 ) | ( $arrLUT [ $G ] << 8 ) | $arrLUT [ $B ] );
            }
        }
    }

?>
Edit:
Blanche schreef op 27.10.2007 00:05:
De operators >> en & zijn bitwise operators. Zie de php handleiding voor meer uitleg.
Ik heb die inderdaad gezien, maar ik snap hem niet. Kan je hem niet uitleggen?
Gewijzigd op 01/01/1970 01:00:00 door Henk
 
- SanThe -

- SanThe -

27/10/2007 00:56:00
Quote Anchor link
<< Alle bits eentje naar links schuiven.
>> Alle bits eentje naar rechts schuiven.
& is AND maar dan op bitniveau.

Er staat aardig wat informatie op php.net over.
 
Jelmer -

Jelmer -

27/10/2007 00:59:00
Quote Anchor link
Mitch heeft er ooit een tutorial over geschreven:
http://www.phphulp.nl/php/tutorials/1/243/

Misschien dat die je verder helpt.

Wat het script doet is eigenlijk niets meer dan het zestientallig stelsel (hexadecimaal, van 0 tot F) omzetten in het tientallige stelsel (van 0 tot 9, je kent het waarschijnlijk wel ;) ) Bijvoorbeeld FF is gelijk aan 255. Dat omzetten doet de & operator als ik het goed begrijp. De >> zijn als het ware een soort substr() die ervoor zorgen dat je de eerste 2, de middelste 2 of de laatste 2 karakters te pakken hebt van je hexadecimale waarde. Maar dan niet toegepast op strings, maar op een integer.
 



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.