Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Imaging / BitmapPalettes.cs / 1305600 / 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
- ConnectionPointGlyph.cs
- StoragePropertyMapping.cs
- MappingException.cs
- AutomationPropertyInfo.cs
- XNodeNavigator.cs
- WCFBuildProvider.cs
- ListControl.cs
- ResourceSetExpression.cs
- Expander.cs
- InlinedLocationReference.cs
- NavigationProgressEventArgs.cs
- DataService.cs
- Block.cs
- CollectionViewGroupInternal.cs
- CorrelationResolver.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ViewGenResults.cs
- VBCodeProvider.cs
- WindowsNonControl.cs
- MulticastIPAddressInformationCollection.cs
- CreateUserWizardDesigner.cs
- UnsafeNativeMethods.cs
- TerminatorSinks.cs
- OrderedDictionary.cs
- Pointer.cs
- XmlILConstructAnalyzer.cs
- MinimizableAttributeTypeConverter.cs
- IsolatedStorageFilePermission.cs
- EpmCustomContentWriterNodeData.cs
- GenericTypeParameterBuilder.cs
- OleDbMetaDataFactory.cs
- CombinedGeometry.cs
- Lease.cs
- ConsoleEntryPoint.cs
- X509SecurityTokenAuthenticator.cs
- CompressEmulationStream.cs
- XamlFxTrace.cs
- Brush.cs
- _SslState.cs
- UrlMapping.cs
- NonParentingControl.cs
- PolicyUnit.cs
- PropertyGroupDescription.cs
- WorkflowMarkupSerializerMapping.cs
- IncrementalHitTester.cs
- SafeMemoryMappedFileHandle.cs
- DBConcurrencyException.cs
- GenerateTemporaryAssemblyTask.cs
- Viewport3DAutomationPeer.cs
- DataGridItem.cs
- RegexWriter.cs
- NodeLabelEditEvent.cs
- Inline.cs
- ExceptionUtil.cs
- util.cs
- SelectionPatternIdentifiers.cs
- DateTimeConverter.cs
- UnsafeNativeMethods.cs
- ProviderIncompatibleException.cs
- TypeDescriptor.cs
- XmlSerializationReader.cs
- mediaeventshelper.cs
- DataPointer.cs
- CodeNamespaceImport.cs
- BufferedGraphicsContext.cs
- ParseElementCollection.cs
- CodeNamespaceImportCollection.cs
- EntityCommandDefinition.cs
- MaterialGroup.cs
- CodeSnippetStatement.cs
- CfgRule.cs
- EntryPointNotFoundException.cs
- APCustomTypeDescriptor.cs
- WhitespaceRuleLookup.cs
- PersonalizationProviderHelper.cs
- DataViewManagerListItemTypeDescriptor.cs
- coordinatorfactory.cs
- TogglePatternIdentifiers.cs
- LoginViewDesigner.cs
- DataBindingExpressionBuilder.cs
- SqlConnectionString.cs
- SettingsPropertyNotFoundException.cs
- GACIdentityPermission.cs
- ColorTranslator.cs
- FolderBrowserDialog.cs
- TiffBitmapEncoder.cs
- PrintingPermissionAttribute.cs
- IdentitySection.cs
- FormViewDesigner.cs
- BackgroundWorker.cs
- x509utils.cs
- ResumeStoryboard.cs
- TraceSection.cs
- GlyphRunDrawing.cs
- WebBrowserHelper.cs
- NetSectionGroup.cs
- ItemChangedEventArgs.cs
- IFormattable.cs
- XmlILIndex.cs
- SevenBitStream.cs