return SkColorTypeToBitmapConfig(info.fColorType);
}
-bool SkBitmapConfigToColorType(SkBitmap::Config config, SkColorType* ctOut) {
- SkColorType ct;
- switch (config) {
- case SkBitmap::kA8_Config:
- ct = kAlpha_8_SkColorType;
- break;
- case SkBitmap::kIndex8_Config:
- ct = kIndex_8_SkColorType;
- break;
- case SkBitmap::kRGB_565_Config:
- ct = kRGB_565_SkColorType;
- break;
- case SkBitmap::kARGB_4444_Config:
- ct = kARGB_4444_SkColorType;
- break;
- case SkBitmap::kARGB_8888_Config:
- ct = kPMColor_SkColorType;
- break;
- case SkBitmap::kNo_Config:
- default:
- return false;
- }
- if (ctOut) {
- *ctOut = ct;
- }
- return true;
+SkColorType SkBitmapConfigToColorType(SkBitmap::Config config) {
+ static const SkColorType gCT[] = {
+ kUnknown_SkColorType, // kNo_Config
+ kAlpha_8_SkColorType, // kA8_Config
+ kIndex_8_SkColorType, // kIndex8_Config
+ kRGB_565_SkColorType, // kRGB_565_Config
+ kARGB_4444_SkColorType, // kARGB_4444_Config
+ kPMColor_SkColorType, // kARGB_8888_Config
+ };
+ SkASSERT((unsigned)config < SK_ARRAY_COUNT(gCT));
+ return gCT[config];
}
-
SkImage* SkNewImageFromBitmap(const SkBitmap& bm, bool canSharePixelRef) {
SkImageInfo info;
if (!bm.asImageInfo(&info)) {