開始TouchGFX 4.12.3から

TouchGFX 4.12は現在の標準的な画像フォーマットL8形式をサポートしています。
ARGB8888などと比較すると、フラッシュメモリをフォーマットして、より高速なレンダリングL8少ない画像を占めています。

16ビットフォーマットRGB888フォーマットRGB565,24ビットまたは32ビットフォーマットARGB8888を指定するために256巻の異なる色のカラーパレットのリストアップ:L8画像パレットによってフォーマットの画素アレイ。バイトのピクセルアレイの各ピクセル。このバイトはピクセルのパレット(カラーリスト)インデックス尖った色です。順次画素を読み取ることによってTouchGFXフレーム、カラーパレットの検索および画像L8を描画するフレームバッファに書き込みます。これは、STM32 CHROM ARTアクセラレータハードウェアアクセラレーションにより、自動的に行われます。

これまでのところ、8  ピクセルは、L8の画像が256の異なる色を使用することができ表します。2枚の画像は、独自のパレットを持っているので、別の画像L8は、他の色の256種類を使用することができます。

L83.png
パレットの4色を有する4×4画素の画像を有するL8

各ピクセルはバイト(8ビット)です。従って、ピクセル幅×高さのサイズはバイト。パレットの色は、16ビット、24ビットまたは32ビットカラーであってもよいです。したがって、各色は2、3または4バイトを占有するように定義されます。

フレームバッファは、16ビット(RGB565フォーマット)の場合、ベタ画像はL8_RGB565に格納されるべきです。フレームバッファは、24ビット(RGB888)である場合、それは画像L8 L8_RGB888形式で格納されなければなりません。画像が透明である場合は、32ビット形式(ARGB8888)を使用する必要があります。

フォーマット フォーマットフレームバッファ それは透明ピクセルをサポートしています
L8_RGB565 16ビットRGB565  ノー
L8_RGB888 24 RGB888 ノー
L8_ARGB8888 全て それはあります

 :パレットイメージ形式の詳細については、こちらをお読みHTTPS  :   //en.wikipedia.org/wiki/Indexed_color

L8のサンプル画像

これは、ロゴ画像の典型的なものです。唯一の16の異なる色を用いた画像。

image16.png

200×200ピクセルL8の24ビットカラー画像16を有します。

画像のフラッシュサイズは、元の画像の標準24ビットフォーマット(RGB888)よりも著しく小さいです。次の表は、これらの3つの特定のフラッシュイメージ異なるパレット形式の使用:

フォーマット ピクセル/バイトサイズ パレット/バイトのサイズ 合計サイズ/バイト 減少率
RGB888 12万 0 12万 -
L8_RGB565 40,000 32 40032 66.6パーセント
L8_RGB888 40,000 48 40048 66.6パーセント
L8_ARGB8888 40,000 64 40064 66.6パーセント

私たちは、サイズが非常に大きく削減、および画像サイズ中型サイズの些細上のカラーパレットを参照してください。 

TouchGFXで使用L8の画像

簡単TouchGFXで使用L8画像フォーマット。行うには唯一のものは、PNGからL8形式に画像を変換するためのconfigure画像変換器にあります。ここでは、全体のプロセスを通過します。

TouchGFXデザイナーで新規プロジェクトを作成します。フォルダの新しいプロジェクト資産/画像にあなたのイメージをコピーします。

2019_10_07_11_33_38_C_TouchGFXProjectsDocumentation_L8Test_assets_images.png

TouchGFXデザイナーを参照して、一番上のバーで「イメージ」タブをクリックし、画像を選択します。

2019-10-07_11_35_55-L8Test.png

ウィンドウの右側に、画像フォーマットL8_RGB888(この例では24ビットカラーを実行)を選択します。

これで、キャンバスのメンバー(ここでは、バックグラウンドでのボックスを挿入)の小さな画像を挿入することができます。

2019-10-07_11_38_22-L8Test.png

ユーザ・インタフェース・コードを変更する必要はありません。私たちは、「画像」タブで行った設定に起因して、イメージコンバータは、PNGファイルを変換し、画像L8フォーマットを生成することができます。

透明画像

上述したように、それが透明性を有する画像フォーマットL8であってもよいです。

Blue_Buttons_Round_Edge_small.png

170 x 60像素的按钮图像(32位格式)ARGB8888

上图使用108种颜色(许多蓝色阴影)。该图像可以使用L8_ARGB8888格式。大小将大大降低:

格式 像素/字节大小 调色板的大小/字节 总大小/字节 减少百分比
ARGB888 40,800 0 40,800 --
L8_ARGB8888 10,200 432 10,632 73.9%

 

将图像转换为256色

许多图像使用超过256种颜色。这对于照片般逼真的图像或具有渐变的图像很常见。由于这些图像包含多种颜色,因此无法在TouchGFX Designer中直接将其转换为L8图像格式。

但是,在许多情况下,可以使用图像处理工具减少特定图像中使用的颜色数量,而不会降低大部分图像质量。

Paint.NET

最简单的方法是使用Paint.Net。打开原始图像,然后使用另存为将图像保存到另一个文件中。在“保存配置”对话框中,选择8位作为像素深度:

2019-10-07_15_14_08-Save_Configuration.png

现在,在您的项目中使用新的PNG。切记在TouchGFX设计器的“图像”选项卡中选择L8_ARGB8888格式。阴影处理不佳,但是在许多情况下带有透明边缘的图标看起来不错。可以调整“透明度阈值”值,并且在某些情况下可以改善结果。

图像魔术

另一个合适的工具(有时会产生更好的L8图像)是Image Magick(可从www.imagemagick.org下载)。该工具可以从命令行转换图像。这使其适合在脚本中使用。要将clock_bg.png转换为最多使用256种颜色的图像,请使用以下命令:

2019-10-07_15_21_00-MINGW32__c_TouchGFXProjectsDocumentation_L8Test_assets_images.png

为了比较,下面显示了三个图像(原始图像,使用Paint.Net的L8,使用Image Magick的L8):

L8images.png

中间时钟丢失了边框阴影中的细节。在这两种情况下,时钟背景的中心部分看起来都是可用的。

PNG文件中的颜色数

Image Magick还可以告诉您图像中使用了多少种颜色。使用此命令:

2019-10-08_13_07_52-MINGW32__c_TouchGFXProjectsDocumentation_L8Test_assets_images.png

手动配置

也可以不使用TouchGFX Designer来选择图像格式。图像格式在项目根目录下的“ application.config”文件中指定:

{ 
  “ image_configuration”:{ 
    images“:{ 
      ” Blue_Buttons_Round_Edge_small.png“:{ 
        ” format“:” L8_ARGB8888“ 
      } 
    },
    ” dither_algorithm“:” 2“,
    ” alpha_dither“:”是“,
    ” layout_rotation“:” 0“ ,
    “ opaque_image_format”:“ RGB888”,
    “ nonopaque_image_format”:“ ARGB8888”,
    “ section”:“ ExtFlashSection”,
    “ extra_section”:“ ExtFlashSection” 
  } 
}

 フォーマットは「image_configuration」の下に、単一の画像「画像」の部分を指定しました。画像はここで言及されていない場合は、画像を生成するためのデフォルトフォーマット(opaque_image_formatまたはnonopaque_image_format)となります。

我々は可能な限り画像を設定するには、TouchGFX Designerをお勧めします。

 

[ ソース ]