Example #1
0
    public void Select(SemWeb.StatementSink sink)
    {
        FSpot.Tiff.Header exif = GetExifHeader();
        if (exif != null)
        {
            exif.Select(sink);
        }

        XmpFile xmp = GetXmp();

        if (xmp != null)
        {
            xmp.Select(sink);
        }

        string name = PhotoshopSignature.Name;

        JpegHeader.Marker marker = FindMarker(PhotoshopSignature);
        if (marker != null)
        {
            int len = name.Length;
            using (System.IO.Stream bimstream = new System.IO.MemoryStream(marker.Data, len, marker.Data.Length - len, false)) {
                FSpot.Bim.BimFile bim = new FSpot.Bim.BimFile(bimstream);
                bim.Select(sink);
            }
        }
    }
Example #2
0
        public void Select(SemWeb.StatementSink sink)
        {
            foreach (Entry e in entries)
            {
                EntryType type = (EntryType)e.Type;

                switch (type)
                {
                case EntryType.IPTCNAA:
                    System.IO.Stream    iptcstream = new System.IO.MemoryStream(e.Data);
                    FSpot.Iptc.IptcFile iptc       = new FSpot.Iptc.IptcFile(iptcstream);
                    iptc.Select(sink);
                    break;

                case EntryType.XMP:
                    System.IO.Stream  xmpstream = new System.IO.MemoryStream(e.Data);
                    FSpot.Xmp.XmpFile xmp       = new FSpot.Xmp.XmpFile(xmpstream);
                    xmp.Select(sink);
                    break;

                default:
                    break;
                }
            }
        }
Example #3
0
        public void Select(SemWeb.StatementSink sink)
        {
            byte []        data   = null;
            ImageDirectory props  = Root.ReadDirectory(Tag.ImageProps);
            ImageDirectory camera = props.ReadDirectory(Tag.CameraObject);

            data = props.ReadEntry(Tag.TimeStamp);
            if (data != null)
            {
                MetadataStore.AddLiteral(sink, "xmp:CreateDate", new CaptureTime(data, little).ToString());
            }

            data = props.ReadEntry(Tag.ImageSpec);
            if (data != null)
            {
                ImageSpec spec = new ImageSpec(data, little);
                MetadataStore.AddLiteral(sink, "tiff:Orientation", ((int)spec.Orientation).ToString());
                MetadataStore.AddLiteral(sink, "tiff:ImageWidth", spec.ImageWidth.ToString());
                MetadataStore.AddLiteral(sink, "tiff:ImageLength", spec.ImageHeight.ToString());
                string comp = spec.ComponentBitDepth.ToString();

                if (spec.IsColor)
                {
                    MetadataStore.Add(sink, "tiff:BitsPerSample", "rdf:Seq", new string [] { comp, comp, comp });
                }
                else
                {
                    MetadataStore.Add(sink, "tiff:BitsPerSample", "rdf:Seq", new string [] { comp });
                }

                if (!spec.HasSquarePixels)
                {
                    MetadataStore.AddLiteral(sink, "tiff:XResolution",
                                             (1000000 * spec.PixelAspectRatio).ToString());
                    MetadataStore.AddLiteral(sink, "tiff:YResolution",
                                             (1000000 * (1 / spec.PixelAspectRatio)).ToString());
                }
            }

            data = camera.ReadEntry(Tag.CanonRawMakeModel);
            if (data != null)
            {
                string    make_model = System.Text.Encoding.ASCII.GetString(data, 0, data.Length - 1);
                string [] vals       = make_model.Split(new char [] { '\0' });
                MetadataStore.AddLiteral(sink, "tiff:Make", vals [0]);
                MetadataStore.AddLiteral(sink, "tiff:Model", vals [1]);
            }

            /*
             * // FIXME this doesn't appear to be ascii.
             * data = camera.ReadEntry (Tag.OwnerName);
             * if (data != null) {
             *      string name = System.Text.Encoding.ASCII.GetString (data, 0, data.Length - 1);
             *      MetadataStore.AddLiteral (sink, "dc:creator", "rdf:Seq", new SemWeb.Literal (name));
             * }
             */
        }
Example #4
0
 public void Select(SemWeb.StatementSink sink)
 {
     byte [] data = GetEmbeddedJpeg();
     if (data != null)
     {
         System.IO.Stream stream = new System.IO.MemoryStream(data);
         JpegHeader       header = new JpegHeader(stream);
         header.Select(sink);
     }
 }
Example #5
0
 public void Select(SemWeb.StatementSink sink)
 {
     Header.Select(sink);
 }
Example #6
0
 public void Select(SemWeb.StatementSink sink)
 {
     Store.Select(sink);
 }