Пример #1
0
        public static Icon Create(byte[] colors, int width, int height,
                                  PixelFormat format)
        {
            if (format != PixelFormat.Format32bppArgb)
            {
                throw new NotImplementedException();
            }

            ICONIMAGE image = new ICONIMAGE(width, height, colors);
            ICONDIR   dir   = new ICONDIR(
                new ICONDIRENTRY[] { new ICONDIRENTRY(image, 0) });

            dir.Entries[0].ImageOffset = dir.Size;

            Icon icon;

            binaryWriter.BaseStream.Position = 0;
            dir.Write(binaryWriter);
            image.Write(binaryWriter);

            binaryWriter.BaseStream.Position = 0;
            icon = new Icon(binaryWriter.BaseStream);

            return(icon);
        }
Пример #2
0
        public static Icon Create(byte[] colors, int width, int height, 
            PixelFormat format)
        {
            if (format != PixelFormat.Format32bppArgb)
            throw new NotImplementedException();

              ICONIMAGE image = new ICONIMAGE(width, height, colors);
              ICONDIR dir = new ICONDIR(
            new ICONDIRENTRY[] { new ICONDIRENTRY(image, 0) } );
              dir.Entries[0].ImageOffset = dir.Size;

              Icon icon;
              using (BinaryWriter bw = new BinaryWriter(new MemoryStream())) {
                dir.Write(bw);
            image.Write(bw);

                bw.BaseStream.Position = 0;
            icon = new Icon(bw.BaseStream);
            }

              return icon;
        }