private void screenBufferToScreen() {
            int width = gifDataStream.logicalScreen.logicalScreenWidth;

            Object dst = forceRGB ?
                    (Object) new int[imageWidth*imageHeight] :
                    new byte[imageWidth*imageHeight];

            Object src = forceRGB ?
                    getScreenRGBBuffer() :
                    (Object) screenBuffer;

            int offset = 0;
            Object toSend;

            if (width == imageWidth) {
                offset = imageWidth * imageTop;
                toSend = src;
            } else {
                for (int i=0; i<imageHeight; i++) {
                    System.arraycopy(src,
                            imageLeft + i*width + imageTop*width,
                            dst,
                            i*imageWidth,
                            imageWidth
                    );
                } // for
                toSend = dst;
            }

            if (forceRGB) {
                setPixels(
                        imageLeft,
                        imageTop,
                        imageWidth,
                        imageHeight,
                        ColorModel.getRGBdefault(),
                        (int [])toSend,
                        offset,
                        imageWidth
                );
            } else {
                setPixels(
                        imageLeft,
                        imageTop,
                        imageWidth,
                        imageHeight,
                        gcm, 
                        (byte [])toSend,
                        offset,
                        imageWidth
                );
            }
        }