コード例 #1
0
        public static Bitmap CreateBMP(int width, int height, byte[] srcdata, int index, int MaskColor)
        {
            Bitmap     bitmap     = new Bitmap(width, height, PixelFormat.Format16bppRgb555);
            Rectangle  rect       = new Rectangle(0, 0, bitmap.Width, bitmap.Height);
            BitmapData bitmapdata = bitmap.LockBits(rect, ImageLockMode.ReadWrite, bitmap.PixelFormat);
            int        num        = bitmapdata.Stride / 1;

            byte[] source = new byte[num * height];
            if (srcdata.Length - index == source.Length)
            {
                Array.Copy((Array)srcdata, index, (Array)source, 0, source.Length);
            }
            else
            {
                for (int index1 = 0; index1 < height; ++index1)
                {
                    Array.Copy((Array)srcdata, index + index1 * width * 2, (Array)source, index1 * num, width * 2);
                }
            }
            IntPtr scan0 = bitmapdata.Scan0;

            Marshal.Copy(source, 0, scan0, srcdata.Length - index);
            bitmap.UnlockBits(bitmapdata);
            if (MaskColor >= 0)
            {
                bitmap.MakeTransparent(ImageConvert.Rgb555ToARGB(MaskColor));
            }
            return(bitmap);
        }
コード例 #2
0
        public static Bitmap Load_TIL(byte[] tbtdata)
        {
            BinaryReader binaryReader = new BinaryReader((Stream) new MemoryStream(tbtdata));
            int          num1         = (int)binaryReader.ReadInt16();
            int          num2         = (int)binaryReader.ReadInt16();

            int[] numArray = new int[num1 + 1];
            int   num3     = 4 + numArray.Length * 4;

            for (int index = 0; index <= num1; ++index)
            {
                numArray[index] = num3 + binaryReader.ReadInt32();
            }
            for (int index = 0; index < num1; ++index)
            {
                binaryReader.BaseStream.Seek((long)numArray[index], SeekOrigin.Begin);
                int num4 = (int)binaryReader.ReadByte();
                ImageConvert.L1Image l1Image = ImageConvert.LoadImage(binaryReader.ReadBytes(numArray[index + 1] - (int)binaryReader.BaseStream.Position), 24, 24);
                if (l1Image.image != null)
                {
                    l1Image.image.Save(string.Format("E:\\Temp\\{0:x4}.bmp", (object)index), ImageFormat.Bmp);
                }
            }
            binaryReader.Close();
            return((Bitmap)null);
        }
コード例 #3
0
ファイル: L1Spr.cs プロジェクト: tomato1001/PakViewer
 public static Bitmap CreateBitmap(L1Spr.Frame FrameData, byte[] bmpdata)
 {
     if (bmpdata == null)
     {
         return((Bitmap)null);
     }
     return(ImageConvert.CreateBMP(FrameData.width, FrameData.height, bmpdata, 0, (int)FrameData.maskcolor));
 }
コード例 #4
0
        public static Bitmap Load_IMG(byte[] imgdata)
        {
            int int16_1   = (int)BitConverter.ToInt16(imgdata, 0);
            int int16_2   = (int)BitConverter.ToInt16(imgdata, 2);
            int MaskColor = (int)BitConverter.ToInt16(imgdata, 4) == 1 ? (int)BitConverter.ToUInt16(imgdata, 6) : -1;

            return(ImageConvert.CreateBMP(int16_1, int16_2, imgdata, 8, MaskColor));
        }
コード例 #5
0
        public static ImageConvert.L1Image LoadImage(byte[] data, int width, int height)
        {
            Bitmap   bitmap   = new Bitmap(width, height);
            Graphics graphics = Graphics.FromImage((Image)bitmap);

            ImageConvert.L1Image l1Image = ImageConvert.LoadImage(data);
            if (l1Image.image != null)
            {
                graphics.DrawImageUnscaled((Image)l1Image.image, l1Image.x_offset, l1Image.y_offset);
            }
            l1Image.image = bitmap;
            return(l1Image);
        }
コード例 #6
0
 public static Bitmap Load_TBT(byte[] tbtdata)
 {
     return(ImageConvert.LoadImage(tbtdata).image);
 }