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

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

Наложение 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);

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

Изменено пользователем Light
Ссылка на сообщение
Поделиться на других сайтах

спасибо.

Разве удалять контейнер не нужно?

Делалось на коленке ;) Поправил.

Изменено пользователем Light
Ссылка на сообщение
Поделиться на других сайтах

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);

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

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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