Сразу скажу - если кому то будет полезен скрипт, могу выложить куда ни будь на гитхаб (пишите)
В общем, сначала объясню что у меня есть:
Есть форма отправки файлов:
<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 например, единственное условие - что бы фотографии можно было выбирать самостоятельно с мобильного телефона.