Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как изменить функцию resizeimg? Как изменить функцию resizeimg? 
:(
    Опции темы
jeans1986
Дата 8.6.2007, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Есть функция которая уменьшает изображение сохраняя пропорцию:
Код

<?php 
  function resizeimg($filename, $smallimage, $w, $h)  
  {  
    // определим коэффициент сжатия изображения, которое будем генерить  
    $ratio = $w/$h;  
    // получим размеры исходного изображения  
    $size_img = getimagesize($filename);  
    // получим коэффициент сжатия исходного изображения  
    $src_ratio=$size_img[0]/$size_img[1];  

    // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились   
    // пропорции исходного изображения  
    if ($ratio<$src_ratio)  
    {  
      $h = $w/$src_ratio;  
    }  
    else  
    {  
      $w = $h*$src_ratio;  
    }  
    // создадим пустое изображение по заданным размерам   
    $dest_img = imagecreatetruecolor($w, $h);    
    $white = imagecolorallocate($dest_img, 255, 255, 255);         
    if ($size_img[2]==2)  $src_img = imagecreatefromjpeg($filename);                        
    else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);                        
    else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);   

    // масштабируем изображение     функцией imagecopyresampled()  
    // $dest_img - уменьшенная копия  
    // $src_img - исходной изображение  
    // $w - ширина уменьшенной копии  
    // $h - высота уменьшенной копии          
    // $size_img[0] - ширина исходного изображения  
    // $size_img[1] - высота исходного изображения  
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);                  
    // сохраняем уменьшенную копию в файл   
    if ($size_img[2]==2)  imagejpeg($dest_img, $smallimage);                        
    else if ($size_img[2]==1) imagegif($dest_img, $smallimage);                        
    else if ($size_img[2]==3) imagepng($dest_img, $smallimage);   
    // чистим память от созданных изображений  
    imagedestroy($dest_img);  
    imagedestroy($src_img);  
    return true;           
  }              
   
   
//Запуск функции 
$bigimage = "big.jpg"; //Большое изображение 
$smallimage = "mini.jpg"; //Куда сохранить маленькое  
resizeimg($bigimage, $smallimage, 100, 100);  //размеры 100x100px 
?> 


Как исправит эту функцию чтоб при уменьшении размера изображения сохранялись пропорции и изображени заливалось прозрачным или белым цветом до размеров переданныз в параметре, т.е ечли унас resizeimg($bigimage, $smallimage, 100, 100);, чтоб функция всегда возвращала изображение 100х100 сохраняя пропорции изображения, добавляя по краям прозрачный или белый цвет. ЗАРАНЕЕ СЕХ БЛАГОДАРЮ,
PM MAIL   Вверх
teroni
Дата 8.6.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 15.5.2007
Где: Днепропетровск

Репутация: 8
Всего: 22



строку 22 подвинуть выше, например там, где сейчас строка 10.
Для белого фона после ее можно добавить:
Код

$bgcolor = imagecolorallocate($dest_img, 255, 255, 255); // белый цвет
imagefilledrectangle($dest_img, 0, 0, $w-1, $h-1, $bgcolor);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.