[php]Color replace?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BlueAce
  • Registratie: November 2002
  • Laatst online: 09-01-2021
Ik probeer een bepaalde kleur in een .png file te veranderen naar een door mij opgegeven kleur. Ik zie door alle image-functies het bos niet meer zeg maar, iemand een idee welke functie ik moet gebruiken?

Zelf heb ik al imagecolorset() gevonden, maar daar wordt ik niet veel wijs uit. Ik probeer dus de kleur 155,155,155 (grijs) te vervangen door 85,120,170 (blauw):

PHP:
1
imagecolorset($image,0,82,120,170);


Zoals je kunt zien richt deze functie gewoon geen fuck uit, logisch ook want hij heeft de kleur niet die hij moet vervangen. Hoe moet ik die opgeven? Of zit ik misschien met een totaal verkeerde functie?

Thx alvast, mijn eerstgeboorne gaat naar degene met het antwoord _/-\o_

offtopic:
Soz voor de titel, ik lette ff niet op: [PHP] dus!

[ Voor 6% gewijzigd door BlueAce op 07-04-2004 14:06 ]


Acties:
  • 0 Henk 'm!

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Ehm... ik weet niet precies wat je doel is (of dit bijvoorbeeld on the fly moet), maar anders (dit wil je niet op elke pagina doen namelijk :P) kan je gewoon brute force door het hele plaatje heen lopen (dubbele loop over x en y) en gewoon checken op de colorindex (155, 155, 155) en als, dan imagesetpixel naar (85,120, 170).

Zoiets:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$image1_res = GetImageSize ($image1) ;
$image1_resy = $image1_res[0] ;
$image1_resx = $image1_res[1] ;

$image1 = imagecreatefrompng($image1) ;

$color['yourblue'] = ImageColorAllocate($image1,85, 120, 170) ;

for($i = 0 ; $i < $image1_resy ; $i++) {
    for($j = 0 ; $j < $image1_resx ; $j++) {
    
    $colorindex = imagecolorat($image1, $j, $i) ;
    $colorrgb = imagecolorsforindex($image1, $colorindex) ;
    
    if($colorrgb['red'] == 85 && $colorrgb['green'] == 120 && $colorrgb['blue'] == 170) {
        ImageSetPixel($image1, $j, $i, $color['yourblue']) ;
    }
    
    }   // X
}   // Y

[ Voor 8% gewijzigd door Cavorka op 07-04-2004 14:40 ]

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


Acties:
  • 0 Henk 'm!

  • BlueAce
  • Registratie: November 2002
  • Laatst online: 09-01-2021
Nee zeker niet on-the-fly :P Thx! Het is idd erg intensief, maar het werkt hier wel :)

* BlueAce geeft zijn eerstgeboren zoon aan Cavorka

[ Voor 63% gewijzigd door BlueAce op 07-04-2004 15:53 ]