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

Image scaling is bad with D3D pipeline

    Details

    • Subcomponent:
      2d
    • Introduced In Version:
      9
    • CPU:
      x86
    • OS:
      other

      Description

      FULL PRODUCT VERSION :
      java version "9"
      Java(TM) SE Runtime Environment (build 9+181)
      Java HotSpot(TM) 64-Bit Server VM (build 9+181, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Windows 10

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      4K monitor

      A DESCRIPTION OF THE PROBLEM :
      Java 9 distorts BufferedImages when it automatically resizes screens. I'm suspecting it has something to do with this ==> http://openjdk.java.net/jeps/263 being delivered in Java 9.

      Related question asked on Stack Overflow with example output==>https://stackoverflow.com/questions/46736757/disable-automatic-rescaling-of-bufferedimage-in-jdk9

      REGRESSION. Last worked in version 8u144

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.8.0_144"
      Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
      Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Execute attached source code on Windows 10 using Java 9.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Lines in buffered image should alternate between back and white (using attached source code)
      ACTUAL -
      Distortion of lines occur in a triangular pattern

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      public static void main(String[] args){
              JFrame frame=new JFrame("Java version 9");
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              BufferedImage image =new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
              Graphics2D g=image.createGraphics();
              g.setColor(Color.WHITE);
              for(int y=0;y<image.getHeight();y+=2){
                  g.drawLine(0,y,image.getWidth(),y);
              }
              g.dispose();
              ImageIcon imageIcon=new ImageIcon(image);
              JLabel label=new JLabel(imageIcon);
              frame.add(label);
              frame.pack();
              frame.setVisible(true);
          }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Don't upgrade to Java 9

      1. JavaHiDPI.java
        1.0 kB
        Pardeep Sharma
      1. 9vs8u144.png
        35 kB

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            jdv Jayathirth D V
            Reporter:
            webbuggrp Webbug Group
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated: