<Swing Dev> [9] Review request for JDK-8150176 [hidpi] wrong resolution variant of multi-res. image is used for TrayIcon

Rajeev Chamyal rajeev.chamyal at oracle.com
Mon Jun 13 12:18:55 UTC 2016


Hello Alexandr,

 

Thanks for the review. I have updated the webrev as per review comments.

http://cr.openjdk.java.net/~rchamyal/8150176/webrev.01/

I tried drawing the image directly to paint graphics without buffered image and it was getting cropped.

 

Regards,

Rajeev Chamyal

 

From: Alexandr Scherbatiy 
Sent: 09 June 2016 20:43
To: Rajeev Chamyal; swing-dev at openjdk.java.net; Sergey Bylokhov
Subject: Re: <Swing Dev> [9] Review request for JDK-8150176 [hidpi] wrong resolution variant of multi-res. image is used for TrayIcon

 

On 6/9/2016 11:55 AM, Rajeev Chamyal wrote:



Hello All,

 

Please review the following fix.

Bug: https://bugs.openjdk.java.net/browse/JDK-8150176 

Webrev: HYPERLINK "http://cr.openjdk.java.net/%7Erchamyal/8150176/webrev.00/"http://cr.openjdk.java.net/~rchamyal/8150176/webrev.00/ 

 

Issue: Wrong resolution variant image is used in Tray Icon.

Fix : Applying the device transform to graphics object to select the correct image.

    The image could be cropped on Linux because the high resolution icon which size is bigger that the original image is drawn to the buffered image with un-scaled size curW x CurH. 
  It is better to get a resolution variant from the multi-resolution image, draw it to a buffered image with the same scaled size and then draw the buffered image to the paint graphics using original size:
    -------
    Image resolutionVariant = ((MultiResolutionImage) image).getResolutionVariant(scaleX * curW, scaleY * curH);
    BufferedImage bufImage = new BufferedImage(scaleX * curW, scaleY * curH, BufferedImage.TYPE_INT_ARGB);
    // ...
    gr.drawImage(image, 0, 0, scaleX * curW, scaleY * curH, observer);
    // ...
    g.drawImage(bufImage, 0, 0, curW, curH, observer); // non scaled width and height
    -------

  By the way, is the buffered image necessary in this case? Is it possible to draw the image directly to the paint graphics?
    -------
     g.drawImage(image, 0, 0, curW, curH, null);
    -------

Thanks,
Alexandr.
  

 

Regards,

Rajeev Chamyal

 

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20160613/7b3e89f2/attachment.html>


More information about the swing-dev mailing list