Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media / Imaging / BitmapPalettes.cs / 1 / BitmapPalettes.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All rights reserved. // // File: BitmapPalettes.cs // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Runtime.InteropServices; namespace System.Windows.Media.Imaging { #region BitmapPalettes ////// Pre-defined palette types /// static public class BitmapPalettes { ////// BlackAndWhite /// static public Imaging.BitmapPalette BlackAndWhite { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedBW, false); } } ////// BlackAndWhiteTransparent /// static public Imaging.BitmapPalette BlackAndWhiteTransparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedBW, true); } } ////// Halftone8 /// static public Imaging.BitmapPalette Halftone8 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone8, false); } } ////// Halftone8Transparent /// static public Imaging.BitmapPalette Halftone8Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone8, true); } } ////// Halftone27 /// static public Imaging.BitmapPalette Halftone27 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone27, false); } } ////// Halftone27Transparent /// static public Imaging.BitmapPalette Halftone27Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone27, true); } } ////// Halftone64 /// static public Imaging.BitmapPalette Halftone64 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone64, false); } } ////// Halftone64Transparent /// static public Imaging.BitmapPalette Halftone64Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone64, true); } } ////// Halftone125 /// static public Imaging.BitmapPalette Halftone125 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone125, false); } } ////// Halftone125Transparent /// static public Imaging.BitmapPalette Halftone125Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone125, true); } } ////// Halftone216 /// static public Imaging.BitmapPalette Halftone216 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, false); } } ////// Halftone216Transparent /// static public Imaging.BitmapPalette Halftone216Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, true); } } ////// Halftone252 /// static public Imaging.BitmapPalette Halftone252 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone252, false); } } ////// Halftone252Transparent /// static public Imaging.BitmapPalette Halftone252Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone252, true); } } ////// Halftone256 /// static public Imaging.BitmapPalette Halftone256 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone256, false); } } ////// Halftone256Transparent /// static public Imaging.BitmapPalette Halftone256Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone256, true); } } ////// Gray4 /// static public Imaging.BitmapPalette Gray4 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray4, false); } } ////// Gray4Transparent /// static public Imaging.BitmapPalette Gray4Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray4, true); } } ////// Gray16 /// static public Imaging.BitmapPalette Gray16 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray16, false); } } ////// Gray16Transparent /// static public Imaging.BitmapPalette Gray16Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray16, true); } } ////// Gray256 /// static public Imaging.BitmapPalette Gray256 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray256, false); } } ////// Gray256Transparent /// static public Imaging.BitmapPalette Gray256Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray256, true); } } ////// WebPalette /// static public Imaging.BitmapPalette WebPalette { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, false); } } ////// WebpaletteTransparent /// static public Imaging.BitmapPalette WebPaletteTransparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, true); } } static internal Imaging.BitmapPalette FromMILPaletteType(WICPaletteType type, bool hasAlpha) { int key = (int)type; Debug.Assert(key < c_maxPalettes); Imaging.BitmapPalette palette; Imaging.BitmapPalette[] palettes; if (hasAlpha) { palettes = transparentPalettes; } else { palettes = opaquePalettes; } palette = palettes[key]; if (palette == null) { lock (palettes) { // palettes might have changed while waiting for the lock. // Need to check again. palette = palettes[key]; if (palette == null) { palette = new Imaging.BitmapPalette(type, hasAlpha); palettes[key] = palette; } } } return palette; } static private Imaging.BitmapPalette[] transparentPalettes { get { if (s_transparentPalettes == null) { s_transparentPalettes = new Imaging.BitmapPalette[c_maxPalettes]; } return s_transparentPalettes; } } static private Imaging.BitmapPalette[] opaquePalettes { get { if (s_opaquePalettes == null) { s_opaquePalettes = new Imaging.BitmapPalette[c_maxPalettes]; } return s_opaquePalettes; } } static private Imaging.BitmapPalette[] s_transparentPalettes; static private Imaging.BitmapPalette[] s_opaquePalettes; private const int c_maxPalettes = 64; } #endregion // Imaging.BitmapPalettes } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All rights reserved. // // File: BitmapPalettes.cs // //----------------------------------------------------------------------------- using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Runtime.InteropServices; namespace System.Windows.Media.Imaging { #region BitmapPalettes ////// Pre-defined palette types /// static public class BitmapPalettes { ////// BlackAndWhite /// static public Imaging.BitmapPalette BlackAndWhite { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedBW, false); } } ////// BlackAndWhiteTransparent /// static public Imaging.BitmapPalette BlackAndWhiteTransparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedBW, true); } } ////// Halftone8 /// static public Imaging.BitmapPalette Halftone8 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone8, false); } } ////// Halftone8Transparent /// static public Imaging.BitmapPalette Halftone8Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone8, true); } } ////// Halftone27 /// static public Imaging.BitmapPalette Halftone27 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone27, false); } } ////// Halftone27Transparent /// static public Imaging.BitmapPalette Halftone27Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone27, true); } } ////// Halftone64 /// static public Imaging.BitmapPalette Halftone64 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone64, false); } } ////// Halftone64Transparent /// static public Imaging.BitmapPalette Halftone64Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone64, true); } } ////// Halftone125 /// static public Imaging.BitmapPalette Halftone125 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone125, false); } } ////// Halftone125Transparent /// static public Imaging.BitmapPalette Halftone125Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone125, true); } } ////// Halftone216 /// static public Imaging.BitmapPalette Halftone216 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, false); } } ////// Halftone216Transparent /// static public Imaging.BitmapPalette Halftone216Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, true); } } ////// Halftone252 /// static public Imaging.BitmapPalette Halftone252 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone252, false); } } ////// Halftone252Transparent /// static public Imaging.BitmapPalette Halftone252Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone252, true); } } ////// Halftone256 /// static public Imaging.BitmapPalette Halftone256 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone256, false); } } ////// Halftone256Transparent /// static public Imaging.BitmapPalette Halftone256Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone256, true); } } ////// Gray4 /// static public Imaging.BitmapPalette Gray4 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray4, false); } } ////// Gray4Transparent /// static public Imaging.BitmapPalette Gray4Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray4, true); } } ////// Gray16 /// static public Imaging.BitmapPalette Gray16 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray16, false); } } ////// Gray16Transparent /// static public Imaging.BitmapPalette Gray16Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray16, true); } } ////// Gray256 /// static public Imaging.BitmapPalette Gray256 { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray256, false); } } ////// Gray256Transparent /// static public Imaging.BitmapPalette Gray256Transparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedGray256, true); } } ////// WebPalette /// static public Imaging.BitmapPalette WebPalette { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, false); } } ////// WebpaletteTransparent /// static public Imaging.BitmapPalette WebPaletteTransparent { get { return BitmapPalettes.FromMILPaletteType(WICPaletteType.WICPaletteTypeFixedHalftone216, true); } } static internal Imaging.BitmapPalette FromMILPaletteType(WICPaletteType type, bool hasAlpha) { int key = (int)type; Debug.Assert(key < c_maxPalettes); Imaging.BitmapPalette palette; Imaging.BitmapPalette[] palettes; if (hasAlpha) { palettes = transparentPalettes; } else { palettes = opaquePalettes; } palette = palettes[key]; if (palette == null) { lock (palettes) { // palettes might have changed while waiting for the lock. // Need to check again. palette = palettes[key]; if (palette == null) { palette = new Imaging.BitmapPalette(type, hasAlpha); palettes[key] = palette; } } } return palette; } static private Imaging.BitmapPalette[] transparentPalettes { get { if (s_transparentPalettes == null) { s_transparentPalettes = new Imaging.BitmapPalette[c_maxPalettes]; } return s_transparentPalettes; } } static private Imaging.BitmapPalette[] opaquePalettes { get { if (s_opaquePalettes == null) { s_opaquePalettes = new Imaging.BitmapPalette[c_maxPalettes]; } return s_opaquePalettes; } } static private Imaging.BitmapPalette[] s_transparentPalettes; static private Imaging.BitmapPalette[] s_opaquePalettes; private const int c_maxPalettes = 64; } #endregion // Imaging.BitmapPalettes } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MILUtilities.cs
- XmlSchemaSimpleContentRestriction.cs
- AssociationSetEnd.cs
- PixelFormat.cs
- KeyEventArgs.cs
- Matrix3DValueSerializer.cs
- _HelperAsyncResults.cs
- OleDbMetaDataFactory.cs
- ComboBoxItem.cs
- Vector3DKeyFrameCollection.cs
- InteropTrackingRecord.cs
- NativeWindow.cs
- LocalClientSecuritySettings.cs
- DataControlExtensions.cs
- RightsManagementEncryptedStream.cs
- DataTableClearEvent.cs
- ImageList.cs
- ISCIIEncoding.cs
- ListDataHelper.cs
- Accessors.cs
- AvtEvent.cs
- XmlReturnReader.cs
- ImageMetadata.cs
- SocketException.cs
- ZipIOExtraFieldElement.cs
- SpotLight.cs
- TextPattern.cs
- EventKeyword.cs
- DriveInfo.cs
- FileDialogPermission.cs
- StringPropertyBuilder.cs
- ButtonBaseAdapter.cs
- Win32.cs
- EFTableProvider.cs
- XmlSchemaObjectTable.cs
- ReadOnlyTernaryTree.cs
- PathGradientBrush.cs
- SqlServer2KCompatibilityCheck.cs
- Stream.cs
- TransformerInfoCollection.cs
- FixedTextSelectionProcessor.cs
- MulticastDelegate.cs
- Bold.cs
- TreeNodeMouseHoverEvent.cs
- LineVisual.cs
- ToolStripHighContrastRenderer.cs
- AsymmetricAlgorithm.cs
- EpmContentSerializerBase.cs
- TdsParserStateObject.cs
- StructuralCache.cs
- SortedList.cs
- EventLogEntryCollection.cs
- MobileListItem.cs
- AuthenticationConfig.cs
- ChildrenQuery.cs
- DateTimeConstantAttribute.cs
- RightsManagementResourceHelper.cs
- WindowsFormsHost.cs
- WCFModelStrings.Designer.cs
- TextProperties.cs
- OperationParameterInfoCollection.cs
- DateTimeConverter2.cs
- BuildProvider.cs
- TransformedBitmap.cs
- ScriptResourceDefinition.cs
- UInt16Storage.cs
- XmlSchemaChoice.cs
- CodePageUtils.cs
- SimpleType.cs
- DrawingCollection.cs
- FormsAuthenticationEventArgs.cs
- WebScriptMetadataMessage.cs
- SelfIssuedSamlTokenFactory.cs
- ResXResourceReader.cs
- DEREncoding.cs
- FilterableAttribute.cs
- Line.cs
- X509CertificateValidator.cs
- HtmlImageAdapter.cs
- KeyValuePair.cs
- RegistrationServices.cs
- TextEffect.cs
- HuffmanTree.cs
- ZoneLinkButton.cs
- RadioButton.cs
- RangeBaseAutomationPeer.cs
- Underline.cs
- LinearGradientBrush.cs
- BitmapEffectGroup.cs
- FlowDocumentScrollViewer.cs
- DateTimeFormatInfoScanner.cs
- ElementAtQueryOperator.cs
- ProbeMatchesCD1.cs
- OracleParameterCollection.cs
- TemplateDefinition.cs
- RepeaterDataBoundAdapter.cs
- UserMapPath.cs
- DispatcherEventArgs.cs
- SocketAddress.cs
- AttributeConverter.cs