Esempio n. 1
0
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;
}
Esempio n. 2
0
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;
}