0

私はopenFrameworksofxPangoアドオンを使用して、次のコードでテキストをレンダリングしています。

ofxPango* pango;
ofxPCContext* context;
ofxPCPangoLayout* layout;
ofImage text_image;

pango = new ofxPango();
context = pango->createContextWithSurface(width, height);
context->color4f(1,1,1, 0.0f);
context->paint();

layout = context->createPangoLayout();
layout->setText(text);
layout->setTextColor(186,34,29, 1.0f);
layout->setWidth(width);
layout->setJustify(true);
//context->paint();

ofxPCPangoFontDescription* fd = new ofxPCPangoFontDescription();
fd->createFromString(font);
    layout->setFontDescription(*fd);
    layout->show();

text_image.allocate(context->getSurface()->getWidth(), context->getSurface()->getHeight(), OF_IMAGE_COLOR_ALPHA);
text_image.setFromPixels(context->getSurface()->getPixels(), text_image.width, text_image.height, OF_IMAGE_COLOR_ALPHA, true);

動作を理解するのに苦労してlayout->setTextColor(r,g,b,a)います。私が実行した場合:

  • 0,0,0,1-テキストは本来あるべき黒です
  • 255,0,0-テキストは本来あるべき赤です
  • 186,34,29,1-テキストは赤である必要があるときに非常に薄い灰色(おそらく白)で表示されます
  • 186,34,0,1-テキストは黄色ですが、赤である必要があります

なぜこれらの色が間違って出てくるのですか?

4

1 に答える 1

1

色の値は0.0fから1.0fの範囲内にあると思われます。ここで:

  • 0.0f=色なし
  • 0.5f=ハーフカラー
  • 1.0f=フルカラー

これは、ofxPangoが呼び出すCairoライブラリの要約例です。

color_white
    1.0, 1.0, 1.0, 1.0

color_black
    0.0, 0.0, 0.0, 1.0

color_transparent
    0.0, 0.0, 0.0, 0.0

color_magenta
    1.0, 0.0, 1.0, 1.0
于 2012-06-19T18:45:30.603 に答える