/** * 格納している情報から、ファイルイメージを生成します。 * @param i_sub_dpis * @return */ public byte[] makeBinary() { //初期メモリは2MB BinaryWriter bw = new BinaryWriter(BinaryReader.ENDIAN_LITTLE, 2 * 1024 * 1024); //dpiセット+1 bw.putInt(this.sub_dpis.Length + 1); //jpgイメージ bw.putByteArray(JpegIO.encode(this.image_size.w, this.image_size.h, (int)this.image_dpi_x, (int)this.image_dpi_y, this.image_unit, this.image, 0.8f)); //サブdpi bw.putFloatArray(this.sub_dpis); return(bw.getBinary()); }
/** * @param i_src * isetファイルイメージを格納したbyte配列 */ public IsetFileDataParserV5(byte[] i_src) { BinaryReader br = new BinaryReader(i_src, BinaryReader.ENDIAN_LITTLE); //read raw data int size = br.size(); int noi = br.getInt(); int jpeg_size = size - 4 - (4 * (noi - 1)); byte[] jpeg = br.getByteArray(jpeg_size); float[] ldpi = br.getFloatArray(noi - 1); JpegIO.DecodeResult d; d = JpegIO.decode(jpeg); this.image = d.img; this.image_dpi_x = d.x_density; this.image_dpi_y = d.y_density; this.image_unit = d.density_unit; this.image_size = new NyARIntSize(d.width, d.height); this.num_of_iset = noi; this.sub_dpis = ldpi; return; }