/** * 3種類のファイルに対応した入力ストリームから、特徴データを読み出します。 * @param i_iset_stream * @param i_fset_stream * @param i_fset3_stream * @param i_freak_fset_page_id * @param i_width_in_msec * NFTターゲット画像の横幅をmmで指定します。スケーリングが不要な場合はNaNを指定します。 * @return */ public static NyARNftDataSet loadFromNftFiles(Stream i_iset_stream, Stream i_fset_stream, Stream i_fset3_stream, int i_freak_fset_page_id, double i_width_in_msec) { return(new NyARNftDataSet( NyARNftIsetFile.loadFromIsetFile(i_iset_stream), NyARNftFsetFile.loadFromFsetFile(i_fset_stream), NyARNftFreakFsetFile.loadFromfset3File(i_fset3_stream), i_freak_fset_page_id, i_width_in_msec)); }
public static NyARNftDataSetFile loadFromNftFilePack(byte[] i_byte) { jp.nyatla.nyartoolkit.cs.cs4.BinaryReader br = new jp.nyatla.nyartoolkit.cs.cs4.BinaryReader(i_byte, jp.nyatla.nyartoolkit.cs.cs4.BinaryReader.ENDIAN_LITTLE); //タイプチェック String header = byteArray2NullTerminateStr(br.getByteArray(32)); if (header.CompareTo(HS_NFTPACK_V1) != 0) { throw new NyARRuntimeException("Invalid header"); } //Entryの取得 int num_of_entry = br.getInt(); if (num_of_entry != 3) { throw new NyARRuntimeException("Invalid entry size"); } int[] entry_info = br.getIntArray(num_of_entry * 2); return(new NyARNftDataSetFile( NyARNftIsetFile.loadFromIsetFile(br.getByteArray(entry_info[2 * 0 + 1]), NyARNftIsetFile.FILE_FORMAT_ARTK_V5RAW), NyARNftFsetFile.loadFromFsetFile(br.getByteArray(entry_info[2 * 1 + 1])), NyARNftFreakFsetFile.loadFromfset3File(br.getByteArray(entry_info[2 * 2 + 1])))); }