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

com.drew.metadata.exif.PentaxMakernoteDescriptor Maven / Gradle / Ivy

Go to download

Java library for extracting EXIF, IPTC, XMP, ICC and other metadata from image files.

There is a newer version: 2.19.0
Show newest version
/*
 * Copyright 2002-2012 Drew Noakes
 *
 *    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:
 *
 *    http://drewnoakes.com/code/exif/
 *    http://code.google.com/p/metadata-extractor/
 */
package com.drew.metadata.exif;

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

/**
 * Provides human-readable string representations of tag values stored in a PentaxMakernoteDirectory.
 * 

* Some information about this makernote taken from here: * http://www.ozhiker.com/electronics/pjmt/jpeg_info/pentax_mn.html * * @author Drew Noakes http://drewnoakes.com */ public class PentaxMakernoteDescriptor extends TagDescriptor { public PentaxMakernoteDescriptor(@NotNull PentaxMakernoteDirectory directory) { super(directory); } @Nullable public String getDescription(int tagType) { switch (tagType) { case PentaxMakernoteDirectory.TAG_PENTAX_CAPTURE_MODE: return getCaptureModeDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_QUALITY_LEVEL: return getQualityLevelDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_FOCUS_MODE: return getFocusModeDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_FLASH_MODE: return getFlashModeDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_WHITE_BALANCE: return getWhiteBalanceDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_DIGITAL_ZOOM: return getDigitalZoomDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_SHARPNESS: return getSharpnessDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_CONTRAST: return getContrastDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_SATURATION: return getSaturationDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_ISO_SPEED: return getIsoSpeedDescription(); case PentaxMakernoteDirectory.TAG_PENTAX_COLOUR: return getColourDescription(); default: return super.getDescription(tagType); } } @Nullable public String getColourDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_COLOUR); if (value==null) return null; switch (value) { case 1: return "Normal"; case 2: return "Black & White"; case 3: return "Sepia"; default: return "Unknown (" + value + ")"; } } @Nullable public String getIsoSpeedDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_ISO_SPEED); if (value==null) return null; switch (value) { // TODO there must be other values which aren't catered for here case 10: return "ISO 100"; case 16: return "ISO 200"; case 100: return "ISO 100"; case 200: return "ISO 200"; default: return "Unknown (" + value + ")"; } } @Nullable public String getSaturationDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_SATURATION); if (value==null) return null; switch (value) { case 0: return "Normal"; case 1: return "Low"; case 2: return "High"; default: return "Unknown (" + value + ")"; } } @Nullable public String getContrastDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_CONTRAST); if (value==null) return null; switch (value) { case 0: return "Normal"; case 1: return "Low"; case 2: return "High"; default: return "Unknown (" + value + ")"; } } @Nullable public String getSharpnessDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_SHARPNESS); if (value==null) return null; switch (value) { case 0: return "Normal"; case 1: return "Soft"; case 2: return "Hard"; default: return "Unknown (" + value + ")"; } } @Nullable public String getDigitalZoomDescription() { Float value = _directory.getFloatObject(PentaxMakernoteDirectory.TAG_PENTAX_DIGITAL_ZOOM); if (value==null) return null; if (value==0) return "Off"; return Float.toString(value); } @Nullable public String getWhiteBalanceDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_WHITE_BALANCE); if (value==null) return null; switch (value) { case 0: return "Auto"; case 1: return "Daylight"; case 2: return "Shade"; case 3: return "Tungsten"; case 4: return "Fluorescent"; case 5: return "Manual"; default: return "Unknown (" + value + ")"; } } @Nullable public String getFlashModeDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_FLASH_MODE); if (value==null) return null; switch (value) { case 1: return "Auto"; case 2: return "Flash On"; case 4: return "Flash Off"; case 6: return "Red-eye Reduction"; default: return "Unknown (" + value + ")"; } } @Nullable public String getFocusModeDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_FOCUS_MODE); if (value==null) return null; switch (value) { case 2: return "Custom"; case 3: return "Auto"; default: return "Unknown (" + value + ")"; } } @Nullable public String getQualityLevelDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_QUALITY_LEVEL); if (value==null) return null; switch (value) { case 0: return "Good"; case 1: return "Better"; case 2: return "Best"; default: return "Unknown (" + value + ")"; } } @Nullable public String getCaptureModeDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PENTAX_CAPTURE_MODE); if (value==null) return null; switch (value) { case 1: return "Auto"; case 2: return "Night-scene"; case 3: return "Manual"; case 4: return "Multiple"; default: return "Unknown (" + value + ")"; } } /* public String getPrintImageMatchingInfoDescription() { byte[] bytes = _directory.getByteArray(PentaxMakernoteDirectory.TAG_PANASONIC_PRINT_IMAGE_MATCHING_INFO); if (bytes==null) return null; return "(" + bytes.length + " bytes)"; } public String getMacroModeDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PANASONIC_MACRO_MODE); if (value==null) return null; switch (value) { case 1: return "On"; case 2: return "Off"; default: return "Unknown (" + value + ")"; } } public String getRecordModeDescription() { Integer value = _directory.getInteger(PentaxMakernoteDirectory.TAG_PANASONIC_RECORD_MODE); if (value==null) return null; switch (value) { case 1: return "Normal"; case 2: return "Portrait"; case 9: return "Macro"; default: return "Unknown (" + value + ")"; } } */ }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy