Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nakładanie znaku wodnego na gif - Zbugowane kolory, Imageworkshop
kasztanek9994
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 18.06.2013

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


Witajcie. Spotkał się ktoś z podobnym problem ?
Niektóre gify wysyłane na serwer wysyłają się w taki sposób:

Bez znaku:
(IMG:http://i.imgur.com/M3bM7yP.gif)

Ze znakiem:
(IMG:http://i.imgur.com/lyMu2P0.gif)

jak widzicie kolory wariują.

Próbowałem zmieniać sam znak wodny na różne formaty.
Próbowałem zmieniać pozycję znaku

niestety nadal to samo.

Jeśli wyłączymy znak to gify wysyłają się poprawnie.
Tylko ze znakiem wodnym dzieją się dziwne rzeczy.

Proszę o pomoc (IMG:style_emoticons/default/brzydal.gif)


KOD:
  1. function watermark($file, $watermark, $dir) {
  2. global $page;
  3. require_once('admin/lib/imageworkshop/ImageWorkshop.php');
  4. require_once('admin/lib/imageworkshop/GifFrameExtractor.php');
  5. require_once('admin/lib/imageworkshop/GifCreator.php');
  6.  
  7. $info = pathinfo($file);
  8. if($info['extension'] != 'gif') {
  9. $imageLayer = ImageWorkshop::initFromPath($file);
  10. $watermarkLayer = ImageWorkshop::initFromPath($watermark);
  11. $imageLayer->addLayer(1, $watermarkLayer, 0, 0, 'LT');
  12.  
  13. $createFolders = false;
  14. $backgroundColor = null;
  15. $imageQuality = 100;
  16.  
  17. $imageLayer->save($dir, $info['filename'].'.'.$info['extension'], $createFolders, $backgroundColor, $imageQuality);
  18. }
  19. else {
  20. if (GifFrameExtractor::isAnimatedGif($file)) {
  21.  
  22. $gfe = new GifFrameExtractor();
  23. $frames = $gfe->extract($file);
  24.  
  25. $watermarkLayer = ImageWorkshop::initFromPath($watermark);
  26.  
  27. $retouchedFrames = array();
  28. list($width, $height, $type, $attr) = getimagesize($file);
  29.  
  30. foreach ($frames as $frame) {
  31.  
  32. $frameLayer = ImageWorkshop::initFromResourceVar($frame['image']);
  33.  
  34. $frameLayer->resizeInPixel($width, null, true);
  35. $frameLayer->addLayerOnTop($watermarkLayer, 0, 0, 'LT');
  36.  
  37. $retouchedFrames[] = $frameLayer->getResult();
  38. }
  39.  
  40. $gc = new GifCreator();
  41. $gc->create($retouchedFrames, $gfe->getFrameDurations(), 0);
  42.  
  43. file_put_contents($file, $gc->getGif());
  44. }
  45. }
  46. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Kshyhoo
post
Post #2





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




GD nie wspiera animacji. Luknij to.
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: 25.12.2025 - 08:35