Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Уменьшение изображений в постах phpbb2
На страницу 1, 2  След.
 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Чт Июн 28, 2007 7:14 pm    Заголовок сообщения: Уменьшение изображений в постах phpbb2
Ответить с цитатой

Я являюсь админом bmw-club.org.ua, а на этом сайте частенько выкладываются фотки машин, причем пользователи ленятся изменять размеры картинки так, чтобы они вписывались в размеры окна и чтобы картинка не портила дизайн. А иногда уменьшить размеры фотки просто невозможно - она находится на другом сервере, а в пост помещается ссылка на эту фотку вида [img]url[/img].
Понятно, что если сделать уменьшение размера при загрузке фотки на сайт, то картинки, которые физически находятся на других серверах уменьшены не будут и будут вставлены как есть. А это не есть хорошо.
Выход нашел следующий. Написал сценарий resize.php, который, если ширина больше 650 (вполне достаточно, чтобы рассмотреть фотку) пикселей, то он уменьшает ее до этого размера. Вызвать сценарий просто:

resize.php?fn=url-картинки

Но нужно интегрировать сценарий resize.php с phpbb. Для этого нужно открыть includes/bbcode.php, найти строчку:

Код:
$bbcode_tpl['img'] = str_replace('{URL}', '\\1', $bbcode_tpl['img']);


и заменить ее строкой:

Код:
$bbcode_tpl['img'] = str_replace('{URL}', 'http://bmw-club.org.ua/forum/resize.php?fn=\\1', $bbcode_tpl['img']);


http://bmw-club.org.ua/forum/resize.php - это и есть сценарий.

Вот код самого сценария:

Код:
<?
// fn - имя файла
// w - ширниа изображения

if (!isset($type)) $type=1;

if ($type == 1) $w = 650; 

if (!isset($q)) $q = 90;  // качество jpeg по умолчанию

$src = imagecreatefromjpeg($fn);
$w_src = imagesx($src);
$h_src = imagesy($src);

header("Content-type: image/jpeg");

if ($w_src > $w)
{
       // вычисляем пропорции
       $ratio = $w_src/$w;
       $w_dest = round($w_src/$ratio);
       $h_dest = round($h_src/$ratio);

       $dest = imagecreatetruecolor($w_dest,$h_dest);

       $label = "www.dkws.org.ua";
       imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);

        $size = 2; // размер шрифта выводимого текста

      imagejpeg($dest,'',$q);     // выводим картинку в браузер
   imagedestroy($dest);        // очищаем память
   imagedestroy($src);
}
else {
      imagejpeg($src,'',$q);     // выводим картинку в браузер
   imagedestroy($src);
}

?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Anton99

Neo


Зарегистрирован: 26.11.2006
Сообщения: 1676

СообщениеДобавлено: Чт Июн 28, 2007 7:22 pm    Заголовок сообщения:
Ответить с цитатой

thanx! а то [цензура: вырезано 1000000000слов] выкладывают фоты 3 тфщи с чем то на 2 тыщи с чем то пыхселей :E
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Пт Июн 29, 2007 11:04 am    Заголовок сообщения:
Ответить с цитатой

Скоро выложу код парсера новостей! Сейчас времени нет, нужно работать
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Yuras

Новенький


Зарегистрирован: 27.02.2006
Сообщения: 11

СообщениеДобавлено: Пт Июн 29, 2007 11:36 am    Заголовок сообщения:
Ответить с цитатой

den, спасибо! очень полезный мод.

жду парсер новостей, как на этом сайте Cool
_________________
Дальневосточные юЗвери. А тут БАБЛО
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Пт Июл 06, 2007 6:08 am    Заголовок сообщения:
Ответить с цитатой

Вот подумал-подумал и решил! Всем, кому нужен парсер, обращайтесь в личку! Стоимость скрипта - 10 баксов, что немного учитывая его коммерческую направленность! Very Happy Very Happy Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
bober

Новенький


Зарегистрирован: 01.06.2006
Сообщения: 16

СообщениеДобавлено: Сб Dec 15, 2007 12:34 pm    Заголовок сообщения:
Ответить с цитатой

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

Код:

<?php
$filename ="$d";
header('Content-type: image/jpeg');

list($width, $height) = getimagesize($filename);
$newwidth = "800";
$newheight = "640";

$source = imagecreatefromjpeg($filename);
$thumb = imagecreatetruecolor($newwidth, $newheight);
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);




$file = 'logo1.jpg';
$is = imagecreatefromjpeg($file);  //logotip
// razmer risunka

$imgWidth = @ImageSX($thumb); 
$imgHeight = @ImageSY($thumb);

$wi=$imgWidth-255;
//razmer logotipa
$w = @ImageSX($is);
$t = @ImageSY($is);

//koordinati teksta na osnovnoi risunok
$h=$imgHeight*0.95;


$font="arial.ttf";
$text="8(067)692-44-88; 8(032)292-53-81 Aleksandr";


imagecopy($thumb, $is, 10, 10, 0, 0, $w, $t);
//vstavka logotipa na osnovnoi risunok

$black1 = imagecolorallocate($thumb, 255, 0, 0); //shrift texta
$black = imagecolorallocate($thumb, 0, 0, 255); // shrift teksta


//vstavka texta na osnovnoi risunok

imagettftext($thumb, 20, 0, 10, $h, $black1, $font, $text);
imagettftext($thumb, 20, 0, $wi, 30, $black1, $font, "http://japancars.cc");


imagejpeg($thumb);
?>

 




Последний раз редактировалось: bober (Сб Dec 15, 2007 12:42 pm), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Dec 15, 2007 12:37 pm    Заголовок сообщения:
Ответить с цитатой

Пойдет скриптик, хоть и рекламы есть немного Very Happy Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Dec 15, 2007 12:40 pm    Заголовок сообщения:
Ответить с цитатой

Пример создания водяных знаков

<?php

// нужен класс Watermark
include 'api.watermark.php';

$watermark = new watermark();
$main_img_obj = imagecreatefromjpeg('./'.$_GET['main']);

// картинка содержит логотип
$watermark_img_obj = imagecreatefrompng('./watermark.png');
$return_img_obj = $watermark->create_watermark($main_img_obj, $watermark_img_obj, 66);
header('Content-Type: image/jpeg');
header('Content-Disposition: inline; filename=' . $_GET['src']);

// выводим картинку
imagejpeg($return_img_obj, '', 100);

?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Dec 15, 2007 12:50 pm    Заголовок сообщения:
Ответить с цитатой

bober, japancars - вот никогда не пойму почем запчасти от JapanCars делают в Польше Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
bober

Новенький


Зарегистрирован: 01.06.2006
Сообщения: 16

СообщениеДобавлено: Сб Dec 15, 2007 12:51 pm    Заголовок сообщения:
Ответить с цитатой

а где можно взять файл 'api.watermark.php'
_________________
ACURA MDX SPORT+ENTERTIMENT IS COOL!!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Сб Dec 15, 2007 12:54 pm    Заголовок сообщения:
Ответить с цитатой

bober, ответь сначала про вопрос о JapanCars, а я потом выложу файлик Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Maxim

Участник тусовки


Зарегистрирован: 22.02.2006
Сообщения: 245

СообщениеДобавлено: Сб Dec 15, 2007 3:40 pm    Заголовок сообщения:
Ответить с цитатой

Гы) Но, пару моих клиентов хостер чуть к стенке не поставил за то, что каждую секунду скрипты сайта жали по полторы сотни 3-5 мегапиксельных картинок в привью 640*480, решение было такое юзать ImageMagic (обожаю эту штуку) и сменить хостера. Код image magic ниже:

Код:

<?php

$root  = dirname($config_file);
$imagic = "path_to_im";

// Render resized file   
  if(file_exists($large_file_path) {
        header("Content-type: image/jpeg");
      
      // File itself
      $filename = $large_file_path;
      $filetmpname = $root.'/tmp/'.uniqid()."jpg";
      
      // Set maximum height and width
      $width = 640;
      $height = 480;
      
      $cmd  = $imagic;
      $cmd .= ' convert';
      $cmd .= ' '.$filename;
      $cmd .= ' -resize '.$width.'x'.$height;
      $cmd .= ' '.$filetmpname;

      exec($cmd);

      echo file_get_contents($filetmpname);
      unlink($filetmpname);
  }
else return false;

?>


Кстати пропорции сохраняются без бубна.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
bober

Новенький


Зарегистрирован: 01.06.2006
Сообщения: 16

СообщениеДобавлено: Вс Dec 16, 2007 11:39 am    Заголовок сообщения:
Ответить с цитатой

den писал(а):
bober, japancars - вот никогда не пойму почем запчасти от JapanCars делают в Польше Very Happy

Извените о чем Вы я Вас не понял
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
bober

Новенький


Зарегистрирован: 01.06.2006
Сообщения: 16

СообщениеДобавлено: Вс Dec 16, 2007 11:41 am    Заголовок сообщения:
Ответить с цитатой

Maxim писал(а):
Гы) Но, пару моих клиентов хостер чуть к стенке не поставил за то, что каждую секунду скрипты сайта жали по полторы сотни 3-5 мегапиксельных картинок в привью 640*480, решение было такое юзать ImageMagic (обожаю эту штуку) и сменить хостера. Код image magic ниже:

Код:

<?php

$root  = dirname($config_file);
$imagic = "path_to_im";

// Render resized file   
  if(file_exists($large_file_path) {
        header("Content-type: image/jpeg");
      
      // File itself
      $filename = $large_file_path;
      $filetmpname = $root.'/tmp/'.uniqid()."jpg";
      
      // Set maximum height and width
      $width = 640;
      $height = 480;
      
      $cmd  = $imagic;
      $cmd .= ' convert';
      $cmd .= ' '.$filename;
      $cmd .= ' -resize '.$width.'x'.$height;
      $cmd .= ' '.$filetmpname;

      exec($cmd);

      echo file_get_contents($filetmpname);
      unlink($filetmpname);
  }
else return false;

?>


Кстати пропорции сохраняются без бубна.

Я сам себе хостер админ и прочие Twisted Evil
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13771
Откуда: Кировоград, Украина

СообщениеДобавлено: Вс Dec 16, 2007 1:01 pm    Заголовок сообщения:
Ответить с цитатой

bober писал(а):
den писал(а):
bober, japancars - вот никогда не пойму почем запчасти от JapanCars делают в Польше Very Happy

Извените о чем Вы я Вас не понял


О том что компания JapanCars - польская!

Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> PHP Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис