Как при загрузке фото повернуть его, если оно например такого вида?
пробую так
$exif = exif_read_data($image, 0, true);
var_dump($exif);
но выводит вот что
array(7) { ["FILE"]=> array(6) { ["FileName"]=> string(9) "phpv6mxqO" ["FileDateTime"]=> int(1574678201) ["FileSize"]=> int(5653588) ["FileType"]=> int(2) ["MimeType"]=> string(10) "image/jpeg" ["SectionsFound"]=> string(44) "ANY_TAG, IFD0, THUMBNAIL, EXIF, GPS, INTEROP" } ["COMPUTED"]=> array(8) { ["html"]=> string(26) "width="4160" height="3120"" ["Height"]=> int(3120) ["Width"]=> int(4160) ["IsColor"]=> int(1) ["ByteOrderMotorola"]=> int(1) ["ApertureFNumber"]=> string(5) "f/2.0" ["Thumbnail.FileType"]=> int(2) ["Thumbnail.MimeType"]=> string(10) "image/jpeg" } ["IFD0"]=> array(10) { ["DateTime"]=> string(19) "2019:06:04 06:34:00" ["GPS_IFD_Pointer"]=> int(773) ["Model"]=> string(12) "Redmi Note 4" ["YCbCrPositioning"]=> int(1) ["ResolutionUnit"]=> int(2) ["YResolution"]=> string(4) "72/1" ["Software"]=> string(51) "mido-user 7.0 NRD90M V10.2.3.0.NCFMIXM release-keys" ["Exif_IFD_Pointer"]=> int(242) ["XResolution"]=> string(4) "72/1" ["Make"]=> string(6) "Xiaomi" } ["THUMBNAIL"]=> array(6) { ["YResolution"]=> string(4) "72/1" ["JPEGInterchangeFormatLength"]=> int(10591) ["JPEGInterchangeFormat"]=> int(1092) ["Compression"]=> int(6) ["ResolutionUnit"]=> int(2) ["XResolution"]=> string(4) "72/1" } ["EXIF"]=> array(29) { ["ColorSpace"]=> int(1) ["FNumber"]=> string(7) "200/100" ["DateTimeDigitized"]=> string(19) "2019:06:04 06:34:00" ["FocalLength"]=> string(9) "3570/1000" ["ApertureValue"]=> string(7) "200/100" ["UndefinedTag:0x9999"]=> string(37) "{"sensor_type":"rear","mirror":false}" ["ExposureMode"]=> int(0) ["SubSecTimeDigitized"]=> string(6) "382177" ["ExifImageLength"]=> int(3120) ["FocalLengthIn35mmFilm"]=> int(0) ["SceneCaptureType"]=> int(0) ["SceneType"]=> string(1) "" ["SubSecTimeOriginal"]=> string(6) "382177" ["ExposureProgram"]=> int(0) ["WhiteBalance"]=> int(0) ["ExifImageWidth"]=> int(4160) ["SubSecTime"]=> string(6) "382177" ["ShutterSpeedValue"]=> string(10) "11119/1000" ["MeteringMode"]=> int(2) ["DateTimeOriginal"]=> string(19) "2019:06:04 06:34:00" ["ComponentsConfiguration"]=> string(4) "" ["ExifVersion"]=> string(4) "0220" ["Flash"]=> int(16) ["InteroperabilityOffset"]=> int(743) ["BrightnessValue"]=> string(5) "0/100" ["ISOSpeedRatings"]=> int(100) ["SensingMethod"]=> int(2) ["FlashPixVersion"]=> string(4) "0100" ["ExposureTime"]=> string(6) "1/2225" } ["GPS"]=> array(9) { ["GPSDateStamp"]=> string(10) "2019:06:04" ["GPSAltitudeRef"]=> string(7) "200/100" ["GPSLongitudeRef"]=> string(1) "E" ["GPSLongitude"]=> array(3) { [0]=> string(5) "115/1" [1]=> string(3) "9/1" [2]=> string(12) "256390/10000" } ["GPSProcessingMode"]=> string(5) "ASCII" ["GPSLatitudeRef"]=> string(1) "S" ["GPSTimeStamp"]=> array(3) { [0]=> string(3) "3/1" [1]=> string(4) "33/1" [2]=> string(4) "59/1" } ["GPSAltitude"]=> string(10) "48000/1000" ["GPSLatitude"]=> array(3) { [0]=> string(3) "8/1" [1]=> string(4) "50/1" [2]=> string(12) "532064/10000" } } ["INTEROP"]=> array(2) { ["InterOperabilityIndex"]=> string(3) "R98" ["InterOperabilityVersion"]=> string(4) "0100" } }
Если информация об ориентации фото недоступна, то можно просто предоставить админу возможность повернуть фото перед отправкой. Можно либо повернуть изображение в канвасе и отправить на сервер уже повёрнутое, либо отправить вместе с изображением значение поворота.
Вот например:
var Img = function(img, onDraw) {
var _img = img;
var _file;
var _currentRotation = 0;
var _onDraw = onDraw;
this.setFile = function(file) {
_file = file;
_currentRotation = 0;
_draw(_file, _currentRotation);
};
this.rotate= function() {
if (_currentRotation < 3) {
_currentRotation++;
} else {
_currentRotation = 0;
}
_draw(_file, _currentRotation);
};
function _draw(file, rotation) {
if (file) {
_img.src = window.URL.createObjectURL(file);
var angle = rotation * 90;
_img.style.transform = 'rotate(' + angle + 'deg)';
}
_onDraw(file, rotation);
}
};
var canvasImg = document.querySelector('#canvas');
var rotationInput = document.querySelector('[name="rotation"]');
var img = new Img(canvasImg, function(file, rotation) {
rotationInput.value = rotation;
});
var imgInput = document.querySelector('[name="img"]');
imgInput.addEventListener('change', function() {
img.setFile(this.files[0]);
});
var rotateButton = document.querySelector('#rotateButton');
rotateButton.addEventListener('click', function(e) {
e.preventDefault();
img.rotate();
});
<input type="file" name="img">
<button id="rotateButton">Покрутить</button>
<input name="rotation" type="text" readonly>
<div style="overflow: auto">
<img id="canvas">
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть проект в котором использую связку nginx + php + mysql + phpmyadmin на которой в совою очередь поднимаю laravelпри запуске стартую все сервисы кроме mysql,...
Имеется хостинг VPS Ubuntu14, 4Гб ОЗУ, 4x227 GHz, nginx+mysql
Я понимаю как получить повторяющиеся данныеНо с моим запросом я получаю имена и фамилии которые дублируются, а я хочу увидеть и все эти дубли...
Я работаю с magento 19 Мой сервер автоматически включает процесс mysql, который загружает базу данных и процессор иногда на 120%, и некоторые другие...