Exemplo n.º 1
0
        private static int GetRepeatCount(BitmapDecoder decoder)
        {
            BitmapMetadata applicationExtension = ImageBehavior.GetApplicationExtension(decoder, "NETSCAPE2.0");

            if (applicationExtension != null)
            {
                byte[] queryOrNull = applicationExtension.GetQueryOrNull <byte[]>("/Data");
                if (queryOrNull != null && queryOrNull.Length >= 4)
                {
                    return((int)BitConverter.ToUInt16(queryOrNull, 2));
                }
            }
            return(1);
        }
Exemplo n.º 2
0
        private static BitmapMetadata GetApplicationExtension(BitmapDecoder decoder, string application)
        {
            int    num   = 0;
            string query = "/appext";

            for (BitmapMetadata metadata = decoder.Metadata.GetQueryOrNull <BitmapMetadata>(query); metadata != null; metadata = decoder.Metadata.GetQueryOrNull <BitmapMetadata>(query))
            {
                byte[] queryOrNull = metadata.GetQueryOrNull <byte[]>("/Application");
                if ((queryOrNull != null) && (Encoding.ASCII.GetString(queryOrNull) == application))
                {
                    return(metadata);
                }
                query = $"/[{++num}]appext";
            }
            return(null);
        }
Exemplo n.º 3
0
        private static BitmapMetadata GetApplicationExtension(
            BitmapDecoder decoder,
            string application)
        {
            int    num    = 0;
            string query1 = "/appext";
            string query2;

            for (BitmapMetadata queryOrNull1 = decoder.Metadata.GetQueryOrNull <BitmapMetadata>(query1); queryOrNull1 != null; queryOrNull1 = decoder.Metadata.GetQueryOrNull <BitmapMetadata>(query2))
            {
                byte[] queryOrNull2 = queryOrNull1.GetQueryOrNull <byte[]>("/Application");
                if (queryOrNull2 != null && Encoding.ASCII.GetString(queryOrNull2) == application)
                {
                    return(queryOrNull1);
                }
                query2 = string.Format((IFormatProvider)CultureInfo.InvariantCulture, "/[{0}]appext", (object)++num);
            }
            return((BitmapMetadata)null);
        }
Exemplo n.º 4
0
        private static BitmapMetadata GetApplicationExtension(BitmapDecoder decoder, string application)
        {
            int            count     = 0;
            string         query     = "/appext";
            BitmapMetadata extension = decoder.Metadata.GetQueryOrNull <BitmapMetadata>(query);

            while (extension != null)
            {
                byte[] bytes = extension.GetQueryOrNull <byte[]>("/Application");
                if (bytes != null)
                {
                    string extApplication = Encoding.ASCII.GetString(bytes);
                    if (extApplication == application)
                    {
                        return(extension);
                    }
                }
                query     = string.Format("/[{0}]appext", ++count);
                extension = decoder.Metadata.GetQueryOrNull <BitmapMetadata>(query);
            }
            return(null);
        }