示例#1
0
        /// <summary>Tries the get color contexts.</summary>
        /// <param name="getColorContexts">The get color contexts.</param>
        /// <param name="imagingFactory">The imaging factory.</param>
        /// <param name="colorContexts">The color contexts.</param>
        /// <returns>Result.</returns>
        internal static Result TryGetColorContexts(ColorContextsProvider getColorContexts, ImagingFactory imagingFactory, out ColorContext[] colorContexts)
        {
            colorContexts = null;

            int    count;
            Result result = getColorContexts(0, null, out count);

            if (result.Success)
            {
                colorContexts = new ColorContext[count];

                if (count > 0)
                {
                    // http://msdn.microsoft.com/en-us/library/windows/desktop/ee690135(v=vs.85).aspx
                    // The ppIColorContexts array must be filled with valid data: each IWICColorContext* in the array must
                    // have been created using IWICImagingFactory::CreateColorContext.

                    for (int i = 0; i < count; i++)
                    {
                        colorContexts[i] = new ColorContext(imagingFactory);
                    }
                    int actualCount;
                    getColorContexts(count, colorContexts, out actualCount);
                    Debug.Assert(count == actualCount);
                }
            }

            return(result);
        }
示例#2
0
 internal static ColorContext[] GetColorContexts(ColorContextsProvider getColorContexts, ImagingFactory imagingFactory)
 {
     ColorContext[] colorContexts;
     Result result = TryGetColorContexts(getColorContexts, imagingFactory, out colorContexts);
     result.CheckError();
     return colorContexts;
 }
示例#3
0
        internal static Result TryGetColorContexts(ColorContextsProvider getColorContexts, ImagingFactory imagingFactory, out ColorContext[] colorContexts)
        {
            colorContexts = null;

            int count;
            Result result = getColorContexts(0, null, out count);

            if (result.Success)
            {
                colorContexts = new ColorContext[count];

                if (count > 0)
                {
                    // http://msdn.microsoft.com/en-us/library/windows/desktop/ee690135(v=vs.85).aspx
                    // The ppIColorContexts array must be filled with valid data: each IWICColorContext* in the array must 
                    // have been created using IWICImagingFactory::CreateColorContext.

                    for (int i = 0; i < count; i++)
                        colorContexts[i] = new ColorContext(imagingFactory);
                    int actualCount;
                    getColorContexts(count, colorContexts, out actualCount);
                    Debug.Assert(count == actualCount);
                }
            }

            return result;
        }
示例#4
0
        /// <summary>Gets the color contexts.</summary>
        /// <param name="getColorContexts">The get color contexts.</param>
        /// <param name="imagingFactory">The imaging factory.</param>
        /// <returns>ColorContext[][].</returns>
        internal static ColorContext[] GetColorContexts(ColorContextsProvider getColorContexts, ImagingFactory imagingFactory)
        {
            ColorContext[] colorContexts;
            Result         result = TryGetColorContexts(getColorContexts, imagingFactory, out colorContexts);

            result.CheckError();
            return(colorContexts);
        }
示例#5
0
        internal static ColorContext[] TryGetColorContexts(ColorContextsProvider getColorContexts, ImagingFactory imagingFactory)
        {
            ColorContext[] colorContexts;
            Result result = TryGetColorContexts(getColorContexts, imagingFactory, out colorContexts);

            if (ResultCode.UnsupportedOperation != result)
                result.CheckError();

            return colorContexts;
        }
示例#6
0
        /// <summary>Tries the get color contexts.</summary>
        /// <param name="getColorContexts">The get color contexts.</param>
        /// <param name="imagingFactory">The imaging factory.</param>
        /// <returns>ColorContext[][].</returns>
        internal static ColorContext[] TryGetColorContexts(ColorContextsProvider getColorContexts, ImagingFactory imagingFactory)
        {
            ColorContext[] colorContexts;
            Result         result = TryGetColorContexts(getColorContexts, imagingFactory, out colorContexts);

            if (ResultCode.UnsupportedOperation != result)
            {
                result.CheckError();
            }

            return(colorContexts);
        }