Exemplo n.º 1
0
Arquivo: tga.cs Projeto: tsu-kunn/TGA
            /// <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);
            }
Exemplo n.º 2
0
Arquivo: tga.cs Projeto: tsu-kunn/TGA
            /// <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);
            }