| 
                         // 创建循环冗余码校验表      $z = -306674912;  // = 0xedb88320      for ($n = 0; $n < 256; $n++) {          $c = $n;          for ($k = 0; $k < 8; $k++) {              $c2 = ($c >> 1) & 0x7fffffff;              if ($c & 1) $c = $z ^ ($c2); else $c = $c2;          }          $crc_table[$n] = $c;      }  // PNG file signature      $result = pack("c*", 137,80,78,71,13,10,26,10); 
      // IHDR chunk data:      //   width:              4 bytes      //   height:             4 bytes      //   bit depth:          1 byte (8 bits per RGB value)      //   color type:         1 byte (2 = RGB)      //   compression method: 1 byte (0 = deflate/inflate)      //   filter method:      1 byte (0 = adaptive filtering)      //   interlace method:   1 byte (0 = no interlace)      $data = pack("c*", ($sx >> 24) & 255,      ($sx >> 16) & 255,      ($sx >> 8) & 255,      $sx & 255,      ($sy >> 24) & 255,      ($sy >> 16) & 255,      ($sy >> 8) & 255,      $sy & 255,      8,      2,      0,      0,      0);      add_chunk("IHDR");  // 以下不敢乱翻译,请自行参考      //    scanline:      //        filter byte: 0 = none      //        RGB bytes for the line      //    the scanline is compressed with "zlib", method 8 (RFC-1950):      //        compression method/flags code: 1 byte ($78 = method 8, 32k window)      //        additional flags/check bits:   1 byte ($01: FCHECK = 1, FDICT = 0, FLEVEL = 0)      //        compressed data blocks:        n bytes      //            one block (RFC-1951):      //                bit 0: BFINAL: 1 for the last block      //                bit 1 and 2: BTYPE: 0 for no compression      //                next 2 bytes: LEN (LSB first)      //                next 2 bytes: one's complement of LEN      //                LEN bytes uncompressed data      //        check value:  4 bytes (Adler-32 checksum of the uncompressed data)      //      $len = ($sx * 3 + 1) * $sy;      $data = pack("c*", 0x78, 0x01,          1,      $len & 255,      ($len >> 8) & 255,      255 - ($len & 255),      255 - (($len >> 8) & 255));      $start = strlen($data);      $i2 = 0;      for ($h = 0; $h < $sy; $h++) {      $data .= chr(0);      for ($w = 0; $w < $sx * 3; $w++) {          $data .= $pixels[$i2++];      }      }                          (编辑:焦作站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |