快速业务通道

J2ME嶄議GIF侃尖窃 - 園殻秘壇利

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
          code_mask += available;         }         old_code = in_code;       }       // Pop a pixel off the pixel stack.       top--;       pixels[pi++] = pixelStack[top];       i++;     }     for (i = pi; i < npix; i++) {       pixels[i] = 0; // clear missing pixels     }   }   /**    * Returns true if an error was encountered during reading/decoding    */   protected boolean err() {     return status != STATUS_OK;   }   /**    * Initializes or re-initializes reader    */   protected void init() {     status = STATUS_OK;     frameCount = 0;     frames = new Vector();     gct = null;     lct = null;   }   /**    * Reads a single byte from the input stream.    */   protected int read() {     int curByte = 0;     try {       curByte = in.read();     } catch (Exception e) {       status = STATUS_FORMAT_ERROR;     }     return curByte;   }   /**    * Reads next variable length block from input.    *    * @return number of bytes stored in "buffer"    */   protected int readBlock() {     blockSize = read();     int n = 0;     if (blockSize > 0) {       try {         int count = 0;         while (n < blockSize) {           count = in.read(block, n, blockSize - n);           if (count == -1) {             break;           }           n += count;         }       } catch (Exception e) {         e.printStackTrace();       }       if (n < blockSize) {         status = STATUS_FORMAT_ERROR;       }     }     return n;   }   /**    * Reads color table as 256 RGB integer values    *    * @param ncolors    *      int number of colors to read    * @return int array containing 256 colors (packed ARGB with full alpha)    */   protected int[] readColorTable(int ncolors) {     int nbytes = 3 * ncolors;     int[] tab = null;     byte[] c = new byte[nbytes];     int n = 0;     try {       n = in.read(c);     } catch (Exception e) {       e.printStackTrace();     }     if (n < nbytes) {       status = STATUS_FORMAT_ERROR;     } else {       tab = new int[256]; // max size to avoid bounds checks       int i = 0;       int j = 0;       while (i < ncolors) {         int r = ((int) c[j++]) & 0xff;         int g = ((int) c[j++]) & 0xff;         int b = ((int) c[j++]) & 0xff;         tab[i++] = 0xff000000 | (r << 16) | (g << 8) | b;       }     }     return tab;   }   /**    * Main file parser. Reads GIF content blocks.    */   protected void readContents() {     // read GIF file content blocks     boolean done = false;     while (!(done || err())

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号