Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » можно ли изменить ширину картинки посредством php?

Ответить
Настройки темы
можно ли изменить ширину картинки посредством php?

Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


например есть картинка размером 1024 на *
мы обычно лезем в фотожоп кс и меняем его на 300 например и высоту какая получится,
а можноли это автоматизировать через php?

т.е. например при аплодиньи картинок на сервер чтобы они уменьшались?

Отправлено: 00:05, 13-03-2005

 

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Читаем про библиотеку GD, в основном, она везде поддерживается (я имею в виду хостинг с PHP)
В мануале функции этой библиотеки стоят в главе "Функции изображений"
В данном конкретном случае можно например использовать imagecopyresized(), эта функция не только меняет размеры, но ещё при этом следит и за качеством (которое может испортиться при изменении размеров картинки)

Официальная страница этой библиотеки, но в интернете есть туториалы, в том числе и конкретное использование вместе с PHP, например тут

-------
Fortes fortuna adiuvat


Отправлено: 00:18, 13-03-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


а ктонибудь подсакажет откуда этот модуль скачать и как поставить под винд и линкс?

-------
Основы HTML | Конференции


Отправлено: 01:45, 13-03-2005 | #3


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


а с видио какнибудь php работает?

-------
Основы HTML | Конференции


Отправлено: 01:46, 13-03-2005 | #4

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


под win - "Как установить модуль GD для PHP"
как в Linux - как ставить будем? (компилим, пакеты, apt... )
для все случаев phpinfo(); (на предмет - не стоит ли уже )

Последний раз редактировалось mar, 13-03-2005 в 20:46.


Отправлено: 20:41, 13-03-2005 | #5

KGB


Сообщения: n/a

Профиль | Цитировать


E-mail
Есть куча б/скриптов для этого.

Вот например (с _php5.ru)
PHP код: Выделить весь код

<?php

/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
  $src             - имя исходного файла
  $dest            - имя генерируемого файла
  $width, $height  - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
  $rgb             - цвет фона, по умолчанию - белый
  $quality         - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize($src$dest$width$height$rgb=0xFFFFFF$quality=100)
{
  if (!
file_exists($src)) return false;

  
$size getimagesize($src);

  if (
$size === false) return false;

  
// Определяем исходный формат по MIME-информации, предоставленной
  // функцией getimagesize, и выбираем соответствующую формату
  // imagecreatefrom-функцию.
  
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  
$icfunc "imagecreatefrom" $format;
  if (!
function_exists($icfunc)) return false;

  
$x_ratio $width $size[0];
  
$y_ratio $height $size[1];

  
$ratio       min($x_ratio$y_ratio);
  
$use_x_ratio = ($x_ratio == $ratio);

  
$new_width   $use_x_ratio  $width  floor($size[0] * $ratio);
  
$new_height  = !$use_x_ratio $height floor($size[1] * $ratio);
  
$new_left    $use_x_ratio  floor(($width $new_width) / 2);
  
$new_top     = !$use_x_ratio floor(($height $new_height) / 2);

  
$isrc $icfunc($src);
  
$idest imagecreatetruecolor($width$height);

  
imagefill($idest00$rgb);
  
imagecopyresampled($idest$isrc$new_left$new_top00
    
$new_width$new_height$size[0], $size[1]);

  
imagejpeg($idest$dest$quality);

  
imagedestroy($isrc);
  
imagedestroy($idest);

  return 
true;

}
?>

Использование
PHP код: Выделить весь код

<?php


  
require ('imgresize.php');
  if (
img_resize('original.jpg''small.jpg'10060)) // 100 - новая ширина 60 - высота
    
echo 'Image resized OK';
  else
    echo 
'Resize failed!';

?>

А это тоже самое, но размер меняется в % (слегка переделал для своих нужд)
PHP код: Выделить весь код

<?php

function img_resize($src$dest$new_size$rgb=0xFFFFFF$quality=100)
{
  if (!
file_exists($src)) return false;

  
$size getimagesize($src);

  if (
$size === false) return false;

  
// Определяем исходный формат по MIME-информации, предоставленной
  // функцией getimagesize, и выбираем соответствующую формату
  // imagecreatefrom-функцию.
  
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  
$icfunc "imagecreatefrom" $format;
  if (!
function_exists($icfunc)) return false;

    if(
$new_size>100$new_size=40;//  эту строчку можно убрать, если надо увеличивать
    
$width$size[0]* $new_size/100;
    
$height=$size[1]* $new_size/100;


  
$x_ratio $width $size[0];
  
$y_ratio $height $size[1];

  
$ratio       min($x_ratio$y_ratio);
  
$use_x_ratio = ($x_ratio == $ratio);

  
$new_width   $use_x_ratio  $width  floor($size[0] * $ratio);
  
$new_height  = !$use_x_ratio $height floor($size[1] * $ratio);
  
$new_left    $use_x_ratio  floor(($width $new_width) / 2);
  
$new_top     = !$use_x_ratio floor(($height $new_height) / 2);

  
$isrc $icfunc($src);
  
$idest imagecreatetruecolor($width$height);

  
imagefill($idest00$rgb);
  
imagecopyresampled($idest$isrc$new_left$new_top00
    
$new_width$new_height$size[0], $size[1]);

  
imagejpeg($idest$dest$quality);

  
imagedestroy($isrc);
  
imagedestroy($idest);

  return 
true;

}
?>

Соответственно использование
PHP код: Выделить весь код

<?php


  
require ('imgresize.php');
  if (
img_resize('original.jpg''small.jpg'60)) // здесь 60 - это проценты от оригинала
    
echo 'Image resized OK';
  else
    echo 
'Resize failed!';

?>




Отправлено: 02:18, 14-03-2005 | #6


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


ваУ, неожидал таких больших листингов спасип)

меня инересует как установить под unix модули php в часности gd,
как собстно компилить? или может готовое скачать откуда можно и чтото прописать в апач конфиги?
хелп.

php установлен как модуль к апачу

-------
Основы HTML | Конференции


Отправлено: 17:17, 14-03-2005 | #7


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Доки тут. Там же и скачать. В доках вариации: установить, обновить - выбираем по вкусу.

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 14:20, 17-03-2005 | #8


Аватара для E-mail

Ветеран


Сообщения: 640
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


кстати вопрос все есче в силе: с видио работает какнибудь?

-------
Основы HTML | Конференции


Отправлено: 02:53, 06-06-2005 | #9


Аватара для archy

Ветеран


Сообщения: 659
Благодарности: 3

Профиль | Отправить PM | Цитировать


E-mail
Что подразумевается в работе с видео?

Отправлено: 12:55, 07-06-2005 | #10



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » можно ли изменить ширину картинки посредством php?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Как можно узнать ширину шины памяти встроенной видеокарты xxxxxbek Видеокарты 2 31-10-2009 07:55
DNS/DHCP - можно ли изменить DNS Diomant2186 Сетевые технологии 10 22-07-2009 17:15
Интерфейс - Можно ли увеличить ширину панели быстрого запуска в Vista и размер значков в ней? Una Microsoft Windows Vista 4 21-04-2008 04:55
Как можно вставить картинки в письмо? thief_89 Хочу все знать 4 07-04-2008 14:15
Как можно изменить.... JCooper Microsoft Windows 95/98/Me (архив) 14 05-08-2002 08:56




 
Переход