我没有做过图形方面的,看看我错在哪里?
Frame sourceFrame = new Frame();
sourceFrame.addNotify();
Image im = sourceFrame.createImage(100,100);
Graphics g = im.getGraphics();
g.drawString("Hello",50,50);
我用上面的方法生成了一个IMAGE,然后用下面的方法调用时,异常:"Image must be 8-bit"GIFEncoder ge = new GIFEncoder(im);附GIFEncoder(image im)
    public GIFEncoder(Image img) {
        width = img.getWidth(null);
        height = img.getHeight(null);
        pixels = new byte[width * height];
        PixelGrabber pg = new PixelGrabber(img, 0, 0, width, height, false);
        try {
            pg.grabPixels();
        } catch (InterruptedException e) {
            System.err.println(e);
        };
        ColorModel cm = pg.getColorModel();
        if (cm instanceof IndexColorModel)
                {
            pixels = (byte[])(pg.getPixels());
                        // hpm
                        IndexColorModel icm = (IndexColorModel)cm;
                        setTransparentPixel(icm.getTransparentPixel());
                }
        else
            throw new IllegalArgumentException("Image must be 8-bit");
        IndexColorModel m = (IndexColorModel)cm;
        int mapSize = m.getMapSize();
        r = new byte[mapSize];
        g = new byte[mapSize];
        b = new byte[mapSize];
        m.getReds(r);
        m.getGreens(g);
        m.getBlues(b);
        interlace = false;
        pixelIndex = 0;
        numPixels = width*height;    }

解决方案 »

  1.   

    gif和jpeg都是图像格式的文件,主要用在多媒体方面,就像BMP一样,但这二者都是在网络上用得出很多的图形格式,这是因为它们的压缩比很大。在JAVA和其它的语言中都可以对它们进行处理,并不涉及到传输时的专门处理。它们也不是一种工具或控件。只要是能进行文件传输的程序就有可能传输它们。