Live data from Hacker News

"My images are all upside down"

gigpeppers.com

31–40 of 47 posts

Re: "My images are all upside down"

#32
post #15

During the holiday break I spent some time learning about EXIF data and subsequently released Exif.in[0], a simple HTTP API for viewing EXIF data inside images and requesting EXIF-stripped copies as well. If you're a developer who needs to occasionally inspect EXIF data from user uploads, please check it out. Contact me if you have additional questions, I'm happy to help. [0] http://exif.in

Really useful! Thanks. Have you seen http://regex.info/exif.cgi

Re: "My images are all upside down"

#33

This would be easier to fix in objective-c and a little custom camera wrapper application. I would expect a fix in a new OS release though. But if you need this little app let me know and I'll write it and put it on github.

If your app directly accesses the camera with AVFoundation, saving photos is a lot less automatic than you might expect. It's easy to save the raw image data but you have to generate and add just about any interesting metadata (EXIF, GPS, TIFF, etc.) explicitly. It's hard to do right--as the rather many discussions on StackOverflow suggest--and definitely a steep price to pay for a customized camera interface.

Re: "My images are all upside down"

#34
There's a lot of discussion of what's behind this issue in the Mozilla feature request at https://bugzilla.mozilla.org/show_bug.cgi?id=298619, and more at the corresponding webkit (https://bugs.webkit.org/show_bug.cgi?id=19688) and chromium (http://code.google.com/p/chromium/issues/detail?id=56845) bug trackers.

The concern is essentially that there may be many images on the web that have EXIF tags that don't match how those images are being used, specifically because the sites were tested in browsers that ignore the tags. So changing browser behavior now could suddenly break lots of sites that previously looked fine. It sounds like nobody has come up with a good solution yet.

Re: "My images are all upside down"

#35
post #28
post #7

Earlier quoted context omitted.

The EXIF orientation tag encodes all orientations: http://www.impulseadventure.com/photo/exif-orientation.html

It only encodes orientations that result from rotation around the axis perpendicular to the line of sight (in other words, the rotations that can be reversed by display software). Parent was asking about the orientation with camera above the subject pointing directly down. I don't think EXIF can encode that -- there's no reason to, since display software has no way to reverse it.

Well, photographs are two dimensional.

Re: "My images are all upside down"

#36

Earlier quoted context omitted.

I suppose the device wouldn't bother with lossless rotation when displaying on the screen. When it comes to saving the image, it has to be lossless, which would probably take a lot more computation power.

I'm not sure what is referred to by "lossless" rotation in the case of axis-aligned orientation. I can't see how you can do a lossy rotation.

Oh, sorry, my mistake.

I've been looking around to see if ImageMagick could do rotation without degrading quality. (I'd also asked a question about that elsewhere in this thread.) So I assumed that most devices use something similar even for displaying on the screen. It appears I assumed wrong. :)

I saw your other comment about axis-aligned rotation not being too computationally expensive. In that case, why aren't iPhones doing it by default? Wouldn't their computation power be comparable to that of most of the cameras that rotate the images? Or are cameras better equipped to handle such transformations?

Re: "My images are all upside down"

#37

Earlier quoted context omitted.

I suppose the device wouldn't bother with lossless rotation when displaying on the screen. When it comes to saving the image, it has to be lossless, which would probably take a lot more computation power.

I'm not sure what is referred to by "lossless" rotation in the case of axis-aligned orientation. I can't see how you can do a lossy rotation.

By decoding the jpeg, rotating the pixels and saving the jpeg again. I'm not even sure it makes sense to talk about lossy and losses when displaying images.

Re: "My images are all upside down"

#38
post #30

Earlier quoted context omitted.

No it doesn't. The screen has the same orientation as the camera. When you hold the phone upside down, you are also holding the screen upside down ;)

Right, but when you look through your photos laters, it has to transform them so up is up on the display.

But when browsing through already stored pictures, a bit of delay is totally ok. Not so much when quickly showing some information overlaid over the picture you've just taken.

Re: "My images are all upside down"

#39

Earlier quoted context omitted.

I suppose the device wouldn't bother with lossless rotation when displaying on the screen. When it comes to saving the image, it has to be lossless, which would probably take a lot more computation power.

I'm not sure what is referred to by "lossless" rotation in the case of axis-aligned orientation. I can't see how you can do a lossy rotation.

Somebody covered this further up, but in more detail:

It is not the rotation itself that is the problem, but saving the resultant file. If you're working directly with the pixel buffer you only do a lossless JPG rotation if the image height and width are multiples of 8 (or 16, in some situations). This is because once you've performed the rotation you'll need to save the resulting output as a JPG, and unless your dimensions factor into the block size you'll need to recompute. This SO answer covers it in more detail[1].

However, if you're not working with the pixel buffer this doesn't apply. You can use jpegtran (part of libjpeg), for example, which manipulates the JPG file directly and never decodes it. Many basic image viewers and editors (like the Windows Picture Viewer, and probably the iOS Photos app but I'm not sure) don't use this approach though.

[1]: http://photo.stackexchange.com/questions/12361/are-windows-p...

Re: "My images are all upside down"

#40

Earlier quoted context omitted.

I'm not sure what is referred to by "lossless" rotation in the case of axis-aligned orientation. I can't see how you can do a lossy rotation.

Oh, sorry, my mistake. I've been looking around to see if ImageMagick could do rotation without degrading quality. (I'd also asked a question about that elsewhere in this thread.) So I assumed that most devices use something similar even for displaying on the screen. It appears I assumed wrong. :) I saw your other comment about axis-aligned rotation not being too computationally expensive. In that case, why aren't iP…

Other cameras don't usually rotate the photos (I've had to fix this same bug myself before the iPhone existed). My guess is that they didn't notice it earlier because photos from cameras are more likely to go through some post processing that on the final export saves the image with the data already rotated.
Post reply on HN