/** * Literal value set/get methods * @throws XmpException */ private static void CoverLiteralProperties() { writeMajorLabel("Test SetProperty... and getProperty... methods " + "(set/get with literal values)"); var meta = XmpMetaFactory.ParseFromString(TestData.DATETIME_RDF); var dateValue = XmpDateTimeFactory.Create(2000, 1, 2, 3, 4, 5, 0); meta.SetPropertyBoolean(TestData.NS1, "Bool0", false); meta.SetPropertyBoolean(TestData.NS1, "Bool1", true); meta.SetPropertyInteger(TestData.NS1, "Int", 42); meta.SetPropertyDouble(TestData.NS1, "Double", 4.2); meta.SetPropertyDate(TestData.NS1, "Date10", dateValue); /* * TODO reinstate this code * * int offset = (/* hour #1# 06 * 3600 * 1000 + /* minute #1# 07 * 60 * 1000) * /* sign #1# 1; * dateValue.SetTimeZone(new SimpleTimeZone(offset, "test")); * meta.SetPropertyDate (NS1, "Date11", dateValue); * offset *= -1; * dateValue.SetTimeZone(new SimpleTimeZone(offset, "test")); * meta.SetPropertyDate (NS1, "Date12", dateValue); * dateValue.SetNanosecond(9); * meta.SetPropertyDate (NS1, "Date13", dateValue); */ printXmpMeta(meta, "A few basic binary Set... calls"); log.WriteLine(); bool b = meta.GetPropertyBoolean(TestData.NS1, "Bool0"); log.WriteLine("getPropertyBoolean ns1:Bool0 = " + b); b = meta.GetPropertyBoolean(TestData.NS1, "Bool1"); log.WriteLine("getPropertyBoolean ns1:Bool1 = " + b); int integer = meta.GetPropertyInteger(TestData.NS1, "Int"); log.WriteLine("getPropertyBoolean ns1:Int = " + integer); double d = meta.GetPropertyDouble(TestData.NS1, "Double"); log.WriteLine("getPropertyBoolean ns1:Int = " + d); log.WriteLine(); for (int i = 1; i <= 13; i++) { var dateName = "Date" + i; var dt = meta.GetPropertyDate(TestData.NS1, dateName); log.WriteLine("getPropertyDate (" + i + ") = " + dt); meta.SetPropertyDate(TestData.NS2, dateName, dateValue); } printXmpMeta(meta, "Get and re-set the dates in NS2"); }
internal static IXmpMeta Get(ImageDetails details) { var xmp = XmpMetaFactory.Create(); var idNs = "https://id.parliament.uk/"; var schemaNs = $"{idNs}schema/"; XmpMetaFactory.SchemaRegistry.RegisterNamespace(idNs, "id"); XmpMetaFactory.SchemaRegistry.RegisterNamespace(schemaNs, "schema"); xmp.SetProperty(XmpConstants.NsIptccore, "CiAdrCity", "London"); xmp.SetProperty(XmpConstants.NsIptccore, "CiAdrCtry", "UK"); xmp.SetProperty(XmpConstants.NsIptccore, "CiAdrRegion", "London"); xmp.SetProperty(XmpConstants.NsIptccore, "CiEmailWork", "*****@*****.**"); xmp.SetProperty(XmpConstants.NsIptccore, "CiTelWork", "+447740424810"); xmp.SetProperty(XmpConstants.NsIptccore, "CiUrlWork", "http://www.mcandrewphoto.co.uk"); xmp.SetProperty(XmpConstants.NsPhotoshop, "Source", "Chris McAndrew / UK Parliament"); xmp.SetProperty(XmpConstants.NsPhotoshop, "Credit", "Chris McAndrew / UK Parliament (Attribution 3.0 Unported (CC BY 3.0))"); xmp.SetPropertyDate(XmpConstants.NsPhotoshop, "DateCreated", XmpDateTimeFactory.Create(2017, 6, 17, 11, 30, 41, 0)); xmp.SetProperty(XmpConstants.NsDC, "rights", "Attribution 3.0 Unported (CC BY 3.0)"); xmp.SetProperty(XmpConstants.NsDC, "title", $"{details.GivenName} {details.FamilyName}"); xmp.SetProperty(XmpConstants.NsDC, "description", $"{details.GivenName} {details.FamilyName} - UK Parliament official portraits 2017"); xmp.SetProperty(XmpConstants.NsDC, "creator", "Chris McAndrew / UK Parliament"); // <rdf:Description rdf:about="http://id.parliament.uk/IMAGE1" /> xmp.SetObjectName($"{idNs}{details.Id}"); // id:IMAGE1 a schema:Image xmp.SetProperty(XmpConstants.NsRdf, "type", $"{schemaNs}Image", new PropertyOptions { IsUri = true }); // id:IMAGE1 schema:parlHasSubject id:PERSON1 xmp.SetProperty(schemaNs, "imageHasSubject", details.MemberUri, new PropertyOptions { IsUri = true }); // id:PERSON1 a schema:Person xmp.SetQualifier(schemaNs, "imageHasSubject", XmpConstants.NsRdf, "type", $"{schemaNs}Person", new PropertyOptions { IsUri = true }); return(xmp); }
/** * Date/Time utilities */ private static void CoverDateTime() { writeMajorLabel("Test date/time utilities and special values"); var date1 = XmpDateTimeFactory.Create(2000, 1, 31, 12, 34, 56, -1); date1.TimeZone = TimeZoneInfo.FindSystemTimeZoneById("PST"); var date2 = XmpDateTimeFactory.Create(0, 0, 0, 0, 0, 0, 0); GregorianCalendar cal = new GregorianCalendar(2007, 1, 28); var date3 = XmpDateTimeFactory.CreateFromCalendar(cal); var currentDateTime = XmpDateTimeFactory.GetCurrentDateTime(); log.WriteLine("Print date 2000 Jan 31 12:34:56 PST = {0}", date1); log.WriteLine("Print zero date = {0}", date2); log.WriteLine("Print date created by a calendar = {0}", date3); log.WriteLine("Print current date = {0}", currentDateTime); log.WriteLine(); }