⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 headerdecoder.h

📁 jpeg 2000 压缩算法源代码 核心ebcot
💻 H
字号:
m_nQCCmarkers++;

				  nMarkerSeglen=m_pEncodedHeader->readWord();
				 nBuflen=nMarkerSeglen-2;
				 pBuf=new BYTE[nBuflen];
				 m_pEncodedHeader->Read(pBuf,nBuflen);

				 pEncodedMarkerSeg=new CDataIOStream(pBuf,nBuflen);

				 ReadQCC(pEncodedMarkerSeg,true,0);

				 delete []pBuf;
				 delete pEncodedMarkerSeg;
			  }

			  break;
		  case RGN:
			  break;
		  case POD:
			  {
				  if ((MarkerFound & POD_FOUND) != 0)
				 {
                  printf("More than one POD flag found in main header!\n");
                   return;
				 }
				  
				 MarkerFound|=POD_FOUND;
				 nMarkerSeglen=m_pEncodedHeader->readWord();
				 nBuflen=nMarkerSeglen-2;
				 pBuf=new BYTE[nBuflen];
				 m_pEncodedHeader->Read(pBuf,nBuflen);

				 pEncodedMarkerSeg=new CDataIOStream(pBuf,nBuflen);

				 ReadPOD(pEncodedMarkerSeg,true,0);

				 delete []pBuf;
				 delete pEncodedMarkerSeg;

			  }
			  break;
		  case PPM:
			  {

			  }
			  break;
		  case TLM:
			  break;
		  case PLM:
			  break;
		  case CME:
			  {
				  MarkerFound|=CME_FOUND;
				  m_nCMEmarkers++;

				  nMarkerSeglen=m_pEncodedHeader->readWord();
				 nBuflen=nMarkerSeglen-2;
				 pBuf=new BYTE[nBuflen];
				 m_pEncodedHeader->Read(pBuf,nBuflen);

				 pEncodedMarkerSeg=new CDataIOStream(pBuf,nBuflen);

				 ReadCME(pEncodedMarkerSeg);

				 delete []pBuf;
				 delete pEncodedMarkerSeg;

			  }
			  break;

		  default:
			  {
				  printf("marker unknown!\n");
				  return ;
			  }

		}

		marker=m_pEncodedHeader->readWord();

	}



}



void CHeaderDecoder::ReadSIZ(CDataIOStream *pEncodedMarkerSeg)
{
	m_nRsiz=pEncodedMarkerSeg->readWord();

	if (m_nRsiz!=0)
	{
		printf("Codestream capabiities not JPEG 2000 - Part I compliant\n");
		exit(0);
	}

	m_dwXsiz=pEncodedMarkerSeg->readDword();
	m_dwYsiz=pEncodedMarkerSeg->readDword();
	if (m_dwXsiz<=0||m_dwYsiz<=0)
	{
		printf("JPEG2000 does not support images whose width and/or height not in the range: 1 -- (2^32)-1\n");
		exit(0);

	}

	m_dwXOsiz=pEncodedMarkerSeg->readDword();
	m_dwYOsiz=pEncodedMarkerSeg->readDword();
	if (m_dwXOsiz<0||m_dwYOsiz<0)
	{
		printf("JPEG2000 does not support images offset not in the range: 0 -- (2^32)-2\n");
		exit(0);
	}

	m_dwImgWidth=m_dwXsiz-m_dwXOsiz;
	m_dwImgHeight=m_dwYsiz-m_dwYOsiz;

	m_dwXTsiz=pEncodedMarkerSeg->readDword();
	m_dwYTsiz=pEncodedMarkerSeg->readDword();
	if (m_dwXTsiz<=0||m_dwYTsiz<=0)
	{
		printf("JPEG2000 does not support tiles whose width and/or height not in the range: 1 -- (2^32)-1\n");
		exit(0);
	}

	m_dwXTOsiz=pEncodedMarkerSeg->readDword();
	m_dwYTOsiz=pEncodedMarkerSeg->readDword();
	if (m_dwXTOsiz<0||m_dwYTOsiz<0)
	{
		printf("JPEG2000 does not support tiles offset not in the range: 0 -- (2^32)-2\n");
		exit(0);
	}

	m_nCsiz=pEncodedMarkerSeg->readWord();
	if (m_nC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -