有没有方法可以设置JLabel的图片中的透明属性啊,或者用drawImage方法画一个半透明的图片,而且还可以设置透明度

解决方案 »

  1.   


    import java.awt.Image;
    import java.awt.Toolkit;
    import java.awt.image.FilteredImageSource;
    import java.awt.image.ImageProducer;
    import java.awt.image.RGBImageFilter;public class AlphaImage {
    private Image image = null; /*
     * the image is your will change
     */
    public AlphaImage(Image image) {
    this.image = image;
    } /*
     * i is the Alpha you will set
     */
    public Image alphaImage(int i) {
    ImageProducer producer = new FilteredImageSource(image.getSource(),new ImageAlphaFilter(i));
    image = Toolkit.getDefaultToolkit().createImage(producer);
    return image;
    } /*
     * filter the image
     */
    private class ImageAlphaFilter extends RGBImageFilter {
    private int modelStyle = 255; public ImageAlphaFilter(int moelStyle) {
    this.modelStyle = moelStyle;
    } public int filterRGB(int x, int y, int rgb) {
    int alpha = rgb & 0xFF000000;
    int r, g, b;
    r = (rgb & 0xFF0000) >> 16;
    g = (rgb & 0xFF00) >> 8;
    b = rgb & 0xFF;
    alpha = modelStyle;
    return alpha | (r << 16) | (g << 8) | b;
    }
    }
    }
    =========================================
    没有去测试,我认为这样应该可以处理的~
    不知道这个对楼主是否有用
    :)
      

  2.   

    透明的图片应该是gif的格式吧,通过专门的软件转换的,半透明不太清楚,楼下继续