// // jp2_encode.cpp // // Simple image encoder using IMJ2Enc. // // Copyright Morgan-Multimedia 1990-2005. // #include "iMJ2Enc.h" #include "OEM_LIC.h" int Encode(int nWidth, int nHeight, PBYTE pIn, int nIn, DWORD fccIn, int nInBits, PBYTE pOut, int nOut, int nQuality) { // Create an encoder IMJ2Enc *pEnc = new IMJ2Enc(FALSE, &OEM_LIC); if (!pEnc) {return 0;} // Is license valid ? if (!pEnc->IsLicenseValid()) { // No delete pEnc; return 0; } // Initialize a JPEG2000INFOHEADER2 JPEG2000INFOHEADER2 jp2; switch (fccIn) { case YUY2: case UYVY: InitJP2KHdrYUV422(&jp2); break; case YV12: case I420: InitJP2KHdrYUV420(&jp2); break; case BI_RGB: case BI_BITFIELDS: if (nInBits == 8) { InitJP2KHdrY(&jp2); } else { InitJP2KHdrRGB(&jp2); } break; } // Encode int nSize = pEnc->encode( &jp2, 0, NULL, pIn, nIn, 0, 0, nWidth, nHeight, fccIn, nInBits, pOut, nOut, nQuality, 0); // Delete encoder if (pEnc) {delete pEnc;} // Return the size of the encoded frame return nSize; }
|
© Morgan Multimedia 1990-2005 |