public function estimateBitStreamSizeOfEntry($version) { $bits = 0; if ($version == 0) { $version = 1; } switch ($this->mode) { case QR_MODE_NUM: $bits = wechat_qrcode_QRinput::estimateBitsModeNum($this->size); break; case QR_MODE_AN: $bits = wechat_qrcode_QRinput::estimateBitsModeAn($this->size); break; case QR_MODE_8: $bits = wechat_qrcode_QRinput::estimateBitsMode8($this->size); break; case QR_MODE_KANJI: $bits = wechat_qrcode_QRinput::estimateBitsModeKanji($this->size); break; case QR_MODE_STRUCTURE: return STRUCTURE_HEADER_BITS; default: return 0; } $l = wechat_qrcode_QRspec::lengthIndicator($this->mode, $version); $m = 1 << $l; $num = (int) (($this->size + $m - 1) / $m); $bits += $num * (4 + $l); return $bits; }