ImageSource.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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 / ImageSource.cs / 1 / 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
 
        /// 
        /// Derived classes must override this method and update realizations on dependent 
        /// resources if required. 
        /// 
        internal virtual void UpdateRealizations(RealizationContext ctx) 
        {
            return;
        }
 
        /// 
        /// 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
 
        /// 
        /// Derived classes must override this method and update realizations on dependent 
        /// resources if required. 
        /// 
        internal virtual void UpdateRealizations(RealizationContext ctx) 
        {
            return;
        }
 
        /// 
        /// 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

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