Microsoft Face API
является услугой SaaS: вы не размещаете какие-либо ресурсы, используемые API в вашей собственной подписке. Итак, главное: нет данных, сохраненных в вашей базе данных Azure.
У вас не будет прямого доступа к ресурсам, на которых размещены метаданные, используемые для сохраненных лиц, все, что вы можете получить, - это данные, доступные через API: https://westus.dev.cognitive.microsoft.com/ docs / services / 563879b61984550e40cbbe8d / operations / 563879b61984550f30395236
Поэтому, если вы хотите получить ориентиры лица, вы можете получить их только во время вызова метода Detect
, который имеет следующие свойства: [1111 ]
Массив из 27 точечных ориентиров лица, указывающих на важные положения компонентов лица. Чтобы вернуть это, требуется, чтобы параметр "returnFaceLandmarks" имел значение true.
blockquote>В результате вы получите следующие предметы:
"faceLandmarks": { "pupilLeft": { "x": 412.7, "y": 78.4 }, "pupilRight": { "x": 446.8, "y": 74.2 }, "noseTip": { "x": 437.7, "y": 92.4 }, "mouthLeft": { "x": 417.8, "y": 114.4 }, "mouthRight": { "x": 451.3, "y": 109.3 }, "eyebrowLeftOuter": { "x": 397.9, "y": 78.5 }, "eyebrowLeftInner": { "x": 425.4, "y": 70.5 }, "eyeLeftOuter": { "x": 406.7, "y": 80.6 }, "eyeLeftTop": { "x": 412.2, "y": 76.2 }, "eyeLeftBottom": { "x": 413.0, "y": 80.1 }, "eyeLeftInner": { "x": 418.9, "y": 78.0 }, "eyebrowRightInner": { "x": 4.8, "y": 69.7 }, "eyebrowRightOuter": { "x": 5.5, "y": 68.5 }, "eyeRightInner": { "x": 441.5, "y": 75.0 }, "eyeRightTop": { "x": 446.4, "y": 71.7 }, "eyeRightBottom": { "x": 447.0, "y": 75.3 }, "eyeRightOuter": { "x": 451.7, "y": 73.4 }, "noseRootLeft": { "x": 428.0, "y": 77.1 }, "noseRootRight": { "x": 435.8, "y": 75.6 }, "noseLeftAlarTop": { "x": 428.3, "y": 89.7 }, "noseRightAlarTop": { "x": 442.2, "y": 87.0 }, "noseLeftAlarOutTip": { "x": 424.3, "y": 96.4 }, "noseRightAlarOutTip": { "x": 446.6, "y": 92.5 }, "upperLipTop": { "x": 437.6, "y": 105.9 }, "upperLipBottom": { "x": 437.6, "y": 108.2 }, "underLipTop": { "x": 436.8, "y": 111.4 }, "underLipBottom": { "x": 437.3, "y": 114.5 } },
Если вам понадобится использовать эти детали позже, если вы сохраните лицо, я могу предложить 2 варианта:
- размещают в вашей подписке базу данных, в которой вы будете хранить эти параметры и persistedFaceId
- или передаете эти значения в поле
userData
, когда сохраняете значения. Это поле:User-specified data about the face list for any purpose. The maximum length is 1KB
. Затем вы можете получить эти поля позже, используя метод Get
Существует [к сожалению], не "out-of-the поле" метод для выполнения этой операции в Grails|Groovy|Java
.
Кто-то всегда добавляет Joda-разовый любое время a java.util.Date
или java.util.Calendar
вопрос поднят, но включая еще одну библиотеку не всегда опция.
Последний раз, для подобной проблемы, мы создали a DateTimeUtil
класс с static
методы и что-то как следующее для получения a Date
только:
class DateTimeUtil {
// ...
public static Date getToday() {
return setMidnight(new Date())
}
public static Date getTomorrow() {
return (getToday() + 1) as Date
}
public static Date setMidnight(Date theDate) {
Calendar cal = Calendar.getInstance()
cal.setTime(theDate)
cal.set(Calendar.HOUR_OF_DAY, 0)
cal.set(Calendar.MINUTE, 0)
cal.set(Calendar.SECOND, 0)
cal.set(Calendar.MILLISECOND, 0)
cal.getTime()
}
//...
}
Затем в блоке проверки допустимости можно использовать
startDate(validator: {return (it.after(DateTimeUtil.today))}) //Groovy-ism - today implicitly invokes `getToday()`
Я взломал его:
startDate (блок проверки допустимости: {возвращаются (это> = новая Дата ()-1)}),
Это было это простое ;-)
Изменить представление на странице GSP:
<g:datePicker name="startDate" value="${trip?.startDate}" years="${years}" precision="day" />
Спасибо все для вклада
Попытайтесь использовать 'java.sql. Дата' не 'java.util. Дата' как тип Вашего свойства Date наряду с
formatDate
Цель
Позволяет форматирование java.util. Экземпляры даты с помощью тех же шаблонов определяются классом SimpleDateFormat.
Примеры
Описание
Атрибуты
* format (required) - The format to use for the date
* date (required) - The date object to format
Вы попытались использовать jodatime? Это делает работу с датой и временем в Java настолько легче.
Возможно,
startDate(validator: {d = new Date(); return (it..d) >= 0})