blob: d8593d48c462d571bf186657e6a80891be93a0e4 [file]
// Copyright 2019 Google LLC
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#include "tools/fiddle/examples.h"
#include <array>
REG_FIDDLE(Pixmap_info, 256, 256, true, 3) {
void draw(SkCanvas* canvas) {
std::vector<int32_t> pixels;
pixels.resize(image->height() * image->width() * 4);
SkPixmap pixmap(SkImageInfo::Make(image->width(), image->height(), kN32_SkColorType,
image->alphaType()), (const void*) &pixels.front(), image->width() * 4);
image->readPixels(nullptr, pixmap, 0, 0);
SkPixmap inset;
if (pixmap.extractSubset(&inset, {128, 128, 512, 512})) {
const SkImageInfo& info = inset.info();
static constexpr auto alphas = std::to_array<const char*>({
"Unknown",
"Opaque",
"Premul",
"Unpremul",
});
static constexpr auto colors = std::to_array<const char*>({
"Unknown",
"Alpha_8",
"RGB_565",
"ARGB_4444",
"RGBA_8888",
"RGB_888x",
"BGRA_8888",
"RGBA_1010102",
"RGB_101010x",
"Gray_8",
"RGBA_F16Norm",
"RGBA_F16",
});
SkDebugf("width: %d height: %d color: %s alpha: %s\n", info.width(), info.height(),
colors[info.colorType()], alphas[info.alphaType()]);
}
}
} // END FIDDLE