Всем привет! Гуру, наткнулся на статейку в интернетах, описывающую создание скрипта "сложного масштабирования изображений". Возможно ли данный способ применить к phpbb3 для масштабирования миниатюр изображений?
Было бы не плохо сделать такой мод для форума. Чля чего? На своем форуме я по инструкции nekstati сделал расположение превьюшек по горизонтали, задал размер миниатюры 200px, получилось что при добавлении к примеру шести изображений, в сообщении миниатюры отображаются по три в ряд. В случае если высота картинок разная, нарушается расположение миниатюр, т.е. они будут располагаться в допистим, три ряда, 1 - 3 картинки, 2 - две, 3 - одна. В принципе то мелочь, но не приятно. Да и вообще одинаковые, не зависимые от оригинала миниатюры смотрелись бы более аккуратно. Что скажете, может есть уже готовые решения?
Вот собственно, что у меня получается:
Уважаемые пользователи, по техническим причинам загрузка файлов временно недоступна. Приносим извинения за временные неудобства.
Масштабирование миниатюр изображений
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
iphobos
- phpBB 1.0.0
- Сообщения: 1
- Стаж: 13 лет 5 месяцев
- Благодарил (а): 2 раза
Масштабирование миниатюр изображений
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
Татьяна5
- Поддержка

- Сообщения: 13177
- Стаж: 15 лет 2 месяца
- Благодарил (а): 236 раз
- Поблагодарили: 3754 раза
Re: Масштабирование миниатюр изображений
Вырезает квадраты по размеру, указанному в админке
Работает только для GD
includes/functions_posting.php
Найти
Заменить на
Найти
Заменить на
Работает только для GD
includes/functions_posting.php
Найти
Код: Выделить всё
if ($width > $height)
{
return array(
round($width * ($max_width / $width)),
round($height * ($max_width / $width))
);
}
else
{
return array(
round($width * ($max_width / $height)),
round($height * ($max_width / $height))
);
}Код: Выделить всё
if ($width > $height)
{
return array(
//round($width * ($max_width / $width)),
//round($height * ($max_width / $width))
round($width * ($max_width / $height)),
round($max_width)
);
}
else
{
return array(
//round($width * ($max_width / $height)),
//round($height * ($max_width / $height))
round($max_width),
round($height * ($max_width / $width))
);
}Код: Выделить всё
if ($type['version'] == 1)
{
$new_image = imagecreate($new_width, $new_height);
if ($new_image === false)
{
return false;
}
imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
}
else
{
$new_image = imagecreatetruecolor($new_width, $new_height);
if ($new_image === false)
{
return false;
}
// Preserve alpha transparency (png for example)
@imagealphablending($new_image, false);
@imagesavealpha($new_image, true);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
}Код: Выделить всё
if ($type['version'] == 1)
{
$new_image1 = imagecreate($new_width, $new_height);
if ($new_image1 === false)
{
return false;
}
imagecopyresized($new_image1, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
$new_image = imagecreate(min($new_width, $new_height), min($new_width, $new_height));
imagecopy($new_image, $new_image1, 0, 0, ($new_width > $new_height) ? round((max($new_width,$new_height)-min($new_width,$new_height))/2) : 0, 0, min($new_width, $new_height), min($new_width, $new_height));
}
else
{
$new_image1 = imagecreatetruecolor($new_width, $new_height);
if ($new_image1 === false)
{
return false;
}
// Preserve alpha transparency (png for example)
@imagealphablending($new_image1, false);
@imagesavealpha($new_image1, true);
imagecopyresampled($new_image1, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
$new_image = imagecreatetruecolor(min($new_width, $new_height), min($new_width, $new_height));
// Preserve alpha transparency (png for example)
@imagealphablending($new_image, false);
@imagesavealpha($new_image, true);
imagecopy($new_image, $new_image1, 0, 0, ($new_width > $new_height) ? round((max($new_width,$new_height)-min($new_width,$new_height))/2) : 0, 0, min($new_width, $new_height), min($new_width, $new_height));
}
