<MyRusakov.ru />

Создание Интернет-магазина на OpenCart 2.0

Создание Интернет-магазина на OpenCart 2.0

Видеокурс "Создание Интернет-магазина на OpenCart 2.0" обучит Вас созданию любых Интернет-магазинов на OpenCart 2. В первом разделе курса разбираются абсолютно все возможности данного движка с примерами.

Во втором разделе создаётся полноценный Интернет-магазин, где Вы уже всё увидите своими глазами.

И, наконец, в третьем разделе курса созданный Интернет-магазин будет размещён в Интернете.

К курсу так же идут бесплатные и очень ценные Бонусы сопоставимые с самим курсом: "Как сэкономить на Яндекс.Директ до 50%", "Дропшиппинг" и "Как раскрутить Интернет-магазин".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Изменять размер фото
01.07.2012 17:51:48 Изменять размер фото Сообщение #1
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Растягивается или сжимается одна из сторон изображения.
Профиль Ответить
01.07.2012 17:57:05 Изменять размер фото Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Так сохраняйте пропорции. Во сколько раз изменили один габарит, во столько же раз надо изменить другой габарит.
Профиль Ответить
01.07.2012 18:13:16 Изменять размер фото Сообщение #3
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

$w_src = imagesx($src);
$h_src= imagesy($src);
// получение ширины и высоты изображения в пикселях

$ratio = $w_src/$w;
$w_new = round($w_src/$ratio);
$h_new = round($h_src/$ratio);
// получение координат для построения нового изображения необходимой ширины


Просто изменить размер легко. Мне нужно его обрезать, дабы изображения сохранялись в расширении 1200х800 или 800х1200, в зависимости от ориентации.
Профиль Ответить
01.07.2012 20:54:03 Изменять размер фото Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Так сжать/растянуть или просто обрезать?
Профиль Ответить
02.07.2012 12:16:27 Изменять размер фото Сообщение #5
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Просто обрезать.
Профиль Ответить
02.07.2012 12:56:30 Изменять размер фото Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Тогда вырезайте просто прямоугольник с нужным размером. Для этого есть параметры $w_src, $h_src в функции imagecopyresized().
Профиль Ответить
07.07.2012 17:16:31 Изменять размер фото Сообщение #7
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Спасибо большое!
Что скажете по результату?
<?php
require_once('connect_base.php')
if(!empty($_GET)){header("location: 402.html"; exit();}//отправляем зеленого хакера куда-нибудь погулять

function createphoto ($input,$output) {
$q = 100;//задаем качество
$old = imagecreatefromjpeg($input);
$h_old = imagesy($old);
$w_old = imagesx($old);

if($h_old > $w_old){$w = 600; $h = 800; $ratio = $w_old/$w;
$w_new = round($w_old/$ratio);
$h_new = round($h_old/$ratio);
$new = imagecreatetruecolor($w, $h);
imagecopyresized($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w_old, $h_old);
// Функция imagecopyresized копирует прямоугольные области с одного изображения на другое
}
else{$w = 800; $h = 600; $ratio = $h_old/$h;
$w_new = round($w_old/$ratio);
$h_new = round($h_old/$ratio);
$new = imagecreatetruecolor($w, $h);
imagecopyresized($new, $old, 0, 0, 0, 0, $w_new, $h_new, $w_old, $h_old);
}
imagejpeg($new,$output,$q);
imagedestroy($new);
imagedestroy($old);
}
if((!isset($_POST['imob'])) && (!empty($_FILES['image']['name']))){
if($_FILES['image']['tmp_name'] == 0){echo 'Файл существует по адресу ', $_FILES['image']['tmp_name'], '<br/>';

$ex = substr($_FILES['image']['name'], 1 + strrpos($_FILES['image']['name'], ".");//получаем расширение загружаемого файла

if(($ex === 'jpg') || ($ext === 'jreg') || ($ext === 'JPEG') || ($ext === 'JPG')){echo 'Проверка №1 удачна<br/>';//проверяем расширение разрешаем только изображение jpeg, jpg

$imageinfo = getimagesize($_FILES['image']['tmp_name']);


if($imageinfo['mime'] === 'image/jpeg'){//проверяем ещё раз по содержимому

$sql = "SELECT max(`id`) FROM `table`";//вытаскиваем с базы самый большой ид
$res = mysql_query($sql);//запрос к базе
$f = mysql_fetch_array($res);//загоняем результат в массив зачем это нужно не понятно
$max = ($f['max(`id`)']);//но по другому не обрабатывается
$max = ($max + 1);//увеличиваем ид
$output = 'img_'.$max.'.'.$ext;//формируем новое имя файла
$input = $_FILES['image']['tmp_name'];

//обрабатываем файл как нам необходимо
$dir = $_SERVER['DOCUMENT_ROOT']."/adv_gallery/";
createphoto($input,$dir.$output);// вызов функции по работе с изображением
//обрабатываем файл как нам необходимо
}
else{echo 'Проверка №2 не пройдена';}
}
else{echo 'Проверка №1 не пройдена';}
}
else{echo 'Временного файла не существует';}
}
else{echo 'файл не получен';}
?>

Конечно сырой, но работает! Я бы ещё хотел получить совет, как ещё можно сформировать защиту.
Профиль Ответить
07.07.2012 17:47:12 Изменять размер фото Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

http://myrusakov.ru/php-loadserver-security.html
Профиль Ответить
07.07.2012 20:07:55 Изменять размер фото Сообщение #9
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

Весьма поучительная статья, однако в Вашем примере кода, смею заметить, достаточно сменить расширение файла на jpg и файл превосходно загружается. Последствия могут быть печальными...
Профиль Ответить
07.07.2012 20:18:15 Изменять размер фото Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Если сервер настроить правильно, то ничего печального не будет. А по умолчанию он настроен правильно. И jpg никогда как PHP запускаться не будет. Есть там дополнительная проверка через библиотеку GD, но это уже лишнее, и даже она не 100% гарантия.
Профиль Ответить