Check by using the content-provider. Do a query on the image-id (can be obtained from the image-Uri) and request its value of the column 'MediaStore.Images.ImageColumns.ORIENTATION'.
About #2: Yep, doing that in the device using full-resolution will be hard to do. Not enough memory available for that. You could do it by using a file (RandomAccessFile) as a 'temporary', writing column by column to this file and reading it back in row by row. This will be very slow. On Dec 21, 11:59 am, Mark Wyszomierski <mar...@gmail.com> wrote: > Hi Wu-Cheng, > > I'm not following - I'm using the native camera intent with the Droid. > So if I take a picture while holding the camera in a portrait > orientation, then it should write a rotation of 90 degrees into the > exif header of the output jpeg (while not really rotating the image > data)? If that's the case, I'm not sure how to proceed. Looks like I > would have to do the following: > > 1) Check the exif header to see if this rotation parameter exists > 2) If it does exist, rotate the image myself before display > > #1 could probably be done using the ExifInterface class, but that's > only been added to the level 5 sdk, while I'm targeting sdk 3 and > above. > #2 could also be done after a lot of downsampling. I'm not sure if > other applications understand exif headers though. So I'd want to > rewrite the image data with an actual rotation. Doing this at full > resolution would be difficult on the device. > > Thanks for your help. > > On Dec 21, 10:37 am, Wu-cheng Li (李務誠) <wuchen...@google.com> wrote: > > > > > Droid respects setRotation. The problem is Droid does not rotate the entire > > picture. Droid only sets orientation in the EXIF header. Applications need > > to check the orientation in the EXIF header and then rotate it accordingly > > before display. > > >http://developer.android.com/reference/android/hardware/Camera.Parame... > > public void setRotation (int rotation) > > Sets the orientation of the device in degrees. For example, suppose the > > natural position of the device is landscape. If the user takes a picture in > > landscape mode in 2048x1536 resolution, the rotation should be set to 0. If > > the user rotates the phone 90 degrees clockwise, the rotation should be set > > to 90. Applications can useOrientationEventListener to set this parameter. > > The camera driver may set orientation in the EXIF header without rotating > > the picture. Or the driver may rotate the picture and the EXIF thumbnail. If > > the Jpeg picture is rotated, the orientation in the EXIF header will be > > missing or 1 (row #0 is top and column #0 is left side). > > > The problem is not related to set("rotation", 90) or setRotation(90). They > > are the same except setRotation only exists from 2.0. > > > On Sun, Dec 20, 2009 at 1:48 PM, Mark Wyszomierski <mar...@gmail.com> wrote: > > > It looks like what I might have to do is switch my project to the 2.0 > > > sdk (it's currently at 4). If I see that the OS level my app is > > > running on is less than 2.0, then I make this call: > > > > Camera.Parameters params = camera.getParameters(); > > > params.set("rotation", 0); > > > camera.setParameters(params); > > > > if it's 2.0 or above, I use this call (added in the 2.0 api): > > > > Camera.parameters.setRotation(int rotation); > > > > is this probably the best way to go? I don't know if I could go the > > > other direction (stay at sdk level 4, and if I see the user is running > > > 5, try to somehow invoke the 2.0 api which should be present), > > > > Thanks > > > > On Dec 19, 9:09 pm, Mark Wyszomierski <mar...@gmail.com> wrote: > > > > Thanks, just posted there too. I hope there's a way to get around this > > > > innovation in camera.parameters.. > > > > > In the worst case, I guess I could check what platform the user is > > > > running on, and use the native camera intent? > > > > > Thanks > > > > > On Dec 19, 8:55 pm, Mark Murphy <mmur...@commonsware.com> wrote: > > > > > > Mark Wyszomierski wrote: > > > > > > I got all the parameters from a Droid for the camera - looks like > > > > > > rotation is not one of them... how do you get the camera to rotate > > > the > > > > > > output?: > > > > > > > picture-size- > > > > > > values=1280x960,1600x1200,2048x1536,2592x1936,2592x1456;mot-postview- > > > > > > mode=on;zoom=0;antibanding=auto;zoom- > > > > > > supported=true;whitebalance=auto;jpeg-thumbnail-height=240;scene- > > > > > > mode=auto;jpeg-quality=95;smooth-zoom-supported=true;preview-format- > > > > > > values=yuv422i-yuyv,yuv420sp;focus-mode=auto;preview- > > > > > > format=yuv420sp;mot-test-command=;mot-zoom-step=0.5;preview- > > > > > > size=560x320;picture-format-values=jpeg,jfif,exif;mot-areas-to- > > > > > > focus=0;mot-postview-modes=off,on;flash-mode- > > > > > > values=off,on,auto;preview-frame-rate-values=5,10,15,20,24,25,30;mot- > > > > > > max-areas-to-focus=1;preview-frame-rate=30;flash-mode=off;effect- > > > > > > values=none,mono,sepia,negative,solarize,red-tint,blue-tint,green- > > > > > > tint;focus-mode-values=off,auto,infinity,macro;picture- > > > > > > size=2048x1536;max-zoom=6;effect=none;jpeg-thumbnail- > > > > > > width=320;whitebalance-values=auto,daylight,fluorescent,cloudy- > > > > > > daylight,incandescent,warm-fluorescent;scene-mode- > > > > > > values=auto,action,portrait,landscape,night,night- > > > > > > portrait,theatre,beach,snow,sunset,steadyphoto;picture- > > > > > > format=jpeg;jpeg-thumbnail-size- > > > > > > values=160x90,160x120,176x144,320x180,320x240;mot-zoom- > > > > > > speed=99;preview-size- > > > > values=176x144,320x240,352x288,640x480,720x480,720x576,848x480;antibanding- > > > > > > values=auto,50hz,60hz > > > > > > If your problem is unique to the DROID, you may get more assistance by > > > > > posting at the MOTODEV boards: > > > > > >http://developer.motorola.com > > > > > > Forgive me if you've already tried that... > > > > > > -- > > > > > Mark Murphy (a Commons Guy)http://commonsware.com| > > >http://twitter.com/commonsguy > > > > > > _Android Programming Tutorials_ Version 1.0 In Print! > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Android Developers" group. > > > To post to this group, send email to android-developers@googlegroups.com > > > To unsubscribe from this group, send email to > > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs > > > cr...@googlegroups.com> > > > For more options, visit this group at > > >http://groups.google.com/group/android-developers?hl=en- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en