Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 28

Поворот фото с мобильных устройств

28.08.2013, 06:10. Показов 1363. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. Существует следующая проблема:
Если снятые на мобильное устройство фото или фото, обработанные в picassa загружаются на сайт, они впринципе все нормально отображаются в обычных браузерах, но в мобильных браузерах на iPhone, Android они могут отображаться повернутыми, причем выглядит так, что даже div вокруг фотки вытягивается так, как ты ожидаешь увидеть фото, но само фото в диве повернуто неправильно и визуельно вылазит за его пределы.
Так же эти фото повернуты в винде, т.е. в пикасса ты видишь их как надо, а когда они просто лежат в папке, миниатюры повернуты неправильно. У меня есть впечатление, что там есть какая-то метка, которая после правильного сохранения фото, продолжает их поворачивать в тех устройствах, которые на нее реагируют, хотя может я не прав...
Может кто сталкивался или есть идеи, как это исправить?

Загрузка файла производится примерно так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        $input = fopen("php://input", "r");
        $temp = tmpfile();
        $realSize = stream_copy_to_stream($input, $temp);
        fclose($input);
 
        if ($realSize != $this->getSize()){
            return false;
        }
 
        $target = fopen($path, "w");
        fseek($temp, 0, SEEK_SET);
        stream_copy_to_stream($temp, $target);
        fclose($target);
 
        $image = new Imagick();
        $image->readImage($path);
    $image->writeimage($adr);
    $image->setfilename($adr);
Добавлено через 1 час 58 минут
Там еще такие строки )

PHP
1
2
$image->setImageCompression(Imagick::COMPRESSION_JPEG);
$image->setImageCompressionQuality(90);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.08.2013, 06:10
Ответы с готовыми решениями:

Запись ID мобильных устройств
Возможно ли средствами php записывать ID мобильных устройств через которое посетители заходят на страницы сайта?

Сайт не работает с мобильных устройств
Товарищ обратился за помощью (занимается перепродажей товаров из китая с наценкой - это чтобы вы не подумали, что реклама). У него с...

Сайт для мобильных устройств - определение клиента
Подскажите как сделать версию сайта для мобильных устройств? То есть в зависимости от устройство выдавать разную html верстку?

3
Заблокирован
28.08.2013, 07:08
Потому что юзаете imagick.

Все лежит в EXIF. http://stackoverflow.com/quest... ation-data

Добавлено через 14 минут
Что делает код до части применения имажика?

Типовой сценарий выдачи картинки с целью, скажем, заменить имя, влепить лого, уменьшить-увеличить и тп:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        $image_info = getimagesize($src_name); // кроме прочего это дает mime type
       /* 
         тут картинка обрабатывается и создается новое имя $output_file
        */
        
        // чтобы отгрузить на страницу посылаем заголовки
    header('Content-Disposition: inline; filename="' . $output_file . '"');
    header("Content-type: {$image_info['mime']}");
 
        // тут сама картинка и отгружается
    switch ($image_info['mime']) {
        case 'image/jpeg':
            imagejpeg($im, NULL, $quality);
            break;
        case 'image/png':
            imagepng($im, NULL, $quality/10);
            break;
        default: // not tested ever
            imagejpeg($im, NULL);
            break;
    }
         // на входе у imagejpeg($im, NULL, $quality) - $im - объект картинки, NULL вместо имени файла, значит файл не сохраняется, но выводится агенту, и качество в последнем аргументе
1
0 / 0 / 0
Регистрация: 22.08.2009
Сообщений: 28
28.08.2013, 07:19  [ТС]
Я привел код сохранения файла от пользователя, отдается все nginx-ом напрямую в теги img.
Код до имаджика читает переданный в POST запросе файл и сохраняет его во временный файл.
Имаджик берет временный файл, его немного ухудшает, уменьшает, потом еще миниатюры создает, здесь не все.

За ссылку спасибо, гляну.
0
Заблокирован
28.08.2013, 07:20
Последний переключатель default это такая фича. Если картинки нет то генериться новая с белым полем и текстом izvinite kartinka ne nai`dena. php русского не понимает, или надо извращаться, поэтому в транслите. Но можно подготовить специальную картинку и ее подставлять если ресурс отсутствует.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.08.2013, 07:20
Помогаю со студенческими работами здесь

Редирект мобильных устройств
Доброго времени суток. ___ В плане html программирования я еще новичок, так что прошу не ругаться :) Итак. Увы, языком...

Программирование мобильных устройств???
Может мне кто нибудь объяснить почему Objective-C попал в программирование мобильных устройств? Каким образом язык программирования...

Сайт для мобильных устройств
Господа здравствуйте излагаю суть проблемы: Сделал страницу голосования и обратной связи, на компе отлично открывается, на телефоне это...

Разрешение для мобильных устройств
Господа разработчики, поделитесь пожалуйста своим опытом - расскажите, с каким разрешением принято изначально разрабатывать игру под...

Кроссворд для мобильных устройств
Здравствуйте, нужна помощь. Имеется готовый кроссворд, который хорошо работает на компьютере. Но есть проблема ввода текста с мобильных...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru