public void Empty () { FrameDimension fd = new FrameDimension (Guid.Empty); Assert.AreEqual ("00000000-0000-0000-0000-000000000000", fd.Guid.ToString (), "Guid"); Assert.AreEqual (Guid.Empty.GetHashCode (), fd.GetHashCode (), "GetHashCode"); Assert.AreEqual ("[FrameDimension: 00000000-0000-0000-0000-000000000000]", fd.ToString (), "ToString"); Assert.IsTrue (fd.Equals (new FrameDimension (Guid.Empty)), "Equals(Empty)"); Assert.IsFalse (fd.Equals (null), "Equals(null)"); }
public void Equals () { FrameDimension fd = new FrameDimension (new Guid ("7462dc86-6180-4c7e-8e3f-ee7333a7a483")); // equals Assert.IsTrue (fd.Equals (FrameDimension.Page), "Page"); // but ToString differs! Assert.AreEqual ("[FrameDimension: 7462dc86-6180-4c7e-8e3f-ee7333a7a483]", fd.ToString (), "ToString"); }
internal static void EnsureSave(Image image, string filename, Stream dataStream) { if (image.RawFormat.Equals(ImageFormat.Gif)) { bool animatedGif = false; Guid[] dimensions = image.FrameDimensionsList; foreach (Guid guid in dimensions) { FrameDimension dimension = new FrameDimension(guid); if (dimension.Equals(FrameDimension.Time)) { animatedGif = image.GetFrameCount(FrameDimension.Time) > 1; break; } } if (animatedGif) { try { Stream created = null; long lastPos = 0; if (dataStream != null) { lastPos = dataStream.Position; dataStream.Position = 0; } try { if (dataStream == null) { created = dataStream = File.OpenRead(filename); } image.rawData = new byte[(int)dataStream.Length]; dataStream.Read(image.rawData, 0, (int)dataStream.Length); } finally { if (created != null) { created.Close(); } else { dataStream.Position = lastPos; } } } // possible exceptions for reading the filename catch (UnauthorizedAccessException) { } catch (DirectoryNotFoundException) { } catch (IOException) { } // possible exceptions for setting/getting the position inside dataStream catch (NotSupportedException) { } catch (ObjectDisposedException) { } // possible exception when reading stuff into dataStream catch (ArgumentException) { } } } }
/// <devdoc> /// Whether or not the image has multiple time-based frames. /// </devdoc> public static bool CanAnimate(Image image) { if( image == null ) { return false; } // See comment in the class header about locking the image ref. lock( image ) { Guid[] dimensions = image.FrameDimensionsList; foreach (Guid guid in dimensions) { FrameDimension dimension = new FrameDimension(guid); if (dimension.Equals(FrameDimension.Time)) { return image.GetFrameCount(FrameDimension.Time) > 1; } } } return false; }
internal static void EnsureSave(Image image, string filename, Stream dataStream) { if (image.RawFormat.Equals(ImageFormat.Gif)) { bool flag = false; foreach (Guid guid in image.FrameDimensionsList) { FrameDimension dimension = new FrameDimension(guid); if (dimension.Equals(FrameDimension.Time)) { flag = image.GetFrameCount(FrameDimension.Time) > 1; break; } } if (flag) { try { Stream stream = null; long position = 0L; if (dataStream != null) { position = dataStream.Position; dataStream.Position = 0L; } try { if (dataStream == null) { stream = dataStream = File.OpenRead(filename); } image.rawData = new byte[(int) dataStream.Length]; dataStream.Read(image.rawData, 0, (int) dataStream.Length); } finally { if (stream != null) { stream.Close(); } else { dataStream.Position = position; } } } catch (UnauthorizedAccessException) { } catch (DirectoryNotFoundException) { } catch (IOException) { } catch (NotSupportedException) { } catch (ObjectDisposedException) { } catch (ArgumentException) { } } } }
public static bool CanAnimate(Image image) { if (image != null) { lock (image) { foreach (Guid guid in image.FrameDimensionsList) { FrameDimension dimension = new FrameDimension(guid); if (dimension.Equals(FrameDimension.Time)) { return (image.GetFrameCount(FrameDimension.Time) > 1); } } } } return false; }