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); }
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); }
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); }
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); }