Перейти к публикации

watermark + gif


Light

Рекомендованные сообщения

Наложение watermark на .gif-формат = косяк.

Писалось про это уже, и что это не баг, ограничение формата и т.д.

Тем не менее - решение вполне простое.

В файле makethumb.php после кода:

		} elseif ($this->img["format"]=="GIF") {

			//GIF

			$this->img["format"]="GIF";

			$this->img["src"] = @imagecreatefromgif ($imgfile);
добавляем:
			$sourcefile_width=imageSX($this->img["src"]);

			$sourcefile_height=imageSY($this->img["src"]);


			// Создаём пустой truecolor контейнер

			$tempimage = imagecreatetruecolor($sourcefile_width,$sourcefile_height);


			// Копируем 8-битный gif в truecolor 

			imagecopy($tempimage, $this->img["src"], 0, 0, 0, 0, $sourcefile_width, $sourcefile_height);


			$this->img["src"] = $tempimage;

			imagedestroy($tempimage);

Глядишь кому и пригодится.

Ссылка на сообщение
Поделиться на других сайтах

Warning: imagesx(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 198 Warning: imagesy(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 199 Warning: imagegif(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 167 Warning: imagedestroy(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 170

Ссылка на сообщение
Поделиться на других сайтах

Warning: imagesx(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 198 Warning: imagesy(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 199 Warning: imagegif(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 167 Warning: imagedestroy(): 25 is not a valid Image resource in engine/inc/makethumb.php on line 170

тогда меняем

		} elseif ($this->img["format"]=="GIF") {

			//GIF

			$this->img["format"]="GIF";

			$this->img["src"] = @imagecreatefromgif ($imgfile);

на
		} elseif ($this->img["format"]=="GIF") {

			//GIF

			$this->img["format"]="GIF";


			$sourcefile_id = imagecreatefromgif($imgfile);


			$sourcefile_width=imageSX($sourcefile_id);

			$sourcefile_height=imageSY($sourcefile_id);


			$this->img["src"] = imagecreatetruecolor($sourcefile_width,$sourcefile_height);


			imagecopy($this->img["src"], $sourcefile_id, 0, 0, 0, 0, $sourcefile_width, $sourcefile_height);

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
  • 1 год спустя...

Спасибо! полезное.

Ссылка на сообщение
Поделиться на других сайтах
  • 5 недель спустя...

у меня вот такая ошибка при загрузке dle7.3

Warning: imagecopy(): supplied argument is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 54 Warning: imagecopy(): supplied argument is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 55 Warning: imagecopy(): supplied argument is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 54 Warning: imagecopy(): supplied argument is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 55 Warning: imagesx(): 18 is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 187 Warning: imagesy(): 18 is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 188 Warning: imagegif(): 18 is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 158 Warning: imagedestroy(): 18 is not a valid Image resource in /var/www/users/igor/green.vaulthost.net/engine/inc/makethumb.php on line 161

но картинка загружается без watermark`, вот только ошибка сверху

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

вот на форуме не встретилось этого изменения для 9.2, может где-то и есть, может нет.

Может кому-то пригодится, на основе вышенаписанного поменял и работает

в файле engine/classes/thumb.class.php

в function thumbnail($imgfile)

заменить

				

                } elseif( $info[2] == 1 ) {

			$this->img['format'] = "GIF";

			$this->img['src'] = @imagecreatefromgif( $imgfile );
на
		} elseif( $info[2] == 1 ) {

			$this->img['format'] = "GIF";

			$sourcefile_id = imagecreatefromgif($imgfile);


                        $sourcefile_width=imageSX($sourcefile_id);

                        $sourcefile_height=imageSY($sourcefile_id);

			$this->img["src"] = imagecreatetruecolor($sourcefile_width,$sourcefile_height);


                        imagecopy($this->img["src"], $sourcefile_id, 0, 0, 0, 0, $sourcefile_width, $sourcefile_height);

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...