예제 #1
0
        public Bitmap Decode(RoomBlock roomBlock, int objectIndex, int imageIndex)
        {
            ObjectImage obj = roomBlock.GetOBIMs()[objectIndex];

            if (obj.GetIMxx()[imageIndex].GetBOMP() == null)
            {
                return(new Bitmap(1, 1));
            }

            var IMHD = obj.GetIMHD();

            _width     = IMHD.Width;
            _height    = IMHD.Height;
            _imageData = obj.GetIMxx()[imageIndex].GetBOMP();

            if (PaletteIndex == 0)
            {
                _pallete = roomBlock.GetDefaultPalette();
            }
            else
            {
                _pallete = roomBlock.GetPALS().GetWRAP().GetAPALs()[PaletteIndex];
            }

            Decode();

            return(_resultBitmap);
        }
예제 #2
0
        public override void SetAndRefreshData(Structures.BlockBase blockBase)
        {
            base.SetAndRefreshData(blockBase);

            _imageData = (ImageBomp)blockBase;

            Unknown.Text     = _imageData.Unknown.ToString();
            ImageWidth.Text  = _imageData.Width.ToString();
            ImageHeight.Text = _imageData.Height.ToString();
            Padding1.Text    = _imageData.Padding[0].ToString();
            Padding2.Text    = _imageData.Padding[1].ToString();
            DataSize.Text    = _imageData.Data.Length.ToString();

            var x = new DynamicByteProvider(_imageData.Data);

            ImageData.ByteProvider = x;
        }
예제 #3
0
        public void Encode(RoomBlock blockToEncode, Bitmap imageToEncode)
        {
            _imageToEncode = imageToEncode;
            RoomHeader RMHD = blockToEncode.GetRMHD();

            _width     = RMHD.Width;
            _height    = RMHD.Height;
            _imageBomp = blockToEncode.GetRMIM().GetIM00().GetBOMP();

            if (PaletteIndex == 0)
            {
                _pallete = blockToEncode.GetDefaultPalette();
            }
            else
            {
                _pallete = blockToEncode.GetPALS().GetWRAP().GetAPALs()[PaletteIndex];
            }

            Encode();
        }
예제 #4
0
        public void Encode(RoomBlock blockToEncode, int objectIndex, int imageIndex, Bitmap imageToEncode)
        {
            ObjectImage obj = blockToEncode.GetOBIMs()[objectIndex];

            _imageToEncode = imageToEncode;
            var IMHD = obj.GetIMHD();

            _width     = IMHD.Width;
            _height    = IMHD.Height;
            _imageBomp = obj.GetIMxx()[imageIndex].GetBOMP();

            if (PaletteIndex == 0)
            {
                _pallete = blockToEncode.GetDefaultPalette();
            }
            else
            {
                _pallete = blockToEncode.GetPALS().GetWRAP().GetAPALs()[PaletteIndex];
            }

            Encode();
        }