Determining image orientation

Creative Suite 3 (at least Photoshop and InDesign) now respect the <tiff:Orientation> value from the http://ns.adobe.com/tiff/1.0/ TIFF Properties namespace.<br /><br />This means that an image which has a tiff:Orientation of 1 is placed rotated by 90 degrees whereas an image with a tiff:Orientation of 0 is placed without rotation.<br /><br />Is it possible for a plug-in to determine whether the image has been rotated as a result of this XMP property?

Hi Nick,<br /><br />Yes it is possible for a plug-in to determine if an image has been rotated as a result of the tiff:Orientation tag. To do this you need to use the IImageAttributes interface of the kImageItem boss. The IImageAttributes interface is a collection of tags used to describe the attributes of a raster image. One of the tags contained in IImageAttributes is kPMTagMetaDataRotation. This tag holds the angle that was read out of the meta data tiff:orientation tag. I have pasted a code snippet below demonstrating how to retrieve the amount of rotation applied to the image.<br /><br />ErrorCode SnpGetImageAttributes::getAttributes(UIDList itemList)<br />{<br />  ErrorCode errorCode = kFailure;<br />  do {<br />    UIDList newList(itemList.GetDataBase()); <br /><br />    // Verify that the item selected is a graphic item.<br />    for (int32 i = 0; i < itemList.Length(); i++)<br />    {<br />      SnpGraphicHelper graphicHelper(itemList.GetRef(i));<br />      InterfacePtr<IImageDataAccess><br />        imageAccess(graphicHelper.QueryImageDataAccess());<br />      if (imageAccess)<br />     newList.Append( ::GetUID(imageAccess));<br />       }<br />      if (newList.Length() <= 0 ) <br />      {<br />     SNIPLOG("No item with graphics is selected.");<br />     break;<br />      }<br />     <br />      for (int32 i = 0; i < newList.Length(); i++)<br />      {<br />     // Get an interface pointer to the image attributes interface.<br />     InterfacePtr<IImageAttributes> <br />          iImageAttributes(newList.GetRef(i), UseDefaultIID()); <br />     if ( iImageAttributes ) <br />     { <br />       int32 width, height;<br />       int16 orientation; <br />          <br />       // Retrieve the heigh, width, and orientation<br />       // associated with the image and print them out.<br />       iImageAttributes->GetTag(IImageAttributes::kPMTagImageWidth, &width);              <br />         iImageAttributes->GetTag(IImageAttributes::kPMTagImageHeight, &height);<br />      iImageAttributes->GetTag(IImageAttributes::kPMTagMetaDataRotation, &orientation);<br /><br />       SNIPLOG("Width: %d", width);<br />       SNIPLOG("Height: %d", height);             <br />          SNIPLOG("Orientation: %d", orientation);<br />       SNIPLOG("==============================\n");<br />       errorCode = kSuccess;<br />     }<br />      }<br />    } while(false);<br />    return errorCode;<br />}<br /><br />Regards,<br /><br />DENVER

Similar Messages

  • CameraRoll & CameraUI image orientation

    Hi,
    I am trying to read the Orientation tag in EXIF image data grabbed with CameraRoll or CameraRollUI using AIR 3.6 on iOS 6.1
    To achieve this, I use this library coded by Christian Cantrell :
    http://blogs.adobe.com/cantrell/archives/2011/10/parsing-exif-data-from-images-on-mobile-d evices.html
    Unfortunantly, it raises an error when I try to parse the Byterray containing the EXIF data :
    var exifInfo:ExifInfo = new ExifInfo( eb );
    TypeError: Error #1034: Type Coercion failed: cannot convert "<tags level="0th IFD TIFF Tags">
      <tag tag_name="Image width" field_name="ImageWidth" id="0x0100" compressed="J">
        <uncompressed chunky="M" planar="M" ycc="M" />
      ... INSERT BIG CHUNK OF XML HERE ...
    </tags>" to XML.
              at jp.shichiseki.exif::ExifInfo/readIFDs()[/Users/***/Google Drive/AS3/libs/jp/shichiseki/exif/ExifInfo.as:100]
              at jp.shichiseki.exif::ExifInfo()[/Users/***/Google Drive/AS3/libs/jp/shichiseki/exif/ExifInfo.as:63]
    It seems that Air can't cast the data into XML, but it's kind of crazy because I am able to see all the data in the error text (I purposedly truncated it here for not flooding this post) and it's XML valid. I had a look into the ExifInfo class, but it's hard to see where the error comes from.
    I really need to get access to these data, since it's the only way to determine image orientation in iOS. Or is there any native extention thaht I could use to achieve this ?
    Any advice will be welcome as I am stuck on a project for a client because of this.
    Thank you all !

    Hello Frog,
    a very (very) dirty solution could be :
    - use a try...catch...finally block to prevent the error raising
    - in the catch block, parse the error message to get your orientation value (String method, regexp...)
    [code]
    var myExifData:XML;
    try {
         // try to get the exif data
         var exifInfo:ExifInfo = new ExifInfo( eb );
    } catch(err:Error) {
         // fails, but maybe I can get the exif info in the error message...
         myExifData = parseExifError(err.message); // parse the error message to get your orientation info...
    } finally {
        do what I have to do with my image : rotate, scale....
    [/code]
    BTW, PhoneGap is perfectly able to get orientation of an image from the camera roll. So there IS a solution somewhere.
    Maybe you could try to make a native extension ? It's not so hard for little things like that...
    My 2 cents
    Nicolas

  • Camera image orientation on iOS

    Hi,
    Taking a picture using CamerUI on iOS (and on Android) may bring the image oriented in the wrong angle.
    Reading the Exif on Android is fine and allows reorientation to the correct position, however this is not working on iOS.
    Since I assume taking a picture using the camera is a core feature for many applications, I’d appreciate if someone who managed to solve it can post a solution here?
    Thanks!

    I think this is it:
    // ExifReader.as
    // Reads and obtains JPG EXIF data.
    // Project site: http://devstage.blogspot.com/2011/02/extract-jpg-exif-metadata-in.html
    // SAMPLE USAGE:
    // var reader:ExifReader = new ExifReader();
    // reader.addEventListener(Event.COMPLETE, function (e:Event):void{
    //     trace(reader.getKeys());
    //     trace(reader.getValue("DateTime"));
    //     trace(reader.getThumbnailBitmapData().width +'x' + reader.getThumbnailBitmapData().height);
    // reader.load(new URLRequest('myimage.jpg'), true);
    package
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Loader;
        import flash.display.LoaderInfo;
        import flash.events.Event;
        import flash.events.EventDispatcher;
        import flash.events.ProgressEvent;
        import flash.net.URLRequest;
        import flash.net.URLStream;
        import flash.utils.ByteArray;
        public class ExifReader extends EventDispatcher
            private var m_loadThumbnail:Boolean = false;
            private var m_urlStream:URLStream = null;
            private var m_data:ByteArray = new ByteArray();
            private var m_exif:Object = new Object;
            private var m_exifKeys:Array = new Array();
            private var m_intel:Boolean=true;
            private var m_loc:uint=0; 
            private var m_thumbnailData:ByteArray = null;
            private var m_thumbnailBitmapData:BitmapData=null;
            private var DATASIZES:Object = new Object;
            private var TAGS:Object = new Object;
            public function load(urlReq:URLRequest, loadThumbnail:Boolean = false):void{
                m_loadThumbnail = loadThumbnail;  
                m_urlStream = new URLStream();
                m_urlStream.addEventListener( ProgressEvent.PROGRESS, dataHandler);
                m_urlStream.load(urlReq);
            public function getKeys():Array{
                return m_exifKeys;
            public function hasKey(key:String):Boolean{
                return m_exif[key] != undefined;
            public function getValue(key:String):Object{
                if(m_exif[key] == undefined) return null;
                return m_exif[key];
            public function getThumbnailBitmapData():BitmapData{
                return m_thumbnailBitmapData;
            public function ExifReader(){
                DATASIZES[1] = 1;
                DATASIZES[2] = 1;
                DATASIZES[3] = 2;
                DATASIZES[4] = 4;
                DATASIZES[5] = 8;
                DATASIZES[6] = 1;  
                DATASIZES[7] = 1;
                DATASIZES[8] = 2;
                DATASIZES[9] = 4;
                DATASIZES[10] = 8;
                DATASIZES[11] = 4;
                DATASIZES[12] = 8;
                TAGS[0x010e] = 'ImageDescription';
                TAGS[0x010f] = 'Make';
                TAGS[0X0110] = 'Model';
                TAGS[0x0112] = 'Orientation';
                TAGS[0x011a] = 'XResolution';
                TAGS[0x011b] = 'YResolution';
                TAGS[0x0128] = 'ResolutionUnit';
                TAGS[0x0131] = 'Software';
                TAGS[0x0132] = 'DateTime';
                TAGS[0x013e] = 'WhitePoint';
                TAGS[0x013f] = 'PrimaryChromaticities';
                TAGS[0x0221] = 'YCbCrCoefficients';
                TAGS[0x0213] = 'YCbCrPositioning';
                TAGS[0x0214] = 'ReferenceBlackWhite';
                TAGS[0x8298] = 'Copyright';
                TAGS[0x829a] = 'ExposureTime';
                TAGS[0x829d] = 'FNumber';
                TAGS[0x8822] = 'ExposureProgram';
                TAGS[0x8827] = 'IsoSpeedRatings';
                TAGS[0x9000] = 'ExifVersion';
                TAGS[0x9003] = 'DateTimeOriginal';
                TAGS[0x9004] = 'DateTimeDigitized';
                TAGS[0x9101] = 'ComponentsConfiguration';
                TAGS[0x9102] = 'CompressedBitsPerPixel';
                TAGS[0x9201] = 'ShutterSpeedValue';
                TAGS[0x9202] = 'ApertureValue';
                TAGS[0x9203] = 'BrightnessValue';
                TAGS[0x9204] = 'ExposureBiasValue';
                TAGS[0x9205] = 'MaxApertureValue';
                TAGS[0x9206] = 'SubjectDistance';
                TAGS[0x9207] = 'MeteringMode';
                TAGS[0x9208] = 'LightSource';
                TAGS[0x9209] = 'Flash';
                TAGS[0x920a] = 'FocalLength';
                TAGS[0x927c] = 'MakerNote';
                TAGS[0x9286] = 'UserComment';
                TAGS[0x9290] = 'SubsecTime';
                TAGS[0x9291] = 'SubsecTimeOriginal';
                TAGS[0x9292] = 'SubsecTimeDigitized';
                TAGS[0xa000] = 'FlashPixVersion';
                TAGS[0xa001] = 'ColorSpace';
                TAGS[0xa002] = 'ExifImageWidth';
                TAGS[0xa003] = 'ExifImageHeight';
                TAGS[0xa004] = 'RelatedSoundFile';
                TAGS[0xa005] = 'ExifInteroperabilityOffset';
                TAGS[0xa20e] = 'FocalPlaneXResolution';
                TAGS[0xa20f] = 'FocalPlaneYResolution';
                TAGS[0xa210] = 'FocalPlaneResolutionUnit';
                TAGS[0xa215] = 'ExposureIndex';
                TAGS[0xa217] = 'SensingMethod';
                TAGS[0xa300] = 'FileSource';
                TAGS[0xa301] = 'SceneType';
                TAGS[0xa302] = 'CFAPattern';
                //... add more if you like.
                //See http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html
            private function dataHandler(e:ProgressEvent):void{
                //EXIF data in top 64kb of data
                if(m_urlStream.bytesAvailable >= 64*1024){
                    m_urlStream.readBytes(m_data, 0, m_urlStream.bytesAvailable);
                    m_urlStream.close();
                    processData();
            private function processData():void{
                var iter:int=0;
                //confirm JPG type
                if(!(m_data.readUnsignedByte()==0xff && m_data.readUnsignedByte()==0xd8))
                    return stop();
                //Locate APP1 MARKER
                var ff:uint=0;
                var marker:uint=0;
                for(iter=0;iter<5;++iter){ //cap iterations
                    ff = m_data.readUnsignedByte();
                    marker = m_data.readUnsignedByte();
                    var size:uint = (m_data.readUnsignedByte()<<8) + m_data.readUnsignedByte();
                    if(marker == 0x00e1) break;
                    else{
                        for(var x:int=0;x<size-2;++x) m_data.readUnsignedByte();
                //Confirm APP1 MARKER
                if(!(ff == 0x00ff && marker==0x00e1)) return stop();
                //Confirm EXIF header
                var i:uint;
                var exifHeader:Array = [0x45,0x78,0x69,0x66,0x0,0x0];
                for(i=0; i<6;i++) {if(exifHeader[i] != m_data.readByte()) return stop();}
                //Read past TIFF header
                m_intel = (m_data.readByte()!=0x4d);
                m_data.readByte(); //redundant
                for(i=0; i<6;i++) {m_data.readByte();} //read rest of TIFF header
                //Read IFD data
                m_loc = 8;
                readIFD(0);
                //Read thumbnail
                if(m_thumbnailData){
                    var loader:Loader = new Loader();
                    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbnailLoaded);
                    loader.loadBytes(m_thumbnailData);
                else stop();
            //EXIF data is composed of 'IFD' fields.  You have IFD0, which is the main picture data.
            //IFD1 contains thumbnail data.  There are also sub-IFDs inside IFDs, notably inside IFD0.
            //The sub-IFDs will contain a lot of additional EXIF metadata.
            //readIFD(int) will help read all of these such fields.
            private function readIFD(ifd:int):void{
                var iter:int=0;
                var jumps:Array = new Array();
                var subexifJump:uint=0;
                var thumbnailAddress:uint=0;
                var thumbnailSize:int=0;
                // Read number of entries
                var numEntries:uint;
                if(m_intel) numEntries = m_data.readUnsignedByte() + (m_data.readUnsignedByte()<<8);
                else numEntries = (m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte());
                if(numEntries>100) numEntries=100; //cap entries
                m_loc+=2;
                for(iter=0; iter<numEntries;++iter){
                    //Read tag
                    var tag:uint;
                    if(m_intel) tag = (m_data.readUnsignedByte()) + (m_data.readUnsignedByte()<<8);
                    else tag = (m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte());
                    //read type
                    var type:uint;
                    if(m_intel) type = (m_data.readUnsignedByte()+(m_data.readUnsignedByte()<<8));
                    else type = (m_data.readUnsignedByte()<<8)+(m_data.readUnsignedByte()<<0);
                    //Read # of components
                    var comp:uint;
                    if(m_intel) comp = (m_data.readUnsignedByte()+(m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte()<<16) + (m_data.readUnsignedByte()<<24));
                    else comp = (m_data.readUnsignedByte()<<24)+(m_data.readUnsignedByte()<<16) + (m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte()<<0);
                    //Read data
                    var data:uint;
                    if(m_intel) data= m_data.readUnsignedByte()+(m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte()<<16) + (m_data.readUnsignedByte()<<24);
                    else data = (m_data.readUnsignedByte()<<24)+(m_data.readUnsignedByte()<<16) + (m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte()<<0);
                    m_loc+=12;
                    if(tag==0x0201) thumbnailAddress = data; //thumbnail address
                    if(tag==0x0202) thumbnailSize = data;  //thumbnail size (in bytes)
                    if(TAGS[tag] != undefined){
                        //Determine data size
                        if(DATASIZES[type] * comp <= 4){
                            //data is contained within field
                            m_exif[TAGS[tag]] = data;
                            m_exifKeys.push(TAGS[tag]);
                        else{
                            //data is at an offset
                            var jumpT:Object = new Object();
                            jumpT.name = TAGS[tag];
                            jumpT.address=data;
                            jumpT.components = comp;
                            jumpT.type = type;
                            jumps.push(jumpT);
                    if(tag==0x8769){ // subexif tag
                        subexifJump = data;
                var nextIFD:uint;
                if(m_intel) {
                    nextIFD= m_data.readUnsignedByte()+(m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte()<<16) + (m_data.readUnsignedByte()<<24);
                else {
                    nextIFD = (m_data.readUnsignedByte()<<24)+(m_data.readUnsignedByte()<<16) + (m_data.readUnsignedByte()<<8) + (m_data.readUnsignedByte()<<0);
                m_loc+=4;
                //commenting this out, as suggested in the comments.
                //if(ifd==0) jumps = new Array();
                for each(var jumpTarget:Object in jumps){
                    var jumpData:Object = null;
                    for(;m_loc<jumpTarget.address;++m_loc)m_data.readByte();
                    if(jumpTarget.type==5){
                        //unsigned rational
                        var numerator:uint = m_data.readInt();
                        var denominator:uint = m_data.readUnsignedInt();
                        m_loc+=8;
                        jumpData = numerator / denominator;
                    if(jumpTarget.type==2){
                        //string
                        var field:String='';
                        for(var compGather:int=0;compGather<jumpTarget.components;++compGather){
                            field += String.fromCharCode(m_data.readByte());
                            ++m_loc;
                        if(jumpTarget.name=='DateTime' ||
                            jumpTarget.name=='DateTimeOriginal' ||
                            jumpTarget.name=='DateTimeDigitized'){
                            var array:Array = field.split(/[: ]/);
                            if(parseInt(array[0]) > 1990){
                                jumpData = new Date(parseInt(array[0]), parseInt(array[1])-1,
                                    parseInt(array[2]), parseInt(array[3]),
                                    parseInt(array[4]), parseInt(array[5]));
                        else jumpData = field;
                    m_exif[jumpTarget.name] = jumpData;
                    m_exifKeys.push(jumpTarget.name);
                if(ifd==0 && subexifJump){
                    //jump to subexif area to obtain meta information
                    for(;m_loc<data;++m_loc) m_data.readByte();
                    readIFD(ifd);
                if(ifd==1 && thumbnailAddress && m_loadThumbnail){
                    //jump to obtain thumbnail
                    for(;m_loc<thumbnailAddress;++m_loc) m_data.readByte();
                    m_thumbnailData = new ByteArray();
                    m_data.readBytes(m_thumbnailData, 0, thumbnailSize);
                    return;
                // End-of-IFD
                // read the next IFD
                if(nextIFD){
                    for(;m_loc<nextIFD;++m_loc) m_data.readUnsignedByte();               
                if(ifd==0 && nextIFD)
                    readIFD(1);
            private function thumbnailLoaded(e:Event):void{
                m_thumbnailData.clear();
                var loader:LoaderInfo = e.target as LoaderInfo;
                var bitmap:Bitmap = loader.content as Bitmap;
                if(bitmap != null){
                    m_thumbnailBitmapData = bitmap.bitmapData;
                stop();
            // Releases m_data and dispatches COMPLETE signal.
            private function stop():void{
                m_data=null;
                dispatchEvent(new Event(Event.COMPLETE));
                return;

  • Image Orientation/Rotation Problem in Lightroom 3.2 Final

    This is a continuation of my previous post regarding this same problem in 3.2RC. It's still happening in the Final version of Lightroom 3.2.
    THE PROBLEM
    Image orientation is not working properly in Lightroom 3.2. This affects newly imported images and images that were already in my Lightroom database -  and which have been in the database since Version 1.
    Here's a screen capture showing the strange displays I'm seeing in  Lightroom's grid mode:
    Notice the odd angle of the image. When I use the Rotate Photo Left tool, the display looks like this sometimes. After a second or so, it will snap to either a vertical or horizontal orientation by itself but rarely gives me the 90-degree rotation this tool should give. The image may flip 90-degrees or 180-degrees, there's no way to tell.
    When I view the image in Loupe view or on my second monitor, the orientation shown in Grid view does not match that displayed in Loupe Vew. For this particular image, Grid view currently shows it as correctly orientated as a horizontal while Loupe view shows it rotated 90-degrees to the right. Shouldn't they match?
    BACKGROUND
    I never had a problem with image orientation in any preveious version of Lightroom prior to Lightroom 3.2RC and 3.2 Final. So, it seems to be a bug in 3.2. I'm still using the same computer and video card I used with previous versions. My operating system is Windows 7 Home Premium. Both Windows and Lightroom are 64-bit.
    HELP!
    Is anyone else having this problem? How can I solve it?
    Alan
    PhtooCitizen.com

    The size of the catalogue is almost certainly not at play here.
    FWIW, I recall seeing something like this once a long time ago on a Mac, possibly with Lr 3 beta, or Lr 2.x.  It went away with a restart. It almost looks like a threading issue, where a thread is suspended or preempted and then is lost or disconnected from the main UI thread.
    I recall you can just rotate the image again and it will right itself.
    Adobe fist-line support seem to want to use the number of images in the catalogue as some sort of catch-all.  The problem with this is that most of us can demonstrate that there is little correspondence with the number of image IDs in the database and many reported UI artefacts.
    I'd keep raising this with them, and suggesting that the size of the catalogue is probably not at play here. As a tactic, you can ask what the maximum size of a catalogue should be, and if it is raw images or the number of changes to the images and virtual copies that is the problem, and if this can be verified by second- or third-line support.

  • Can you lock the background image orientation?

    Hello all
    Is there a way to lock the image orientation? When I turn the iPad, I want the apps to rotate, but I want the background image to stay portrait.
    If not, is there someplace i can suggest the feature?
    Thanks!

    No. It will orient along with your view. You can post feedback here: http://www.apple.com/feedback/

  • Indicated Image Orientation is Incorrect

    Hi all:
    Aperture 2.1.1 has begun to incorrectly tag images in the portrait orientation as “Landscape,” even though the images were correctly oriented as portrait during import and when viewing them in the Browser or Full screen mode. Doesn’t matter which camera (Nikon D80, Canon Powershot SD600 or Panasonic DMC-TZ1) I import from.
    Additionally, when viewing the incorrectly tagged images in the Finder window, set to column view, portrait-oriented images correctly oriented in Aperture are incorrectly oriented as landscape in the Finder window. They also open as landscape-oriented images in Preview. If I correctly rotate the image in Preview, then save the file, the Finder correctly displays the image, but the thumbnail in Aperture becomes corrupted: The image orientation in the Browser window remains as portrait, but the image preview has rotated 90 degrees.
    Can’t tell if this occurred since upgrading to Aperture 2.1.1 or Mac OS 10.5.5. Any ideas?

    Thanks for the tip. I did exactly what you suggested and ended up with over 2000 extra versions (sometimes up to six) of my files, some with strangely cropped previews, and files long since deleted. All these extra versions did not include any metadata I added (i.e., keywords, description, byline, city, state, etc.). In some cases the file name reverted back to the original one assigned by the camera(s).
    Meanwhile, rebuilding the database did not solve the incorrect orientation tag issue. All my images are referenced masters. No masters in my database are stored in the Aperture library.
    Thanks for any advice out there.

  • Image orientation upon importing?

    HI, I am using Photoshop elements 8. I was wondering if anybody knows of an option which controls image orientation during photo import? My situation; I have a large catalogue of photos and I have a canon 40d which I use for my serious photo work and I use an Olympus 6000 tough for play. Just recently when I went to upload my images off of the Olympus point and shoot all of my portrait image when imported are laying on their side or are presented in a landscape style. Now I have to go through manually rotate each image or select groups of images which is very time consuming. I don’t know what happen, elements use to rotate the images to their correct orientation during import. Does anybody know how to solve this?
    Thanks,
    jt

    The photo you posted has the Orientation field in the EXIF metadata set to Horizontal (landscape):
    Image Width                : 3648
    Image Height               : 2736
    Make                       : OLYMPUS IMAGING CORP.
    Camera Model Name          : uT6000,ST6000
    Orientation                : Horizontal (normal)
    So that's why PSE isn't rotating it.  Perhaps there's a setting in your camera you need to enable to have it record the Orientation properly, or perhaps the orientation sensor broke?
    I used Exiftool to examine the EXIF metadata in the photo -- it is the most reliable way of examining all the photo metadata without the "helpful" interpretation and filtering that most programs (like PSE) provide.

  • Image Orientation in Blog and Blog Summary

    Inserted a picture into a blog entry and rotated it 90 deg.
    In the blog summary, on the summaries page, the image reverts to its original orientation.
    Can't see a way to change the image orientation on the summary page, which would be undesirable anyway - don't want to have to edit two pages for every entry.
    Has anyone experienced this problem?
    Are there any solutions?
    Thanks

    I played around with the orientation manually, and found that if I change the orientation, the image would be correctly "orientated' in the lower part of the split viewer, but the actual image would be off by 90 degrees. I then reoriented the image back (sideways view in the bottom file-strip) and the large image would display correctly again, and, the bottom image corrected itself to the normal orientation. So, by changing each sideways image 90 degrees once and then back again, seems to "fix' the issue. Still not sure how I applied this feature.

  • Facetime image orientation?

    I held a facetime chat with a friend and was completely unable to cause both phones to properly display horizontal oriented images. Each person saw the other horizontal image as a belt-line horizontal you would see on a vertically oriented iPhone.
    With both vertical-no problem.
    The ads clearly show several examples of both ends of the conversation captured in horizontal orientation, but nothing we could do would convince the phones to behave this way.
    Any clues?

    Found it!
    After searching the iPhone docs several times with no success, an article on the internet pointed to the easy Image Orientation Lock/Unlock control.
    For others with this "issue", it's found by double clicking the Home button on the iPhone, then flicking the line of apps to the right. Most/many of us are familiar with flicking this to the left to search back in our app usage, but when you flick to the right, there's a set of iconic controls, including the circle around a lock symbol.
    All well now. Thanques to all.

  • OCR in Java to set image orientation.

    I want to set the orientation of an image after scanning. I thought the only way to do this is to use some type of OCR (Optical Character Recognition). I was curious if there are any small packages out there to do this (or another way to set image orientation. All the ones I have found are giant all-in-one imaging solutions.
    Thanks

    I think that you need OCR package at javaocr.com

  • [solved] Image orientation issue

    Hello,
    I have a problem with image orientation.
    I am using Arch64 and KDE 4.4.5 from Arch.
    When I look at my pictures in digikam (1.3.0) or gwenview, portrait pictures are displayed fine. If I send them with thunderbird, portrait images are displayed with landscape orientation.
    The only workaround I found is to rotate twice the image with digikam (once on the right and once on the left to set it back to previous orientation).
    I have noticed that EXIF information change...does anyone have the same issue and knows what is the cause of it ?
    before, orientation is "droit, haut" = "right, top"
    after, orientation is "haut, gauche" = "top, left" and width and heigth size is set...
    regards
    Last edited by supercow (2010-07-08 17:20:11)

    Digital cameras create images that aren't rotated as such -- as plain images they're always in landscape format. If your camera has an orientation sensor, it will merely hint at the intended orientation by setting the exif orientation value in the jpeg file (instead of really rotating the image and creating a jpeg with a portrait format).
    Not all programs interpret all exif data. Programs that don't interpret the exif orientation (as thunderbird seems to do it) will display the image as it is (always in landscape), while others (like digikam) use the exif data to decide on how to rotate the image for display. So digikam is just smart enough to show the image in it's "logical" portrait format while it's "physically" remains in landscape format.
    To make a real portrait jpeg, you have to really rotate it and adjust the exif orientation accordingly, which is what effectively happens if you use digikam in the way you describe it. So that's not a workaround, but required to make sure that all programs display the images in the desired format, and not just those that are smart enough to honor the exif orientation.
    See the jpegexiforient and jpegautotran programs for an explanation and an alternative way to rotate images based on their exif orientation value.
    Last edited by hbekel (2010-07-07 21:55:00)

  • Skill testing question - image orientation

    I've just begun noticing that the "Orientation:" field in the metadata of certain images in my library is being changed from "landscape" to "portrait" and vice versa. There doesn't appear to be any pattern to the change, random images are being affected thus far. The images that are being affected have been in my library for more than 18 months.
    Needless to say, the effect is hardly flattering when a portrait (in this case, my niece at grad) is suddenly expanded horizontally and shrunk vertically to fill a landscape frame.
    Has anybody else experienced this? What is the solution?
    My master images are still OK but its kind of scary to think that this could happen to my entire libary!!
    Thanks
    M

    I determined that Aperture 3.0.1 had lost all my thumbnails and was doing a disastrous job getting the orientation correct if I went in to an album to view photos. I had Aperture generate thumbnails explicitly by selecting the disoriented thumbnails in an album and then Photos -> Generate Thumbnails; they seem to be correct now.
    Now in the process of doing a global Generate Thumbnails which I believe will be fine - of course it's going to chug along for sometime doing this. Can't think of anything I did other than add the update for ProKit recently...

  • Determining image types used in pdf

    Hi,
    I was sent a pdf by a client and was wondering if there was a way to determine what types of images he used in the file.
    For example, did he use .jpg, .tif,, .eps etc.
    Thanks,
    Andrew Hutton
    [signature deleted by host]

    In the Object palette make sure Embed Image Data is ticked.

  • Changing thumbnail image orientations in photo page

    Hello Guys!
    I have created a new photo page in iweb09 and tried dragging some images from the image folder on my system. The Problem is i have few portrait oriented images but all of them display as landscape in the thumbnail gallery. The flip option in the inspector does not solve the problem too.
    Any suggestions??
    Thanks

    Welcome to the Apple Discussions. Do those photos display correctly if dragged from your HD into a Safari window? If not use Xee to losslessly rotate the photos and then add to iWeb's photo page. See if that won't produce correct thumbnails.
    Or import those photo into iPhoto which will create a rotated modified version and thumbnail and add that to iWeb via the Media Browser.
    OT
    Message was edited by: Old Toad

  • Am I missing something? - Image orientation? - May go back to lightroom :(

    Hello - I recently switched from Lightroom over to Aperture - There are things I love about it - and things I don't like ( No Fill Light feature - in aperture I have to adjust several settings to get the same effect ) and the thing that seems to be my biggest gripe is the apparent lack of auto orientation.
    The cameras I shoot with ( Nikon D3 and D3s ) used to import into lightroom in the proper orientation - either portrait or landscape. Does Aperture not do this with NEF's ( the raw files produced by Nikon cameras ) - I wouldn't mind manually doing it but I shoot several thousand pictures per session and it's too labor intensive for my staff and I to have to go through and sort something that used to be solved automatically for us.
    Anyone else experiencing this? Anyone have a fix?
    Respectfully,
    Ezra Primack,
    photographer | partner
    Kiss the bride! wedding media
    Ktb! is proud to be a "Best of the Knot weddings pick" for 2010!
    <Edited by Host>

    Haha - if your not carful - very true - I am available light only photographer - in many demanding situations at ISO 6400 - 12800 the D3s is pretty good at getting pretty clean images... but subtle use of fill light and some additional post processing in PS has allowed us to shoot regularly in pretty demanding low light situations without using flash. Even when used properly flash kills it for me - I hate losing ambiance and clamping out all those the great blooms of light and bokeh etc that you lose when you start going strobist. If you get bored and want to see how clean the results we get at ISO 6400-12800 using this method are you can check out our work at ktbweddings[.]com
    We use the exposure / shadows /highlights / recovery / radius method right now - but it's 2 more adjustments than the way we were used to in LR. I'm going to stick with aperture because there are so many features that I think make it a better fit than lightroom - it's just little things like that really eat away at your time when you have to do it 400 times on a single project.
    Respectfully,
    Ezra Primack,
    photographer | partner
    Kiss the bride! wedding media
    Ktb! is proud to be a "Best of the Knot weddings pick" for 2010!
    <Edited by Host>

Maybe you are looking for

  • Can't send email - SEND button doesn't work

    I recently upgraded this machine to 10.4 Today, I the SEND button in MAIL doesn't work. I also cannot select SEND from the menu. Nothing happens. Help!

  • Javascript validate date format?

    i cant figure out how to check the format of the date, i want it to check that the date is dd/mm/yy                if(document.getElementById(i+"eddstartdate").value == ????)                     window.alert('You Must Enter a Start Date with a valid

  • What part do i need in order to hear better on my iphone 4s?

    i barley can hear on my iphone 4s, i wanna put in the part so i can hear better on my iphone 4s, silly question i know but i want to comfirm. is it the "earpeice speaker"?

  • IPods and firmware update question

    It happened. I wait, wait, wait and finally buy an 80gb for $350 and a month later 160gb for less comes out! The only new feature I like is the album cover browse...text listing doesn't mean anything to me for over half my collection - I KNOW my albu

  • Publish - Dashboard to BI Launchpad

    Hi experts, My dashboard (4.0) based on an BEx-Query and is published to SAP BW. Is there a way to publish this dashboard to the BI Launchpad with the same connection -> Prompts und reading data from BW? or is it possible to create an url to the publ