skia で基本的な描画をしようとしています。私はグレースケール画像に取り組んでいるので、対応する色の種類を使いたいです。私が使用したい最小限の例は次のとおりです。
int main(int argc, char * const argv[])
{
int width = 1000;
int heigth = 1000;
float linewidth = 10.0f;
SkImageInfo info = SkImageInfo::Make(
width,
heigth,
SkColorType::kAlpha_8_SkColorType,
SkAlphaType::kPremul_SkAlphaType
);
SkBitmap img;
img.allocPixels(info);
SkCanvas canvas(img);
canvas.drawColor(SK_ColorBLACK);
SkPaint paint;
paint.setColor(SK_ColorWHITE);
paint.setAlpha(255);
paint.setAntiAlias(false);
paint.setStrokeWidth(linewidth);
paint.setStyle(SkPaint::kStroke_Style);
canvas.drawCircle(500.0f, 500.0f, 100.0f, paint);
bool success = SkImageEncoder::EncodeFile("B:\\img.png", img,
SkImageEncoder::kPNG_Type, 100);
return 0;
}
しかし、保存された画像には、描かれた円は含まれていません。に置き換えるkAlpha_8_SkColorType
とkN32_SkColorType
、期待される結果が得られます。8ビットのグレースケール画像に円を描くにはどうすればよいですか? 64 ビット Windows マシンで Visual Studio 2013 を使用しています。