All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.drew.metadata.Face Maven / Gradle / Ivy

Go to download

This is a fork of com.drewnoakes' metadata-extractor that relocates com.adobe.internal to com.adobe. Java library for extracting EXIF, IPTC, XMP, ICC and other metadata from image and video files.

There is a newer version: 2.17.1.0
Show newest version
/*
 * Copyright 2002-2019 Drew Noakes and contributors
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 *
 * More information about this project is available at:
 *
 *    https://drewnoakes.com/code/exif/
 *    https://github.com/drewnoakes/metadata-extractor
 */
package com.drew.metadata;

import com.drew.lang.annotations.NotNull;
import com.drew.lang.annotations.Nullable;

/**
 * Class to hold information about a detected or recognized face in a photo.
 * 

* When a face is detected, the camera believes that a face is present at a given location in * the image, but is not sure whose face it is. When a face is recognised, then the face is * both detected and identified as belonging to a known person. * * @author Philipp Sandhaus, Drew Noakes */ public class Face { private final int _x; private final int _y; private final int _width; private final int _height; @Nullable private final String _name; @Nullable private final Age _age; public Face(int x, int y, int width, int height, @Nullable String name, @Nullable Age age) { _x = x; _y = y; _width = width; _height = height; _name = name; _age = age; } public int getX() { return _x; } public int getY() { return _y; } public int getWidth() { return _width; } public int getHeight() { return _height; } @Nullable public String getName() { return _name; } @Nullable public Age getAge() { return _age; } @Override public boolean equals(@Nullable Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Face face = (Face)o; if (_height != face._height) return false; if (_width != face._width) return false; if (_x != face._x) return false; if (_y != face._y) return false; if (_age != null ? !_age.equals(face._age) : face._age != null) return false; if (_name != null ? !_name.equals(face._name) : face._name != null) return false; return true; } @Override public int hashCode() { int result = _x; result = 31 * result + _y; result = 31 * result + _width; result = 31 * result + _height; result = 31 * result + (_name != null ? _name.hashCode() : 0); result = 31 * result + (_age != null ? _age.hashCode() : 0); return result; } @Override @NotNull public String toString() { StringBuilder result = new StringBuilder(); result.append("x: ").append(_x); result.append(" y: ").append(_y); result.append(" width: ").append(_width); result.append(" height: ").append(_height); if (_name != null) result.append(" name: ").append(_name); if (_age != null) result.append(" age: ").append(_age.toFriendlyString()); return result.toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy