src/macosx/classes/com/apple/laf/AquaImageFactory.java
Print this page
*** 44,57 ****
import com.apple.laf.AquaIcon.InvertableIcon;
import com.apple.laf.AquaIcon.JRSUIControlSpec;
import com.apple.laf.AquaIcon.SystemIcon;
import com.apple.laf.AquaUtils.RecyclableObject;
import com.apple.laf.AquaUtils.RecyclableSingleton;
- import java.util.Arrays;
- import java.util.List;
- import sun.awt.image.MultiResolutionBufferedImage;
import sun.awt.image.MultiResolutionImage;
public class AquaImageFactory {
public static IconUIResource getConfirmImageIcon() {
// public, because UIDefaults.ProxyLazyValue uses reflection to get this value
--- 44,55 ----
import com.apple.laf.AquaIcon.InvertableIcon;
import com.apple.laf.AquaIcon.JRSUIControlSpec;
import com.apple.laf.AquaIcon.SystemIcon;
import com.apple.laf.AquaUtils.RecyclableObject;
import com.apple.laf.AquaUtils.RecyclableSingleton;
import sun.awt.image.MultiResolutionImage;
+ import sun.awt.image.MultiResolutionCachedImage;
public class AquaImageFactory {
public static IconUIResource getConfirmImageIcon() {
// public, because UIDefaults.ProxyLazyValue uses reflection to get this value
*** 123,135 ****
}
private static final int kAlertIconSize = 64;
static IconUIResource getAppIconCompositedOn(final Image background) {
! if (background instanceof MultiResolutionBufferedImage) {
int width = background.getWidth(null);
! Image mrIconImage = ((MultiResolutionBufferedImage) background).map(
rv -> getAppIconImageCompositedOn(rv, rv.getWidth(null) / width));
return new IconUIResource(new ImageIcon(mrIconImage));
}
BufferedImage iconImage = getAppIconImageCompositedOn(background, 1);
--- 121,133 ----
}
private static final int kAlertIconSize = 64;
static IconUIResource getAppIconCompositedOn(final Image background) {
! if (background instanceof MultiResolutionCachedImage) {
int width = background.getWidth(null);
! Image mrIconImage = ((MultiResolutionCachedImage) background).map(
rv -> getAppIconImageCompositedOn(rv, rv.getWidth(null) / width));
return new IconUIResource(new ImageIcon(mrIconImage));
}
BufferedImage iconImage = getAppIconImageCompositedOn(background, 1);
*** 304,330 ****
}
private static Image getNSIcon(String imageName) {
Image icon = Toolkit.getDefaultToolkit()
.getImage("NSImage://" + imageName);
-
- if (icon instanceof MultiResolutionImage) {
return icon;
}
- int w = icon.getWidth(null);
- int h = icon.getHeight(null);
-
- Dimension[] sizes = new Dimension[]{
- new Dimension(w, h), new Dimension(2 * w, 2 * h)
- };
-
- return new MultiResolutionBufferedImage(icon, sizes, (width, height) ->
- AquaUtils.getCImageCreator().createImageFromName(
- imageName, width, height));
- }
-
public static class NineSliceMetrics {
public final int wCut, eCut, nCut, sCut;
public final int minW, minH;
public final boolean showMiddle, stretchH, stretchV;
--- 302,314 ----