[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение загруженной картинки до нужных размеров
qww
Здравствуйте! Уже сделал чтобы картинка загружалась в бд. Как сделать чтобы картинка ужиматься до 200 на 200 пикселей, если она больше по размеру
Если картинка закачана 100 на 100, то не должна растягиваться до 200 на 200? Помогите!




Спустя 1 час, 14 минут, 38 секунд (6.08.2011 - 10:06) kovaldm написал(а):
Почитай про расширение GD для рнр.

Спустя 12 минут, 49 секунд (6.08.2011 - 10:19) qww написал(а):
Спасибо уже начал читать!

Спустя 44 минуты, 22 секунды (6.08.2011 - 11:03) qww написал(а):
Может подскажет кто-нибудь как картинку из базы достать и чтоб она отобрадалась на странице?

Спустя 4 минуты, 34 секунды (6.08.2011 - 11:08) ИНСИ написал(а):
qww можешь использовать данную функцию:
function resize($src, $dest, $width, $heigh, $quality = 90) {
$ratio = $width/$heigh;
$sizeImg = getimagesize($src);
$ext = strtolower(substr($sizeImg['mime'], strpos($sizeImg['mime'], '/')+1));

$srcRatio = $sizeImg[0]/$sizeImg[1];
if($ratio < $srcRatio) $heigh = $width/$srcRatio;
else $width = $heigh * $srcRatio;

$destImg = imagecreatetruecolor($width, $heigh);
$icfunc = 'imagecreatefrom' . $ext; if(!function_exists($icfunc)) return false;

$srcImg = $icfunc($src);
if(!imagecopyresampled($destImg, $srcImg, 0, 0, 0, 0, $width, $heigh, $sizeImg[0], $sizeImg[1]))
return false;

$sfunc = 'image' . $ext;
if($ext != 'gif') {
$sfunc($destImg, $dest, $quality);
} else {
$sfunc($destImg, $dest);
}
imagedestroy($srcImg); imagedestroy($destImg);
return true;
}

Спустя 43 минуты, 19 секунд (6.08.2011 - 11:51) qww написал(а):
Спасибо! Сейчас попробую!

Спустя 43 минуты, 29 секунд (6.08.2011 - 12:35) killer8080 написал(а):
	if($ext != 'gif') {
$sfunc($destImg, $dest, $quality);
} else {
$sfunc($destImg, $dest);
imagedestroy($srcImg); imagedestroy($destImg);
return true;
}

наверно правильней было бы так
	if($ext != 'gif') {
$sfunc($destImg, $dest, $quality);
} else {
$sfunc($destImg, $dest);
}

imagedestroy($srcImg); imagedestroy($destImg);
return true;

Спустя 1 час, 30 минут, 52 секунды (6.08.2011 - 14:05) qww написал(а):
Я ещё сделал чтоб картинка попадала во временную папку.
$uploaddir = 'C:/WebServers/tmp/';
$uploadfile = $uploaddir . basename($_FILES['image']['name']);

Можно её оттуда извлечь на страницу?

Спустя 8 минут, 50 секунд (6.08.2011 - 14:14) qww написал(а):
А с функцией что-то не выходит. Ещё когда открываю phpmyadmin в значение поля написано [BLOB - 0B]. То есть получается картинка туда вообще не попала. Запрос на добавление картинки в бд
 $result="INSERT INTO image (content) VALUES ('$image')";
mysql_query($result);
if($result==true){
echo "<p>Спасибо!<br />";}
else{
echo "Jib,rf!";
}
.
Я функцию resize вызываю в файле обработчика, или там где я загружаю картинку?

Спустя 33 минуты, 30 секунд (6.08.2011 - 14:48) ИНСИ написал(а):
killer8080 правильно.

qww покажи полностью свой скрипт загрузки

Спустя 7 минут, 22 секунды (6.08.2011 - 14:55) qww написал(а):
Загрузка поисходит в бд и вовременную папку

$result="INSERT INTO image (content) VALUES ('$image')";
mysql_query($result);
if($result==true){
echo "<p>Спасибо!<br />";}
else{
echo "Jib,rf!";
}
/*
if(copy($_FILES["image"]["tmp_name"],
"C:/WebServers/tmp/".$_FILES["image"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["image"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["image"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($_FILES["image"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($_FILES["image"]["type"]);
} else {
echo("Ошибка загрузки файла");
}

exit();
*/

$uploaddir = 'C:/WebServers/tmp/';
$uploadfile = $uploaddir . basename($_FILES['image']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
echo "Файл корректен и был успешно загружен.\n";
} else {
echo "Возможная атака с помощью файловой загрузки!\n";
}

echo 'Некоторая отладочная информация:';
print_r($_FILES);



Для вывода изображения прописал следующее:
$poto = $_FILES["image"]["name"];
// открываем папку
$handler = opendir("C:/WebServers/tmp/");
// начинаем цыкл по папке, проходим по всем файлам в папке
while (false !== ($photo = readdir($handler))) {
//избавляемя от не фоток в этой папке (эта хрень по умолчанию там есть), чтобы выводились только файлы (т.е фотки)
if ($photo !== "." && $photo !== ".." && $photo !== "Thumbs.db") {
// выводим в браузер
print_r ("<img src = 'C:/WebServers/tmp/$photo' border = 0 />");


не работает.

Спустя 1 час, 57 минут, 4 секунды (6.08.2011 - 16:52) qww написал(а):
Всё! Всё работает! Всем спасибо!
Быстрый ответ:

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