Image-EXIF
view release on metacpan or search on metacpan
* must display the following acknowledgement:
* This product includes software developed by Eric M. Johnston.
* 4. Neither the name of the author nor the names of any co-contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: asahi.c,v 1.5 2004/12/23 20:38:52 ejohnst Exp $
*/
/*
* Exif tag definitions for Asahi Optical Co. (Pentax) maker notes.
* Note that the format is similar to Casio's, though has byte order
* weirdness like Fuji.
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "makers.h"
/* Quality. */
static struct descrip asahi_qual[] = {
{ 0, "Economy" },
{ 1, "Fine" },
{ 2, "Super Fine" },
{ -1, "Unknown" },
};
/* Resolution. */
static struct descrip asahi_res[] = {
{ 0, "640x480" },
{ 2, "1024x768" },
{ 4, "1600x1200" },
{ 22, "2304x1728" },
{ -1, "Unknown" },
};
/* Focus mode. */
static struct descrip asahi_focus[] = {
{ 0, "Normal" },
{ 1, "Macro" },
{ 2, "Macro" },
{ 3, "Infinity" },
{ -1, "Unknown" },
};
/* White balance. */
static struct descrip asahi_whiteb[] = {
{ 0, "Auto" },
{ 1, "Daylight" },
{ 2, "Shade" },
{ 3, "Fluorescent" },
{ 4, "Tungsten" },
{ 5, "Manual" },
{ -1, "Unknown" },
};
/* Saturation, contrast, & sharpness. */
static struct descrip asahi_range[] = {
{ 0, "Soft" },
{ 1, "Normal" },
{ 2, "Hard" },
{ 3, "Medium Soft" },
{ 4, "Medium Hard" },
{ -1, "Unknown" },
};
/* Maker note IFD tags. */
static struct exiftag asahi_tags[] = {
{ 0x0008, TIFF_SHORT, 1, ED_IMG, "AsahiQuality",
"Quality Level", asahi_qual },
{ 0x0009, TIFF_SHORT, 1, ED_VRB, "AsahiRes",
"Recorded Pixels", asahi_res },
{ 0x000d, TIFF_SHORT, 1, ED_IMG, "AsahiFocus",
"Focusing Mode", asahi_focus },
{ 0x0019, TIFF_SHORT, 1, ED_IMG, "AsahiWhiteB",
"White Balance", asahi_whiteb },
{ 0x001f, TIFF_SHORT, 1, ED_IMG, "AsahiSaturate",
"Saturation", asahi_range },
{ 0x0020, TIFF_SHORT, 1, ED_IMG, "AsahiContrast",
"Contrast", asahi_range },
{ 0x0021, TIFF_SHORT, 1, ED_IMG, "AsahiSharp",
"Sharpness", asahi_range },
{ 0xffff, TIFF_UNKN, 0, ED_UNK, "AsahiUnknown",
"Asahi Unknown", NULL },
};
/*
* Process Asahi maker note tags.
*/
void
asahi_prop(struct exifprop *prop, struct exiftags *t)
{
/* Override a couple of standard tags. */
( run in 0.922 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )