Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
1

Resize картинки

11.11.2013, 19:56. Показов 763. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Нашел тут на сайте, код Resiz'а картинки. Я его слегка адаптировал под себя, но появились некоторые вопросы. Вот код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function imageResize($src, $dst, $width, $height, $i){
    if(!($info = @getimagesize($src)))
        return false;
    $w = $info[0];
    $h = $info[1];
    $type = '.jpg';
    $func = 'imagecreatefrom' . $type;
    if(!function_exists($func))
        return false;
    $img = $func($src);
    if($w < $width && $h < $height)
        return false; // еще меньше
    $ratio = min($width/$w, $height/$h);
    $width = $w * $ratio;
    $height = $h * $ratio;
    $x = 0;
    $new = imagecreatetruecolor($width, $height); // прозрачность
    imagecopyresampled($new, $img, 0, 0, $x, 0, $width, $height, $w, $h);
    $save = $i . $type;
    return $save($new, $dst);
Код взят у KopoJI

Вообщем вопросы такие:
1. Как адаптировать скрипт так, чтобы при загрузке файлов на сервер (когда они еще в tmp) их ресайзить и только потом загружать на сервер?
2. Как можно ресайзить картинки двух разных видов? Картинки горизонтальные (широкие) и картинки вертикальные (узкие, но длинные)

Да и вот код upload'a
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function upload($path,$dir){
    if(!isset($_FILES['userfile']))
        return 'Ошибка. Не существует';
    if(empty($_FILES['userfile']))
        return 'Вы не загрузили файлы!';
    foreach($_FILES['userfile']['name'] as $k=>$v){
        $tmp_name= $_FILES['userfile']['tmp_name'][$k];
        $size=$_FILES['userfile']['size'][$k];
        $type='.jpg';
        if($size >= 20000000)
            return 'Слишком большой файл для загрузки!';
        $i=0;
        while(file_exists($filename = $path.'/'.++$i . $type))
            ;
        if (!move_uploaded_file($tmp_name, $filename))
            return 'Ошибка загрузки файла';
        chmod($filename, 0777);
    }
    require_once 'config.php';
    global $errors;
    $errors .= connect();
    $sql=mysql_query('UPDATE `index` SET `images`="'.$dir.'"') or die (mysql_error());
    header('Location: '.$site.'/scripts/admin.php');
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2013, 19:56
Ответы с готовыми решениями:

Resize + Rename
Доброго времени суток, есть код: &lt;?php if (!empty($_FILES)) { $uploaddir='files/'; ...

затрудняюсь с функцией Resize
Необходимо написать функцию, которая принимает изображение из временной директории, уменьшает ее...

Класс resize image , выводятся каракули на экран
Использую класс &lt;?php class SimpleImage { var $image; var $image_type; function...

Resize изображений, что лучше JS или PHP?
Здравствуйте! Делаю сайт с обоями для рабочего стола. Возникла проблема ресайза изображений. Как вы...

8
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
12.11.2013, 21:23  [ТС] 2
Вверх
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.11.2013, 21:30 3
Загрузил картинку, сделал ресиз, сохранил картинку.
Тут безразници какая картинка, широкая или узкая.
0
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
12.11.2013, 21:44  [ТС] 4
Цитата Сообщение от Игорь[Igor] Посмотреть сообщение
Загрузил картинку, сделал ресиз, сохранил картинку.
Тут безразници какая картинка, широкая или узкая.
Еще вопрос. Где здесь хранится картинка? В чем? Чтобы сохранить нужно это знать
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.11.2013, 22:08 5
в переменной $tmp_name
0
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
12.11.2013, 23:28  [ТС] 6
Цитата Сообщение от Игорь[Igor] Посмотреть сообщение
в переменной $tmp_name
В коде ресайза имеется в виду

Добавлено через 55 минут
Цитата Сообщение от KOPOJI Посмотреть сообщение
она не очень хорошо ресайзит, лучше imagecopyresampled.
Может сам Король подскажет? Как мне обратиться к файлу, чтобы его сохранить. Как обработать файл, когда он еще в темпе? Я немного не понимаю, как соединить эти два скрипта
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
12.11.2013, 23:44 7
Ну наверное будет логично сделать
PHP
1
$img=imageResize($src, $dst, $width, $height, $i);
0
25 / 25 / 4
Регистрация: 21.10.2012
Сообщений: 391
13.11.2013, 12:01  [ТС] 8
Цитата Сообщение от Игорь[Igor] Посмотреть сообщение
Ну наверное будет логично сделать
PHP
1
$img=imageResize($src, $dst, $width, $height, $i);
Если я укажу в src путь к картинке темповский, а в dst путь куда надо сохранить, он загрузит файл на сервер и сохранит?
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
13.11.2013, 12:30 9
Да, насколько я код понимаю
0
13.11.2013, 12:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2013, 12:30
Помогаю со студенческими работами здесь

Загрузка картинки (имя картинки заносится в базу, но на сервер она не закачивается)
Добрый вечер! Друзья выручайте... Набросал код (кое что взял с Интернета) для загрузки картинок:...

Загрузка картинки на сервер по ссылке, отправка, удаление картинки
Какие есть методы, чтобы: а) Загрузить на сервер в папку ../temp картинку по ссылке (например,...

Не выполняется функция resize
Здравствуйте, помогите пожалуйста, создал форму для загрузки изображений, написал к ней скрипт, но...

CImage - resize для картинки
Привет. Подскажите как сделать resize картинки? Видел примеры в инете, но все что пробовал -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru