pebble
  • Tutorials
  • Get the SDK
  • Guides
  • Documentation
  • Examples
  • Community
  • Blog
  • More
Privacy
Cookies
Publish

Guides

  • Table of Contents
  • App Resources
    • Animated Image - アニメーション画像
    • App Assets - アセット
    • Converting SVG to PDC
    • Fonts - フォント
    • Images - 画像
    • Pebble Draw Command File Format - PDCファイルについて
    • Platform-specific Resources - 特定のプラットフォーム向けリソースの設定
    • Raw Data Files - 生データ追加とその利用
    • System Fonts - システムフォント一覧
  • Appstore Publishing
  • Best Practices
  • Communication
  • Debugging
  • Design and Interaction
  • Events and Services
  • Graphics and Animations
  • Migrating Older Apps
  • Pebble Packages
  • Pebble Timeline
  • Rocky.js
  • Smartstraps
  • Tools and Resources
  • User Interfaces

Images - 画像

画像は、プロジェクトリソースとして追加することで、Pebble アプリに表示できます。アプリの実行中は GBitmap としてメモリに保存され、BitmapLayer を使用するか、graphics_draw_bitmap_in_rect() を使用して表示できます。

画像の作成

Pebble に対応した画像とするためには、画像を PNG ファイルとして保存し、理想的には適切な色数のパレット化形式(パレット ファイルについては以下を参照)で保存する必要があります。各プラットフォームで使用可能な色数を以下に示します:

Platform Number of Colors
Aplite 2(黒と白)
Basalt 64 色
Chalk 64 色

カラーパレット

64 個のサポートされている色を含む、一般的なグラフィックス パッケージ用のパレット ファイルを以下に示します。カラー画像リソースを作成する際に使用してください:

  • Photoshop .act

  • Illustrator .ai

  • GIMP .pal

  • ImageMagick .gif

画像のインポート

画像をプロジェクトの resources ディレクトリに配置したら、package.json の resources 項目にエントリを追加します。type を bitmap として指定し、name(コードで使用される)を選択し、プロジェクトの resources ディレクトリからの相対パスを指定します。以下は例です:

"resources": {
  "media": [
    {
      "type": "bitmap",
      "name": "EXAMPLE_IMAGE",
      "file": "background.png"
    }
  ]
},

画像リソースの指定

画像リソースは、bitmap リソースタイプを使用してリストされている場合に Pebble プロジェクトで使用されます。

このタイプのリソースは、追加の属性を使用して最適化できます:

Attribute Description Values
memoryFormat 任意項目。ビットマップ タイプを決定します。GBitmapFormat enum の値を反映します。 Smallest、SmallestPalette、1Bit、8Bit、1BitPalette、2BitPalette、または 4BitPalette。
storageFormat 任意項目。ストレージに使用されるファイル形式を決定します。代わりに spaceOptimization を使用することが推奨されます。 pbi または png。
spaceOptimization 任意項目。出力リソースが低ランタイムメモリ用に最適化されるか、低リソーススペース使用量用に最適化されるかを決定します。 storage または memory。

package.json でのこれらの属性を使用した設定例を以下に示します:

{
  "type": "bitmap",
  "name": "IMAGE_EXAMPLE",
  "file": "images/example_image.png"
  "memoryFormat": "Smallest",
  "spaceOptimization": "memory"
}

すべてのプラットフォームで memoryFormat はデフォルトで Smallest になります。Aplite では spaceOptimization は、デフォルトで memory になり、他のすべてのプラットフォームでは storage になります。

サポートされていない属性の組み合わせ(1Bit のパレット化されていない PNG など)を指定すると、ビルドは失敗します。パレット化された 1 ビット PNG はサポートされています。

以前の SDK バージョンでの画像リソースの使用と比較すると:

  • png は、追加の指定子なしの bitmap と同等です。

  • pbi は、"memoryFormat": "1Bit" を持つ bitmap と同等です。

  • pbi8 は、"memoryFormat": "8Bit" および "storageFormat": "pbi" を持つ bitmap と同等です。

png リソース タイプを引き続き使用すると、"storageFormat": "png" を持つ bitmap リソースになりますが、これは利用可能なメモリが全体的に少ないため Aplite プラットフォームでのメモリ使用に最適化されておらず、推奨されません。

プラットフォームごとのリソースの指定

リソース スペースを節約するために、特定のプラットフォーム用にアプリをビルドするときに、特定の画像リソースのみを含めることができます。たとえば、これは Aplite プラットフォームに役立ちます。Aplite プラットフォームでは、画像の白黒バージョンのみが必要で、サイズが大幅に小さくなる可能性があります。リソースは、プラットフォームとディスプレイの形状に応じて選択することもできます。

これを行う方法の詳細については、Platform-specific Resources - 特定のプラットフォーム向けリソースの設定 をお読みください。

画像の表示

GBitmap ポインターを宣言します。これは、アプリの実行中に画像データが保存されるオブジェクトタイプです:

static GBitmap *s_bitmap;

先に選択した name の前に RESOURCE_ID_ を付けて GBitmap を作成します。これにより、画像データが管理されます:

s_bitmap = gbitmap_create_with_resource(RESOURCE_ID_EXAMPLE_IMAGE);

BitmapLayer ポインターを宣言します:

static BitmapLayer *s_bitmap_layer;

BitmapLayer を作成し、GBitmap を表示するように設定します。GRect で画像の正しい幅と高さを指定し、GCompOpSet を使用して色の透明度が正しく適用されるようにしてください:

s_bitmap_layer = bitmap_layer_create(GRect(5, 5, 48, 48));
bitmap_layer_set_compositing_mode(s_bitmap_layer, GCompOpSet);
bitmap_layer_set_bitmap(s_bitmap_layer, s_bitmap);

BitmapLayer を Window の子レイヤーとして追加します:

layer_add_child(window_get_root_layer(window),
                                      bitmap_layer_get_layer(s_bitmap_layer));

アプリが終了するときに、GBitmap と BitmapLayer の両方を破棄します:

gbitmap_destroy(s_bitmap);
bitmap_layer_destroy(s_bitmap_layer);

ランチャーのメニュー アイコン

ファームウェア 4.0 以降の新しいランチャーでは、開発者がウォッチアプリとウォッチフェイス用のカスタム アイコンを提供できます。

Launcher Icon

Launcher

25x25 の png を package.json ファイルの resources.media セクションに追加し、"menuIcon": true を設定できます。SDK では、より大きいアイコンは拒否されますのでご注意ください。

"resources": {
  "media": [
    {
      "type": "bitmap",
      "name": "MENU_ICON",
      "file": "images/icon.png",
      "menuIcon": true
    }
  ]
}

png ファイルがカラーの場合、ランチャーでレンダリングする際に、画像の輝度を使用して、白黒だけでなく、わずかなグレーを追加します。透明度は保持されます。

アプリストアへの送信時に指定されるアプリ アイコンは、この画像リソース(モバイル アプリやアプリストアなどの他の場所で使用される)とは独立しています。指定された menuIcon は、常に Watch ランチャーリストで使用されます。

You need JavaScript enabled to read and post comments.

Overview

  • 画像の作成
  • カラーパレット
  • 画像のインポート
  • 画像リソースの指定
  • プラットフォームごとのリソースの指定
  • 画像の表示
  • ランチャーのメニュー アイコン