コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

ndsでのjpeg表示に再挑戦(9)

jpegのデコードはほぼ完成しました。最後に、展開パラメータを指定できるように、下記のような構造体を用意しました。

Jpegの展開パラメータ設定用構造体

typedef struct JpegPara{
 int	desired_number_of_colors;
 bool	quantize_colors;
 int	dct_method;
 bool	two_pass_quantize;
 bool	do_fancy_upsampling;
 int	dither_mode;
 int	scale_num;
 int	scale_denom;
} JpegParam;

デコードを始める前に、予めパラメータをセットしておきます。

パラメータの初期化

Jpegの展開パラメータを初期化するプログラムも用意しました。

struct JpegPara	JpegSetup;	//Jpegの展開パラメータ設定用

// ********************************************
// jpegのcinfo構造体の展開パラメータの初期化
// ********************************************
void	JpegIni( void )
{
  //Set up JPEG parameters.
  //画質よりも速度重視のパラメータ(-fast)
  JpegSetup.desired_number_of_colors = 216;
  JpegSetup.quantize_colors = FALSE;
  JpegSetup.dct_method = JDCT_FASTEST;
  JpegSetup.two_pass_quantize = FALSE;
  JpegSetup.do_fancy_upsampling = FALSE;
  JpegSetup.dither_mode = JDITHER_NONE;
  //サイズは100%
  JpegSetup.scale_num = 1;
  JpegSetup.scale_denom = 1;
}

これでほぼ完成です。


あと、PMMファイルをndsの画面に表示するプログラムを、さくっと二つ作りました。詳細は省きますが、下記のような感じです。

//**************************************************
// PPMファイルを指定画面の指定位置から指定サイズに圧縮して表示します。
// 表示位置(x,y)、表示サイズ gWidth×gHeight、アスペクトは保たれません
// 元画像サイズより大きくなるときは、画素が飛びます。
//**************************************************
bool	PpmCompView( FILE *ppmfp, uint16 *screen, int x, int y, int gWidth, int gHight );

//**************************************************
// PPMファイルの指定領域を、指定画面に表示します
// 表示場所(gx,gy)、表示サイズ gwidth×gheight、読み込む画像位置(mx,my)
//**************************************************
bool	PpmView( FILE *ppmfp, uint16 *screen, int gx, int gy, int gwidth, int gheight, int mx, int my );

今日はこの辺で・・・。

本当にやりたいことリスト

(ブログの終わりにやりたいことを書いておきたいと思います)

  • 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
  • Androidプログラム
  • Web系のプログラム