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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не изменяется цвет фона 
:(
    Опции темы
BuShaRt
Дата 22.9.2007, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

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



Использую найденный в одном из топиков всеми нами любимого винграда скрипт, для подгонки изображения к определенному заранее известному размеру. Все вроде как работает, но скрипт «заливает» пустые области черным цветом, не как не жилая закрашивать именно указанным мной цветом.
В чем проблема?

Код

function SaveResized ($sSource, $sDest, $iMaxX, $iMaxY, $iRGB='e8edf0', $iQuality=80){
  if (!file_exists($sSource)) return -1; //file not found

  $aImgSize = getimagesize($sSource);

  if ($aImgSize === false) return -2; //getimgsize error

  $sMime = strtolower(substr($aImgSize['mime'], strpos($aImgSize['mime'], '/')+1));
  $fcImageCreateFrom = "imagecreatefrom" . $sMime;
  if (!function_exists($fcImageCreateFrom)) return -3;  //unknown format

  $fXRatio = $iMaxX / $aImgSize[0];
  $fYRatio = $iMaxY / $aImgSize[1];

  $fRatio       = min($fXRatio, $fYRatio);
  $fUseRatio = ($fXRatio == $fRatio);

  $iNewWidth   = $fUseRatio  ? $iMaxX  : floor($aImgSize[0] * $fRatio);
  $iNewHeight  = !$fUseRatio ? $iMaxY : floor($aImgSize[1] * $fRatio);
  $iNewLeft    = $fUseRatio  ? 0 : floor(($iMaxX - $iNewWidth) / 2);
  $iNewTop     = !$fUseRatio ? 0 : floor(($iMaxY - $iNewHeight) / 2);

  $rImg = $fcImageCreateFrom($sSource);
  $rImgDest = imagecreatetruecolor($iMaxX, $iMaxY);

  imagefill($rImgDest, 0, 0, $iRGB);
  imagecopyresampled($rImgDest, $rImg, $iNewLeft, $iNewTop, 0, 0,
    $iNewWidth, $iNewHeight, $aImgSize[0], $aImgSize[1]);

  imagejpeg($rImgDest, $sDest, $iQuality);

  imagedestroy($rImg);
  imagedestroy($rImgDest);

  return true;
}

PM MAIL   Вверх
ewolf
Дата 22.9.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



imagefill, равно как и другие функции, не принимает цвет в hex-записи. 

Сначала нужно вызвать функцию imagecolorallocate, передав ей соотвествующие параметры, а затем заливать изображение возвращенным данной функцией идентификатором цвета.
PM MAIL ICQ   Вверх
BuShaRt
Дата 23.9.2007, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

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



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


 




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


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

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