Dreammaker

Dreammaker
Рейтинг
569
Регистрация
20.04.2006

Вот php-скрипт сегодня я как раз соединил несколько функций для этой задачи, нужно было уменьшить для сайта.


<?

$width= 200; // ширина полученного рисунка;

$height = 100; // высота рисунка

$background = 0xFFFFFF; //0xFFFFFF - это белый

$quality = 100; // качество сжатия здесь 100% ;

// (точно не помню, но по-моему с форума Нетката, по крайней мере я выудил её из своей разработки на неткате)
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100)
{
if (!file_exists($src)) {
echo "File ne exists";
return false;
}

$size = getimagesize($src);

if ($size === false) {
echo "Razmer ne exists";
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 ? 0 : floor(($width - $new_width) / 2);
$new_top = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);

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

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

imagejpeg($idest, $dest, $quality);

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

return true;

}

//Взято из CodeIgniter (хэлпер file_helper) www.codeigniter.com

function get_filenames($source_dir, $include_path = FALSE)
{
static $_filedata = array();

if ($fp = @opendir($source_dir))
{
while (FALSE !== ($file = readdir($fp)))
{
if (@is_dir($source_dir.$file) && substr($file, 0, 1) != '.')
{
get_filenames($source_dir.$file."/", $include_path);
}
elseif (substr($file, 0, 1) != ".")
{

$_filedata[] = ($include_path == TRUE) ? $source_dir.$file : $file;
}
}
return $_filedata;
}
}

$files = get_filenames($_SERVER['DOCUMENT_ROOT'].'/photos1/');


foreach ($files as $file){
img_resize($_SERVER['DOCUMENT_ROOT'].'/photos/photos1/'.$file, $_SERVER['DOCUMENT_ROOT'].'/photos/photos2/'.$file, $width, $height, $background, $quality);

}
?>

Использовать можно на хосте или, например, под денвером.

В корневую папку сайта закачиваем данный скрипт.

Создаём две папки photos1 и photos2

В photos1 закачиваем фотографии, которые нужно сжать.

В скрипте прописываем:

$width - желаемая ширина превьюхи

$height - желаемая высота превьюхи

$background - цвет фона RGB (задавать в том формате что и в примере белый)

$quality - качество, процент сжатия.

После запуска и отработки скрипта результат (все рисунки) будут сохранены в папку photos2 . Результат будет в формате jpeg.

Относительно $background - рисунки не растягиваются без формы, а сжимаются пропорционально, а потом ложаться на фон с параметрами заданными в скрипте. В общем, хорошо получается. :)

update: Исправил ошибку - путь был не исправил...

NaturalLinks.ru:
Выбирайте:

Так даже более таргетированно :)

http://images.google.com/images?gbv=2&svnum=10&hl=en&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=invoice+advertisement&spell=1

Масол:
И все эти затраты под постоянным вопросом: "Забанят или нет".

Все эти затраты должны сразу идти под утверждением "забанят". И соответственно "бизнес-план" должен разрабатываться под это.

MoMM:
намек - помидор не всегда красный и красный цвет еды не означает, что перед вами помидор.

офф: а означает, что в этих разных продуктах скорее всего есть бета-каротин, а это значит, что причина красноты одинаковая.

:)

Web-Silver:
можно тогда узнать

Отсюда http://www.artlebedev.ru/tools/technogrette/html/links/


В MSIE для того, чтобы сделать курсор мыши в виде руки нужно написать cursor: hand;. В Mozilla (и по рекомендации W3C) — cursor: pointer;. Последний вариант работает и в WinMSIE6. Для того чтобы сделать стиль для всех браузеров, нужно написать cursor: pointer; cursor: hand; (именно в такой последовательности). Тогда MSIE возьмет последнее (cursor: hand;), а остальные браузеры, в соответствии со спецификацией, возьмут первое значение, т. е. cursor: pointer;.
Web-Silver:
Я думал это так делается:

Это делается:

Polimer:
{cursor: pointer; cursor: hand;}

Вы, наверное, живёте в идеальном мире, где все броузеры работают по стандартам :)

webcat:
Абонемент на фитнес или день в салоне красоты

а не будет воспринято как "ты - толстая и некрасивая"? :)

big boy:
духи только в том случае если точно знаете какие, а то пальцем в небо попасть можно.

+1 не лучший подарок. Неизвестно запах понравится или нет.

Поставьте ссылку текстовую, а то я не сразу въехал, что картинка это ссылка :)

Так-с, я наверное попробую поучаствовать в видеоконкурсе :)

update: Нет. Я живу не в одном из больших городов участников :(

Всего: 10921