Пропустить

[dev] Upload image resizer

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Re: [dev] Upload image resizer

Сообщение Siava » 05.12.2011 20:43

Новый вариант функции с учётом всех пожеланий выше.
Корректно уменьшает прозрачные png и не совсем корректно прозрачные gif (они становятся чуток больше в килобайтах, это исправим, как только способ найду).

    /**
    * Resize images with the true diemensions
    * version 0.31
    */
    function resize_images()
    {
       if ( $this->is_image() )
       {
			$limit_width = 1024;
			$limit_height = 768;
			$quality = 90;
			$size = getimagesize($this->destination_file);
			$width = $size[0];
			$height = $size[1];
			if($height > $limit_height OR $width > $limit_width)
			{
				$int_factor = min(($limit_width / $width), ($limit_height / $height));
				// pano-test add
				// if (max($width, $height) / min($width, $height) > 2) $int_factor = $int_factor * 1.5;
				// end
				$width = round($width * $int_factor);
				$height = round($height * $int_factor);
				$destination = imagecreatetruecolor($width, $height);

				if ( $this->extension == "jpg" || $this->extension == "jpeg" )
				{
					@ini_set('gd.jpeg_ignore_warning', 1);
					$source = imagecreatefromjpeg($this->destination_file);
				}
				elseif ( $this->extension == "png" )
				{
					@imagealphablending($destination, false);
					@imagesavealpha($destination, true);
					$source = imagecreatefrompng($this->destination_file);
				}
				elseif ( $this->extension == "gif" )
				{
					$source = imagecreatefromgif($this->destination_file);
					$trnprt_indx = imagecolortransparent($source);
					if ($trnprt_indx >= 0) //transparent
					{
						$trnprt_color = imagecolorsforindex($source, $trnprt_indx);
						$trnprt_indx = imagecolorallocate($destination, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
						imagefill($destination, 0, 0, $trnprt_indx);
						imagecolortransparent($destination, $trnprt_indx);
					}
				}

				imagecopyresampled($destination, $source, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
				if ( $this->extension == "jpg" || $this->extension == "jpeg" ) imagejpeg($destination, $this->destination_file, $quality);
				elseif ( $this->extension == "png" ) imagepng($destination, $this->destination_file);
				elseif ( $this->extension == "gif" ) imagegif($destination, $this->destination_file);
				imagedestroy($destination);
			}
		}
	}
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2581
Зарегистрирован: 11.01.2005 15:29
Откуда: Питер
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.

Re: [dev] Upload image resizer

Сообщение Frejer Stolz » 15.03.2012 17:05

Siava писал(а):Набросок мода, автоматического уменьшения загружаемых изображений на сервер.
Может подобное уже выкладывали, в этом варианте исправил масштабирование. Всё работает корректно.

functions_upload.php
найти


Что найти? В какую часть functions_upload.php вставлять?
Вставил туда же, куда вставлялся соседний скрипт (около 260й строки) - ресайз не работает.

Уточни шапку, пожалуйста?
Аватара пользователя
Frejer Stolz
phpBB 1.4.1
 
Сообщения: 42
Зарегистрирован: 01.05.2009 18:31
Благодарил (а): 10 раз.
Поблагодарили: 1 раз.

Re: [dev] Upload image resizer

Сообщение Siava » 17.03.2012 16:04

Frejer Stolz, пардон, в инструкции было напутано чуток, что найти куда вставить. Исправил. Код не трогал, в нём всё ок. Спасибо что заметили :)
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
За это сообщение автора Siava поблагодарил:
Frejer Stolz (18.03.2012 21:28)
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2581
Зарегистрирован: 11.01.2005 15:29
Откуда: Питер
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.

Re: [dev] Upload image resizer

Сообщение Frejer Stolz » 17.03.2012 23:26

Siava, спасибо за скорую реакцию!

Установил по инструкции.

Но, ещё вопросы появились. Мод продолжает не работать.
Установил мод на 3.0.10. Почистил кеш. Загружаю фото. Загрузилась, но перезагрузившаяся страница оказалась с посыпавшимися стилями (текст размером +3). И загруженное фото - полноразмерное, не обрезалось.
Ещё пару фото загрузил - то же самое.

Снёс мод, поставил заново. Почистил кеш - без изменений.


Что-то тут не чисто.



Вот мой исходный functions_upload.php, вроде бы без модов. Проверь, пожалуйста? Очень хочется использовать этот мод.
Вложения
functions_upload.rar
(4.82 КБ) Скачиваний: 3
За это сообщение автора Frejer Stolz поблагодарил:
Siava (18.03.2012 23:34)
Аватара пользователя
Frejer Stolz
phpBB 1.4.1
 
Сообщения: 42
Зарегистрирован: 01.05.2009 18:31
Благодарил (а): 10 раз.
Поблагодарили: 1 раз.

Re: [dev] Upload image resizer

Сообщение Siava » 18.03.2012 12:42

Да там нет ничего сложного, кеш чистить не обязательно. Вот модифицированный файл.
Вложения
functions_upload.rar
(6.35 КБ) Скачиваний: 9
Генератор db_update-файлов для phpBB 2.0
Еще одно нарушение правил и будете забанены.
© Mr. Anderson
За это сообщение автора Siava поблагодарил:
Frejer Stolz (18.03.2012 21:28)
Аватара пользователя
Siava
phpBB 3.0.5
 
Сообщения: 2581
Зарегистрирован: 11.01.2005 15:29
Откуда: Питер
Благодарил (а): 1 раз.
Поблагодарили: 3 раз.

Re: [dev] Upload image resizer

Сообщение Frejer Stolz » 18.03.2012 21:28

Спасибо за индивидуальный подход, всё работает! :)
Видимо, я где-то ошибся, хотя и перепроверял.
Аватара пользователя
Frejer Stolz
phpBB 1.4.1
 
Сообщения: 42
Зарегистрирован: 01.05.2009 18:31
Благодарил (а): 10 раз.
Поблагодарили: 1 раз.

Пред.

Вернуться в Бета-версии модов для phpBB 3.0.x

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Место для вашей рекламы