Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nakładanie znaku wodnego na gif - Zbugowane kolory
Forum PHP.pl > Forum > PHP
kasztanek9994
Witajcie. Spotkał się ktoś z podobnym problem ?
Niektóre gify wysyłane na serwer wysyłają się w taki sposób:

Bez znaku:


Ze znakiem:


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 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. }
Kshyhoo
GD nie wspiera animacji. Luknij to.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.