/// <summary> /// 指定データから作成 /// </summary> /// <param name="header">TGAヘッダー</param> /// <param name="pImage">イメージデータ</param> /// <param name="pPalette">パレットデータ</param> /// <returns>RESULTタイプ</returns> public RESULT Create(TGAHeader header, byte[] pImage, byte[] pPalette) { // 引数チェック if (pImage == null || header.getImageSize() == 0) { return(RESULT.ERROR_IMAGE); } if (pPalette != null && header.getPaletteSize() == 0) { return(RESULT.ERROR_PALETTE); } if (pPalette == null && header.getPaletteSize() != 0) { return(RESULT.ERROR_PALETTE); } // ヘッダーチェック if (!CheckSupport(header)) { return(RESULT.ERROR_HEADER); } // 情報の設定 this.CalcSize(false); return(RESULT.ERROR_NONE); }
/// <summary> /// Image/Paletteサイズを求める /// </summary> /// <param name="bFlg">メモリ確保をする?</param> /// <returns></returns> private bool CalcSize(bool bFlg) { m_ImageSize = m_Header.getImageSize(); m_PaletteSize = m_Header.getPaletteSize(); if (bFlg) { try { // イメージのメモリ確保 m_pImage = new byte[m_ImageSize]; // パレットがありならメモリ確保 if (m_PaletteSize > 0) { m_pPalette = new byte[m_PaletteSize]; } } catch { m_ImageSize = 0; m_PaletteSize = 0; return(false); } } // その他の情報設定 m_ImageBit = m_Header.imageBit; m_PaletteBit = m_Header.paletteBit; m_PaletteColor = m_Header.paletteColor; m_ImageW = m_Header.imageW; m_ImageH = m_Header.imageH; m_Line = (LINE)m_Header.discripter; return(true); }