LoadARGB8ColorSoftImage

CPUで扱うイメージの読み込み( RGBA8 カラーに変換 )

val = LoadARGB8ColorSoftImage(FileName)

char *FileName : 読み込むファイルのパス

(プラグイン / モジュール : DxLibW)

解説

LoadSoftImage の補助関数です。

LoadSoftImage で画像を読み込んで戻り値として得られるソフトウェアイメージハンドルの画像の形式は、
読み込んだ画像の形式に合わせて『アルファチャンネル付きの 32ビット画像( ARGB8 )』だったり、『アルファチャンネル無しの 24ビット画像( RGB8 )』だったり、『パレット256色形式画像( PAL8 )』だったりと様々です。

なので、例えば『アルファチャンネル無しの 24bit画像( RGB8 )』の画像を LoadSoftImage で読み込んで得たソフトウェアイメージハンドルに対して DrawPixelSoftImage
などの関数で画像データに R, G, B の値と共にアルファ値の値も書き込みたいと思っても、ソフトウェアイメージハンドルが持つ画像にアルファ値の情報が無い( RGB8形式なので )のでアルファ値を書き込めません。

このような場合は LoadSoftImage で得るソフトウェアイメージハンドルとは別に関数 MakeARGB8ColorSoftImage を使用してアルファチャンネル付きのソフトウェアハンドルを作成し、
そのソフトウェアハンドルに BltSoftImage を使用して LoadSoftImage で読み込んだ画像を転送した上で DrawPixelSoftImage などの関数でアルファ値を書き込む、といったことをする必要があります。

ただ、その場合

1.LoadSoftImage で画像ファイルを読み込み

2.GetSoftImageSize で画像のサイズを取得

3.MakeARGB8ColorSoftImage で 1 で読み込んだ画像と同じサイズの ARGB8形式のソフトウェアイメージハンドルを作成

4.BltSoftImage で 1 で読み込んだ画像を 3 で作成したソフトウェアイメージハンドルに転送

5.1 で読み込んだ画像のソフトウェアイメージハンドルは不要になったので、DeleteSoftImage で削除

6.3 で作成したソフトウェアイメージハンドルに対して DrawPixelSoftImage などの関数で書き込む

と、DrawPixelSoftImage で書き込みを行うまでの手順が多いので若干面倒です。

それに対して LoadARGB8ColorSoftImage では上記の1から5までの手順( 読み込んだ画像を『アルファチャンネル付きの 32ビット画像( ARGB8 )』に変換する )を内部で行ってしまいます。

なので、上記の手順を

1.LoadARGB8ColorSoftImage で画像ファイルを読み込む

( 得られるソフトウェアイメージハンドルの内容は必ず ARGB8形式になる )

2.1 で作成したソフトウェアイメージハンドルに対して DrawPixelSoftImage などの関数で書き込む

と、大幅に短縮することができます。
※ DxLib のハンドル値は 32bit/64bit 共に int 型です。

戻り値:
  -1:エラー

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib その他
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs