예제 #1
0
        public void Save()
        {
            string     in_path  = CreateFile();
            string     out_path = ImageFile.TempPath("output.jpg");
            JpegHeader source;
            JpegHeader dest;

            using (Stream orig = File.OpenRead(in_path)) {
                source = new JpegHeader(orig);

                using (Stream output = File.OpenWrite(out_path)) {
                    source.Save(output);
                }

                using (Stream result = File.OpenRead(out_path)) {
                    dest = new JpegHeader(result);

                    Assert.AreEqual(source.Markers.Count, dest.Markers.Count);
                    Assert.AreEqual(source.GuessQuality(), dest.GuessQuality());
                    Assert.AreEqual(orig.Length, result.Length);
                    for (int i = 0; i < source.Markers.Count; i++)
                    {
                        Marker d = (Marker)dest.Markers [i];
                        Marker s = (Marker)source.Markers [i];

                        Assert.AreEqual(d.Type, s.Type);
                        Assert.AreEqual(d.GetName(), s.GetName());

                        if (d.Data != null)
                        {
                            Assert.AreEqual(d.Data.Length, s.Data.Length);

                            for (int j = 0; j < d.Data.Length; j++)
                            {
                                Assert.AreEqual(d.Data [j], s.Data [j]);
                            }
                        }
                        else
                        {
                            Assert.AreEqual(d.Data, s.Data);
                        }
                    }
                }
            }

            File.Delete(in_path);
            File.Delete(out_path);
        }
예제 #2
0
        public void Load()
        {
            string path = CreateFile();

            using (Stream stream = File.OpenRead(path)) {
                JpegHeader jhead = new JpegHeader(stream);

                Assert.AreEqual(((Marker)jhead.Markers [0]).Type, JpegMarker.Soi);
                Assert.AreEqual(((Marker)jhead.Markers [1]).GetName(), "JFIF");
                Assert.AreEqual(((Marker)jhead.Markers [1]).Type, JpegMarker.App0);
                Assert.AreEqual(((Marker)jhead.Markers [2]).GetName(), "Exif");
                Assert.AreEqual(((Marker)jhead.Markers [2]).Type, JpegMarker.App1);

                // NOTE the currently we don't store the Eoi as the last marker
                Assert.AreEqual(((Marker)jhead.Markers [jhead.Markers.Count - 1]).Type, JpegMarker.Sos);

                // NOTE this is kind of sill but it might help
                Assert.IsTrue(Math.Abs(jhead.GuessQuality() - quality) <= 1);

                Assert.IsNotNull(jhead.GetExifHeader());
            }

            File.Delete(path);
        }
예제 #3
0
		public void Save ()
		{
			string in_path = CreateFile ();
			string out_path = ImageFile.TempPath ("output.jpg");
			JpegHeader source;
			JpegHeader dest;

			using (Stream orig = File.OpenRead (in_path)) {
				source = new JpegHeader (orig);
				
				using (Stream output = File.OpenWrite (out_path)) {
					source.Save (output);
				}

				using (Stream result = File.OpenRead (out_path)) {
					dest = new JpegHeader (result);
					
					Assert.AreEqual (source.Markers.Count, dest.Markers.Count);
					Assert.AreEqual (source.GuessQuality (), dest.GuessQuality ());
					Assert.AreEqual (orig.Length, result.Length);
					for (int i = 0; i < source.Markers.Count; i++) {
						Marker d = (Marker) dest.Markers [i];
						Marker s = (Marker) source.Markers [i];

						Assert.AreEqual (d.Type, s.Type);
						Assert.AreEqual (d.GetName (), s.GetName ());

						if (d.Data != null) {
							Assert.AreEqual (d.Data.Length, s.Data.Length);
						
							for (int j = 0; j < d.Data.Length; j++) {
								Assert.AreEqual (d.Data [j], s.Data [j]);
							}
						} else {
							Assert.AreEqual (d.Data, s.Data);
						}
					}
				}
			}

			File.Delete (in_path);
			File.Delete (out_path);
		}
예제 #4
0
		public void Load ()
		{
			string path = CreateFile ();

			using (Stream stream = File.OpenRead (path)) {
				JpegHeader jhead = new JpegHeader (stream);

				Assert.AreEqual (((Marker)jhead.Markers [0]).Type, JpegMarker.Soi);
				Assert.AreEqual (((Marker)jhead.Markers [1]).GetName (), "JFIF");
				Assert.AreEqual (((Marker)jhead.Markers [1]).Type, JpegMarker.App0);
				Assert.AreEqual (((Marker)jhead.Markers [2]).GetName (), "Exif");
				Assert.AreEqual (((Marker)jhead.Markers [2]).Type, JpegMarker.App1);

				// NOTE the currently we don't store the Eoi as the last marker
				Assert.AreEqual (((Marker)jhead.Markers [jhead.Markers.Count -1]).Type, JpegMarker.Sos);

				// NOTE this is kind of sill but it might help
				Assert.IsTrue (Math.Abs (jhead.GuessQuality () - quality) <= 1);

				Assert.IsNotNull (jhead.GetExifHeader ());
			}

			File.Delete (path);
		}