ImageView expected to auto-sense orientation

A few comments to the people of the API:

Shouldn't the ImageView read the EXIF of a JPEG image and automatic image rotation? And so by default, shouldn't there not a property such as 'autoOrient' or 'function' that this happens?

Seen developers manually read the EXIF data, manually turn the images, etc., seems to be a waste of developer time.

Follow-up question: if I do it manually and you end up with a QImage, how to recognize an ImageView to use a QImage? Is this possible?

And one last question followed: what type is the property of 'image' of the ImageView?  He says it's a QVariant, but is not very useful.  Can we set this property, or is read-only?  Overall, I think that the "image" property documentation could use some improvements.

Thank you

Daniel

Understood that through:

http://supportforums.BlackBerry.com/T5/Cascades-development/rotation-and-translation-cuts-the-image/...

... my container was not big enough. I have change the container that has the ImageView to fill the page, and which prevented the cropping. I'm glad it was something simple.

Here is a very rough code incase it is useful to someone else:

#include 
#include 
#include 
#include 

...

// Gets called when the root container is resized, so that we can track
// how large it is.
void PhotosModel::updateContainerSize(qreal width, qreal height)
{
    // Is this the initial call to updateContainerSize, or did
    // the size of the container change because of an orientation
    // change?
    bool initOrReInit = (containerWidth != (int)width);

    containerWidth = width;
    containerHeight = height;

    if (initOrReInit && imageLoadedFlag)
    {
        // When we tried to load this, we didn't yet know the width of the
        // screen. Now that we do, display the image.
        qDebug() << "Delayed image load";
        loadImage(photos.at(curPhoto).absoluteFilePath());
    }
}

void PhotosModel::loadImage(QString file)
{
    imageLoadedFlag = true;

    // If the screen hasn't loaded yet and we don't know how wide
    // the container is, then hold off until we do.
    if (containerWidth == 0)
    {
        qDebug() << "Can't display image yet";
        return;
    }

    int width = -1;
    int height = -1;
    bool xyFlip = false;

    ExifLoader* loader = exif_loader_new();
    exif_loader_write_file(loader, file.toStdString().c_str());
    ExifData* data = exif_loader_get_data(loader);

    imageView->setRotationZ(0);

    int desiredRotation = 0;

    if (data != NULL)
    {
        //exif_data_dump(data);

        // Treating this as int* seems to result in corruption / bad behavior.
        // I think orientation is supposed to be a 'short int', which I would have
        // thought would be 2 bytes, but short int * doesn't seem to be consistent
        // either. So far char* seems to work.
        char* orientationPtr = (char *) GetExifValue(data, EXIF_TAG_ORIENTATION);

        if (orientationPtr != NULL)
        {
            //int orientation = *orientationPtr;

            int orientation = orientationPtr[0];

            // 1 -> OK
            // 3 -> Rotate 180
            // 6 -> CC 90
            // 8 -> C 90

            qDebug() << "Orientation: " << orientation;

            if (orientation == 3)
            {
                desiredRotation = -180;
            }
            // NOTE: Also doing this for orientation == 0, because I have
            //       a photo with orientation 0 that seems to need this.
            //       Confused. Picasa seems to know that the image needs
            //       this rotation.
            else if (orientation == 6 || orientation == 0)
            {
                desiredRotation = 90;
                xyFlip = true;
            }
            else if (orientation == 8)
            {
                desiredRotation = -90;
                xyFlip = true;
            }
            else
            {
                desiredRotation = 0;
            }

            //qDebug() << "Width: " << width << ", Height: " << height;
        }

        long* widthPtr = (long *) GetExifValue(data, EXIF_TAG_PIXEL_X_DIMENSION);
        if (widthPtr != NULL)
        {
            width = (int)*widthPtr;
        }

        long* heightPtr = (long *) GetExifValue(data, EXIF_TAG_PIXEL_Y_DIMENSION);
        if (heightPtr != NULL)
        {
            height = (int)*heightPtr;
        }
    }

    if (width == -1 || height == -1)
    {
        // Trouble. We don't know how large the photo is.
        // For now we'll just show nothing. Will this ever happen? How can we
        // fail more gracefully?
        imageView->setVisible(false);
        ErrorHelpers::showDialog("Missing EXIF Data", "The EXIF data for this image doesn't indicate its width/height, and so it cannot be displayed.");
    }
    else
    {
        imageView->setVisible(true);
    }

    int virtualContainerWidth;
    int virtualContainerHeight;

    if (xyFlip)
    {
        qDebug() << "xyFlip";
        virtualContainerWidth = containerHeight;
        virtualContainerHeight = containerWidth;
    }
    else
    {
        virtualContainerWidth = containerWidth;
        virtualContainerHeight = containerHeight;
    }

    qDebug() << "virtualContainerWidth: " << virtualContainerWidth;
    qDebug() << "virtualContainerHeight: " << virtualContainerHeight;

    float imageAspect = (float)width / (float)height;

    qDebug() << "imageAspect: " << imageAspect;

    float screenAspect = (float)virtualContainerWidth / (float)virtualContainerHeight;

    qDebug() << "screenAspect: " << screenAspect;

    int imageScreenWidth;
    int imageScreenHeight;

    if (imageAspect > screenAspect)
    {
        // Image is wider than screen aspect wise, so X will be limiting dimension.
        if (width > virtualContainerWidth)
        {
            imageScreenWidth = virtualContainerWidth;
        }
        else
        {
            imageScreenWidth = width;
        }
        // Better to round here?
        imageScreenHeight = (int)((float)imageScreenWidth / imageAspect);

        qDebug() << "Limited by X";
        qDebug() << "imageScreenWidth: " << imageScreenWidth;
        qDebug() << "imageScreenHeight: " << imageScreenHeight;
    }
    else
    {
        // Image is taller than screen aspect wise, to Y will be limiting dimension.
        if (height > virtualContainerHeight)
        {
            imageScreenHeight = virtualContainerHeight;
        }
        else
        {
            imageScreenHeight = height;
        }
        // Better to round here?
        imageScreenWidth = (int)((float)imageScreenHeight * imageAspect);

        qDebug() << "Limited by Y";
        qDebug() << "imageScreenWidth: " << imageScreenWidth;
        qDebug() << "imageScreenHeight: " << imageScreenHeight;
    }

    int imageX;
    int imageY;
    imageX = (int)((float)containerWidth / 2.0f - (float)imageScreenWidth / 2.0f);
    imageY = (int)((float)containerHeight / 2.0f - (float)imageScreenHeight / 2.0f);

    qDebug() << "imageX: " << imageX;
    qDebug() << "imageY: " << imageY;

    imageView->setPreferredWidth(imageScreenWidth);
    imageView->setPreferredHeight(imageScreenHeight);

    AbsoluteLayoutProperties* layoutProperties = new AbsoluteLayoutProperties();

    layoutProperties->setPositionX(imageX);
    layoutProperties->setPositionY(imageY);

    imageView->setLayoutProperties(layoutProperties);

    qDebug() << "desiredRotation: " << desiredRotation;

    imageView->setRotationZ(desiredRotation);

    imageView->setImage(QUrl("file://" + file));
}

void* PhotosModel::GetExifValue(ExifData* data, ExifTag tag)
{
    for (int i = 0; i < EXIF_IFD_COUNT; i++)
    {
        ExifContent* content = data->ifd[i];
        ExifEntry* entry = exif_content_get_entry(content, tag);
        if (entry != NULL)
        {
            return entry->data;
        }
    }

    return NULL;
}

... and some related QML...

Page {
    Container {
        id: rootContainer
        objectName: "rootContainer"
        background: Color.Black;
        layout: DockLayout {
        }
        horizontalAlignment: HorizontalAlignment.Fill
        verticalAlignment: VerticalAlignment.Fill

        attachedObjects: [
            // This handler is tracking the layout frame of the button.
            LayoutUpdateHandler {
                id: handler
                onLayoutFrameChanged: {
                    photosModel.updateContainerSize(layoutFrame.width, layoutFrame.height);
                }
            }
        ]

        Container {
            layout: AbsoluteLayout {}
            horizontalAlignment: HorizontalAlignment.Fill
            verticalAlignment: VerticalAlignment.Fill

            ImageView {
                id: imageView
                objectName: "imageView"

                scalingMethod: ScalingMethod.Fill

                //scalingMethod: ScalingMethod.AspectFit

                preferredWidth: 1
                preferredHeight: 1

                layoutProperties: AbsoluteLayoutProperties {
                    positionX: 1
                    positionY: 1
                }

                // Tried this, but the image is still animating into place.
                loadEffect: ImageViewLoadEffect.None

                attachedObjects: [
                    ImplicitAnimationController {
                        enabled: false
                    }
                ]
            }
        }

It is an amount disappointing nonsense to be caused by the ImageView doesn't Autodetect not the EXIF orientation flag. Please improve this BlackBerry.

Tags: BlackBerry Developers

Similar Questions

  • Virtual keyboard for blackBerry Smartphones / Auto Screen Orientation Torch 9800

    Hi all

    I have a Torch 9800 (OS 6 2534 on network three UK) and often the screen does not auto rotation (when the phone is rotated 90 degrees) and the virtual keyboard is grayed out in the messaging and BBM. If sometimes seems again (seems random) and after a power off. The physical keyboard is not extended and locked.

    Anyone know of a fix or a workaround to ensure that VK and auto screen rotate reliable works?

    Thank you very much for you are your entry.

    Regards Charles

    Thanks for your help.

  • Bind 4 K doesn't work not as expected

    I started working more and more with 4K despite the material does not quite being height.

    We use CatDV on a 48 TB media server so that producers can annotate and select their clips. CatDV also creates proxies with the exact same file names that I can use for the first mounting with.

    When it comes to uprez, I take the offline sequence and choose bind again. I point the first proxy in the list on the clip of 4K and click OK. I would expect first auto add a link to the other items in the list to the new location/images but everything else in the list just goes back to be bound for the proxies. The only way I can get this process works as expected must temporarily rename the proxy folder, but which has the effect of disconnecting all sequences including bin clips.  So, after re-Binder the sequence to 4 K, I have to go out, rename the proxy folder to le nom d' origin and then go back and re - link all the clips of bin as well.

    This seems to be a very sloppy workflow.  Any suggestions out there on how to simplify?

    Lee

    Jim_Simon wrote:

    When PP is everything in the first folder, it will ask you for all other media not in this folder.  The project will not open until he found, or unless you have been told to keep that offline media.

    So if you see media offline after my listed operations, it may be only because you said PP to do.

    I don't know what you mean by 'bin clips.  All the clips are stored in lockers.

    Thanks for your suggestions.  I put a request for functionality with Adobe to explore the matter further.

  • Software for creating music for the suggestions of the ipad?

    My partner gave my sound mini iPad to a trial for a month or two to see if it's any good for creating music on the go.

    At home, I use Logic X on my 2008 Mac Pro. Apart from Garageband, is there a good music creation apps (drum machine, synth, daw, guitar shape) that anyone can recommend? I hope that something like Garageband or "better". Not really interested in "fun" apps - expected something more 'pro'-oriented...

    Thank you

    Have you tried searching for the app store?

  • Cannot order recovery media - HELP

    Hello

    Whenever I have try and order the recovery media, it keeps back me to page 1.  I tried different browsers and I know that the SN and model details are correct, because I'm hainvg HP auto sense it.

    I tried to call assistance, but it is impossible to find a good #.  Any ideas?   I'm more than happy to pay for the media, just need a way to order.

    Thank you!!!

    HP is unlikely to have the available for sale recovery media. After three years, HP is no longer stock or sell the recovery media.

    After a period of three years, HP is no longer stocks or selling the recovery media for its PC or laptops.

    Try Computersurgeons.com, a partner of HP, on web page next.

    http://www.computersurgeons.com/p-24056-Windows-7-64-bit-12na2rcw602-recovery-kit-c2r13av-for-HP-Pavilion-HPE-desktop-PC-model-number-H8-1360t.aspx

  • Configuration of the R8000 lan ports

    You can change the port speed/duplex of the Lan ports. I have a mismatch in duplex on a lan port?

    No they are auto-sensing. It is with your ISP, or another device?

  • Little or no connectivity

    I asked this question to the course on the Linksys forums and they told me that they think it's maybe a windows problem and suggested that ask here.

    OK so I have a router linksys (befsr41 v3) with the latest firmware (1.05.00) - I have been usuing for at least 7 or 8 years now - at one point I got 3 computers connected and they have all worked fine. Now I have 2 connected on the router - both are xppro machines - the one I am on now works without any problem. However, the other computer has the limited or no connectivity problem.

    I used this router for years without any problem, then one day this conflict of intellectual property message started to appear.

    I started getting this message from conflict ip on both computers, but only occasionally - it never no problem - if you skipped it - it would simply go away.

    Then a computer day #2 has the limited or no connectivity message - I have simple reboot fixed it. This solution worked several times. Computer #1 has never had no problem with the internet connection.

    Some time later the limited or no connectivity problem is back and this time this reset does not work - I looked for a solution and decided to try to change the speed of the link to auto sense to 10 MB half duplex - this solves the problem. This solution worked several times.

    Some time after the limited or no connectivity reappeared and after some research, I updated the firmware of routers - this solves the problem.

    Some time later the limited or no connectivity reappeared and this time I had to actually uninstall the card NETWORK, restart and then let it redetect the NETWORK adapter and then the problem has been resolved. This solution worked several times.

    Some time later the limited or no connectivity reappeared and the previous solutions did not work to fix - after searching for a solution, I discovered that I could simply unplug the router and reconnect it the and would solve the problem. This solution worked several times.

    Some time later (which brings me to 3 or 4 months ago) the limited or no connectivity reappeared and this time after searching for a solution, I was able to fix by updating the NIC drivers. Problem solved.

    This brings us to today - limited connectivity or none has reappeared and none of the previous fixes the problem.

    When I initially put it worked immediately out of the box.

    DHCP is enabled - everything is set to obtain an ip address automatically.

    Initially, the event viewer on the computer #2 reported lease IP address 192.168.1.100 for the network card with network address
    0xXXXXXXXX refused by the 192.168.1.1 DHCP server. {The DHCP server
    sent a DHCPNACK message.}

    Now the same Viewer just tells me that he is using ip address 169.254.xxxxxx

    I tried all of the previous fixes without result. I tried to just turn off and turn on any return - I tried to reset both the modem and the router - I tried upgrading the firmware again. I even downloaded LELA and installed on both computers, maybe it would detect and don't solve the problem buy no luck. LELA simply tells me that this #1 computer does not operate normally. On computer #2 when I installed LELA, the first thing that trying to find the router and he tells me that it can't find it.

    I tried to uninstall the NETWORK adapter and remove the drivers, restart and then reinstalling the. No luck.

    I tried to set a static ip address on the computer #2 with no luck. When I did these two error messages appeared in the event viewer of the computer #1---

    The master browser has received a server announcement from the computer (#2), who believes it is the master browser for the domain of transport NetBT_Tcpip_ {0876E9A8-C6E. The master browser stops or an election is forced.

    The name "MSHOME: 1 d" could not be registered on the Interface with the IP 192.168.1.100. The machine with the IP 192.168.1.20 did not allow the name to be claimed by this machine.

    If I ping the router from computer #2 it returns 100% of loss.

    If I ping the NIC it is 0% loss.

    I might also add that I can see the two computer #1 and domestic #2 in my network working group on both computers.

    I tried ipconfig enough and ipconfig / renew - I tried one after the other and also a reset in between. I tried clicking on repair in the State of LAN - I have tried to reset the ip with the netsh command stack - I even tried different cables and control switching ports on the router.

    If there is that about sums it up. Suggestions anyone?

    I second assessment of Jack.  I used to have a BEFSR41 router as well and it was almost the exact symptoms I experienced until the router bit the proverbial dust and I bought a new router.  I have not had problems since.

    FWIW,
    JW

  • HP ENVY 15-q178ca notebook pc

    I want to know if HP ENVY 15-q178ca notebook pc to support the following requirements

    • Combo CD-RW/DVD-RW drive
    • 10/100 auto detection of network card
    • A/G/N Card Standard 10 / 100 (one of those standards will suffice)
    • Discreet 256 MB or 512 MB shared video chipset

    Hello amaljs255,

    Welcome to the HP Forums!

    For answers to your questions, I'll give you the envy 15 maintenance and services guide:

    • CD-RW/DVD-RW combo drive - Yes,

      576831 001

    • 10/100 auto Sensing Network Card and card A/G/N Standard 10 / 100 - start reading page 2 for more information
    • Discreet video Chipset, 256 MB or shared 512 MB - look at page 1 for more information

    Let me know if it helps. The service guide will answer everything, including the future questions of this nature. Thank you and have a great day!

    Mario

  • VCS for integration of advertisements

    Hi friends,

    I understand this topic...

    (Direct) authentication of the Active Directory database can be activated at the same time as the local database and the H.350 directory service authentication.

    In such circumstances, you could, for example, use Server Active Directory (direct) method for Movi / Jabber Video and the local database or authentication H.350 directory service for other devices that do not support NTLM.

    Challenges of default NTLM protocol is 'Auto' sense decides to VCS, based on the type of device, either to send NTLM challenge.

    Assuming it is that only VCs do control i.e. no VCS highway in game...

    If I integration of ads and subarea area & default default value 'check the credentials' and I think connections MOVI challlenged via AD but normal endpoints will be authenticated through the local database. (assuming that they are in the subzone of the default)

    If I integration of ads and subarea area & default default value "do not verify the credentials" then the Logins MOVI will still be challlenged via AD or rather they will be authenticated via the local database?

    Basiclly I want to determine is challenges of the NTLM protocol default setting "Auto" be completely ignored if subarea area & default default value "do not verify credentials?

    Kind regards

    MILIN

    Hello

    do not check credential is valid for the TMS agent however TMS - PE space default setting should be "credential verification".

    and even if you have NTLM defined as 'auto' he does not have the AD users to connect.

    Rgds

    Alok

  • AutoSave and AutoRecover in Photoshop CC 2015 - does not work

    There is no folder named "AutoRecover" - CC Photoshop C:\Users\Daniel\AppData\Roaming\Adobe\Adobe 2015\

    So I went and created this folder, but PS still does not automatically creates a recovery file (I put it to save a file of recovery every 10 minutes).

    What can be wrong and how to fix both PS will start to save recovery files?

    I use CC 2015 too many bugs.  But I just test CC 2015 has a document open caught some changer one expected the auto recovery time and look ant sat a PSB to recover file has been created. I didn't kill PS so I did not test it from Psalm

  • Ethernet on external device with static IP address

    I'm trying to connect my external station of development (Visual Studio in Windows XP/Fusion on my Mac) for Windows CE device through an ethernet cable crossed for the CE - device debugging.

    This forces me to set a static IP address on the external device and the development station.
    Both must be on the same subnet. How can I do this?
    I tried to use the Bridged (ethernet) mode on the network card and set up a static IP address in windows XP. I also created another static IP address in OSX. Looking at the IP/ethernet side traffic OSX (using Wireshark), messages from the external device IT appears, but glancing Wireshark in merger/Windows XP, I don't see them.
    Am that I on the wrong track here with the Bridged mode?

    First of all you shouldn't have to use a crossover cable as Ethernet adapter of the Mac must Auto-Sensing and automatically process the cross above a straight through cable. (At least this is so on my Mac.)  Secondly, I would not give the host a IP road-able and only set the IP in the - CE device and virtual machine with no gateway/DNS IP address. When you use a NIC jumpered in the Virtual Machine.

    On the host if the Ethernet adapter using DHCP then you will have to wait for it to expire and get a 169.254.0.0/16 address IP or if you want an answer more quickly then manual assign a 169.254.0.0/16 IP address for the host's Ethernet card.  In this way communication is directly between the - CE device and virtual machine using VMware Bridge Protocol.

    If you do what the host itself to have connectivity in this loop, then of course assigns an IP address appropriate with no gateway/DNS IP address.

    Example of IP address Configuration

    CE-IP address: 192.168.3.1/24

    Address Virtual Machine IP: 192.168.3.2/24

    The IP address of the host: 169.254.0.0/16 or 192.168.3.3/24

    No gateway/DNS on any IP address.

  • Apache and Glassfish followed by Questions

    Hyperic HQ version 4.5.1.2 running on Windows Server 2008 R2.

    I have two questions.

    First: I have a SINGLE instance of Apache 2.2 installed in D:\Apache\Application on a machine controlled by Hyperic HQ. However, at the start of the Hyperic agent, TI auto-découvert TWO instances of Apache, one with a path of "D:\Apache\Application" and the other with a path of "D:\Apache\Application\conf\httpd.conf." What is the problem here? Why he sees this as two instances? It is safe to remove one of them from the inventory? The one who (and how to remove stock)?

    Second: I have two servers in cluster Glassfish 3.1.0. Server 1 has domain Application Server (DAS) running JMX port 8686. Then, the server 1 and Server 2 each have two instances (total of four instances that all belong to the same cluster) running JMX on ports 28686 and 28687 on each machine. I have installed and started the Hyperic agent on both machines. As the Glassfish plugin is included in this version of Hyperic, I expected to auto-Découvrez a total of five cases of Glassfish (including the DAS). However, it has not detected any instances of all. Why it wouldn't find them? They are for the operation course. What should I do to add them to the inventory without auto-detection?

    Thanks in advance for help this first timer start.

    Nick

    Hello

    You get the error message following, because you're running two instances of Glassfish and the PTQL query must be unique.

    "Configuration has not been set for this resource due to: invalid configuration: error recovery value: cannot call getProcMem [java = State.Name.eq, Args.*.ct = com.sun.aas.instanceRoot]: query several (3) process mapping: java = State.Name.eq, Args.*.ct = com.sun.aas.instanceRoot.

    Please take a look at the Configuration Properties page again and check the setting of process.query (I think that's the correct identifier).

    It contains probably the "java = State.Name.eq, Args.*.ct is com.sun.aas.instanceRoot.

    Now that you have to do some reading ;-) Check the next page and change the setting above.
    http://support.Hyperic.com/display/Sigar/PTQL#PTQL-IdentifyingaUniqueJavaProcess

    Please let us know if you have any questions.

    See you soon,.
    Mirko

  • Wired issue

    I use a router Linksys SR41.

    The four ports are used today.  Need to expand.  It seems that I can use the Linksys EtherFast EZXS88W 8 - Port Auto - Sensing 10/100 Switch to enlarge.

    This will slow down my connection down?

    Even the terrace and garage are wired for cable so I would be able to move freely without plug and unplug cables from my as I do now.


  • Effect of jerks of 3D camera makes

    I have a second camera pan 10 (90 degree rotation) of a piece.  It was made from 3ds max.  Each image is superb.  When I put together in AfterEffects and make the, I'm getting a Judder (vibration that I go into the Pan) effect.

    How can I get it to stop.  I need a smooth mold.

    Thank you.

    It is important to understand that saccades is caused by synchronization of the movement in conjunction with the refresh rate of your screen and the frame rate of the video. If your photo is fits and starts at the rate of standard playback of your deliverable the only option you have is to change the date of the move.

    This is the approach I would take.

    1. Start a new AE project and import your original image sequence
    2. Select the image sequence from the project Panel, and go to file > interpret footage > and check the frame rate (the default is 30 frames per second, I set my default to 29.97 in preferences, because that's what I normally use)
    3. Set the frame rate to match the pace of your desired final
    4. With the image sequence selected in the project Panel, click on file > new Comp from selection (or right click on and select new model of selection or drag the new icon of the model)
    5. Composition window resolution set to the factor 50% zoom and auto and do a preview ram to check saccades (check the reading rate in the info panel)
    6. If you do not respect jerks them then make a complete test resolution using Adobe Media Encoder and the YouTube or Vimeo preset that corresponds to the rate of your model, and check the test for saccades
    7. If the test makes exhibitions excitement then return to ae and proceed to step 10
    8. If you jerks in the RAM Preview, and then scroll the image of a model using the next page to verify the images duplicated or inconsistent movement especially key on the horizontal edges or vertical objects in the shot (remember to clear your cache and purge everything before doing this step)
    9. If the movement between is not consistent and predictable so solve this problem by making your image sequence again
    10. If the motion as part of the Concorde, then enable Time Remapping on the layer and change the position of the last key frame by moving it to the left or the right about 10% of the timeline
    11. Activate the interpolation
    12. Scroll through the sequence of images a framework both to check the appearance of the frames
    13. Try a RAM Preview to the Zoom factor of 50%
    14. If everything looks well made another test using the SOUL
    15. If the Test is OK, you are finished. If this isn't the case, other settings in the calendar and try again.

    If the time of the shooting can not be changed something with the design to change the relative movement between frames. Do the auto 3D, orient the camera, add layer as a camera and make a camera move instantly. Animate the position of the shooting in the framework. Change the scale of the comp. blow everything that changes the position of the edges of the horizontal or vertical detail between frames will eliminate saccades. You can hide the jerks using motion blur, but this dressing is usually not very effective.

    I hope this helps. If your photo is located on the 'critical pan speed' then you have no choice but to change the "timing".

  • Footer moving with the bottom of the browser window, not with the content of the page.

    I'll build a new website that incorporates a standard footer.

    The footer works as expected in the sense that moves down when more content is placed in the page. However, when I transfer the Web site in a browser the footer is to stay with the bottom of the browser window and not only with the content of the page. By example, if I Zoom out as far as my browser will allow the footer always appears at the bottom of the browser window leaving a large gap between the content of pages and the page footer.

    Any suggestions for a fix?

    Hello

    Try to uncheck the "sticky footer". It should solve the problem.

    Kind regards

    Aish

Maybe you are looking for