You are here

private function PHPExcel_Reader_Excel5_Escher::_readBlipPNG in Loft Data Grids 6.2

Same name and namespace in other branches
  1. 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php \PHPExcel_Reader_Excel5_Escher::_readBlipPNG()

* Read BlipPNG record. Holds raw PNG image data

1 call to PHPExcel_Reader_Excel5_Escher::_readBlipPNG()
PHPExcel_Reader_Excel5_Escher::load in vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php
* Load Escher stream data. May be a partial Escher stream. * *

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/Excel5/Escher.php, line 319

Class

PHPExcel_Reader_Excel5_Escher
PHPExcel_Reader_Excel5_Escher

Code

private function _readBlipPNG() {

  // offset: 0; size: 2; recVer and recInstance
  // bit: 4-15; mask: 0xFFF0; recInstance
  $recInstance = (0xfff0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4;
  $length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4);
  $recordData = substr($this->_data, $this->_pos + 8, $length);

  // move stream pointer to next record
  $this->_pos += 8 + $length;
  $pos = 0;

  // offset: 0; size: 16; rgbUid1 (MD4 digest of)
  $rgbUid1 = substr($recordData, 0, 16);
  $pos += 16;

  // offset: 16; size: 16; rgbUid2 (MD4 digest), only if $recInstance = 0x46B or 0x6E3
  if ($recInstance == 0x6e1) {
    $rgbUid2 = substr($recordData, 16, 16);
    $pos += 16;
  }

  // offset: var; size: 1; tag
  $tag = ord($recordData[$pos]);
  $pos += 1;

  // offset: var; size: var; the raw image data
  $data = substr($recordData, $pos);
  $blip = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip();
  $blip
    ->setData($data);
  $this->_object
    ->setBlip($blip);
}