Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> imagecopy - Czarne pasy podczas ujemnych współrzędnych $src_x i $src_y
adbacz
post
Post #1





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Używam funkcji imagecopy, którą nakładam jedno zdjęcie na drugie - $dest na $dest2. $dest jest obrazem stworzonym przez GD w 100% przeźroczyste a $dest2 jest obrazkiem z elementami przeźroczystości. Przesuwam $dest2 względem wierzchołka X0;Y0 zdjęcia $dest o -10 i -10 pikseli tak, by przesunął się w dół i w prawo. Niestety, mimo, że oba zdjęcia mają w sobie przeźroczystość, to zdjęcie dostaje czarne pasy na górze i po lewej stronie - czyli w miejscach z których zostało przesunięte, poniżej zdjęcie rezultatu:

(IMG:http://i.imgur.com/d4bMULO.png)

Zdjęcie oryginalne:

(IMG:http://i.imgur.com/TP8tcZh.png)

Kod:
  1. imagecopy($dest, $dest2, 0, 0, $sourceCoordinateX, $sourceCoordinateY, $sourceWidth, $sourceHeight);


Jakie mogą być tego przyczyny? Zauważcie, że przeźroczystość obrazka nadal jest (w okół słoneczka), ale pasy dodawane są w miejscach w których obrazek został odsunięty współrzędnymi.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adbacz
post
Post #2





Grupa: Zarejestrowani
Postów: 532
Pomógł: 24
Dołączył: 15.04.2011
Skąd: Kalisz

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


Zadziałało po zmianie współrzędnych. Jeśli X lub Y są ujemne to zamieniałem miejscami współrzedne źródła i celu. Ale gdy obrazek $desc jest mniejszy niż $desc2 i jest wycentrowany, to pasy pojawiają się tym razem na dole i po prawej stronie, jak poniżej:
(IMG:http://i.imgur.com/JRmtRqu.png)
Zielone obramowanie pokazuje granice obrazka

Kod:

  1. $sourceWidth = 700;
  2. $sourceHeight = 700;
  3.  
  4. $dstX = 0;
  5. $dstY = 0;
  6. $srcX = 100;
  7. $srcY = 100;
  8.  
  9.  
  10. if($sourceCoordinateX > 0)
  11. {
  12. $dstX = $sourceCoordinateX;
  13. $srcX = 0;
  14. }
  15.  
  16. if($sourceCoordinateY > 0)
  17. {
  18. $dstY = $sourceCoordinateY;
  19. $srcY = 0;
  20. }
  21.  
  22. imagecopy($dest, $dest2, $dstX, $dstY, $srcX, $srcY, $sourceWidth, $sourceHeight);


Ten post edytował adbacz 7.01.2014, 15:59:03
Go to the top of the page
+Quote Post

Posty w temacie


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: 31.12.2025 - 03:32