diff options
Diffstat (limited to 'libkdcraw/libraw/internal/dcraw_fileio.cpp')
-rw-r--r-- | libkdcraw/libraw/internal/dcraw_fileio.cpp | 227 |
1 files changed, 21 insertions, 206 deletions
diff --git a/libkdcraw/libraw/internal/dcraw_fileio.cpp b/libkdcraw/libraw/internal/dcraw_fileio.cpp index 3dc44ec..4cd02a9 100644 --- a/libkdcraw/libraw/internal/dcraw_fileio.cpp +++ b/libkdcraw/libraw/internal/dcraw_fileio.cpp @@ -1,213 +1,28 @@ -/* - GENERATED FILE, DO NOT EDIT - Generated from dcraw/dcraw.c at Tue Apr 7 15:14:50 2009 - Look into original file (probably http://cybercom.net/~dcoffin/dcraw/dcraw.c) - for copyright information. -*/ +/* + Copyright 2008-2020 LibRaw LLC (info@libraw.org) -#define CLASS LibRaw:: -#include "libraw/libraw_types.h" -#define LIBRAW_LIBRARY_BUILD -#include "libraw/libraw.h" -#include "internal/defines.h" -#include "internal/var_defines.h" + * This file is provided for compatibility w/ old build scripts/tools: + * It includes multiple separate files that should be built separately + * if new build tools are used -/* - Seach from the current directory up to the root looking for - a ".badpixels" file, and fix those pixels now. - */ -void CLASS bad_pixels (char *fname) -{ - FILE *fp=0; - char *cp, line[128]; - int len, time, row, col, r, c, rad, tot, n, fixed=0; +LibRaw is free software; you can redistribute it and/or modify +it under the terms of the one of two licenses as you choose: - if (!filters) return; -#ifdef LIBRAW_LIBRARY_BUILD - RUN_CALLBACK(LIBRAW_PROGRESS_BAD_PIXELS,0,2); -#endif - if (fname) - fp = fopen (fname, "r"); - if (!fp) - { -#ifdef LIBRAW_LIBRARY_BUILD - imgdata.process_warnings |= LIBRAW_WARN_NO_BADPIXELMAP; -#endif - return; - } - while (fgets (line, 128, fp)) { - cp = strchr (line, '#'); - if (cp) *cp = 0; - if (sscanf (line, "%d %d %d", &col, &row, &time) != 3) continue; - if ((unsigned) col >= width || (unsigned) row >= height) continue; - if (time > timestamp) continue; - for (tot=n=0, rad=1; rad < 3 && n==0; rad++) - for (r = row-rad; r <= row+rad; r++) - for (c = col-rad; c <= col+rad; c++) - if ((unsigned) r < height && (unsigned) c < width && - (r != row || c != col) && fc(r,c) == fc(row,col)) { - tot += BAYER2(r,c); - n++; - } - BAYER2(row,col) = tot/n; -#ifdef DCRAW_VERBOSE - if (verbose) { - if (!fixed++) - fprintf (stderr,_("Fixed dead pixels at:")); - fprintf (stderr, " %d,%d", col, row); - } -#endif - } -#ifdef DCRAW_VERBOSE - if (fixed) fputc ('\n', stderr); -#endif - fclose (fp); -#ifdef LIBRAW_LIBRARY_BUILD - RUN_CALLBACK(LIBRAW_PROGRESS_BAD_PIXELS,1,2); -#endif -} +1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1 + (See file LICENSE.LGPL provided in LibRaw distribution archive for details). -void CLASS subtract (char *fname) -{ - FILE *fp; - int dim[3]={0,0,0}, comment=0, number=0, error=0, nd=0, c, row, col; - ushort *pixel; -#ifdef LIBRAW_LIBRARY_BUILD - RUN_CALLBACK(LIBRAW_PROGRESS_DARK_FRAME,0,2); -#endif +2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 + (See file LICENSE.CDDL provided in LibRaw distribution archive for details). - if (!(fp = fopen (fname, "rb"))) { -#ifdef DCRAW_VERBOSE - perror (fname); -#endif -#ifdef LIBRAW_LIBRARY_BUILD - imgdata.process_warnings |= LIBRAW_WARN_BAD_DARKFRAME_FILE; -#endif - return; - } - if (fgetc(fp) != 'P' || fgetc(fp) != '5') error = 1; - while (!error && nd < 3 && (c = fgetc(fp)) != EOF) { - if (c == '#') comment = 1; - if (c == '\n') comment = 0; - if (comment) continue; - if (isdigit(c)) number = 1; - if (number) { - if (isdigit(c)) dim[nd] = dim[nd]*10 + c -'0'; - else if (isspace(c)) { - number = 0; nd++; - } else error = 1; - } - } - if (error || nd < 3) { - fprintf (stderr,_("%s is not a valid PGM file!\n"), fname); - fclose (fp); return; - } else if (dim[0] != width || dim[1] != height || dim[2] != 65535) { -#ifdef DCRAW_VERBOSE - fprintf (stderr,_("%s has the wrong dimensions!\n"), fname); -#endif -#ifdef LIBRAW_LIBRARY_BUILD - imgdata.process_warnings |= LIBRAW_WARN_BAD_DARKFRAME_DIM; -#endif - fclose (fp); return; - } - pixel = (ushort *) calloc (width, sizeof *pixel); - merror (pixel, "subtract()"); - for (row=0; row < height; row++) { - fread (pixel, 2, width, fp); - for (col=0; col < width; col++) - BAYER(row,col) = MAX (BAYER(row,col) - ntohs(pixel[col]), 0); - } - free (pixel); - black = 0; -#ifdef LIBRAW_LIBRARY_BUILD - RUN_CALLBACK(LIBRAW_PROGRESS_DARK_FRAME,1,2); -#endif -} + This file is generated from Dave Coffin's dcraw.c + dcraw.c -- Dave Coffin's raw photo decoder + Copyright 1997-2010 by Dave Coffin, dcoffin a cybercom o net + + Look into dcraw homepage (probably http://cybercom.net/~dcoffin/dcraw/) + for more information +*/ -#ifndef NO_LCMS -void CLASS apply_profile (char *input, char *output) -{ - char *prof; - cmsHPROFILE hInProfile=0, hOutProfile=0; - cmsHTRANSFORM hTransform; - FILE *fp; - unsigned size; +#include "dcraw_fileio_defs.h" -#if LCMS_VERSION < 2000 - cmsErrorAction (LCMS_ERROR_SHOW); -#endif - if (strcmp (input, "embed")) - hInProfile = cmsOpenProfileFromFile (input, "r"); - else if (profile_length) { -#ifndef LIBRAW_LIBRARY_BUILD - prof = (char *) malloc (profile_length); - merror (prof, "apply_profile()"); - fseek (ifp, profile_offset, SEEK_SET); - fread (prof, 1, profile_length, ifp); - hInProfile = cmsOpenProfileFromMem (prof, profile_length); - free (prof); -#else - hInProfile = cmsOpenProfileFromMem (imgdata.color.profile, profile_length); -#endif - } else - { -#ifdef LIBRAW_LIBRARY_BUILD - imgdata.process_warnings |= LIBRAW_WARN_NO_EMBEDDED_PROFILE; -#endif -#ifdef DCRAW_VERBOSE - fprintf (stderr,_("%s has no embedded profile.\n"), ifname); -#endif - } - if (!hInProfile) - { -#ifdef LIBRAW_LIBRARY_BUILD - imgdata.process_warnings |= LIBRAW_WARN_NO_INPUT_PROFILE; -#endif - return; - } - if (!output) - hOutProfile = cmsCreate_sRGBProfile(); - else if ((fp = fopen (output, "rb"))) { - fread (&size, 4, 1, fp); - fseek (fp, 0, SEEK_SET); - oprof = (unsigned *) malloc (size = ntohl(size)); - merror (oprof, "apply_profile()"); - fread (oprof, 1, size, fp); - fclose (fp); - if (!(hOutProfile = cmsOpenProfileFromMem (oprof, size))) { - free (oprof); - oprof = 0; - } -#ifdef DCRAW_VERBOSE - } else - fprintf (stderr,_("Cannot open file %s!\n"), output); -#else -} -#endif - if (!hOutProfile) - { -#ifdef LIBRAW_LIBRARY_BUILD - imgdata.process_warnings |= LIBRAW_WARN_BAD_OUTPUT_PROFILE; -#endif - goto quit; - } -#ifdef DCRAW_VERBOSE - if (verbose) - fprintf (stderr,_("Applying color profile...\n")); -#endif -#ifdef LIBRAW_LIBRARY_BUILD - RUN_CALLBACK(LIBRAW_PROGRESS_APPLY_PROFILE,0,2); -#endif - hTransform = cmsCreateTransform (hInProfile, TYPE_RGBA_16, - hOutProfile, TYPE_RGBA_16, INTENT_PERCEPTUAL, 0); - cmsDoTransform (hTransform, image, image, width*height); - raw_color = 1; /* Don't use rgb_cam with a profile */ - cmsDeleteTransform (hTransform); - cmsCloseProfile (hOutProfile); -quit: - cmsCloseProfile (hInProfile); -#ifdef LIBRAW_LIBRARY_BUILD - RUN_CALLBACK(LIBRAW_PROGRESS_APPLY_PROFILE,1,2); -#endif -} -#endif +#include "../src/preprocessing/ext_preprocess.cpp" +#include "../src/write/apply_profile.cpp" |