Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Precyzja w bibliotece GD
blackstone
post 15.05.2018, 17:55:44
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 19.03.2015

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


Mam takie dwa pytania odnośnie posługiwania się biblioteką GD w kontekście skryptu generującego grafikę który robię a z którymi na razie sobie nie poradziłem.

1) Mam problem z zarządzaniem wielkością obrazka nanoszonego na inny obrazek ( nie chodzi o przenikanie ), ale chodzi o jego wymiary wewnętrzne, otóż funkcja imagecopyresized() robi mi jego zoom - czyli zamiast manipulować całym obrazkiem zarządzam jedynie jego kadrem (np obrazek który nakładam na jakieś tło zamiast zawierać zdjęcie całej dziewczyny zawiera górną jej część a dolnej nie ma). Wiem jak przesunąć kadr z jednej części na inną zdjęcja, ale nie potrzebuje kadru, a całe foto. Skrypt poniżej.

  1.  
  2. $tlo = imagecreateTruecolor(400,400) ;
  3. $purple = ImageColorAllocate($tlo,184,3,255) ;
  4. imageFill($tlo,0,0,$purple) ;
  5.  
  6.  
  7.  
  8. $image = imagecreatefromjpeg('foto/CL.jpg') ;
  9.  
  10. imagecopyresized($tlo,
  11. $image,
  12. 0, // położenie obrazka od krawędzi tła
  13. 0, // położenie obrazka od krawędzi tła
  14. 0, // w - wewnętrzne kadrowanie obrazka - przeszuwa obszar kadru wględem szerokości
  15. 0, // h - wewnętrzne kadrowanie obrazka - przeszuwa obszar kadru wględem wys.
  16. 200 ,// w całego obrazka
  17. 200, // h całego obrazka
  18. imagesx($tlo),
  19. imagesy($tlo)
  20. ) ;
  21.  
  22.  
  23.  




2) Szukam sposobu jak móc podzielić tekst nakładany na grafikę na linijki tak jak w html za pomocą znacznik <br> mogę zarządzić która część tekstu pod którą się znajduję. Używam do nakładania tekstu funkcji imagettftext() , na razi nie dokopałem sie do innej która by mi w jakiś sposób umożliwiała podzielenie tekstu na linijki.


Przykład:

  1.  
  2.  
  3. imagettftext($tlo,
  4. 10 , // wielość czcionka
  5. 0 // nachylenie tekstu
  6. , 200 // położenie - szerokość
  7. , 250 // położenie - wysokość
  8. , $white // kolor
  9. ,'font/KFMeta-NormalTT.ttf' //czcionka
  10. ,'Lannisters always pays their debts.' // tekst
  11. ) ;
  12.  
  13.  



Z góry dzięki za sugestie.

Ten post edytował blackstone 15.05.2018, 17:58:08
Go to the top of the page
+Quote Post
Kshyhoo
post 15.05.2018, 18:21:29
Post #2





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




Ad. 2: klik


--------------------
Go to the top of the page
+Quote Post
blackstone
post 17.05.2018, 14:56:27
Post #3





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 19.03.2015

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


Dzięki a dobry link. Dopytam w sprawie nr1. jaką inną funkcją można uzyskać podobny efekt docelowo ( może się uda z jakimś zamiennikiem imagecopyresized()) ?
Go to the top of the page
+Quote Post
trueblue
post 17.05.2018, 15:11:34
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Zapoznaj się z dokumentacją funkcji.

Kopiujesz obszar [0,0] [399,399] z obrazka z pliku, do [0,0] [199, 199] tła.
Powinieneś raczej kopiować do [0,0] [399,399] tła, obrazek z [0,0] i jakichś tam wymiarów. Skoro kopiujesz z obrazka obszar kwadratowy, to taki efekt uzyskujesz.


--------------------
Go to the top of the page
+Quote Post
blackstone
post 19.05.2018, 15:40:41
Post #5





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 19.03.2015

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


Dzięki pomogłeś. GD to trochę nowa dla mnie przygoda, gdzieś się zakręciłem smile.gif. Wystarczyło zamiast imagesx/y pobrać rozmiary pliku przez getimagesize().
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 12:34