SkImageGenerator* SkDecodingImageGenerator::Create(
        SkStreamRewindable* stream,
        const SkDecodingImageGenerator::Options& opts) {
    SkASSERT(stream != NULL);
    if (stream == NULL) {
        return NULL;
    }
    return CreateDecodingImageGenerator(NULL, stream, opts);
}
SkImageGenerator* SkDecodingImageGenerator::Create(
        SkStreamRewindable* stream,
        const SkDecodingImageGenerator::Options& opts) {
    SkASSERT(stream != nullptr);
    if (stream == nullptr) {
        return nullptr;
    }
    return CreateDecodingImageGenerator(nullptr, stream, opts);
}
SkImageGenerator* SkDecodingImageGenerator::Create(
        SkData* data,
        const SkDecodingImageGenerator::Options& opts) {
    SkASSERT(data != NULL);
    if (NULL == data) {
        return NULL;
    }
    SkStreamRewindable* stream = SkNEW_ARGS(SkMemoryStream, (data));
    SkASSERT(stream != NULL);
    return CreateDecodingImageGenerator(data, stream, opts);
}
SkImageGenerator* SkDecodingImageGenerator::Create(
        SkData* data,
        const SkDecodingImageGenerator::Options& opts) {
    SkASSERT(data != nullptr);
    if (nullptr == data) {
        return nullptr;
    }
    SkStreamRewindable* stream = new SkMemoryStream(data);
    SkASSERT(stream != nullptr);
    return CreateDecodingImageGenerator(data, stream, opts);
}