ColorPalette.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CommonUI / System / Drawing / Advanced / ColorPalette.cs / 1 / ColorPalette.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

 
/*************************************************************************\ 
*
* Copyright (c) 1998-1999, Microsoft Corp.  All Rights Reserved. 
*
* Module Name:
*
*   ColorPalette.cs 
*
* Abstract: 
* 
*   Native GDI+ Color Palette structure.
* 
* Revision History:
*
*   9/22/1999 [....]
*       Created it. 
*
\**************************************************************************/ 
 
namespace System.Drawing.Imaging {
    using System.Runtime.InteropServices; 
    using System.Diagnostics;
    using System;
    using System.Drawing;
 
    /// 
    ///  
    ///    Defines an array of colors that make up a 
    ///    color palette.
    ///  
    public sealed class ColorPalette {
        ///    Note (From VSWhidbey#444618): We don't provide a public constructor for ColorPalette because if we allow
        ///    arbitrary creation of color palettes you could in theroy not only change the color entries, but the size
        ///    of the palette and that is not valid for an image (meaning you cannot change the palette size for an image). 
        ///    ColorPalettes are only valid for "indexed" images like GIFs.
 
        private int flags; 
        private Color[] entries;
 
        /// 
        /// 
        ///    
        ///       Specifies how to interpret the color 
        ///       information in the array of colors.
        ///     
        ///  
        public int Flags
        { 
            get {
                return flags;
            }
        } 

        ///  
        ///  
        ///    Specifies an array of  objects.
        ///  
        public Color[] Entries
        {
            get {
                return entries; 
            }
        } 
 
        internal ColorPalette(int count) {
            entries = new Color[count]; 
        }

        internal ColorPalette() {
            entries = new Color[1]; 
        }
 
        internal void ConvertFromMemory(IntPtr memory) 
        {
            // Memory layout is: 
            //    UINT Flags
            //    UINT Count
            //    ARGB Entries[size]
 
            flags = Marshal.ReadInt32(memory);
 
            int size; 

            size = Marshal.ReadInt32((IntPtr)((long)memory + 4));  // Marshal.SizeOf(size.GetType()) 

            entries = new Color[size];

            for (int i=0; i

                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK