TCL_EncodeAndWritePicture(Ex)

定義

#include <twl/tcl.h>


TCLResult TCL_EncodeAndWritePicture( TCLAccessor* pAccessor ,
                                     const void* imageBuffer ,
                                     u8* jpegBuffer ,
                                     u32 jpegBufferSize ,
                                     u8* workBuffer ,
                                     u32 quality ,
                                     u32 option ,
                                     FSResult* pFSResult );

TCLResult TCL_EncodeAndWritePictureEx( TCLAccessor* pAccessor ,
                                       const void* imageBuffer ,
                                       u8* jpegBuffer ,
                                       u32 jpegBufferSize ,
                                       u8* workBuffer ,
                                       u32 quality ,
                                       u32 option ,
                                       u8* makerNoteBuffer ,
                                       u16 makerNoteBufferSize ,
                                       FSResult* pFSResult );
	

引数

pAccessorアクセサ
imageBuffer元画像バッファ
jpegBufferjpeg画像バッファ
jpegBufferSizejpeg画像バッファサイズ
workBufferjpegエンコードワークバッファ
qualityjpegエンコードクオリティ
optionjpegエンコードオプション
makerNoteBufferユーザメーカーノートバッファ
makerNoteBufferSizeユーザメーカーノートバッファサイズ
pFSResult関数内部で各種FS関数にエラーが発生した場合の処理結果

返り値

処理結果

説明

元画像をjpegエンコードし、保存します。内部で SSP_StartJpegEncoderFast を呼び出します。

元画像はVGAサイズである必要があります。

ワークバッファは TCL_GetJpegEncoderBufferSize で求めたサイズ分確保する必要があります。

エンコードに成功後、jpeg画像の次回保存先パスへの保存と管理ファイルの上書き処理を行います。

この関数から TCL_RESULT_ERROR_NO_NEXT_INDEX が返って来た場合、パス上の制約によってこれ以上保存できません。これは TCL_CalcNumEnableToTakePictures が0より大きな値を示していても同様ですので注意が必要です。

アクセサは TCL_LoadTableTCL_CreateTable などで初期化されている必要があります。

jpegBufferSize が小さい、quality が大きい等の理由でエンコード処理に失敗した場合、関数内部で自動的に quality を下げて エンコードが成功するまでリトライし続けます。
quality を限界まで下げても成功しなかった場合は TCL_RESULT_ERROR_OTHER を返します。

参照

TCL_GetJpegEncoderBufferSize

履歴

2009/06/29 内部で呼び出す SSP の関数変更
2009/04/30 内部で呼び出す SSP の関数変更
2009/04/16 内部のエンコードに失敗した場合の動作について追記
2008/12/05 初版