水無瀬の部屋 > Programming > sample > goddess > convbmp.cpp |
---|
1: //*********************************************************
2: // プロジェクト: ああっ壁神さまっ
3: // ファイル名: convbmp.cpp
4: //*********************************************************
5: #include "goddess.h"
6: #include "savedib.h"
7: #include "g24a2bmp.h"
8:
9:
10: //---------------------------------------------------------
11: // ファイルスコープ関数 の 宣言
12: //---------------------------------------------------------
13: static BYTE *LoadPicture( const char *src, BITMAPINFOHEADER *pbih, RGBQUAD *rgb, const char *spipath );
14:
15:
16: //*********************************************************
17: // ConvertToBitmap
18: // ファイル filename をビットマップ形式へ変換し
19: // ファイル bmpname へ保存する
20: //*********************************************************
21: bool
22: ConvertToBitmap
23: (
24: const char *bmpname,
25: const char *filename,
26: const char *plugin
27: )
28: {
29: // パラメタの仮定
30: ASSERT( IsPathFile( filename ) );
31: ASSERT( IsPathDirectory( plugin ) );
32: ASSERT( IsValidStringPtr( bmpname ) );
33:
34: // 画像の読み込み
35: RGBQUAD rgb[256];
36: BITMAPINFOHEADER bih;
37: memzero( &bih, sizeof(BITMAPINFOHEADER) );
38: BYTE *img = LoadPicture( filename, &bih, rgb, plugin );
39: if ( !img ) return false;
40:
41: // ファイルへ保存する
42: const bool bSuccess = SaveBitmapFile( bmpname, &bih, rgb, img );
43: free( img );
44:
45: ASSERT( IsPathExist( bmpname ) );
46: return bSuccess && IsPathFile( bmpname );
47: }//ConvertToBitmap
48:
49:
50: //******************************************************************************************************************
51: //
52: //******************************************************************************************************************
53: BYTE *LoadPicture_susie( const char *filename, BITMAPINFOHEADER *bih, RGBQUAD *rgb, const char *plugin, const char *spi );
54:
55:
56: //*********************************************************
57: // LoadPicture
58: //*********************************************************
59: static
60: BYTE *
61: LoadPicture
62: (
63: const char *filename,
64: BITMAPINFOHEADER *bih,
65: RGBQUAD *rgb,
66: const char *plugin
67: )
68: {
69: // パラメタの仮定
70: ASSERT( IsPathFile( filename ) );
71: ASSERT( IsPathDirectory( plugin ) );
72: ASSERT( IsValidPtr( bih, sizeof( *bih ) ) );
73: ASSERT( IsValidPtr( rgb, 256 * sizeof( *rgb ) ) );
74:
75: //
76: {
77: FILE *fp = fopen( filename, "rb" );
78: if ( fp )
79: {
80: BYTE *img = g24a2bmp( fp, bih );
81: if ( img )
82: {
83: fclose( fp );
84: return img;
85: }
86: fclose( fp );
87: }
88: }
89:
90: // Susie の plugin を使う
91: // 単一画像用と思われる plugin (if*.spi) を優先的に使う
92: BYTE *img;
93: img = LoadPicture_susie( filename, bih, rgb, plugin, "if*.spi" );
94: if ( img )
95: {
96: return img;
97: }
98:
99: img = LoadPicture_susie( filename, bih, rgb, plugin, "*.spi" );
100: if ( img )
101: {
102: return img;
103: }
104:
105: return NULL;
106: }//LoadPicture
107:
108:
109:
110: //** end **
111:
参照:
水無瀬の部屋 > sample > goddess > convbmp.cpp |
---|
このページは cpp2web が出力しました。
水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
http://katsura-kotonoha.sakura.ne.jp/prog/code/goddess/convbmp_cpp.shtml
同人ダウンロード販売|DL.Getchu.com