138 {
139
143
144
149
151
152
153
157 paint.setImageFilter(std::move(filter));
158
159
160
161
162 canvas->translate(0, 50);
163 canvas->save();
164 canvas->clipIRect(img->bounds().makeOutset(0, 30));
166 canvas->restore();
167
168
169
170
171 canvas->translate(110, 0);
172 canvas->save();
175 canvas->restore();
176
177
181}
constexpr SkColor SK_ColorLTGRAY
constexpr SkColor SK_ColorGRAY
constexpr SkColor SK_ColorBLUE
constexpr SkColor SK_ColorRED
sk_sp< SkImage > asImage() const
void eraseArea(const SkIRect &area, SkColor c) const
void allocN32Pixels(int width, int height, bool isOpaque=false)
static sk_sp< SkImageFilter > Blur(SkScalar sigmaX, SkScalar sigmaY, SkTileMode tileMode, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Crop(const SkRect &rect, SkTileMode tileMode, sk_sp< SkImageFilter > input)
@ kStroke_Style
set to stroke geometry
SkSamplingOptions(SkFilterMode::kLinear))
static constexpr SkIRect MakeWH(int32_t w, int32_t h)
static constexpr SkIRect MakeXYWH(int32_t x, int32_t y, int32_t w, int32_t h)
static SkRect Make(const SkISize &size)
static constexpr SkRect MakeXYWH(float x, float y, float w, float h)
static void checkerboard(SkCanvas *canvas, SkColor c1, SkColor c2, int size)