public byte[] makeIsetBinary(int i_type)
        {
            float[] dpis = new float[this.items.Length - 1];
            for (int i = 0; i < dpis.Length; i++)
            {
                dpis[i] = (float)this.items[i + 1].dpi;
            }
            switch (i_type)
            {
            case FILE_FORMAT_ARTK_V5:
            {
                IsetFileDataParserV5 ifp = new IsetFileDataParserV5(this.items[0], dpis);
                return(ifp.makeBinary());
            }

            case FILE_FORMAT_ARTK_V5RAW:
            {
                IsetFileDataParserV5Raw ifp = new IsetFileDataParserV5Raw(this.items[0], dpis);
                return(ifp.makeBinary());
            }

            default:
                throw new NyARRuntimeException();
            }
        }
        public static NyARNftIsetFile loadFromIsetFile(byte[] i_src, int i_file_format)
        {
            switch (i_file_format)
            {
            case FILE_FORMAT_ARTK_V5:
            {
                IsetFileDataParserV5 iset  = new IsetFileDataParserV5(i_src);
                ReferenceImage[]     items = new ReferenceImage[iset.num_of_iset];
                //1stIset
                double dpi    = iset.getImageDpi();
                int[]  images = ArrayUtils.toIntArray_impl(iset.image);
                items[0] = new ReferenceImage(iset.image_size.w, iset.image_size.h, dpi, images);
                //2nd to end
                for (int i = 1; i < iset.num_of_iset; i++)
                {
                    items[i] = new ReferenceImage(iset.image_size.w, iset.image_size.h, images, dpi, iset.sub_dpis[i - 1]);
                }
                return(new NyARNftIsetFile(items));
            }

            case FILE_FORMAT_ARTK_V4:
            {
                IsetFileDataParserV4 iset  = new IsetFileDataParserV4(i_src);
                ReferenceImage[]     items = new ReferenceImage[iset.ar2image.Length];
                for (int i = 0; i < items.Length; i++)
                {
                    IsetFileDataParserV4.AR2ImageT tmp = iset.ar2image[i];
                    items[i] = new ReferenceImage(tmp.width, tmp.height, tmp.dpi, ArrayUtils.toIntArray_impl(tmp.img));
                }
                return(new NyARNftIsetFile(items));
            }

            case FILE_FORMAT_ARTK_V5RAW:
            {
                IsetFileDataParserV5Raw iset  = new IsetFileDataParserV5Raw(i_src);
                ReferenceImage[]        items = new ReferenceImage[iset.dpis.Length];
                //1stIset
                int[] images = ArrayUtils.toIntArray_impl(iset.image);
                items[0] = new ReferenceImage(iset.image_width, iset.image_height, iset.dpis[0], images);
                //2nd to end
                for (int i = 1; i < iset.dpis.Length; i++)
                {
                    items[i] = new ReferenceImage(iset.image_width, iset.image_height, images, iset.dpis[0], iset.dpis[i]);
                }
                return(new NyARNftIsetFile(items));
            }

            default:
                throw new NyARRuntimeException();
            }
        }