Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / ImageSource.cs / 1305600 / ImageSource.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved. // // File: ImageSource.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.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using MS.Win32; namespace System.Windows.Media { #region ImageSource ////// Interface for Bitmap Sources, included decoders and effects /// [TypeConverter(typeof(System.Windows.Media.ImageSourceConverter))] [ValueSerializer(typeof(ImageSourceValueSerializer))] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public abstract partial class ImageSource : Animatable { #region Constructor ////// Don't allow 3rd party extensibility. /// internal ImageSource() { } #endregion Constructor ////// Get the width of the image in measure units (96ths of an inch). /// abstract public double Width { get; } ////// Get the height of the image in measure units (96ths of an inch). /// abstract public double Height { get; } ////// Get the metadata associated with this image source /// abstract public ImageMetadata Metadata { get; } ////// Get the Size associated with this image source /// internal virtual Size Size { get { return new Size(Width, Height); } } #region ToInstanceDescriptor ////// Can serialze "this" to a string /// internal virtual bool CanSerializeToString() { return false; } #endregion ////// Converts pixels to DIPs in a way consistent with MIL. Protected here is okay /// because ImageSource isn't extensible by 3rd parties. /// protected static double PixelsToDIPs(double dpi, int pixels) { // Obtain the natural size in MIL Device Independant Pixels (DIPs, or 1/96") of the bitmap. // This is: (Bitmap Pixels) / (Bitmap DotsPerInch) * (DIPs per inch) float dpif = (float)dpi; // To be consistent with BitmapBrush // // Floating-point precision is used to maintain consistent // logic with BitmapBrush DPI scaling, which is implemented in // unmanaged code using single-precision math. Any changes to // this logic must also be updated in the UCE BitmapBrush // resource to maintain this consistency. if (dpif < 0.0F || FloatUtil.IsCloseToDivideByZero(96.0F, dpif)) { dpif = 96.0F; } return (double)(pixels * (96.0F / dpif)); } } #endregion // ImageSource } // 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: ImageSource.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.Security; using System.Security.Permissions; using System.Runtime.InteropServices; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using MS.Win32; namespace System.Windows.Media { #region ImageSource ////// Interface for Bitmap Sources, included decoders and effects /// [TypeConverter(typeof(System.Windows.Media.ImageSourceConverter))] [ValueSerializer(typeof(ImageSourceValueSerializer))] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public abstract partial class ImageSource : Animatable { #region Constructor ////// Don't allow 3rd party extensibility. /// internal ImageSource() { } #endregion Constructor ////// Get the width of the image in measure units (96ths of an inch). /// abstract public double Width { get; } ////// Get the height of the image in measure units (96ths of an inch). /// abstract public double Height { get; } ////// Get the metadata associated with this image source /// abstract public ImageMetadata Metadata { get; } ////// Get the Size associated with this image source /// internal virtual Size Size { get { return new Size(Width, Height); } } #region ToInstanceDescriptor ////// Can serialze "this" to a string /// internal virtual bool CanSerializeToString() { return false; } #endregion ////// Converts pixels to DIPs in a way consistent with MIL. Protected here is okay /// because ImageSource isn't extensible by 3rd parties. /// protected static double PixelsToDIPs(double dpi, int pixels) { // Obtain the natural size in MIL Device Independant Pixels (DIPs, or 1/96") of the bitmap. // This is: (Bitmap Pixels) / (Bitmap DotsPerInch) * (DIPs per inch) float dpif = (float)dpi; // To be consistent with BitmapBrush // // Floating-point precision is used to maintain consistent // logic with BitmapBrush DPI scaling, which is implemented in // unmanaged code using single-precision math. Any changes to // this logic must also be updated in the UCE BitmapBrush // resource to maintain this consistency. if (dpif < 0.0F || FloatUtil.IsCloseToDivideByZero(96.0F, dpif)) { dpif = 96.0F; } return (double)(pixels * (96.0F / dpif)); } } #endregion // ImageSource } // 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
- EntryPointNotFoundException.cs
- x509store.cs
- TimerElapsedEvenArgs.cs
- TrustSection.cs
- MissingMethodException.cs
- FileSystemWatcher.cs
- SimpleExpression.cs
- Region.cs
- SmiMetaDataProperty.cs
- ParentQuery.cs
- MethodExpression.cs
- WebCategoryAttribute.cs
- WebPartDisplayModeCancelEventArgs.cs
- IdentityModelDictionary.cs
- HitTestParameters3D.cs
- TypeDescriptionProvider.cs
- DynamicVirtualDiscoSearcher.cs
- LowerCaseStringConverter.cs
- ComponentEditorPage.cs
- ZoomingMessageFilter.cs
- CodeCatchClauseCollection.cs
- EmptyControlCollection.cs
- RawMouseInputReport.cs
- ThreadStateException.cs
- Publisher.cs
- FontFamilyValueSerializer.cs
- HttpApplicationFactory.cs
- ViewValidator.cs
- DPCustomTypeDescriptor.cs
- Root.cs
- HuffmanTree.cs
- SqlInternalConnectionSmi.cs
- TextModifierScope.cs
- COM2IPerPropertyBrowsingHandler.cs
- CodeRegionDirective.cs
- RSAProtectedConfigurationProvider.cs
- LocationSectionRecord.cs
- KeyInterop.cs
- DrawingDrawingContext.cs
- DiscoveryDocument.cs
- DesignerEditorPartChrome.cs
- CustomCredentialPolicy.cs
- XmlSchemaDatatype.cs
- EnumDataContract.cs
- SecurityContext.cs
- XmlDataSource.cs
- PeerToPeerException.cs
- WebPartMenu.cs
- XmlSchemaExternal.cs
- DropSource.cs
- AuthenticationConfig.cs
- BoundsDrawingContextWalker.cs
- XmlTextEncoder.cs
- BindingWorker.cs
- AlgoModule.cs
- PhysicalAddress.cs
- ThemeInfoAttribute.cs
- CustomError.cs
- TextElementCollectionHelper.cs
- Literal.cs
- SqlResolver.cs
- FormatterServices.cs
- RealProxy.cs
- MostlySingletonList.cs
- SmiGettersStream.cs
- GlobalizationSection.cs
- ControlOperationInvoker.cs
- PasswordTextContainer.cs
- StringUtil.cs
- SqlRowUpdatedEvent.cs
- ResumeStoryboard.cs
- InputLanguageManager.cs
- CrossAppDomainChannel.cs
- SystemNetworkInterface.cs
- WithStatement.cs
- SqlUserDefinedTypeAttribute.cs
- FunctionQuery.cs
- InstanceData.cs
- DynamicResourceExtension.cs
- XmlAttributeAttribute.cs
- ICollection.cs
- documentsequencetextview.cs
- CrossAppDomainChannel.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- WebPartVerbCollection.cs
- AssemblyAttributes.cs
- ValidatorUtils.cs
- ReadOnlyHierarchicalDataSource.cs
- RMEnrollmentPage2.cs
- MSHTMLHostUtil.cs
- SystemInfo.cs
- CodeValidator.cs
- ImageList.cs
- Graphics.cs
- XmlDataImplementation.cs
- ClockGroup.cs
- HostedHttpContext.cs
- ProjectionCamera.cs
- SqlCharStream.cs
- ColumnBinding.cs