Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8222012

Robot ScreenCapture captures a zoomed image

    Details

    • Subcomponent:
    • CPU:
      x86_64
    • OS:
      windows_10

      Description

      ADDITIONAL SYSTEM INFORMATION :
      Windos 10 en
      jre 8u192


      A DESCRIPTION OF THE PROBLEM :
      Robot ScreenCapture captures a zoomed image

      Tested the bug JDK-8204508 and it's not fixed in java u192!

      the result is a "zoomed" image and because it's zoomed is cutted

      -------------------------------
      description in bug JDK-8204508:
      ------------------------------

      When using Robot#createScreenCapture(...) on a HiDpi system the wrong area is captured. The issue occurs only if:
      - the application runs on a HiDpi system
      - the application is started with Webstart
      - the system property 'sun.java2d.dpiaware' is set to 'false'

      A simple test can be found below - you can also give it a try by executing http://www.jyloo.com/downloads/public/test/robotScreenTest.jnlp. When pressing the ScreenCaptureNow button a screen capture of the yellow rectangle is made and displayed in a new window. On a HiDpi system the captured area is wrong.

      ------------------------------


      Important to say that Windows option "Scale and Layout" must be configured above 100%!

      It's not necessary a HIDPI monitor to test this...use a 1920x1080 monitor with "Scale and Layout" set to 125%

      Because property "sun.java2d.dpiaware=false" in jnlp is not working in u192 (JDK-8080153, JDK-8155579)
      the property must to be forced in the javaws.exe.
      Go to "system properties > compatibility > change hidpisettings"
      and set "High DPI scaling override" = system (same as setting sun.java2d.dpiaware=false)

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. in Windows "Display Settings" set the option "Scale and Layout" to 125%
      2. logout to assume the setting
      3. force dpiware=false in javaws.exe (setting "High DPI scaling override" = system)
      3. launch the jnlp
      4. put some other window over the yellow area
      5. click button "screen capture now"
      6. observe that the captured image is "zoomed" and cutted

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      captured area exactly the same as the one layed over the yellow panel
      ACTUAL -
      captured area is not the same as the area layed over the yellow panel...its "zoomed" and is cuted

      ---------- BEGIN SOURCE ----------
      see JDK-8204508 : Robot ScreenCapture fails on HiDPI system
      ---------- END SOURCE ----------

      FREQUENCY : always


        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                herrick Andy Herrick
                Reporter:
                webbuggrp Webbug Group
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: