From d17576ad42ca8e79a1534f93edddc7323379504e Mon Sep 17 00:00:00 2001 From: Paul Sayre Date: Tue, 5 Jun 2012 17:58:23 -0700 Subject: [PATCH] Added EXIF Orientation test iOS looks at the EXIF Orientation flag in jpgs and rotates the image accordingly. Looks like most desktop browsers just ignore this data. --- feature-detects/exif-orientation.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 feature-detects/exif-orientation.js diff --git a/feature-detects/exif-orientation.js b/feature-detects/exif-orientation.js new file mode 100644 index 0000000000..c8d4b495a5 --- /dev/null +++ b/feature-detects/exif-orientation.js @@ -0,0 +1,21 @@ +// EXIF Orientation test +// iOS respects EXIF Orientation flag in jpgs, while other browsers do not +// By: Paul Sayre + + +(function(){ + + var img = new Image(); + + img.onerror = function() { + Modernizr.addTest('exif-orientation', function () { return false; }); + }; + + img.onload = function() { + Modernizr.addTest('exif-orientation', function () { return img.width !== 2; }); + }; + + // There may be a way to shrink this more, it's a 1x2 white jpg with the orientation flag set to 6 + img.src = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAASUkqAAgAAAABABIBAwABAAAABgASAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAABAAIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigD/2Q=="; + +})(); \ No newline at end of file