1cb93a386Sopenharmony_ci// Copyright 2019 Google LLC.
2cb93a386Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
3cb93a386Sopenharmony_ci#include "tools/fiddle/examples.h"
4cb93a386Sopenharmony_ci// HASH=0424f67ebc2858e8fd04ae3367b115ff
5cb93a386Sopenharmony_ciREG_FIDDLE(Alpha_Constants_b, 256, 128, false, 1) {
6cb93a386Sopenharmony_civoid draw(SkCanvas* canvas) {
7cb93a386Sopenharmony_ci    std::vector<int32_t> srcPixels;
8cb93a386Sopenharmony_ci    srcPixels.resize(source.height() * source.rowBytes());
9cb93a386Sopenharmony_ci    SkPixmap pixmap(SkImageInfo::MakeN32Premul(source.width(), source.height()),
10cb93a386Sopenharmony_ci                    &srcPixels.front(), source.rowBytes());
11cb93a386Sopenharmony_ci    source.readPixels(pixmap, 0, 0);
12cb93a386Sopenharmony_ci    for (int y = 0; y < source.height(); ++y) {
13cb93a386Sopenharmony_ci        for (int x = 0; x < source.width(); ++x) {
14cb93a386Sopenharmony_ci            SkPMColor pixel = srcPixels[y * source.width() + x];
15cb93a386Sopenharmony_ci            const SkColor color = SkUnPreMultiply::PMColorToColor(pixel);
16cb93a386Sopenharmony_ci            if (SkColorGetA(color) == SK_AlphaOPAQUE) {
17cb93a386Sopenharmony_ci                srcPixels[y * source.width() + x] = SK_ColorGREEN;
18cb93a386Sopenharmony_ci            }
19cb93a386Sopenharmony_ci        }
20cb93a386Sopenharmony_ci    }
21cb93a386Sopenharmony_ci    canvas->drawImage(SkImage::MakeRasterCopy(pixmap), 0, 0);
22cb93a386Sopenharmony_ci}
23cb93a386Sopenharmony_ci}  // END FIDDLE
24