Mam obraz pod tym linkiem: http://d38daqc8ucuvuv.cloudfront.net/avatars/216/2014-02-19%2017.13.48.jpg
Jak widać, jest to normalny obraz z prawidłową orientacją. Jednak kiedy ustawię ten link na atrybut src mojego tagu obrazu, obraz stanie się do góry nogami. http://jsfiddle.net/7j5xJ/
<img src="http://d38daqc8ucuvuv.cloudfront.net/avatars/216/2014-02-19%2017.13.48.jpg" width="200"/>
Czy masz pojęcie, co się dzieje?
cloudfront
może obracać go na stronie. Można wymusić obracać za pomocą CSS jsfiddle.net/7j5xJ/1Orientation: Rotate 180
w EXIF.Odpowiedzi:
Znalazłem część rozwiązania. Obrazy mają teraz metadane określające orientację zdjęcia. Dostępna jest nowa specyfikacja CSS dla
image-orientation
.Po prostu dodaj to do swojego CSS:
Zgodnie ze specyfikacją z 25 stycznia 2016 r., Firefox i iOS Safari (za prefiksem) są jedynymi przeglądarkami, które to obsługują. Nadal widzę problemy z przeglądarką Safari i Chrome. Jednak mobilna Safari wydaje się natywnie obsługiwać orientację bez tagu CSS.
Przypuszczam, że będziemy musieli poczekać i zobaczyć, czy przeglądarki zaczną wspierać
image-orientation
.źródło
Twój obraz jest faktycznie do góry nogami. Ale ma meta atrybut „Orientacja”, który mówi widzowi, że powinien być obrócony o 180 stopni. Niektóre urządzenia / przeglądarki nie przestrzegają tej zasady.
Otwórz w Chrome: w prawo w górę Otwórz w FF: w prawo w górę Otwórz w IE: do góry nogami
Otwórz w programie Paint: do góry nogami Otwórz w Photoshopie: od razu do góry. itp.
źródło
Jeśli masz dostęp do Linuksa, otwórz terminal, przejdź do katalogu zawierającego obrazy, a następnie uruchom
Powinno to trwale rozwiązać problemy z orientacją na wszystkich obrazach.
źródło
brew install imagemagick
na komputerze Mac, jeśli dostanieszcommand not found: mogrify
Zapomniałem dodać tutaj własną odpowiedź. Używałem Ruby on Rails, więc może nie mieć zastosowania do twoich projektów w PHP lub innych frameworkach. W moim przypadku do przesyłania zdjęć korzystałem z klejnotu Carrierwave. Moim rozwiązaniem było dodanie następującego kodu do klasy uploader, aby naprawić problem EXIF przed zapisaniem pliku.
źródło
zapisz jako png rozwiązał problem za mnie.
źródło
Ta odpowiedź opiera się na odpowiedzi bsap przy użyciu Exif-JS , ale nie opiera się na jQuery i jest dość kompatybilna nawet ze starszymi przeglądarkami. Oto przykładowe pliki html i js:
rotate.html:
rotate.js:
źródło
Możesz użyć Exif-JS , aby sprawdzić właściwość „Orientation” obrazu. Następnie zastosuj transformację CSS w razie potrzeby.
źródło
Ten problem też doprowadzał mnie do szału. Używałem PHP po stronie serwera, więc nie mogłem użyć rozwiązań @The Lazy Log (ruby) i @deweydb (python). Jednak wskazało mi to właściwy kierunek. Naprawiłem to na kopii zapasowej za pomocą getImageOrientation () firmy Imagick.
Oto link, jeśli chcesz przeczytać więcej. http://php.net/manual/en/imagick.getimageorientation.php
źródło
To dane EXIF, które zawiera Twój telefon Samsung.
źródło
Dopóki CSS: nie
image-orientation:from-image;
jest bardziej uniwersalnie obsługiwany, robimy rozwiązanie po stronie serwera w Pythonie. Oto sedno tego. Sprawdzasz orientację danych exif, a następnie odpowiednio obracasz obraz i ponownie zapisujesz.Preferujemy to rozwiązanie od rozwiązań po stronie klienta, ponieważ nie wymaga ładowania dodatkowych bibliotek po stronie klienta, a operacja ta musi się odbyć tylko raz podczas przesyłania pliku.
źródło
Dzieje się tak, ponieważ oryginalna orientacja obrazu nie jest taka, jaką widzimy w przeglądarce obrazów. W takich przypadkach obraz jest wyświetlany pionowo względem nas w przeglądarce obrazów, ale w rzeczywistości jest poziomy.
Aby rozwiązać ten problem, wykonaj następujące czynności:
Otwórz obraz w edytorze obrazów, takim jak paint (w systemie Windows) lub ImageMagick (w systemie Linux).
Obróć obraz w lewo / w prawo.
Powinno to trwale rozwiązać problem.
źródło
Łatwym sposobem rozwiązania problemu bez kodowania jest użycie funkcji eksportu programu Photoshop Save for Web. W oknie dialogowym można wybrać usunięcie wszystkich lub większości danych EXIF obrazu. Zwykle po prostu zachowuję prawa autorskie i dane kontaktowe. Ponadto, ponieważ obrazy pochodzące bezpośrednio z aparatu cyfrowego są znacznie większe, aby można je było wyświetlić w Internecie, dobrym pomysłem jest zmniejszenie ich rozmiaru za pomocą funkcji Save for the Web. Dla tych, którzy nie są obeznani z Photoshopem, nie mam wątpliwości, że istnieją zasoby online do zmiany rozmiaru obrazu i pozbycia się z niego niepotrzebnych danych EXIF.
źródło
Myślę, że są pewne problemy z automatyczną poprawką orientacji obrazu w przeglądarce, na przykład, jeśli odwiedzę zdjęcie bezpośrednio, pokazuje ono właściwą orientację, ale pokazuje niewłaściwą orientację na niektórych wyjściach ze strony html.
źródło
Użyj stylizacji zewnętrznej. w arkuszu html podaj nazwę klasy do tagu. w arkuszu stylów użyj operatora kropki poprzedzonego nazwą klasy, a następnie napisz następujący kod
źródło