Boolean CYuvImage::NativeCompressToJpeg( /* [in] */ ArrayOf<Byte>* oriYuv, /* [in] */ Int32 format, /* [in] */ Int32 width, /* [in] */ Int32 height, /* [in] */ ArrayOf<Int32>* offsets, /* [in] */ ArrayOf<Int32>* strides, /* [in] */ Int32 quality, /* [in] */ IOutputStream* stream, /* [out] */ ArrayOf<Byte>* tempStorage) { Byte* yuv = oriYuv->GetPayload(); SkWStream* strm = CreateOutputStreamAdaptor(stream, tempStorage); Int32* imgOffsets = offsets->GetPayload(); Int32* imgStrides = strides->GetPayload(); YuvToJpegEncoder* encoder = YuvToJpegEncoder::Create(format, imgStrides); if (encoder == NULL) { return FALSE; } encoder->Encode(strm, yuv, width, height, imgOffsets, quality); delete encoder; return TRUE; }
Boolean CPicture::NativeWriteToStream( /* [in] */ Int64 pictureHandle, /* [in] */ IOutputStream* stream, /* [in] */ ArrayOf<Byte>* storage) { NativePicture* picture = reinterpret_cast<NativePicture*>(pictureHandle); SkWStream* strm = CreateOutputStreamAdaptor(stream, storage); if (NULL != strm) { picture->Serialize(strm); delete strm; return TRUE; } return FALSE; }