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
- ClientConfigurationHost.cs
- ServiceBehaviorElement.cs
- XComponentModel.cs
- CroppedBitmap.cs
- ToolStripSystemRenderer.cs
- HostingMessageProperty.cs
- ErrorFormatter.cs
- DataError.cs
- XmlToDatasetMap.cs
- RegexStringValidator.cs
- DataGridAutoFormatDialog.cs
- SortDescription.cs
- ConfigurationValues.cs
- GeneralTransform.cs
- List.cs
- PagePropertiesChangingEventArgs.cs
- Scheduler.cs
- SchemaImporterExtensionElementCollection.cs
- ProfileProvider.cs
- ProcessHostConfigUtils.cs
- ComponentResourceManager.cs
- VisualBrush.cs
- TextTreeInsertUndoUnit.cs
- DataGridViewRow.cs
- GridViewColumnCollection.cs
- ParserOptions.cs
- ConnectionPoint.cs
- ZipFileInfo.cs
- Faults.cs
- DataSourceHelper.cs
- EditorPartChrome.cs
- FormParameter.cs
- MouseOverProperty.cs
- SortQuery.cs
- IndexedString.cs
- SafeNativeMethods.cs
- EntityConnectionStringBuilder.cs
- ResourcePermissionBase.cs
- TagMapInfo.cs
- CollectionAdapters.cs
- SqlHelper.cs
- BaseTemplatedMobileComponentEditor.cs
- WorkflowControlClient.cs
- DictionaryContent.cs
- DesignerCommandAdapter.cs
- SoapUnknownHeader.cs
- HttpApplicationStateWrapper.cs
- CrossContextChannel.cs
- Light.cs
- AdornerPresentationContext.cs
- AuthenticationSection.cs
- ConnectionPointCookie.cs
- BuildManagerHost.cs
- DataRecordInternal.cs
- dbenumerator.cs
- RawTextInputReport.cs
- ContentElementAutomationPeer.cs
- OdbcTransaction.cs
- IisTraceWebEventProvider.cs
- OpCopier.cs
- ComponentRenameEvent.cs
- InvalidOleVariantTypeException.cs
- FixedSOMTableCell.cs
- CultureInfoConverter.cs
- CommandSet.cs
- SamlAudienceRestrictionCondition.cs
- RepeatBehaviorConverter.cs
- DynamicMethod.cs
- FormsAuthenticationCredentials.cs
- ProfilePropertySettingsCollection.cs
- CompareValidator.cs
- TypeResolver.cs
- VisualStyleInformation.cs
- SinglePageViewer.cs
- SHA1Managed.cs
- _CommandStream.cs
- ProfileServiceManager.cs
- XmlSchemaComplexContentRestriction.cs
- MonikerSyntaxException.cs
- Condition.cs
- Point4DValueSerializer.cs
- Constraint.cs
- WindowsSolidBrush.cs
- DesignerProperties.cs
- ComponentManagerBroker.cs
- SizeKeyFrameCollection.cs
- CoreSwitches.cs
- DynamicRendererThreadManager.cs
- SQLInt32.cs
- SiteMap.cs
- SocketManager.cs
- CornerRadius.cs
- MailBnfHelper.cs
- PrimarySelectionGlyph.cs
- Vector3D.cs
- LogExtent.cs
- FormClosedEvent.cs
- SqlProcedureAttribute.cs
- EdmSchemaError.cs
- X509UI.cs