blob: f5b8b9f93d055370ae3b89dc5418f4a97da7bafd [file] [log] [blame]
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +00001#include "sk_tool_utils.h"
2
3namespace sk_tool_utils {
4
5void config8888_to_imagetypes(SkCanvas::Config8888 config, SkColorType* ct, SkAlphaType* at) {
6 switch (config) {
7 case SkCanvas::kNative_Premul_Config8888:
8 *ct = kPMColor_SkColorType;
9 *at = kPremul_SkAlphaType;
10 break;
11 case SkCanvas::kNative_Unpremul_Config8888:
12 *ct = kPMColor_SkColorType;
13 *at = kUnpremul_SkAlphaType;
14 break;
15 case SkCanvas::kBGRA_Premul_Config8888:
16 *ct = kBGRA_8888_SkColorType;
17 *at = kPremul_SkAlphaType;
18 break;
19 case SkCanvas::kBGRA_Unpremul_Config8888:
20 *ct = kBGRA_8888_SkColorType;
21 *at = kUnpremul_SkAlphaType;
22 break;
23 case SkCanvas::kRGBA_Premul_Config8888:
24 *ct = kRGBA_8888_SkColorType;
25 *at = kPremul_SkAlphaType;
26 break;
27 case SkCanvas::kRGBA_Unpremul_Config8888:
28 *ct = kRGBA_8888_SkColorType;
29 *at = kUnpremul_SkAlphaType;
30 break;
31 default:
32 SkASSERT(0);
33 }
34}
35
36void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y,
37 SkColorType colorType, SkAlphaType alphaType) {
38 SkBitmap tmp(bitmap);
39 tmp.lockPixels();
40
41 SkImageInfo info = tmp.info();
42 info.fColorType = colorType;
43 info.fAlphaType = alphaType;
44
45 canvas->writePixels(info, tmp.getPixels(), tmp.rowBytes(), x, y);
46}
47
48}