Как автоматически подгонять размер фотографии?

Сразу скажу - если кому то будет полезен скрипт, могу выложить куда ни будь на гитхаб (пишите)
В общем, сначала объясню что у меня есть:

Есть форма отправки файлов:
<form role="form" action="generate.php" method="POST" enctype="multipart/form-data">
			    <div class="form-group">
			    	<label for="img1" class="sr-only">Выберите изображение "ДО"</label>
					<div class="file_upload btn btn-default">Выбрать фото "ДО"<input type="file" name="img1"></div>
				</div>
			    <div class="form-group">
			    	<label for="img2" class="sr-only">Выберите изображение "ПОСЛЕ"</label>
					<div class="file_upload btn btn-default">Выбрать фото "ПОСЛЕ"<input type="file" name="img2"></div>
				</div>
					<button type="submit" name="generate" class="btn btn-primary btn-lg btn-max" style="width: 100%;">Получить результат</button>
			</form>


Есть файл обработчик "generate.php" который сохраняет файлы в корень.
<?php
$data = $_POST;
if (isset($data['generate'])) {
        if($_FILES['img1']['error'] == 0) { // Нет ошибок
            $name = $_FILES['img1']['name'];
            $name1 = 'do.jpg';
            move_uploaded_file($_FILES['img1']['tmp_name'],$name1);
        }
        if($_FILES['img2']['error'] == 0) { // Нет ошибок
            $name = $_FILES['img2']['name'];
            $name2 = 'posle.jpg';
            move_uploaded_file($_FILES['img2']['tmp_name'],$name2);
        }
}
?>


Так же в корне сразу лежит логотип в формате *.png
Создаю изображение следующим образом:
<?php 
$do = imagecreatefromjpeg('do.jpg');
$im  = imagecreatetruecolor(1632, 2448);
imagecopyresized($im, $do, 0, 1224, 0, 0, 1632, 1224, 3264, 2448);

$posle = imagecreatefromjpeg('posle.jpg');
imagecopyresized($im, $posle, 0, 0, 0, 0, 1632, 1224, 3264, 2448);

header('Content-Type: image/png');
$im = imagerotate($im, -90, 0);
$logo = imagecreatefrompng('logo.png');
list($width, $height, $type, $attr) = getimagesize('logo.png');
imagecopyresized($im, $logo, 930, 900, 0, 0, 600, 600, $width, $height);
imagepng($im);
imagedestroy($im);
?>


В результате получая что то типа "до - после" с логотипом по середине.
И вывожу соответственно просто через <img src="путь к скрипту">
Проблема заключается в том, что когда я писал код (да и как и сейчас в общем то), я не особо разбирался как работает все это, собирал что называется "На коленках" из того что находил в интернете и теперь при работе с телефона (iPhone 6) - все работает хорошо (т.к. значения ширины и высоты фото указавал изначально от него), но если попробовать загрузить файлы например с iPhone 5 или iPhone SE - то скрипт уже не создает изображения.

Я так понимаю что мне надо каким то "магическим" способом узнавать ширину и высоту исходного изображения и изменять его под нужные мне. В общем вопрос - как сделать что бы не зависимо от того с телефона (и какого именно), с компа или чего то еще я бы не загружал фотографии, скрипт нормально работал и выдавал результаты?

P.S. > возможно решения при помощи Canvas например, единственное условие - что бы фотографии можно было выбирать самостоятельно с мобильного телефона.
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov
Web developer
Я так понимаю что мне надо каким то "магическим" способом узнавать ширину и высоту исходного изображения

У вас в коде есть эта "магия", посмотрите внимательней.
Если хотите когда-нибудь стать программистом, надо научиться не бездумно копировать чужой код, а разбираться в его работе. Хотя бы в скрипте из 12 простых строчек.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
ATSAL Москва
До 20 000 руб.
Zaymigo Нижний Новгород
от 20 000 до 100 000 руб.
23 июля 2018, в 20:01
3000 руб./за проект
23 июля 2018, в 19:52
10000 руб./за проект