3

Skia を使用して、BlackBerry 10 プラットフォームでテキストを描画しています。Condensed または Light スタイルをフォントに適用できません。

Skia では、kNormalkBoldkItalic、およびkBoldItalicスタイルの列挙型のみがあります。

これらのスタイルはうまく機能します

skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kBold);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kItalic);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kBoldItalic);

しかし、BB10 デバイスにも組み込まれている Slate Pro フォントのCondensedまたはLightスタイルを使用する必要があります。

これらすべての組み合わせを試してみたところ、SIGSEGVが発生しました。

skTypeface = SkTypeface::CreateFromName("SlateProLight", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro-Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro - Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("SlatePro Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro Condensed", SkTypeface::kNormal);

すっごく、システム フォントを直接読み込もうとする別の方法を試してみました。それでも、Font ファイルは存在しますが、loadedTypeface は常に NULL であり、その理由がわかりません。

QString loadedFont="/usr/fonts/font_repository/monotype/SlatePro-Light.ttf";
SkTypeface *loadedTypeface = SkTypeface::CreateFromFile(loadedFont.toUtf8().constData());

QFile targetFile(loadedFont);

if(targetFile.exists())
{
     if(loadedTypeface!=NULL)
     {
          skTypeface = SkTypeface::CreateFromTypeface(loadedTypeface , SkTypeface::kNormal);
     }
     else //Fallback to Arial
     {
          skTypeface = SkTypeface::CreateFromName("Arial",SkTypeface::kNormal);
     }
}

フォントのCondensedまたはLightスタイルの使用方法について何か考えはありますか? ありがとうございました

BB10ファイルシステムに埋め込ま Slate Pro ttfファイルの一覧

にあります /usr/fonts/font_repository/monotype/

SlatePro.ttf
SlatePro-MediumItalic.ttf
SlatePro-MediumCondensed.ttf
SlatePro-Medium.ttf
SlatePro-LightItalic.ttf
SlatePro-Light.ttf
SlatePro-Italic.ttf
SlatePro-Condensed.ttf
SlatePro-BoldItalic.ttf
SlatePro-BoldCondensed.ttf
SlatePro-Bold.ttf
4

0 に答える 0