Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP GD - Wypełnienie koloru kolorem.
expert
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Witam,

Załóżmy, że mam na obrazku jakiś prostokąt o kolorze zielonym. Czy jest jakaś funkcja w GD, żeby wszystkie kolory zielone zamienić na inny, np. pomarańczowy?

Bo jak na razie rozwiązanie problemu przychodzi mi tylko takie:

1. Pobranie szerokości i wysokości obrazka.
2. 'Przeskanowanie' go i zapisanie pozycji w których znajduje się szukany kolor (zielony). (imagecolorat() i imagecolorsforindex())
3. Zamiana koloru. (imagecolorallocate() i imagefill())

Ma ktoś jakiś lepszy pomysł?
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Wypróbuj ten kod:
  1. <?php
  2. $kolory = array(
  3. array(0,255,0, 255,255,0), // zielony na żółty (nie chciało mi się szukać pomarańczowego ;p)
  4. );
  5.  
  6. $img=ImageCreateFromPNG("obraz1.png");
  7. for ($i=0; $i<ImageColorsTotal($img); $i++) {
  8. $c = ImageColorsForIndex($img, $i);
  9. foreach ($kolory as $k) {
  10. if ($c["red"]==$k[0] and $c["green"]==$k[1] and $c["blue"]==$k[2])
  11. ImageColorSet($img, $i, $k[3], $k[4], $k[5]);
  12. }
  13. }
  14. ImagePNG($img,"obraz2.png");
  15. ImageDestroy($img);
  16. ?>

ImageColorsTotal() pobiera ilość kolorów
ImageColorsForIndex() pobiera składowe koloru
ImageColorSet() ustawia kolor
Go to the top of the page
+Quote Post
expert
post
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


$kolory w podwójnej tablicy? Już rozumiem zasadę działa twojego kodu. Wkrótce go sprawdzę.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Yy, tablica pojedyncza (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
expert
post
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


To mam kolejny problem:

  1. $adres='budynki/Chatka rybacka';
  2. $obrazc = ImageCreateFromPng($adres.'/cszkielet.png'); //pobranie obrazka do skryptu
  3.  
  4. echo ImageColorsTotal($obrazc); // funkcja wyświetla 0
  5.  
  6. header("Content-type: image/gif");// po mimo tego że obrazek jest poprawnie wyświetlony
  7. ImageGif($obrazc);
  8. ImageDestroy($obrazc);


oczywiście nie mieszam wyświetlania obrazka z echo. W efekcie program nie wchodzi mi w pętlę.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:49