LoadSoftImage で読み込まれる画像の形式は ARGB8 か XRGB8 かの二択ではなく、ARGB4 や R5G6B5 や A1R5G5B5 や
ARGBF32 や ARGBF16 や、パレット256色画像( PAL8 )など様々なので、特定のフォーマットの画像として処理したい場合は
あおむしさんがされたように LoadSoftImage で読み込んだソフトウェアイメージとは別に MakeARGB8ColorSoftImage などの
『自分の希望するフォーマット』のソフトウェアイメージを作成して、そこに処理後のイメージを書き込む、という形を想定しています
int i, j, r, g, b, a, w, h, SrcHandle, DestHandle, GraphHandle ;
SrcHandle = LoadSoftImage( "test1.bmp" ) ;
GetSoftImageSize( SrcHandle, &w, &h ) ;
DestHandle = MakeARGB8ColorSoftImage( w, h ) ;
for( i = 0; i < h; i++ )
{
for( j = 0; j < w; j++ )
{
GetPixelSoftImage( SrcHandle, j, i, &r, &g, &b, &a ) ;
// 加工後のピクセル値の書き込み
DrawPixelSoftImage( DestHandle, j, i, r / 2, g / 2, b / 2, 128 ) ;
}
}
GraphHandle = CreateGraphFromSoftImage( DestHandle ) ;
DeleteSoftImage( SrcHandle ) ;
DeleteSoftImage( DestHandle ) ;
なので、そのことをまずリファレンスで説明していないのが問題なのですが、確かに ARGB8 や XRGB8 などの特定の
フォーマットで読み込める関数があると便利だと思いましたので追加してみました
よろしければこちらの関数を追加バージョンをダウンロードしてください m(_ _)m
https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // Windows版 VisualC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // Windows版 BorlandC++ 用
https://dxlib.xsrv.jp/temp/DxLibBCC2Test.exe // Windows版 C++ Builder 10.1 Berlin 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // Windows版 MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.exe // Android版 ARM用
https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.exe // Android版 x86用
https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース
こちらのバージョンでは以下の関数を追加しました
int LoadARGB8ColorSoftImage( char *FileName ) ;
int LoadXRGB8ColorSoftImage( char *FileName ) ;
int LoadARGB8ColorSoftImageToMem( void *FileImage, int FileImageSize ) ;
int LoadXRGB8ColorSoftImageToMem( void *FileImage, int FileImageSize ) ;
それぞれ読み込んだ画像のフォーマットが ARGB8形式ではなかったら内部で ARGB8形式に変換する関数と
XRGB8形式ではなかったら内部で XRGB8形式に変換する関数になります
よろしければお使いください m(_ _)m