/* This file is part of AHD Subtitles Maker Professional
   A program can create and edit subtitles

   Copyright © Ala I Hadid 2009 - 2012

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
namespace AHD.MKV
{
    [Serializable()]
    public class VobCharImage
    {
        List<int> data = new List<int>();
        string theChar;
        Rectangle rect;
        int line = 0;
        bool isSpaceImage = false;

        public List<int> Data
        { get { return data; } set { data = value; } }
        public string TheChar
        { get { return theChar; } set { theChar = value; } }
        public Rectangle Rectangle
        { get { return rect; } set { rect = value; } }
        public int LineIndex
        {
            get { return line; }
            set { line = value; }
        }
        public bool IsSpace
        { get { return isSpaceImage; } set { isSpaceImage = value; } }
        public unsafe Bitmap ToBitmap()
        {
            Bitmap bmp = new Bitmap(rect.Width, rect.Height);
            BitmapData bmpData32 = bmp.LockBits(new Rectangle(0, 0, rect.Width, rect.Height), 
                ImageLockMode.WriteOnly, PixelFormat.Format32bppRgb);
            int* numPtr32 = (int*)bmpData32.Scan0;
            int j = 0;
            for (int i = 0; i < rect.Width* rect.Height; i++)
            {
                numPtr32[i] = data[i] ;
            }
            bmp.UnlockBits(bmpData32);
            return bmp;
        }
    }
}
