1/*M///////////////////////////////////////////////////////////////////////////////////////
2//
3// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4//
5// By downloading, copying, installing or using the software you agree to this license.
6// If you do not agree to this license, do not download, install,
7// copy or use the software.
8//
9//
10// License Agreement
11// For Open Source Computer Vision Library
12//
13// Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
14// Copyright (C) 2009, Willow Garage Inc., all rights reserved.
15// Third party copyrights are property of their respective owners.
16//
17// Redistribution and use in source and binary forms, with or without modification,
18// are permitted provided that the following conditions are met:
19//
20// * Redistribution's of source code must retain the above copyright notice,
21// this list of conditions and the following disclaimer.
22//
23// * Redistribution's in binary form must reproduce the above copyright notice,
24// this list of conditions and the following disclaimer in the documentation
25// and/or other materials provided with the distribution.
26//
27// * The name of the copyright holders may not be used to endorse or promote products
28// derived from this software without specific prior written permission.
29//
30// This software is provided by the copyright holders and contributors "as is" and
31// any express or implied warranties, including, but not limited to, the implied
32// warranties of merchantability and fitness for a particular purpose are disclaimed.
33// In no event shall the Intel Corporation or contributors be liable for any direct,
34// indirect, incidental, special, exemplary, or consequential damages
35// (including, but not limited to, procurement of substitute goods or services;
36// loss of use, data, or profits; or business interruption) however caused
37// and on any theory of liability, whether in contract, strict liability,
38// or tort (including negligence or otherwise) arising in any way out of
39// the use of this software, even if advised of the possibility of such damage.
40//
41//M*/
42
43#ifndef _RGBE_HDR_H_
44#define _RGBE_HDR_H_
45
46// posted to http://www.graphics.cornell.edu/~bjw/
47// written by Bruce Walter (bjw@graphics.cornell.edu) 5/26/95
48// based on code written by Greg Ward
49
50#include <stdio.h>
51
52typedef struct {
53 int valid; /* indicate which fields are valid */
54 char programtype[16]; /* listed at beginning of file to identify it
55 * after "#?". defaults to "RGBE" */
56 float gamma; /* image has already been gamma corrected with
57 * given gamma. defaults to 1.0 (no correction) */
58 float exposure; /* a value of 1.0 in an image corresponds to
59 * <exposure> watts/steradian/m^2.
60 * defaults to 1.0 */
61} rgbe_header_info;
62
63/* flags indicating which fields in an rgbe_header_info are valid */
64#define RGBE_VALID_PROGRAMTYPE 0x01
65#define RGBE_VALID_GAMMA 0x02
66#define RGBE_VALID_EXPOSURE 0x04
67
68/* return codes for rgbe routines */
69#define RGBE_RETURN_SUCCESS 0
70#define RGBE_RETURN_FAILURE -1
71
72/* read or write headers */
73/* you may set rgbe_header_info to null if you want to */
74int RGBE_WriteHeader(FILE *fp, int width, int height, rgbe_header_info *info);
75int RGBE_ReadHeader(FILE *fp, int *width, int *height, rgbe_header_info *info);
76
77/* read or write pixels */
78/* can read or write pixels in chunks of any size including single pixels*/
79int RGBE_WritePixels(FILE *fp, float *data, int numpixels);
80int RGBE_ReadPixels(FILE *fp, float *data, int numpixels);
81
82/* read or write run length encoded files */
83/* must be called to read or write whole scanlines */
84int RGBE_WritePixels_RLE(FILE *fp, float *data, int scanline_width,
85 int num_scanlines);
86int RGBE_ReadPixels_RLE(FILE *fp, float *data, int scanline_width,
87 int num_scanlines);
88
89#endif/*_RGBE_HDR_H_*/
90

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of opencv/modules/imgcodecs/src/rgbe.hpp