[PR]

水無瀬の部屋 > Programming > sample > goddess > convbmp.cpp
最終更新日: 2007/03/24

   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: 

参照:


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬の部屋 > 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