|
|
|
| Есть такой код
// создание большого изображения
$messages = array();
$time = time();
$ext = '.jpg';
$imgDir = "avatars/big/"; // каталог для хранения изображений
$imgBD = "avatars/big/"; // каталог для хранения изображений
@mkdir($imgDir, 0777);
if (isset($_POST['doUpload'])) {
$data = $_FILES['userfile'];
$tmp = $data['tmp_name'];
if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['userfile']['tmp_name']);
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
$newwidth = 550;
$newname = $imgBD.$time.$ext;
$newname2 = $imgDir.$time.$ext;
if ($info[0] < $newwidth){
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {
$messages[] = "";
}
else {
$messages[] = "Ошибка загрузки файла!";
}
}
else {
if(resize($tmp, $newwidth, $newname)){
$messages[] = "Рисунок был успешно загружен и преобразован";
}
else {
$messages[] = "Произошла ошибка при загрузке файла";
}
}
}
else {
$messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";
}
}
else {
$messages[] = "Файл не был загружен.";
}
}
function resize($photo_src, $width, $name){
$parametr = getimagesize($photo_src);
list($width_orig, $height_orig) = getimagesize($photo_src);
$ratio_orig = $width_orig/$height_orig;
$new_width = $width;
$new_height = $width / $ratio_orig;
$newpic = imagecreatetruecolor($new_width, $new_height);
switch ( $parametr[2] ) {
case 1: $image = imagecreatefromgif($photo_src);
break;
case 2: $image = imagecreatefromjpeg($photo_src);
break;
case 3: $image = imagecreatefrompng($photo_src);
break;
}
imagecopyresampled($newpic, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
imagejpeg($newpic, $name, 100);
return true;
}
// создание изображения закончено
|
Хочу сделать, чтобы создавалась еще уменьшенная копия 150х150 пикс. Как это сделать? | |
|
|
|
|
|
|
|
для: kapitalist
(18.03.2012 в 22:53)
| |
1.Изучить php....
2.переписать функцию function resize($photo_src, $width, $name){
добавив $height и алгоритм изменения пропорций (уменьшения или вырезки части оригинала...)
3.(if @file_exists($tmp)) { ...читаем
|
http://www.softtime.ru/dic/id_dic=173&id_group=6...собака лишняя
порадовала строка...что это....
if (preg_match('{image/(.*)}is', $info['mime'], $p)) {
|
вместо $info = @getimagesize($_FILES['userfile']['tmp_name']);
<?
if(!empty($_FILES['userfile']['tmp_name'])) {
$info = getimagesize($_FILES['userfile']['tmp_name']);
}
или
$info=!empty($_FILES['userfile']['tmp_name'])?getimagesize($_FILES['userfile']['tmp_name']):NULL;
|
а вообще.... переписать алгоритм загрузки...тут по форуму много информации на эту тему | |
|
|
|
|
|
|
|
для: kapitalist
(18.03.2012 в 22:53)
| | Прежде чем перемещать загруженный файл, нужно проверить ошибки, именно их отсутствие, а не наличие 'tmp_name' является признаком успешной загрузки.
Для того чтобы уменьшить изображение, совсем не обязательно его сохрять предварительно.
Зачем объявлять две переменных с одним и тем же значением? | |
|
|
|