예제 #1
0
        /// <summary>
        /// Extracts an icon from a givin icon file or an executable module (.dll or an .exe file).
        /// </summary>
        /// <param name="fileName">The path of the icon file or the executable module.</param>
        /// <param name="iconIndex">The index of the icon in the executable module.</param>
        /// <returns>A System.Drawing.Icon extracted from the file at the specified index in case of an executable module.</returns>
        public static Icon ExtractIcon(string fileName, int iconIndex)
        {
            //Try to load the file as icon file.
            if (System.IO.Path.GetExtension(fileName).Equals(".ico", StringComparison.InvariantCultureIgnoreCase))
            {
                return(new Icon(fileName));
            }

            //Load the file as an executable module.
            using (IconExtractor extractor = new IconExtractor(fileName))
            {
                return(extractor.GetIconAt(iconIndex));
            }
        }
예제 #2
0
        /// <summary>
        /// Returns the number of icons in a file.
        /// </summary>
        /// <param name="fileName">The path to an .ico, .dll, or .exe file.</param>
        /// <returns></returns>
        public static int GetIconCount(string fileName)
        {
            //Try to load the file as icon file.
            if (System.IO.Path.GetExtension(fileName).Equals(".ico", StringComparison.InvariantCultureIgnoreCase))
            {
                return(1);
            }

            try
            {
                using (IconExtractor extractor = new IconExtractor(fileName))
                {
                    return(extractor.IconCount);
                }
            }
            catch { }

            return(0);
        }
예제 #3
0
        /// <summary>
        /// Extracts all the icons from a givin icon file or an executable module (.dll or an .exe file).
        /// </summary>
        /// <param name="fileName">The path of the icon file or the executable module.</param>
        /// <returns>
        /// A list of System.Drawing.Icon found in the file.
        /// If the file was an icon file, it will return a list containing a single icon.
        /// </returns>
        public static List <Icon> ExtractAllIcons(string fileName)
        {
            List <Icon> list = new List <Icon>();

            //Try to load the file as icon file.
            if (System.IO.Path.GetExtension(fileName).Equals(".ico", StringComparison.InvariantCultureIgnoreCase))
            {
                list.Add(new Icon(fileName));
                return(list);
            }

            //Load the file as an executable module.
            using (IconExtractor extractor = new IconExtractor(fileName))
            {
                for (int i = 0; i < extractor.IconCount; i++)
                {
                    list.Add(extractor.GetIconAt(i));
                }
            }
            return(list);
        }