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

Уважаемые программисты подскажите

12.10.2011, 01:33. Показов 812. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
загржаю фотографию вопрос вот в чем как сделать так чтоб при загрузки она поменяла ширину например на 200px а высоту изменила чтоб не бло искажения
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
  $path = "";
  if($_POST['chk_filename'] == "on")
  {
    if (!empty($_FILES['filename']['tmp_name']))
    {
      // Формируем путь к файлу    
      $path = "../files/".date("YmdHis",time());
      
      $ext = strrchr($_FILES['filename']['name'], "."); 
      $add = $ext;
      foreach($extentions AS $exten) 
      {
        if(preg_match($exten, $ext)) $add = ".txt"; 
      }
      $path .= $add; 
  
      if (copy($_FILES['filename']['tmp_name'], "../".$path))
      {
        @unlink($_FILES['filename']['tmp_name']);
        @chmod("../".$path, 0644);
      }
    }
    else links("Не указан файл");
  }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2011, 01:33
Ответы с готовыми решениями:

Уважаемые программисты (или математики), не можем составить формулу, подсобите
Есть база товаров. Стоит задача написать скрипт, который присваивает определенный числовой...

Уважаемые программисты помогите решить и понять задачу!
Создать счетчик числа посещений. Нужен простой код счетчика, выводящий число посещений на экран....

Уважаемые программисты, подскажите пж. что не так
#ifndef MATRIXh_H #define MATRIXh_H int random_massiv(int *mas, int s); int...

Уважаемые программисты, подскажите значение выражения the color SAP
Контекст такой: I finished the color SAP and the digital printing last night.

6
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
12.10.2011, 02:27 2
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    function image($filename, $newname, $width, $height)
    {
/*
параметры 
filename - путь к файлу с которого делать ресайз
newname- куда сохранить новый файл
width - макс ширина
height - и соотв. макс. высота
*/
    list($width_orig, $height_orig) = getimagesize($filename);
    $ratio_orig = $width_orig/$height_orig;
    if ($width/$height > $ratio_orig) {
        $width = $height*$ratio_orig;
    } else {
            $height = $width/$ratio_orig;
    }
 
    $image_p = imagecreatetruecolor($width, $height);
    $image = imagecreatefromjpeg($filename);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
    imagejpeg($image_p, $newname, 80);
    }
1
0 / 0 / 1
Регистрация: 12.07.2011
Сообщений: 139
12.10.2011, 02:37  [ТС] 3
Sulik78, спасибо огромное а куда это лучше вставить? подскажите

Добавлено через 5 минут
или я что то не догнал?
0
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
12.10.2011, 03:33 4
vamp_star, это функция
PHP
1
image('/usr/local/www/image/1.jpg', '/usr/local/www/image/1_thumb.jpg', 200, 200);
1
0 / 0 / 1
Регистрация: 12.07.2011
Сообщений: 139
12.10.2011, 14:49  [ТС] 5
Sulik78, вы меня не понили или я вас
мне надо что бы картинка проходила по моему обработчику и уменьшала ширину например до 200 а высоту уменьшала тоже но чтоб ее не задавать а автоматически чтоб уменьшала не деформирую изображения

Добавлено через 3 часа 14 минут
или то что я путаюсь это бред(
подскажите
0
450 / 203 / 27
Регистрация: 23.12.2010
Сообщений: 645
12.10.2011, 15:46 6
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    function image($filename, $newname, $width)
    {
/*
параметры 
filename - путь к файлу с которого делать ресайз
newname- куда сохранить новый файл
width - макс ширина
*/
        list($width_orig, $height_orig) = getimagesize($filename);
        $ratio_orig = $width_orig/$height_orig;
        $height = $width/$ratio_orig;
 
        $image_p = imagecreatetruecolor($width, $height);
        $image = imagecreatefromjpeg($filename);
        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
        imagejpeg($image_p, $newname, 80);
    }
тогда еще проще

Добавлено через 13 минут
vamp_star,
вообще по логике если загруженная картинка будет размером 100x2000
функция сделает ее 200х4000
но это абсурд Вы вдумайтесь в свои слова и сравните эти условия.
PHP
1
2
3
4
5
6
        $ratio_orig = $width_orig/$height_orig;
        if ($width/$height > $ratio_orig) {
            $width = $height*$ratio_orig;
        } else {
            $height = $width/$ratio_orig;
        }
а теперь математику и русский язык и всё в цифры и слова
разница = 100/2000 = 0,05
если (макс. ширина/макс. высота, у нас получиться 1) > (разница = 0,05)
----------
тогда ширина равна 200*0,05 = 10
а высота будет макс. высотой то есть 200
и это выведет изображение 10х200
-----
иначе сделаем ресайз наоборот не ширины а высоты
используя макс. ширину 200 а высоту что получиться
на мой взгляд это гораздо правильнее и логичнее, а вообще еще по хорошему нужно добавить проверку на то что если и ширина и высота меньше или равны максимальных. тогда вообще не делать ресайз
PHP
1
2
3
4
5
6
7
8
if($width_orig > $width || $height_orig > $height)
        $ratio_orig = $width_orig/$height_orig;
        if ($width/$height > $ratio_orig) {
            $width = $height*$ratio_orig;
        } else {
            $height = $width/$ratio_orig;
        }
}
0
0 / 0 / 1
Регистрация: 12.07.2011
Сообщений: 139
13.10.2011, 00:54  [ТС] 7
Sulik78,
т.е выгледит все так должно быть?
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$path = "";
  if($_POST['chk_filename'] == "on")
  {
function image($filename, $newname, $width)
    {
/*
параметры 
filename - путь к файлу с которого делать ресайз
newname- куда сохранить новый файл
width - макс ширина
*/
        list($width_orig, $height_orig) = getimagesize($filename);
        $ratio_orig = $width_orig/$height_orig;
        $height = $width/$ratio_orig;
 
        $image_p = imagecreatetruecolor($width, $height);
        $image = imagecreatefromjpeg($filename);
        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
        imagejpeg($image_p, $newname, 80);
    }
    if (!empty($_FILES['filename']['tmp_name']))
    {
      // Формируем путь к файлу    
      $path = "../files/".date("YmdHis",time());
      
      $ext = strrchr($_FILES['filename']['name'], "."); 
      $add = $ext;
      foreach($extentions AS $exten) 
      {
        if(preg_match($exten, $ext)) $add = ".txt"; 
      }
      $path .= $add; 
  
      if (copy($_FILES['filename']['tmp_name'], "../".$path))
      {
        @unlink($_FILES['filename']['tmp_name']);
        @chmod("../".$path, 0644);
      }
    }
    else links("Не указан файл");
  }
если так то где прописать что б ширина была задана, я что то запутался

Добавлено через 7 часов 56 минут
помогите пожайлуста

Добавлено через 41 секунду
очень надо уже интернет перерыл весь не могу разобраться и все тут(
0
13.10.2011, 00:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2011, 00:54
Помогаю со студенческими работами здесь

Уважаемые программисты по C++
Помогите плиз Описать структуру с именем STUDENT, содержащую следующие поля: -фамилия и инициалы...

Уважаемые дорогие программисты!!!
помогите составить код!!! пишите в личку,кто разбираеться в бэйсике!!!

Уважаемые программисты вам вопрос ?
Патентной организации нужна сетевая база данных, (картотека) клиент-серверная желательна на базе...

Уважаемые программисты нужна помощь
Здравствуйте кто-то знает, как можно реализовать такие действия Нажатием на кнопку выполняется...


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

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