Exemplo n.º 1
0
        private bool parseImageJpeg(ReadStream is)

        {
            int ch = @is.read();

            if (ch != 0xff)
            {
                return(false);
            }

            if (@is.read() != 0xd8)
            {
                return(false);
            }

            TempStream ts = new TempStream();

            WriteStream ws = new WriteStream(ts);

            ws.write(0xff);
            ws.write(0xd8);
            @is.writeToStream(ws);
            ws.close();

            // XXX: issues with _jpegHead vs ts.openReadAndSaveBuffer()
            _jpegHead = ts.getHead();
            @is.close();

            _is = new ReadStream();
            ts.openRead(_is);

            parseJPEG();

            return(true);
        }
        /**
         * Returns the buffer contents.
         */
        public Value getContents()
        {
            try {
                _out.flush();

                StringValue bb = _env.createBinaryBuilder(_tempStream.getLength());

                for (TempBuffer ptr = _tempStream.getHead();
                     ptr != null;
                     ptr = ptr.getNext())
                {
                    bb.append(ptr.getBuffer(), 0, ptr.getLength());
                }

                return(bb);
            } catch (IOException e) {
                _env.error(e.ToString(), e);

                return(BooleanValue.FALSE);
            }
        }
Exemplo n.º 3
0
        /**
         * Returns the result as a string.
         */
        public Value get_buffer(Env env)
        {
            TempStream ts = _tempStream;

            _tempStream = null;

            if (ts == null)
            {
                return(BooleanValue.FALSE);
            }

            StringValue result = env.createBinaryBuilder();

            for (TempBuffer ptr = ts.getHead();
                 ptr != null;
                 ptr = ptr.getNext())
            {
                result.append(ptr.getBuffer(), 0, ptr.getLength());
            }

            ts.destroy();

            return(result);
        }