[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: создание превьюшек
tishka
Здравствуйте!

Есть скрипт создания превьюшек при загрузке ихображений. Всё работает, есть только одна проблема: когда картинкаобрезается, и у нее ширина получается меньше заданной, все остальное пространство заливается черным цветом. Как здесь:

user posted image

Как сделать так, чтобы заливалось белым?

Вот код:



$nw = 150;
$nh = 100;
$source = $root . "/platn/".$z."_1_".$name_file.".".$raschirenie;
$dest = $root . "/platn-thumb/".$z."_1_".$name_file."-thumb.".$raschirenie;
$stype = explode(".", $source);
$stype = $stype[count($stype)-1];
$size = getimagesize($source);
$w = $size[0];
$h = $size[1];
switch($stype) {
case 'gif':
$simg = imagecreatefromgif($source);
break;
case 'jpg':
$simg = imagecreatefromjpeg($source);
break;
case 'jpeg':
$simg = imagecreatefromjpeg($source);
break;
case 'png':
$simg = imagecreatefrompng($source);
break;
}
$dimg = imagecreatetruecolor($nw, $nh);
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;
if($w > $h) {
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
}
elseif(($w < $h) || ($w == $h)) {
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 2;
$int_height = $half_height - $h_height;
imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
} else {
imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
}
imagejpeg($dimg,$dest,100);


Заранее спасибо ответившим!



Спустя 1 час, 8 минут, 56 секунд (10.09.2012 - 22:45) walerus написал(а):

$dimg = imagecreatetruecolor($nw, $nh);
// установка белого фона
$white = imagecolorallocate($dimg, 255, 255, 255);
imagefill($dimg, 0, 0, $white);

Спустя 13 часов, 4 минуты, 47 секунд (11.09.2012 - 11:50) tishka написал(а):
Большое спасибо, то что нужно)

Спустя 1 день, 7 часов, 7 минут, 44 секунды (12.09.2012 - 18:57) tishka написал(а):
Вот еще вопрос по данному коду, может знаете: заметил, почему-то не хочет грузить файлы с расширениями png, gif и jpeg. Получается просто белый фон. Jpg грузит нормально. Буду благодарен советам.

Спустя 32 минуты, 12 секунд (12.09.2012 - 19:30) sergeiss написал(а):
Цитата (tishka @ 12.09.2012 - 19:57)
Вот еще вопрос по данному коду, может знаете: заметил, почему-то не хочет грузить файлы с расширениями png, gif и jpeg. Jpg грузит нормально. Буду благодарен советам.

Потому что у тебя расширение (по сути тип файла) определяется переменной $raschirenie. Смотри, что в ней записано. Хотя, конечно, лучше определять тип файла, исходя из его содержимого. В библиотеке GD2 есть функции для этого. Например, image_type_to_mime_type()
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.