Alf*_*gon 9 java swing image image-processing grayscale
我想知道在Swing中是否有某种方法可以将ImageIcon转换为灰度,如下所示:
component.setIcon(greyed(imageIcon));
Run Code Online (Sandbox Code Playgroud)
tra*_*god 12
一个限制GrayFilter.createDisabledImage()是它旨在为各种外观和感觉实现中的图标创建禁用的外观.使用此ColorConvertOp 示例,以下图像对比了效果:
GrayFilter.createDisabledImage(): com.apple.laf.AquaLookAndFeel

ColorConvertOp#filter(): com.apple.laf.AquaLookAndFeel

GrayFilter.createDisabledImage(): com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

ColorConvertOp#filter(): com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel

/**
* @see https://stackoverflow.com/q/14358499/230513
* @see https://stackoverflow.com/a/12228640/230513
*/
private Icon getGray(Icon icon) {
final int w = icon.getIconWidth();
final int h = icon.getIconHeight();
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
BufferedImage image = gc.createCompatibleImage(w, h);
Graphics2D g2d = image.createGraphics();
icon.paintIcon(null, g2d, 0, 0);
Image gray = GrayFilter.createDisabledImage(image);
return new ImageIcon(gray);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用以下内容:
ImageIcon icon = new ImageIcon("yourFile.gif");
Image normalImage = icon.getImage();
Image grayImage = GrayFilter.createDisabledImage(normalImage);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3348 次 |
| 最近记录: |