Пример #1
0
        public static bool TryCreate(bool isIcon,
                                     ResourceLang lang,
                                     byte[]                          rawData,
                                     out IconCursorImageResourceData typed)
        {
            // rawData is an ICONIMAGE structure OR a PNG image

            // if it's a PNG image it's easy enough:
            if (PngImageResourceData.HasPngSignature(rawData))
            {
                if (!TryCreateImage(rawData, out var image))
                {
                    typed = null;
                    return(false);
                }

                typed = new IconCursorImageResourceData(image, lang, rawData)
                {
                    IsIcon = isIcon
                };
                return(true);
            }

            typed = new IconCursorImageResourceData(lang, rawData)
            {
                IsIcon = isIcon
            };
            return(true);
        }
Пример #2
0
        public override ResourceData FromResource(ResourceLang lang, byte[] data)
        {
            if (lang == null)
            {
                throw new ArgumentNullException(nameof(lang));
            }

            var isIcon = lang.Name.Type.Identifier.KnownType == Win32ResourceType.IconImage;

            return(IconCursorImageResourceData.TryCreate(isIcon, lang, data, out var rd) ? rd : null);
        }
Пример #3
0
 public IconCursorImageResourceData FromFileData(ResourceLang lang, byte[] data, bool isIcon)
 {
     return(IconCursorImageResourceData.TryCreate(isIcon, lang, data, out var rd) ? rd : null);
 }