mirror of
https://git.FreeBSD.org/ports.git
synced 2025-02-03 11:12:13 +00:00
- Update from 1.6.4 to 1.8.5 [1]
- Use options helpers PR: ports/191179 Submitted by: ii@any.com.ru [1]
This commit is contained in:
parent
d8aca34543
commit
ce3d606a5b
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=358615
@ -2,8 +2,7 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= pfstools
|
||||
PORTVERSION= 1.6.4
|
||||
PORTREVISION= 17
|
||||
PORTVERSION= 1.8.5
|
||||
CATEGORIES= graphics
|
||||
MASTER_SITES= SF
|
||||
|
||||
@ -23,101 +22,64 @@ GNU_CONFIGURE= yes
|
||||
CONFIGURE_TARGET= ${PFS_BUILD}
|
||||
CONFIGURE_ARGS= --disable-jpeghdr --disable-matlab \
|
||||
--with-bash=${LOCALBASE}/bin/bash
|
||||
CONFIGURE_ENV= PKG_CONFIG_PATH="${LOCALBASE}/libdata/pkgconfig"
|
||||
CPPFLAGS+= ${PFS_CPPFLAGS}
|
||||
LDFLAGS+= ${PFS_LDFLAGS}
|
||||
USES= gmake libtool
|
||||
CONFIGURE_ENV= CPPFLAGS="${PFS_CPPFLAGS}" \
|
||||
LDFLAGS="${PFS_LDFLAGS}" \
|
||||
PKG_CONFIG_PATH=${LOCALBASE}/libdata/pkgconfig
|
||||
USE_LDCONFIG= yes
|
||||
USES= pkgconfig
|
||||
USES= gmake pkgconfig libtool
|
||||
|
||||
OPTIONS_DEFINE= NETPBM OPENEXR TIFF IMAGEMAGICK OCTAVE OPENGL
|
||||
OPTIONS_DEFINE= NETPBM OPENEXR TIFF QT IMAGEMAGICK GDAL OCTAVE OPENGL
|
||||
QT_DESC= Compile programs that use QT library
|
||||
GDAL_DESC= Compile programs that use GDAL library
|
||||
OCTAVE_DESC= Compile octave interface functions
|
||||
|
||||
OPTIONS_DEFAULT= TIFF
|
||||
OPTIONS_SUB= yes
|
||||
|
||||
NETPBM_CONFIGURE_ENABLE= ppm
|
||||
NETPBM_LIB_DEPENDS= libnetpbm.so:${PORTSDIR}/graphics/netpbm
|
||||
|
||||
OPENEXR_CONFIGURE_ENABLE= openexr
|
||||
OPENEXR_CONFIGURE_ON= --with-exrdir=${LOCALBASE}/include/OpenEXR
|
||||
OPENEXR_LIB_DEPENDS= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR
|
||||
|
||||
TIFF_CONFIGURE_ENABLE= tiff
|
||||
TIFF_LIB_DEPENDS= libtiff.so:${PORTSDIR}/graphics/tiff
|
||||
|
||||
QT_USE= QT4=moc_build,corelib,gui
|
||||
QT_CONFIGURE_ENABLE= qt
|
||||
|
||||
IMAGEMAGICK_CONFIGURE_ENABLE= imagemagick
|
||||
IMAGEMAGICK_LIB_DEPENDS= libMagick++-6.Q*.so:${PORTSDIR}/graphics/ImageMagick
|
||||
|
||||
GDAL_CONFIGURE_ENABLE= gdal
|
||||
GDAL_LIB_DEPENDS= libgdal.so:${PORTSDIR}/graphics/gdal
|
||||
|
||||
OPENGL_CONFIGURE_ENABLE= opengl
|
||||
OPENGL_USE= GL=glut
|
||||
|
||||
OCTAVE_CONFIGURE_ENABLE= octave
|
||||
OCTAVE_PATCH_DEPENDS= octave-config:${PORTSDIR}/math/octave
|
||||
OCTAVE_BUILD_DEPENDS= mkoctfile:${PORTSDIR}/math/octave
|
||||
OCTAVE_RUN_DEPENDS= octave:${PORTSDIR}/math/octave
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${PORT_OPTIONS:MNETPBM}
|
||||
CONFIGURE_ARGS+=--enable-ppm
|
||||
LIB_DEPENDS+= libnetpbm.so:${PORTSDIR}/graphics/netpbm
|
||||
PLIST_SUB+= PPM=""
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-ppm
|
||||
PLIST_SUB+= PPM="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MOPENEXR}
|
||||
PFS_CPPFLAGS+= ${PTHREAD_CFLAGS}
|
||||
PFS_LDFLAGS+= ${PTHREAD_LIBS}
|
||||
CONFIGURE_ARGS+=--enable-openexr --with-exrdir=${LOCALBASE}/include/OpenEXR
|
||||
LIB_DEPENDS+= libIlmImf.so:${PORTSDIR}/graphics/OpenEXR
|
||||
PLIST_SUB+= EXR=""
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-openexr
|
||||
PLIST_SUB+= EXR="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MTIFF}
|
||||
CONFIGURE_ARGS+=--enable-tiff
|
||||
LIB_DEPENDS+= libtiff.so:${PORTSDIR}/graphics/tiff
|
||||
PLIST_SUB+= TIFF=""
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-tiff
|
||||
PLIST_SUB+= TIFF="@comment "
|
||||
.endif
|
||||
|
||||
CONFIGURE_ARGS+=--disable-qt
|
||||
PLIST_SUB+= QT="@comment "
|
||||
|
||||
.if ${PORT_OPTIONS:MIMAGEMAGICK}
|
||||
CONFIGURE_ARGS+=--enable-imagemagick
|
||||
LIB_DEPENDS+= libMagick++-6.Q*.so:${PORTSDIR}/graphics/ImageMagick
|
||||
PLIST_SUB+= IM=""
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-imagemagick
|
||||
PLIST_SUB+= IM="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MOCTAVE}
|
||||
CONFIGURE_ARGS+=--enable-octave
|
||||
USES+= fortran
|
||||
|
||||
# need to determine which octave installed which patching
|
||||
PATCH_DEPENDS+= mkoctfile:${PORTSDIR}/math/octave
|
||||
BUILD_DEPENDS+= mkoctfile:${PORTSDIR}/math/octave
|
||||
RUN_DEPENDS+= octave:${PORTSDIR}/math/octave
|
||||
|
||||
OCTAVE_BASE?= ${LOCALBASE}
|
||||
OCTAVE_VERSION!=${OCTAVE_BASE}/bin/octave-config -v 2>&1 || ${ECHO} "0"
|
||||
OCTAVE_SITE_OCT!=${OCTAVE_BASE}/bin/octave-config --oct-site-dir 2>&1 || ${ECHO} ""
|
||||
OCTAVE_SITE_M!= ${OCTAVE_BASE}/bin/octave-config --m-site-dir 2>&1 || ${ECHO} ""
|
||||
PLIST_SUB+= OCTAVE="" \
|
||||
OCTAVE_VERSION=${OCTAVE_VERSION} \
|
||||
OCTAVE_BASE=${OCTAVE_BASE} \
|
||||
BUILD=${PFS_BUILD}
|
||||
.if (!empty(OCTAVE_VERSION:M[3-9].*))
|
||||
EXTRA_PATCHES+= ${PATCHDIR}/epatch-src-octave-pfsopen.cpp
|
||||
.endif
|
||||
MAN1+= pfsoctavelum.1 \
|
||||
pfsoctavergb.1 \
|
||||
pfsstat.1
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-octave
|
||||
PLIST_SUB+= OCTAVE="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MOPENGL}
|
||||
CONFIGURE_ARGS+=--enable-opengl
|
||||
USE_GL= glut
|
||||
PLIST_SUB+= GL=""
|
||||
.else
|
||||
CONFIGURE_ARGS+=--disable-opengl
|
||||
PLIST_SUB+= GL="@comment "
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MOCTAVE}
|
||||
pre-configure:
|
||||
@${REINPLACE_CMD} \
|
||||
-e 's|/usr/bin/octave|${LOCALBASE}/bin/octave|' \
|
||||
${WRKSRC}/src/octave/*
|
||||
OCTAVE_SITE_M=${OCTAVE_SITE_M:S|^${OCTAVE_BASE}/||} \
|
||||
OCTAVE_SITE_OCT=${OCTAVE_SITE_OCT:S|^${OCTAVE_BASE}/||}
|
||||
USES+= shebangfix
|
||||
SHEBANG_FILES= src/octave/*
|
||||
SHEBANG_LANG+= octave
|
||||
octave_OLD_CMD?=/usr/bin/octave
|
||||
octave_CMD?= ${LOCALBASE}/bin/octave
|
||||
.endif
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (pfstools-1.6.4.tar.gz) = 18d2d8fe64fd88ceda5b61cd7504f801c859989b6220965eb5c254e3d902dfe8
|
||||
SIZE (pfstools-1.6.4.tar.gz) = 588801
|
||||
SHA256 (pfstools-1.8.5.tar.gz) = 2cf958d39ee3b65b034796b0abeea727590561936e295461de6365a750167306
|
||||
SIZE (pfstools-1.8.5.tar.gz) = 846001
|
||||
|
@ -1,23 +0,0 @@
|
||||
--- src/octave/pfsopen.cpp.orig 2006-04-06 12:33:02.000000000 +0000
|
||||
+++ src/octave/pfsopen.cpp 2008-02-12 10:59:44.000000000 +0000
|
||||
@@ -54,8 +54,9 @@
|
||||
return retval;
|
||||
}
|
||||
|
||||
- if( !args(0).is_string() && !args(0).is_stream() ) {
|
||||
+ if( !args(0).is_string() && !args(0).is_real_scalar() ) {
|
||||
error( SCRIPT_NAME ": expected file name or file descriptor as the first argument!");
|
||||
+ // file descriptors are represented as integers (stored as doubles) in Octave 3.0
|
||||
return retval;
|
||||
}
|
||||
|
||||
@@ -120,8 +121,7 @@
|
||||
}
|
||||
} else {
|
||||
// File descriptor given
|
||||
- octave_stream fid = args(0).stream_value();
|
||||
- int fd = dup( fid.file_number() );
|
||||
+ int fd = dup( (int) args(0).scalar_value() );
|
||||
if( writeMode ) {
|
||||
fh = fdopen( fd, "wb" );
|
||||
if( fh == NULL ) {
|
19
graphics/pfstools/files/patch-config.h.in
Normal file
19
graphics/pfstools/files/patch-config.h.in
Normal file
@ -0,0 +1,19 @@
|
||||
--- config.h.in.orig 2011-10-27 08:40:42.000000000 +0000
|
||||
+++ config.h.in 2014-02-20 19:04:01.536587053 +0000
|
||||
@@ -99,13 +99,13 @@
|
||||
|
||||
/* Output stream for debug messages. */
|
||||
#ifdef DEBUG
|
||||
-#define DEBUG_STR cerr
|
||||
+#define DEBUG_STR std::cerr
|
||||
#else
|
||||
-#define DEBUG_STR if(1); else cerr
|
||||
+#define DEBUG_STR if(1); else std::cerr
|
||||
#endif
|
||||
/* Output stream for verbose messages */
|
||||
#define VERBOSE_STR if(verbose) std::cerr << PROG_NAME << ": "
|
||||
|
||||
|
||||
/* On some systems iostream, string etc are in 'std' namespace */
|
||||
-using namespace std;
|
||||
+//using namespace std;
|
20
graphics/pfstools/files/patch-configure
Normal file
20
graphics/pfstools/files/patch-configure
Normal file
@ -0,0 +1,20 @@
|
||||
--- configure.orig 2011-10-27 08:40:31.000000000 +0000
|
||||
+++ configure 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -14827,7 +14827,7 @@
|
||||
imagemagick_support="no"
|
||||
else
|
||||
IMAGEMAGICK_CFLAGS=$pkg_cv_IMAGEMAGICK_CFLAGS
|
||||
- IMAGEMAGICK_LIBS=$pkg_cv_IMAGEMAGICK_LIBS
|
||||
+ IMAGEMAGICK_LIBS="$pkg_cv_IMAGEMAGICK_LIBS /usr/local/lib/gcc47/libstdc++.so"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
|
||||
@@ -15411,7 +15411,7 @@
|
||||
if test -z "$QTDIR"; then
|
||||
MOC="moc-qt4"
|
||||
else
|
||||
- MOC="$QTDIR/bin/moc"
|
||||
+ MOC="$QTDIR/bin/moc-qt4"
|
||||
fi
|
||||
|
||||
# Check whether --with-moc was given.
|
28
graphics/pfstools/files/patch-src-fileformat-exrio.cpp
Normal file
28
graphics/pfstools/files/patch-src-fileformat-exrio.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
--- src/fileformat/exrio.cpp.orig 2005-06-15 13:36:54.000000000 +0000
|
||||
+++ src/fileformat/exrio.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -54,14 +54,14 @@
|
||||
}
|
||||
|
||||
DEBUG_STR << "OpenEXR file \"" << filename << "\" ("
|
||||
- << width << "x" << height << ")" << endl;
|
||||
+ << width << "x" << height << ")" << std::endl;
|
||||
}
|
||||
|
||||
void OpenEXRReader::readImage( pfs::Array2D *R, pfs::Array2D *G,
|
||||
pfs::Array2D *B )
|
||||
{
|
||||
assert(file!=NULL);
|
||||
- DEBUG_STR << "Reading OpenEXR file... " << endl;
|
||||
+ DEBUG_STR << "Reading OpenEXR file... " << std::endl;
|
||||
|
||||
Imf::Rgba* tmp_img = new Imf::Rgba[width*height];
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
OpenEXRReader::~OpenEXRReader()
|
||||
{
|
||||
delete file;
|
||||
- file==NULL;
|
||||
+ file=NULL;
|
||||
}
|
||||
|
||||
OpenEXRWriter::OpenEXRWriter(const char* filename)
|
96
graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp
Normal file
96
graphics/pfstools/files/patch-src-fileformat-hdrtiffio.cpp
Normal file
@ -0,0 +1,96 @@
|
||||
--- src/fileformat/hdrtiffio.cpp.orig 2011-10-27 08:39:07.000000000 +0000
|
||||
+++ src/fileformat/hdrtiffio.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -66,7 +66,7 @@
|
||||
}
|
||||
|
||||
DEBUG_STR << "TIFF file \"" << filename << "\" ("
|
||||
- << width << "x" << height << ")" << endl;
|
||||
+ << width << "x" << height << ")" << std::endl;
|
||||
|
||||
//--- image parameters
|
||||
if(!TIFFGetField(tif, TIFFTAG_COMPRESSION, &comp)) // compression type
|
||||
@@ -81,7 +81,7 @@
|
||||
switch(phot)
|
||||
{
|
||||
case PHOTOMETRIC_LOGLUV:
|
||||
- DEBUG_STR << "Photometric data: LogLuv" << endl;
|
||||
+ DEBUG_STR << "Photometric data: LogLuv" << std::endl;
|
||||
if (comp != COMPRESSION_SGILOG && comp != COMPRESSION_SGILOG24)
|
||||
{
|
||||
TIFFClose(tif);
|
||||
@@ -96,7 +96,7 @@
|
||||
relative_values=true;
|
||||
break;
|
||||
case PHOTOMETRIC_RGB:
|
||||
- DEBUG_STR << "Photometric data: RGB" << endl;
|
||||
+ DEBUG_STR << "Photometric data: RGB" << std::endl;
|
||||
// read extra samples (# of alpha channels)
|
||||
if (TIFFGetField( tif, TIFFTAG_EXTRASAMPLES,
|
||||
&extra_samples_per_pixel, &extra_sample_types )!=1)
|
||||
@@ -121,36 +121,36 @@
|
||||
if( bps==8 )
|
||||
{
|
||||
TypeOfData = BYTE;
|
||||
- DEBUG_STR << "8bit per channel" << endl;
|
||||
+ DEBUG_STR << "8bit per channel" << std::endl;
|
||||
strcpy(format_string,"linear 8bit RGB");
|
||||
relative_values=false; //!! TODO: verify if 8bit is always gamma corrected
|
||||
}
|
||||
else if( bps==16 )
|
||||
{
|
||||
TypeOfData = WORD;
|
||||
- DEBUG_STR << "16bit per channel" << endl;
|
||||
+ DEBUG_STR << "16bit per channel" << std::endl;
|
||||
strcpy(format_string,"linear 16bit RGB");
|
||||
relative_values=true; //!! TODO: verify this case!!
|
||||
}
|
||||
else
|
||||
{
|
||||
TypeOfData = FLOAT;
|
||||
- DEBUG_STR << "32bit float per channel" << endl;
|
||||
+ DEBUG_STR << "32bit float per channel" << std::endl;
|
||||
strcpy(format_string,"linear 32bit float RGB");
|
||||
relative_values=true;
|
||||
}
|
||||
break;
|
||||
case PHOTOMETRIC_MINISBLACK: // HDR video camera format (grayscale)
|
||||
- DEBUG_STR << "Photometric data: MINISBLACK (hdrv camera)" << endl;
|
||||
+ DEBUG_STR << "Photometric data: MINISBLACK (hdrv camera)" << std::endl;
|
||||
if (!TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &bps) || !bps==1)
|
||||
{
|
||||
TIFFClose(tif);
|
||||
throw pfs::Exception("TIFF: Unsupported samples per pixel for "
|
||||
"grayscale image");
|
||||
}
|
||||
- if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bps) || !bps==16)
|
||||
+ if (!TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bps) || !(bps==16))
|
||||
{
|
||||
- DEBUG_STR << "Detected bits per sample: " << bps << endl;
|
||||
+ DEBUG_STR << "Detected bits per sample: " << bps << std::endl;
|
||||
TIFFClose(tif);
|
||||
throw pfs::Exception("TIFF: unsupported bits per sample for "
|
||||
"grayscale image.");
|
||||
@@ -160,7 +160,7 @@
|
||||
relative_values=true;
|
||||
break;
|
||||
default:
|
||||
- DEBUG_STR << "Unsupported photometric type: " << phot << endl;
|
||||
+ DEBUG_STR << "Unsupported photometric type: " << phot << std::endl;
|
||||
TIFFClose(tif);
|
||||
strcpy(format_string,"unknown");
|
||||
relative_values=false;
|
||||
@@ -184,12 +184,12 @@
|
||||
//--- image length
|
||||
uint32 imagelength;
|
||||
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
|
||||
- DEBUG_STR << "Image length: " << imagelength << endl;
|
||||
+ DEBUG_STR << "Image length: " << imagelength << std::endl;
|
||||
|
||||
//--- image scanline size
|
||||
uint32 scanlinesize = TIFFScanlineSize(tif);
|
||||
buf.vp = _TIFFmalloc(scanlinesize);
|
||||
-// DEBUG_STR << "Scanline size: " << scanlinesize << endl;
|
||||
+// DEBUG_STR << "Scanline size: " << scanlinesize << std::endl;
|
||||
|
||||
|
||||
//--- read scan lines
|
11
graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp
Normal file
11
graphics/pfstools/files/patch-src-fileformat-pfsinexr.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- src/fileformat/pfsinexr.cpp.orig 2008-01-01 13:01:21.000000000 +0000
|
||||
+++ src/fileformat/pfsinexr.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -234,7 +234,7 @@
|
||||
}
|
||||
|
||||
file.setFrameBuffer( frameBuffer );
|
||||
- file.readPixels( dw.min.y, dw.max.y );
|
||||
+ file.readPixels( dtw.min.y, dtw.max.y );
|
||||
|
||||
VERBOSE_STR << "reading file (linear) '" << ff.fileName << "'" << std::endl;
|
||||
|
@ -0,0 +1,19 @@
|
||||
--- src/fileformat/pfsinimgmagick.cpp.orig 2008-10-03 19:07:34.000000000 +0000
|
||||
+++ src/fileformat/pfsinimgmagick.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -108,6 +108,7 @@
|
||||
if( ff.fh == NULL ) break; // No more frames
|
||||
it.closeFrameFile( ff );
|
||||
|
||||
+ Magick::InitializeMagick(*argv);
|
||||
VERBOSE_STR << "reading file '" << ff.fileName << "'" << std::endl;
|
||||
Magick::Image imImage( ff.fileName );
|
||||
|
||||
@@ -172,7 +173,7 @@
|
||||
frame->getTags()->setString( "FILE_NAME", fileNameTag );
|
||||
|
||||
char strbuf[3];
|
||||
- snprintf( strbuf, 3, "%d", imImage.depth() );
|
||||
+ snprintf( strbuf, 3, "%lu", imImage.depth() );
|
||||
frame->getTags()->setString("BITDEPTH", strbuf );
|
||||
|
||||
pfsio.writeFrame( frame, stdout );
|
@ -0,0 +1,22 @@
|
||||
--- src/fileformat/pfsinjpeghdr.cpp.orig 2005-11-04 08:54:27.000000000 +0000
|
||||
+++ src/fileformat/pfsinjpeghdr.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -123,8 +123,8 @@
|
||||
case JPEG_HEADER_HDR: // HDR image
|
||||
jpeghdr_start_decompress(&jhinf);
|
||||
frame = pfsio.createFrame( jhinf.cinfo.output_width, jhinf.cinfo.output_height );
|
||||
- hdrscan = (JHSAMPLE *)malloc(jhinf.cinfo.output_width * jhinf.cinfo.output_height *
|
||||
- sizeof(JHSAMPLE)*3);
|
||||
+ hdrscan =
|
||||
+ new JHSAMPLE[jhinf.cinfo.output_width * jhinf.cinfo.output_height * 3];
|
||||
// Important: test jhinf.output_scanline, not jhinf.cinfo
|
||||
int index ;
|
||||
index = 0;
|
||||
@@ -144,7 +144,7 @@
|
||||
(Z->getRawData())[i] = hdrscan[3*i + 2];
|
||||
}
|
||||
pfs::transformColorSpace( pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z );
|
||||
- free((void *)hdrscan);
|
||||
+ delete[] hdrscan;
|
||||
break;
|
||||
case JPEG_HEADER_OK: // LDR image
|
||||
case JPEG_SUSPENDED:
|
@ -0,0 +1,10 @@
|
||||
--- src/fileformat/pfsoutimgmagick.cpp.orig 2011-03-15 08:47:24.000000000 +0000
|
||||
+++ src/fileformat/pfsoutimgmagick.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -190,6 +190,7 @@
|
||||
if( alpha != NULL )
|
||||
imgBuffer[i++] = (unsigned short)(maxValue-clamp((*alpha)(pix),0.f,1.f)*maxValue);
|
||||
}
|
||||
+ Magick::InitializeMagick(*argv);
|
||||
Magick::Image imImage( frame->getWidth(), frame->getHeight(),
|
||||
(alpha == NULL ? "RGB" : "RGBA"), Magick::ShortPixel, imgBuffer );
|
||||
imImage.quality( quality );
|
@ -0,0 +1,40 @@
|
||||
--- src/fileformat/pfsoutjpeghdr.cpp.orig 2005-11-04 08:54:27.000000000 +0000
|
||||
+++ src/fileformat/pfsoutjpeghdr.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -69,8 +69,7 @@
|
||||
jhinf.correction = correction;
|
||||
jpeg_stdio_dest(&jhinf.cinfo, fh);
|
||||
|
||||
- image = (JHSAMPLE *)malloc(width * height *
|
||||
- sizeof(JHSAMPLE)*3);
|
||||
+ image = new JHSAMPLE[width * height * 3];
|
||||
|
||||
for(int i=0;i<width * height;i++)
|
||||
{
|
||||
@@ -91,7 +90,7 @@
|
||||
// Or, assign jhinf.tmi 8-bit grayscale values in scanline order
|
||||
jpeghdr_do_compress(&jhinf);
|
||||
jpeghdr_destroy_compress(&jhinf);
|
||||
- fclose(fh);
|
||||
+ delete[] image;
|
||||
}
|
||||
|
||||
void writeHDRJPEGRGB( FILE *fh, int width, int height,
|
||||
@@ -111,8 +110,7 @@
|
||||
jhinf.beta = beta;
|
||||
jpeg_stdio_dest(&jhinf.cinfo, fh);
|
||||
|
||||
- image = (JHSAMPLE *)malloc(width * height *
|
||||
- sizeof(JHSAMPLE)*3);
|
||||
+ image = new JHSAMPLE[width * height * 3];
|
||||
|
||||
for(int i=0;i<width * height;i++)
|
||||
{
|
||||
@@ -135,7 +133,7 @@
|
||||
jpeghdr_do_compress(&jhinf);
|
||||
jpeghdr_destroy_compress(&jhinf);
|
||||
|
||||
- free( image );
|
||||
+ delete[] image;
|
||||
}
|
||||
|
||||
void writeFrames( int argc, char* argv[] )
|
20
graphics/pfstools/files/patch-src-fileformat-pfsoutpfm.cpp
Normal file
20
graphics/pfstools/files/patch-src-fileformat-pfsoutpfm.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
--- src/fileformat/pfsoutpfm.cpp.orig 2005-06-15 13:36:54.000000000 +0000
|
||||
+++ src/fileformat/pfsoutpfm.cpp 2014-02-20 19:04:01.546588828 +0000
|
||||
@@ -74,7 +74,7 @@
|
||||
}
|
||||
int written = fwrite( line, sizeof( float ), lineSize, fh );
|
||||
if( written != lineSize )
|
||||
- throw new pfs::Exception( "Unable to write data" );
|
||||
+ throw pfs::Exception( "Unable to write data" );
|
||||
}
|
||||
delete[] line;
|
||||
}
|
||||
@@ -94,7 +94,7 @@
|
||||
}
|
||||
int written = fwrite( line, sizeof( float ), lineSize, fh );
|
||||
if( written != lineSize )
|
||||
- throw new pfs::Exception( "Unable to write data" );
|
||||
+ throw pfs::Exception( "Unable to write data" );
|
||||
}
|
||||
delete[] line;
|
||||
}
|
11
graphics/pfstools/files/patch-src-fileformat-ppmio.cpp
Normal file
11
graphics/pfstools/files/patch-src-fileformat-ppmio.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- src/fileformat/ppmio.cpp.orig 2009-05-25 19:24:49.000000000 +0000
|
||||
+++ src/fileformat/ppmio.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -34,6 +34,8 @@
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
|
||||
+#define log2(x) ((float)log(x)/log(2))
|
||||
+
|
||||
struct PPMData
|
||||
{
|
||||
pixval maxPV;
|
29
graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp
Normal file
29
graphics/pfstools/files/patch-src-fileformat-rgbeio.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
--- src/fileformat/rgbeio.cpp.orig 2007-12-06 11:00:49.000000000 +0000
|
||||
+++ src/fileformat/rgbeio.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -141,7 +141,7 @@
|
||||
// Reading RGBE files
|
||||
void readRadianceHeader( FILE *file, int &width, int &height, float &exposure )
|
||||
{
|
||||
- DEBUG_STR << "RGBE: reading header..." << endl;
|
||||
+ DEBUG_STR << "RGBE: reading header..." << std::endl;
|
||||
|
||||
// read header information
|
||||
char head[255];
|
||||
@@ -208,7 +208,7 @@
|
||||
height = height - width;
|
||||
}
|
||||
*/
|
||||
- DEBUG_STR << "RGBE: image size " << width << "x" << height << endl;
|
||||
+ DEBUG_STR << "RGBE: image size " << width << "x" << height << std::endl;
|
||||
}
|
||||
|
||||
|
||||
@@ -389,7 +389,7 @@
|
||||
int width = X->getCols();
|
||||
int height = X->getRows();
|
||||
|
||||
- DEBUG_STR << "RGBE: writing image " << width << "x" << height << endl;
|
||||
+ DEBUG_STR << "RGBE: writing image " << width << "x" << height << std::endl;
|
||||
|
||||
if( Y->getCols() != width || Y->getRows() != height ||
|
||||
Z->getCols() != width || Z->getRows() != height )
|
20
graphics/pfstools/files/patch-src-filter-Makefile.am
Normal file
20
graphics/pfstools/files/patch-src-filter-Makefile.am
Normal file
@ -0,0 +1,20 @@
|
||||
--- src/filter/Makefile.am.orig 2009-05-30 06:59:10.000000000 +0000
|
||||
+++ src/filter/Makefile.am 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -1,6 +1,7 @@
|
||||
###
|
||||
bin_PROGRAMS = pfsgamma pfsclamp pfstag pfssize pfsextractchannels pfspanoramic \
|
||||
- pfsrotate pfsflip pfscut pfspad pfscat pfsabsolute pfsdisplayfunction
|
||||
+ pfsrotate pfsflip pfscut pfspad pfscat pfsabsolute pfsdisplayfunction \
|
||||
+ pfswb
|
||||
|
||||
man_MANS = pfsgamma.1 pfsclamp.1 pfstag.1 pfssize.1 pfsextractchannels.1 \
|
||||
pfspanoramic.1 pfsrotate.1 pfsflip.1 pfscut.1 pfspad.1 pfscat.1 \
|
||||
@@ -34,6 +35,8 @@
|
||||
|
||||
pfsabsolute_SOURCES = pfsabsolute.cpp
|
||||
|
||||
+pfswb_SOURCES = pfswb.cpp
|
||||
+
|
||||
LIBS += ../pfs/libpfs-1.2.la
|
||||
INCLUDES = -I${srcdir}/../pfs
|
||||
|
58
graphics/pfstools/files/patch-src-filter-Makefile.in
Normal file
58
graphics/pfstools/files/patch-src-filter-Makefile.in
Normal file
@ -0,0 +1,58 @@
|
||||
--- src/filter/Makefile.in.orig 2011-10-27 08:40:29.000000000 +0000
|
||||
+++ src/filter/Makefile.in 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -38,7 +38,8 @@
|
||||
pfssize$(EXEEXT) pfsextractchannels$(EXEEXT) \
|
||||
pfspanoramic$(EXEEXT) pfsrotate$(EXEEXT) pfsflip$(EXEEXT) \
|
||||
pfscut$(EXEEXT) pfspad$(EXEEXT) pfscat$(EXEEXT) \
|
||||
- pfsabsolute$(EXEEXT) pfsdisplayfunction$(EXEEXT)
|
||||
+ pfsabsolute$(EXEEXT) pfsdisplayfunction$(EXEEXT) \
|
||||
+ pfswb$(EXEEXT)
|
||||
subdir = src/filter
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@@ -54,6 +55,9 @@
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
+am_pfswb_OBJECTS = pfswb.$(OBJEXT)
|
||||
+pfswb_OBJECTS = $(am_pfswb_OBJECTS)
|
||||
+pfswb_LDADD = $(LDADD)
|
||||
am_pfsabsolute_OBJECTS = pfsabsolute.$(OBJEXT)
|
||||
pfsabsolute_OBJECTS = $(am_pfsabsolute_OBJECTS)
|
||||
pfsabsolute_LDADD = $(LDADD)
|
||||
@@ -120,13 +124,15 @@
|
||||
$(pfscut_SOURCES) $(pfsdisplayfunction_SOURCES) \
|
||||
$(pfsextractchannels_SOURCES) $(pfsflip_SOURCES) \
|
||||
$(pfsgamma_SOURCES) $(pfspad_SOURCES) $(pfspanoramic_SOURCES) \
|
||||
- $(pfsrotate_SOURCES) $(pfssize_SOURCES) $(pfstag_SOURCES)
|
||||
+ $(pfsrotate_SOURCES) $(pfssize_SOURCES) $(pfstag_SOURCES) \
|
||||
+ $(pfswb_SOURCES)
|
||||
DIST_SOURCES = $(pfsabsolute_SOURCES) $(pfscat_SOURCES) \
|
||||
$(pfsclamp_SOURCES) $(pfscut_SOURCES) \
|
||||
$(pfsdisplayfunction_SOURCES) $(pfsextractchannels_SOURCES) \
|
||||
$(pfsflip_SOURCES) $(pfsgamma_SOURCES) $(pfspad_SOURCES) \
|
||||
$(pfspanoramic_SOURCES) $(pfsrotate_SOURCES) \
|
||||
- $(pfssize_SOURCES) $(pfstag_SOURCES)
|
||||
+ $(pfssize_SOURCES) $(pfstag_SOURCES) \
|
||||
+ $(pfswb_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
@@ -314,6 +320,7 @@
|
||||
pfspad_SOURCES = pfspad.cpp
|
||||
pfscat_SOURCES = pfscat.cpp
|
||||
pfsabsolute_SOURCES = pfsabsolute.cpp
|
||||
+pfswb_SOURCES = pfswb.cpp
|
||||
INCLUDES = -I${srcdir}/../pfs
|
||||
all: all-am
|
||||
|
||||
@@ -392,6 +399,9 @@
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
+pfswb$(EXEEXT): $(pfswb_OBJECTS) $(pfswb_DEPENDENCIES)
|
||||
+ @rm -f pfswb$(EXEEXT)
|
||||
+ $(CXXLINK) $(pfswb_LDFLAGS) $(pfswb_OBJECTS) $(pfswb_LDADD) $(LIBS)
|
||||
pfsabsolute$(EXEEXT): $(pfsabsolute_OBJECTS) $(pfsabsolute_DEPENDENCIES)
|
||||
@rm -f pfsabsolute$(EXEEXT)
|
||||
$(CXXLINK) $(pfsabsolute_OBJECTS) $(pfsabsolute_LDADD) $(LIBS)
|
37
graphics/pfstools/files/patch-src-filter-pfscat.cpp
Normal file
37
graphics/pfstools/files/patch-src-filter-pfscat.cpp
Normal file
@ -0,0 +1,37 @@
|
||||
--- src/filter/pfscat.cpp.orig 2008-01-01 13:01:21.000000000 +0000
|
||||
+++ src/filter/pfscat.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <pfs.h>
|
||||
#include <climits>
|
||||
#include <iostream>
|
||||
+#include <vector>
|
||||
#include <getopt.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
@@ -202,16 +203,12 @@
|
||||
|
||||
pfs::FrameFileIterator it ( argc, argv, "rb", NULL, NULL, optString, cmdLineOptions);
|
||||
int pipe_no = 0;
|
||||
-pfs::FrameFile * ff;
|
||||
-ff = (pfs::FrameFile *) malloc ((pipe_no+1) * sizeof(pfs::FrameFile));
|
||||
-
|
||||
+std::vector<pfs::FrameFile> ff;
|
||||
while (1) {
|
||||
- ff[pipe_no] = it.getNextFrameFile();
|
||||
+ ff.push_back(it.getNextFrameFile());
|
||||
if (ff[pipe_no].fh == NULL) break; // no more files
|
||||
pipe_no++;
|
||||
- ff=(pfs::FrameFile *) realloc(ff, (pipe_no+1)*sizeof(pfs::FrameFile));
|
||||
}
|
||||
-
|
||||
if(pipe_no == 0) { // no named pipes
|
||||
pipe_no = 1;
|
||||
pipes = false;
|
||||
@@ -408,7 +405,6 @@
|
||||
}
|
||||
|
||||
for (int i=0; i<pipe_no; i++) it.closeFrameFile(ff[i]);
|
||||
-free(ff);
|
||||
}
|
||||
|
||||
|
13
graphics/pfstools/files/patch-src-filter-pfsclamp.cpp
Normal file
13
graphics/pfstools/files/patch-src-filter-pfsclamp.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
--- src/filter/pfsclamp.cpp.orig 2005-11-02 13:35:42.000000000 +0000
|
||||
+++ src/filter/pfsclamp.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -151,8 +151,8 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- clampMin = (clampMin>1e-4) ? clampMin : 1e-4;
|
||||
- clampMax = (clampMax<1e8) ? clampMax : 1e8;
|
||||
+ clampMin = (clampMin>1e-20) ? clampMin : 1e-20;
|
||||
+ clampMax = (clampMax<1e+20) ? clampMax : 1e+20;
|
||||
if( clampMin >= clampMax )
|
||||
throw pfs::Exception("incorrect clamping range");
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
--- src/filter/pfsextractchannels.cpp.orig 2005-06-15 13:36:54.000000000 +0000
|
||||
+++ src/filter/pfsextractchannels.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -46,7 +46,7 @@
|
||||
"See man page for more information.\n" );
|
||||
}
|
||||
|
||||
-static void errorCheck( bool condition, char *string )
|
||||
+static void errorCheck( bool condition, char const *string )
|
||||
{
|
||||
if( !condition ) {
|
||||
fprintf( stderr, PROG_NAME " error: %s\n", string );
|
38
graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp
Normal file
38
graphics/pfstools/files/patch-src-filter-pfspanoramic.cpp
Normal file
@ -0,0 +1,38 @@
|
||||
--- src/filter/pfspanoramic.cpp.orig 2010-02-18 11:27:03.000000000 +0000
|
||||
+++ src/filter/pfspanoramic.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -93,7 +93,7 @@
|
||||
}
|
||||
|
||||
//TODO: optimize rotations by precomputing sines and cosines
|
||||
- Vector3D rotateX(double angle)
|
||||
+ void rotateX(double angle)
|
||||
{
|
||||
angle *= (M_PI / 180);
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
z = z2;
|
||||
}
|
||||
|
||||
- Vector3D rotateY(double angle)
|
||||
+ void rotateY(double angle)
|
||||
{
|
||||
angle *= (M_PI / 180);
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
z = z2;
|
||||
}
|
||||
|
||||
- Vector3D rotateZ(double angle)
|
||||
+ void rotateZ(double angle)
|
||||
{
|
||||
angle *= (M_PI / 180);
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
{
|
||||
char *opts;
|
||||
|
||||
- if(opts = strchr(name, '/'))
|
||||
+ if ((opts = strchr(name, '/')))
|
||||
{
|
||||
*opts++ = '\0';
|
||||
}
|
23
graphics/pfstools/files/patch-src-filter-pfstag.cpp
Normal file
23
graphics/pfstools/files/patch-src-filter-pfstag.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
--- src/filter/pfstag.cpp.orig 2005-06-15 13:36:54.000000000 +0000
|
||||
+++ src/filter/pfstag.cpp 2014-02-20 19:04:01.556587853 +0000
|
||||
@@ -58,7 +58,7 @@
|
||||
string channel;
|
||||
};
|
||||
|
||||
-typedef list<TagOperation> ListOfTags;
|
||||
+typedef std::list<TagOperation> ListOfTags;
|
||||
|
||||
TagOperation parseTagOperation( const char *tag, bool remove )
|
||||
{
|
||||
@@ -133,9 +133,9 @@
|
||||
for( it = setTags.begin(); it != setTags.end(); it++ ) {
|
||||
TagOperation &tagop = *it;
|
||||
if( tagop.remove )
|
||||
- cerr << PROG_NAME ": remove tag '" << tagop.name << "'\n";
|
||||
+ std::cerr << PROG_NAME ": remove tag '" << tagop.name << "'\n";
|
||||
else
|
||||
- cerr << PROG_NAME ": set tag '" << tagop.name << "' to '" << tagop.value << "'\n";
|
||||
+ std::cerr << PROG_NAME ": set tag '" << tagop.name << "' to '" << tagop.value << "'\n";
|
||||
}
|
||||
|
||||
}
|
300
graphics/pfstools/files/patch-src-filter-pfswb.cpp
Normal file
300
graphics/pfstools/files/patch-src-filter-pfswb.cpp
Normal file
@ -0,0 +1,300 @@
|
||||
--- src/filter/pfswb.cpp.orig 2014-02-20 19:04:01.556587853 +0000
|
||||
+++ src/filter/pfswb.cpp 2014-02-20 19:06:49.706586923 +0000
|
||||
@@ -0,0 +1,297 @@
|
||||
+/**
|
||||
+ * @file pfswb.cpp
|
||||
+ * @brief Adjust white balance in RGB color space
|
||||
+ *
|
||||
+ * This file is a part of PFSTOOLS package.
|
||||
+ * ----------------------------------------------------------------------
|
||||
+ * Copyright (C) 2008 Iouri V. Ivliev
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * This program is distributed in the hope that it will be useful,
|
||||
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ * GNU General Public License for more details.
|
||||
+ *
|
||||
+ * You should have received a copy of the GNU General Public License
|
||||
+ * along with this program; if not, write to the Free Software
|
||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+ * ----------------------------------------------------------------------
|
||||
+ *
|
||||
+ * @author Iouri V. Ivliev <ii@any.com.ru>
|
||||
+ *
|
||||
+ * $Id: $
|
||||
+ */
|
||||
+
|
||||
+#include <config.h>
|
||||
+
|
||||
+#include <exception>
|
||||
+#include <iostream>
|
||||
+#include <sys/limits.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <getopt.h>
|
||||
+
|
||||
+#include <pfs.h>
|
||||
+
|
||||
+#define PROG_NAME "pfswb"
|
||||
+
|
||||
+class QuietException
|
||||
+{
|
||||
+};
|
||||
+
|
||||
+static void printHelp()
|
||||
+{
|
||||
+ std::cerr << PROG_NAME " (" PACKAGE_STRING ") :\n"
|
||||
+ "\t[--red <val>] [--green <val>] [--blue <val>]\n"
|
||||
+ "\t[--auto] [--x <val>] [--y <val>] [--width <val>] [--height <val>]\n"
|
||||
+ "\t[--keep-lum]\n"
|
||||
+ "\t[--verbose] [--help]\n"
|
||||
+ "See man page for more information.\n";
|
||||
+}
|
||||
+
|
||||
+// verbose mode
|
||||
+static bool verbose = false;
|
||||
+
|
||||
+// auto WB
|
||||
+static bool autowb = false;
|
||||
+// default gray box bounds
|
||||
+static int x = 0;
|
||||
+static int y = 0;
|
||||
+static int width = INT_MAX/2;
|
||||
+static int height = INT_MAX/2;
|
||||
+
|
||||
+// keep original luminance
|
||||
+static bool keep = false;
|
||||
+
|
||||
+// default WB multipliers
|
||||
+static float red = 1.f;
|
||||
+static float green = 1.f;
|
||||
+static float blue = 1.f;
|
||||
+
|
||||
+static void multipliers(
|
||||
+ const pfs::Array2D &R, const pfs::Array2D &G, const pfs::Array2D &B,
|
||||
+ float &r, float &g, float &b)
|
||||
+{
|
||||
+ r = red;
|
||||
+ g = green;
|
||||
+ b = blue;
|
||||
+ if (!autowb) return;
|
||||
+ // auto WB gray box
|
||||
+ int w = R.getCols();
|
||||
+ int h = R.getRows();
|
||||
+ if (x>=w || y>=h)
|
||||
+ throw pfs::Exception("gray box is out of frame bounds");
|
||||
+ int x1 = width+x;
|
||||
+ if (x1>w) x1 = w;
|
||||
+ int y1 = height+y;
|
||||
+ if (y1>h) y1 = h;
|
||||
+ VERBOSE_STR
|
||||
+ << "auto WB gray box: "
|
||||
+ << (x1-x) << "x" << (y1-y) << "+" << x << "+" << y << std::endl;
|
||||
+ // auto WB multipliers
|
||||
+ double ar = 0.;
|
||||
+ double ag = 0.;
|
||||
+ double ab = 0.;
|
||||
+ for (int y0=y; y0<y1; ++y0)
|
||||
+ {
|
||||
+ for (int x0=x; x0<x1; ++x0)
|
||||
+ {
|
||||
+ ar += R(x0,y0);
|
||||
+ ag += G(x0,y0);
|
||||
+ ab += B(x0,y0);
|
||||
+ }
|
||||
+ }
|
||||
+ int n = (x1-x)*(y1-y);
|
||||
+ ar /= n;
|
||||
+ ag /= n;
|
||||
+ ab /= n;
|
||||
+ VERBOSE_STR << "average red value: " << ar << std::endl;
|
||||
+ VERBOSE_STR << "average green value: " << ag << std::endl;
|
||||
+ VERBOSE_STR << "average blue value: " << ab << std::endl;
|
||||
+ float a = (float)((ar+ag+ab)/3.);
|
||||
+ r *= a/ar;
|
||||
+ g *= a/ag;
|
||||
+ b *= a/ab;
|
||||
+}
|
||||
+
|
||||
+static void pfswb()
|
||||
+{
|
||||
+ pfs::DOMIO pfsio;
|
||||
+ VERBOSE_STR << "auto WB: " << (autowb ? "yes" : "no" ) << std::endl;
|
||||
+ VERBOSE_STR << "base red multiplier value: " << red << std::endl;
|
||||
+ VERBOSE_STR << "base green multiplier value: " << green << std::endl;
|
||||
+ VERBOSE_STR << "base blue multiplier value: " << blue << std::endl;
|
||||
+ VERBOSE_STR << "keep original luminance: " << (keep ? "yes" : "no" ) << std::endl;
|
||||
+ while (true)
|
||||
+ {
|
||||
+ // Read frame
|
||||
+ pfs::Frame *frame = pfsio.readFrame( stdin );
|
||||
+ if (!frame)
|
||||
+ {
|
||||
+ break; // No more frames
|
||||
+ }
|
||||
+ // Get channels
|
||||
+ pfs::Channel *X, *Y, *Z;
|
||||
+ frame->getXYZChannels(X, Y, Z);
|
||||
+ if (!(Y && X && Z))
|
||||
+ {
|
||||
+ throw pfs::Exception( "Missing X, Y, Z channels in the PFS stream" );
|
||||
+ }
|
||||
+ int w = Y->getCols();
|
||||
+ int h = Y->getRows();
|
||||
+ int s = w*h;
|
||||
+ float min = 1e20, max = -1e20;
|
||||
+ for (int i=s; i--; )
|
||||
+ {
|
||||
+ float const &l = (*Y)(i);
|
||||
+ if (min > l) min = l;
|
||||
+ if (max < l) max = l;
|
||||
+ }
|
||||
+ VERBOSE_STR << "luminance range of original frame: " << min << ":" << max << std::endl;
|
||||
+ // Convert from XYZ to RGB
|
||||
+ pfs::transformColorSpace(pfs::CS_XYZ, X, Y, Z, pfs::CS_RGB, X, Y, Z);
|
||||
+ // WB adjustment
|
||||
+ float r, g, b;
|
||||
+ multipliers(*X,*Y,*Z,r,g,b);
|
||||
+ VERBOSE_STR << "red multiplier value: " << r << std::endl;
|
||||
+ VERBOSE_STR << "green multiplier value: " << g << std::endl;
|
||||
+ VERBOSE_STR << "blue multiplier value: " << b << std::endl;
|
||||
+ for (int i=s; i--; )
|
||||
+ {
|
||||
+ (*X)(i) *= r;
|
||||
+ (*Y)(i) *= g;
|
||||
+ (*Z)(i) *= b;
|
||||
+ }
|
||||
+ // Convert back to XYZ
|
||||
+ pfs::transformColorSpace(pfs::CS_RGB, X, Y, Z, pfs::CS_XYZ, X, Y, Z);
|
||||
+ float amin = 1e20, amax = -1e20;
|
||||
+ for (int i=s; i--; )
|
||||
+ {
|
||||
+ float const &l = (*Y)(i);
|
||||
+ if (amin > l) amin = l;
|
||||
+ if (amax < l) amax = l;
|
||||
+ }
|
||||
+ VERBOSE_STR << "luminance range of adjusted frame: " << amin << ":" << amax << std::endl;
|
||||
+ if (keep)
|
||||
+ {
|
||||
+ float k = (max-min)/(amax-amin);
|
||||
+ float nmin = 1e20, nmax = -1e20;
|
||||
+ for (int i=s; i--; )
|
||||
+ {
|
||||
+ float const &l = ((*Y)(i)-amin)*k+min;
|
||||
+ if (nmin > l) nmin = l;
|
||||
+ if (nmax < l) nmax = l;
|
||||
+ (*Y)(i) = l;
|
||||
+ }
|
||||
+ VERBOSE_STR << "restored luminance range: " << nmin << ":" << nmax << std::endl;
|
||||
+ }
|
||||
+ // Write frame
|
||||
+ pfsio.writeFrame(frame, stdout);
|
||||
+ pfsio.freeFrame(frame);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+int main(int argc, char *const argv[])
|
||||
+{
|
||||
+ static const struct option cmdLineOptions[] = {
|
||||
+ { "help", no_argument, NULL, 'h' },
|
||||
+ { "verbose", no_argument, NULL, 'v' },
|
||||
+ { "auto", no_argument, NULL, 'A' },
|
||||
+ { "x", required_argument, NULL, 'X' },
|
||||
+ { "y", required_argument, NULL, 'Y' },
|
||||
+ { "width", required_argument, NULL, 'W' },
|
||||
+ { "height", required_argument, NULL, 'H' },
|
||||
+ { "keep-lum", no_argument, NULL, 'k' },
|
||||
+ { "red", required_argument, NULL, 'r' },
|
||||
+ { "green", required_argument, NULL, 'g' },
|
||||
+ { "blue", required_argument, NULL, 'b' },
|
||||
+ { NULL, 0, NULL, 0 }
|
||||
+ };
|
||||
+
|
||||
+ try
|
||||
+ {
|
||||
+ int optionIndex = 0;
|
||||
+ while (true)
|
||||
+ {
|
||||
+ int c = getopt_long(argc, argv, "hvAX:Y:W:H:kr:g:b:", cmdLineOptions, &optionIndex);
|
||||
+ if (c == -1)
|
||||
+ {
|
||||
+ break;
|
||||
+ }
|
||||
+ switch (c)
|
||||
+ {
|
||||
+ case 'h':
|
||||
+ printHelp();
|
||||
+ throw QuietException();
|
||||
+ case 'v':
|
||||
+ verbose = true;
|
||||
+ break;
|
||||
+ case 'A':
|
||||
+ autowb = true;
|
||||
+ break;
|
||||
+ case 'X':
|
||||
+ x = (int)strtol(optarg, NULL, 10);
|
||||
+ if (x<=0)
|
||||
+ throw pfs::Exception("gray box x value out of range, should be >0");
|
||||
+ break;
|
||||
+ case 'Y':
|
||||
+ y = (int)strtol(optarg, NULL, 10);
|
||||
+ if (y<=0)
|
||||
+ throw pfs::Exception("gray box y value out of range, should be >0");
|
||||
+ break;
|
||||
+ case 'W':
|
||||
+ width = (int)strtol(optarg, NULL, 10);
|
||||
+ if (width<=0)
|
||||
+ throw pfs::Exception("gray box width value out of range, should be >0");
|
||||
+ break;
|
||||
+ case 'H':
|
||||
+ height = (int)strtol(optarg, NULL, 10);
|
||||
+ if (height<=0)
|
||||
+ throw pfs::Exception("gray box height value out of range, should be >0");
|
||||
+ break;
|
||||
+ case 'k':
|
||||
+ keep = true;
|
||||
+ break;
|
||||
+ case 'r':
|
||||
+ red = strtof(optarg, NULL);
|
||||
+ if (red<=0.0f)
|
||||
+ throw pfs::Exception("red multiplier value out of range, should be >0");
|
||||
+ break;
|
||||
+ case 'g':
|
||||
+ green = strtof(optarg, NULL);
|
||||
+ if (green<=0.0f)
|
||||
+ throw pfs::Exception("green multiplier value out of range, should be >0");
|
||||
+ break;
|
||||
+ case 'b':
|
||||
+ blue = strtof(optarg, NULL);
|
||||
+ if (blue<=0.0f)
|
||||
+ throw pfs::Exception("blue multiplier value out of range, should be >0");
|
||||
+ break;
|
||||
+ case '?':
|
||||
+ throw QuietException();
|
||||
+ case ':':
|
||||
+ throw QuietException();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ pfswb();
|
||||
+ }
|
||||
+ catch (std::exception ex)
|
||||
+ {
|
||||
+ std::cerr << PROG_NAME" std error: " << ex.what() << std::endl;
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+ catch (pfs::Exception ex)
|
||||
+ {
|
||||
+ std::cerr << PROG_NAME" error: " << ex.getMessage() << std::endl;
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+ catch (QuietException ex)
|
||||
+ {
|
||||
+ return EXIT_FAILURE;
|
||||
+ }
|
||||
+ return EXIT_SUCCESS;
|
||||
+}
|
192
graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp
Normal file
192
graphics/pfstools/files/patch-src-hdrhtml-hdrhtml.cpp
Normal file
@ -0,0 +1,192 @@
|
||||
--- src/hdrhtml/hdrhtml.cpp.orig 2009-03-11 21:45:55.000000000 +0000
|
||||
+++ src/hdrhtml/hdrhtml.cpp 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include "hdrhtml.h"
|
||||
|
||||
+#include <limits>
|
||||
#include <algorithm>
|
||||
#include <math.h>
|
||||
#include <fstream>
|
||||
@@ -48,6 +49,8 @@
|
||||
|
||||
#include <config.h>
|
||||
|
||||
+#define log2f(x) ((float)logf(x)/logf(2))
|
||||
+
|
||||
// ================================================
|
||||
// Parameters controllig the web page
|
||||
// ================================================
|
||||
@@ -94,8 +97,8 @@
|
||||
|
||||
if( min_val > max_val ) // missing min/max info
|
||||
{
|
||||
- min_val = numeric_limits<T>::max();
|
||||
- max_val = numeric_limits<T>::min();
|
||||
+ min_val = std::numeric_limits<T>::max();
|
||||
+ max_val = std::numeric_limits<T>::min();
|
||||
|
||||
for( int k=0; k < d_size; k++ ) {
|
||||
if( data[k] > max_val ) max_val = data[k];
|
||||
@@ -195,6 +198,7 @@
|
||||
this->y_i = new float[lut_size];
|
||||
own_y_i = true;
|
||||
memcpy(this->y_i, other.y_i, lut_size * sizeof(float));
|
||||
+ return *this;
|
||||
}
|
||||
|
||||
~UniformArrayLUT()
|
||||
@@ -341,7 +345,7 @@
|
||||
for( int k = 1; k < bin_n; k++ )
|
||||
hist.n[k] += hist.n[k-1];
|
||||
|
||||
-// cerr << "d_size: " << d_size << " hist.n: " << hist.n[bin_n-1] << "\n";
|
||||
+// std::cerr << "d_size: " << d_size << " hist.n: " << hist.n[bin_n-1] << "\n";
|
||||
assert( hist.n[bin_n-1] == d_size );
|
||||
}
|
||||
|
||||
@@ -361,7 +365,7 @@
|
||||
// Text template file utils
|
||||
// ================================================
|
||||
|
||||
-typedef void (*replace_callback)( ostream &out, void *user_data, const char *parameter );
|
||||
+typedef void (*replace_callback)( std::ostream &out, void *user_data, const char *parameter );
|
||||
|
||||
class ReplacePattern
|
||||
{
|
||||
@@ -403,7 +407,7 @@
|
||||
{
|
||||
}
|
||||
|
||||
- virtual void write_replacement( ostream &out, const char *parameter = NULL )
|
||||
+ virtual void write_replacement( std::ostream &out, const char *parameter = NULL )
|
||||
{
|
||||
if( callback != NULL )
|
||||
callback( out, user_data, parameter );
|
||||
@@ -567,7 +571,7 @@
|
||||
// Skip white spaces
|
||||
while( line_str[pos] == ' ' || line_str[pos] == '\t' ) pos++;
|
||||
int new_pos = line_str.find_first_of( ',', pos );
|
||||
- int len;
|
||||
+ size_t len;
|
||||
if( new_pos == std::string::npos ) {
|
||||
if( k != columns-1 ) {
|
||||
std::string full_message( "Missing column data in the file: " );
|
||||
@@ -576,16 +580,16 @@
|
||||
}
|
||||
len = std::string::npos;
|
||||
} else
|
||||
- len = new_pos-pos;
|
||||
+ len = (size_t)(new_pos-pos);
|
||||
|
||||
float value;
|
||||
if( len == 0 ) {
|
||||
- value = numeric_limits<float>::quiet_NaN();
|
||||
+ value = std::numeric_limits<float>::quiet_NaN();
|
||||
} else {
|
||||
std::string token = line_str.substr( pos, len );
|
||||
const char *str_beg = token.c_str();
|
||||
char *str_end;
|
||||
-// cerr << "token: " << str_beg << "\n";
|
||||
+// std::cerr << "token: " << str_beg << "\n";
|
||||
value = strtof( str_beg, &str_end );
|
||||
if( str_beg == str_end ) {
|
||||
std::ostringstream error_message;
|
||||
@@ -643,15 +647,15 @@
|
||||
basis_table.data[0][k] = log2f( basis_table.data[0][k] );
|
||||
|
||||
// Fix zero and negative values in the image, convert to log2 space, find min and max values
|
||||
- float img_min = numeric_limits<float>::max();
|
||||
- float img_max = numeric_limits<float>::min();
|
||||
+ float img_min = std::numeric_limits<float>::max();
|
||||
+ float img_max = std::numeric_limits<float>::min();
|
||||
{
|
||||
float *arrays[] = { R, G, B, Y };
|
||||
int k;
|
||||
|
||||
for( k = 0; k < 4; k++ ) {
|
||||
float *x = arrays[k];
|
||||
- float min_val = numeric_limits<float>::max(), max_val = numeric_limits<float>::min();
|
||||
+ float min_val = std::numeric_limits<float>::max(), max_val = std::numeric_limits<float>::min();
|
||||
for( int i=0; i < pixels; i++ ) {
|
||||
if( x[i] < min_val && x[i] > 0)
|
||||
min_val = x[i];
|
||||
@@ -741,7 +745,7 @@
|
||||
for( int k=1; k <= f8_stops+1; k++ ) {
|
||||
|
||||
|
||||
- float max_value = (float)numeric_limits<unsigned short>::max(); //(1<<16) -1;
|
||||
+ float max_value = (float)std::numeric_limits<unsigned short>::max(); //(1<<16) -1;
|
||||
|
||||
float exp_multip = log2f(1/powf( 2, l_start + k*8 ));
|
||||
|
||||
@@ -796,9 +800,9 @@
|
||||
|
||||
}
|
||||
|
||||
-void print_image_objects( ostream &out, void *user_data, const char *parameter );
|
||||
-void print_cf_table( ostream &out, void *user_data, const char *parameter );
|
||||
-void print_image_htmlcode( ostream &out, void *user_data, const char *parameter );
|
||||
+void print_image_objects( std::ostream &out, void *user_data, const char *parameter );
|
||||
+void print_cf_table( std::ostream &out, void *user_data, const char *parameter );
|
||||
+void print_image_htmlcode( std::ostream &out, void *user_data, const char *parameter );
|
||||
|
||||
void HDRHTMLSet::generate_webpage( const char *page_template, const char *image_template,
|
||||
const char *object_output, const char *html_output)
|
||||
@@ -852,11 +856,11 @@
|
||||
|
||||
}
|
||||
|
||||
-void print_image_objects( ostream &out, void *user_data, const char *parameter )
|
||||
+void print_image_objects( std::ostream &out, void *user_data, const char *parameter )
|
||||
{
|
||||
HDRHTMLSet *hdrhtml_set = (HDRHTMLSet*)user_data;
|
||||
|
||||
- list<HDRHTMLImage>::iterator it;
|
||||
+ std::list<HDRHTMLImage>::iterator it;
|
||||
for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
|
||||
std::string obj_name( "hdr_" );
|
||||
obj_name.append( it->base_name );
|
||||
@@ -882,7 +886,7 @@
|
||||
|
||||
}
|
||||
|
||||
-void print_image_htmlcode( ostream &out, HDRHTMLSet *hdrhtml_set, const HDRHTMLImage &it )
|
||||
+void print_image_htmlcode( std::ostream &out, HDRHTMLSet *hdrhtml_set, const HDRHTMLImage &it )
|
||||
{
|
||||
std::string obj_name( "hdr_" );
|
||||
obj_name.append( it.base_name );
|
||||
@@ -907,13 +911,13 @@
|
||||
|
||||
}
|
||||
|
||||
-void print_image_htmlcode( ostream &out, void *user_data, const char *parameter )
|
||||
+void print_image_htmlcode( std::ostream &out, void *user_data, const char *parameter )
|
||||
{
|
||||
HDRHTMLSet *hdrhtml_set = (HDRHTMLSet*)user_data;
|
||||
|
||||
if( parameter != NULL ) {
|
||||
|
||||
- list<HDRHTMLImage>::iterator it;
|
||||
+ std::list<HDRHTMLImage>::iterator it;
|
||||
for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
|
||||
if( it->base_name.compare( parameter ) == 0 )
|
||||
break;
|
||||
@@ -925,7 +929,7 @@
|
||||
|
||||
} else {
|
||||
|
||||
- list<HDRHTMLImage>::iterator it;
|
||||
+ std::list<HDRHTMLImage>::iterator it;
|
||||
for( it = hdrhtml_set->image_list.begin(); it != hdrhtml_set->image_list.end(); it++ ) {
|
||||
|
||||
print_image_htmlcode( out, hdrhtml_set, *it );
|
||||
@@ -935,7 +939,7 @@
|
||||
|
||||
}
|
||||
|
||||
-void print_cf_table( ostream &out, void *user_data, const char *parameter )
|
||||
+void print_cf_table( std::ostream &out, void *user_data, const char *parameter )
|
||||
{
|
||||
CSVTable *cf = (CSVTable*)user_data;
|
||||
|
10
graphics/pfstools/files/patch-src-matlab-compatibility.h
Normal file
10
graphics/pfstools/files/patch-src-matlab-compatibility.h
Normal file
@ -0,0 +1,10 @@
|
||||
--- src/matlab/compatibility.h.orig 2007-03-01 14:10:57.000000000 +0000
|
||||
+++ src/matlab/compatibility.h 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -59,6 +59,6 @@
|
||||
|
||||
#endif
|
||||
|
||||
-#define DEBUG_STR if(1); else cerr
|
||||
+#define DEBUG_STR if(1); else std::cerr
|
||||
|
||||
#endif
|
@ -1,6 +1,6 @@
|
||||
--- src/pfs/Makefile.in.orig 2008-01-01 14:27:14.000000000 +0000
|
||||
+++ src/pfs/Makefile.in 2008-02-12 10:59:44.000000000 +0000
|
||||
@@ -243,7 +243,7 @@
|
||||
--- src/pfs/Makefile.in.orig 2011-10-27 08:40:30.000000000 +0000
|
||||
+++ src/pfs/Makefile.in 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -259,7 +259,7 @@
|
||||
library_includedir = $(includedir)/pfs-1.2
|
||||
library_include_HEADERS = pfs.h array2d.h
|
||||
#INCLUDES =
|
||||
|
29
graphics/pfstools/files/patch-src-pfs-pfs.cpp
Normal file
29
graphics/pfstools/files/patch-src-pfs-pfs.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
--- src/pfs/pfs.cpp.orig 2010-07-14 09:44:27.000000000 +0000
|
||||
+++ src/pfs/pfs.cpp 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -71,7 +71,7 @@
|
||||
// TagContainer implementation
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
-typedef list<string> TagList;
|
||||
+typedef std::list<string> TagList;
|
||||
|
||||
class TagIteratorImpl: public TagIterator
|
||||
{
|
||||
@@ -570,7 +570,7 @@
|
||||
|
||||
//Read channel IDs and tags
|
||||
// FrameImpl::ChannelID *channelID = new FrameImpl::ChannelID[channelCount];
|
||||
- list<ChannelImpl*> orderedChannel;
|
||||
+ std::list<ChannelImpl*> orderedChannel;
|
||||
for( int i = 0; i < channelCount; i++ ) {
|
||||
char channelName[MAX_CHANNEL_NAME+1], *rs;
|
||||
rs = fgets( channelName, MAX_CHANNEL_NAME, inputStream );
|
||||
@@ -592,7 +592,7 @@
|
||||
|
||||
|
||||
//Read channels
|
||||
- list<ChannelImpl*>::iterator it;
|
||||
+ std::list<ChannelImpl*>::iterator it;
|
||||
for( it = orderedChannel.begin(); it != orderedChannel.end(); it++ ) {
|
||||
ChannelImpl *ch = *it;
|
||||
int size = frame->getWidth()*frame->getHeight();
|
45
graphics/pfstools/files/patch-src-pfs-pfs.h
Normal file
45
graphics/pfstools/files/patch-src-pfs-pfs.h
Normal file
@ -0,0 +1,45 @@
|
||||
--- src/pfs/pfs.h.orig 2006-03-01 17:21:16.000000000 +0000
|
||||
+++ src/pfs/pfs.h 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -115,6 +115,7 @@
|
||||
class TagIterator
|
||||
{
|
||||
public:
|
||||
+ virtual ~TagIterator() {};
|
||||
/**
|
||||
* Get next item on the list.
|
||||
*
|
||||
@@ -135,6 +136,7 @@
|
||||
class TagContainer
|
||||
{
|
||||
public:
|
||||
+ virtual ~TagContainer() {};
|
||||
/**
|
||||
* Get a string tag of the name tagName from the TagContainer.
|
||||
* @param tagName name of the tag to retrieve
|
||||
@@ -181,6 +183,7 @@
|
||||
*/
|
||||
class Channel : public Array2D {
|
||||
public:
|
||||
+ virtual ~Channel() {};
|
||||
/**
|
||||
* Gets width of the channel (in pixels).
|
||||
* This is a synonym for Array2D::getCols().
|
||||
@@ -226,6 +229,7 @@
|
||||
class ChannelIterator
|
||||
{
|
||||
public:
|
||||
+ virtual ~ChannelIterator() {};
|
||||
/**
|
||||
* Get next item on the list.
|
||||
*/
|
||||
@@ -580,7 +584,9 @@
|
||||
*/
|
||||
Exception( const char* const message )
|
||||
{
|
||||
- strcpy( msg, message );
|
||||
+ const size_t s = sizeof(msg)/sizeof(msg[0]) - 1;
|
||||
+ strncpy( msg, message, s );
|
||||
+ msg[s] = '\0';
|
||||
}
|
||||
|
||||
~Exception() {};
|
11
graphics/pfstools/files/patch-src-pfs-pfsutils.cpp
Normal file
11
graphics/pfstools/files/patch-src-pfs-pfsutils.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
--- src/pfs/pfsutils.cpp.orig 2006-09-21 21:42:54.000000000 +0000
|
||||
+++ src/pfs/pfsutils.cpp 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -81,7 +81,7 @@
|
||||
char fileName[1024];
|
||||
FILE *stdinout;
|
||||
|
||||
- typedef list<FilePattern> PatternList;
|
||||
+ typedef std::list<FilePattern> PatternList;
|
||||
|
||||
PatternList patternList;
|
||||
PatternList::iterator currentPattern;
|
29
graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp
Normal file
29
graphics/pfstools/files/patch-src-pfsglview-picture_io.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
--- src/pfsglview/picture_io.cpp.orig 2006-11-20 12:13:13.000000000 +0000
|
||||
+++ src/pfsglview/picture_io.cpp 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -87,7 +87,7 @@
|
||||
return;
|
||||
|
||||
// only XYZ channels are taken into consideration
|
||||
- if( channel != "XYZ" && channel != "X00" && channel != "0Y0" && channel != "00Z" ) {
|
||||
+ if (strcmp(channel,"XYZ") && strcmp(channel,"X00") && strcmp(channel,"0Y0") && strcmp(channel,"00Z")) {
|
||||
if(verbose)
|
||||
fprintf( stderr, "WARNING: wrong channel (PictureIO::setFrame())\n");
|
||||
return;
|
||||
@@ -573,7 +573,7 @@
|
||||
}
|
||||
std::sort(vec.begin(), vec.end());
|
||||
|
||||
- printf("size: %d\n", vec.size());
|
||||
+ printf("size: %lu\n", vec.size());
|
||||
|
||||
val = vec[0];
|
||||
std::vector<unsigned int> svec;
|
||||
@@ -589,7 +589,7 @@
|
||||
|
||||
float dr = svec[ svec.size()-1] / svec[0];
|
||||
|
||||
- printf("min:%ld max:%ld svec size: %d dr:%f\n", vec[0], vec[ vec.size()-1], svec.size(), log10(dr));
|
||||
+ printf("min:%u max:%u svec size: %lu dr:%f\n", vec[0], vec[ vec.size()-1], svec.size(), log10(dr));
|
||||
|
||||
|
||||
|
13
graphics/pfstools/files/patch-src-pfsglview-picture_io.h
Normal file
13
graphics/pfstools/files/patch-src-pfsglview-picture_io.h
Normal file
@ -0,0 +1,13 @@
|
||||
--- src/pfsglview/picture_io.h.orig 2008-07-29 16:14:30.000000000 +0000
|
||||
+++ src/pfsglview/picture_io.h 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -6,7 +6,9 @@
|
||||
|
||||
#define MAX_FRAMES_IN_MEMORY 10
|
||||
|
||||
-class pfs::Frame;
|
||||
+namespace pfs {
|
||||
+class Frame;
|
||||
+};
|
||||
enum LumMappingMethod {
|
||||
MAP_LINEAR,
|
||||
MAP_GAMMA1_4,
|
22
graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp
Normal file
22
graphics/pfstools/files/patch-src-pfsview-pfsview_widget.cpp
Normal file
@ -0,0 +1,22 @@
|
||||
--- src/pfsview/pfsview_widget.cpp.orig 2011-04-30 14:01:17.000000000 +0000
|
||||
+++ src/pfsview/pfsview_widget.cpp 2014-02-20 19:04:01.566588122 +0000
|
||||
@@ -142,7 +142,7 @@
|
||||
// Chose first available channel
|
||||
pfs::ChannelIterator *it = frame->getChannels();
|
||||
if( !it->hasNext() ) // TODO: failover
|
||||
- throw new pfs::Exception( "No channels available!" );
|
||||
+ throw pfs::Exception( "No channels available!" );
|
||||
visibleChannel = it->getNext()->getName();
|
||||
} else if( visibleChannel != COLOR_CHANNELS ) {
|
||||
// Get a new pointer, as the old frame object
|
||||
@@ -335,8 +335,8 @@
|
||||
assert( !color || (color && B != NULL) );
|
||||
|
||||
|
||||
- float lutPixFloor[257*2];
|
||||
- QRgb lutPixel[257*2];
|
||||
+ float lutPixFloor[257*2+1];
|
||||
+ QRgb lutPixel[257*2+1];
|
||||
int lutSize;
|
||||
if( !color && ( negativeTreatment == NEGATIVE_GREEN_SCALE ||
|
||||
negativeTreatment == NEGATIVE_ABSOLUTE ) ) { // Handle negative numbers
|
@ -1,4 +1,4 @@
|
||||
A set of command line (and one GUI) programs for reading, writing, manipulating
|
||||
and viewing high-dynamic range (HDR) images and video frames.
|
||||
|
||||
WWW: http://www.mpi-inf.mpg.de/resources/pfstools/
|
||||
WWW: http://pfstools.sourceforge.net/
|
||||
|
@ -19,37 +19,44 @@ bin/pfscut
|
||||
bin/pfspad
|
||||
bin/pfscat
|
||||
bin/pfsabsolute
|
||||
%%PPM%%bin/pfsinppm
|
||||
%%PPM%%bin/pfsoutppm
|
||||
%%EXR%%bin/pfsinexr
|
||||
%%EXR%%bin/pfsoutexr
|
||||
bin/pfsdisplayfunction
|
||||
bin/pfswb
|
||||
%%IMAGEMAGICK%%bin/pfsouthdrhtml
|
||||
%%NETPBM%%bin/pfsinppm
|
||||
%%NETPBM%%bin/pfsoutppm
|
||||
%%OPENEXR%%bin/pfsinexr
|
||||
%%OPENEXR%%bin/pfsoutexr
|
||||
%%TIFF%%bin/pfsintiff
|
||||
%%TIFF%%bin/pfsouttiff
|
||||
%%IM%%bin/pfsinimgmagick
|
||||
%%IM%%bin/pfsoutimgmagick
|
||||
%%IMAGEMAGICK%%bin/pfsinimgmagick
|
||||
%%IMAGEMAGICK%%bin/pfsoutimgmagick
|
||||
%%QT%%bin/pfsview
|
||||
%%QT%%bin/pfsv
|
||||
%%OCTAVE%%bin/pfsoctavelum
|
||||
%%OCTAVE%%bin/pfsoctavergb
|
||||
%%OCTAVE%%bin/pfsstat
|
||||
%%GL%%bin/pfsglview
|
||||
%%OPENGL%%bin/pfsglview
|
||||
%%GDAL%%bin/pfsingdal
|
||||
include/pfs-1.2/pfs.h
|
||||
include/pfs-1.2/array2d.h
|
||||
lib/libpfs-1.2.a
|
||||
lib/libpfs-1.2.la
|
||||
lib/libpfs-1.2.so
|
||||
lib/libpfs-1.2.so.0.0.0
|
||||
lib/libpfs-1.2.so.0
|
||||
lib/libpfs-1.2.so
|
||||
lib/libpfs-1.2.a
|
||||
libdata/pkgconfig/pfs.pc
|
||||
man/man1/pfsabsolute.1.gz
|
||||
man/man1/pfscat.1.gz
|
||||
man/man1/pfsclamp.1.gz
|
||||
man/man1/pfscut.1.gz
|
||||
man/man1/pfsdisplayfunction.1.gz
|
||||
man/man1/pfsextractchannels.1.gz
|
||||
man/man1/pfsflip.1.gz
|
||||
man/man1/pfsgamma.1.gz
|
||||
%%OPENGL%%man/man1/pfsglview.1.gz
|
||||
man/man1/pfsin.1.gz
|
||||
man/man1/pfsindcraw.1.gz
|
||||
man/man1/pfsinexr.1.gz
|
||||
man/man1/pfsingdal.1.gz
|
||||
man/man1/pfsinimgmagick.1.gz
|
||||
man/man1/pfsinjpeghdr.1.gz
|
||||
man/man1/pfsinmulti.1.gz
|
||||
@ -57,9 +64,12 @@ man/man1/pfsinpfm.1.gz
|
||||
man/man1/pfsinppm.1.gz
|
||||
man/man1/pfsinrgbe.1.gz
|
||||
man/man1/pfsintiff.1.gz
|
||||
%%OCTAVE%%man/man1/pfsoctavelum.1.gz
|
||||
%%OCTAVE%%man/man1/pfsoctavergb.1.gz
|
||||
man/man1/pfsout.1.gz
|
||||
man/man1/pfsoutexr.1.gz
|
||||
man/man1/pfsoutffmpeg.1.gz
|
||||
%%IMAGEMAGICK%%man/man1/pfsouthdrhtml.1.gz
|
||||
man/man1/pfsoutimgmagick.1.gz
|
||||
man/man1/pfsoutjpeghdr.1.gz
|
||||
man/man1/pfsoutpfm.1.gz
|
||||
@ -70,37 +80,56 @@ man/man1/pfspad.1.gz
|
||||
man/man1/pfspanoramic.1.gz
|
||||
man/man1/pfsrotate.1.gz
|
||||
man/man1/pfssize.1.gz
|
||||
%%OCTAVE%%man/man1/pfsstat.1.gz
|
||||
man/man1/pfstag.1.gz
|
||||
%%OCTAVE%%@cwd %%OCTAVE_BASE%%
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsclose.oct
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsget.oct
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsopen.oct
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsput.oct
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfsread.oct
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfstransform_colorspace.oct
|
||||
%%OCTAVE%%libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools/pfswrite.oct
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_close_frames.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_open_frames.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_read_luminance.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_read_rgb.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_read_xyz.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfs_write_rgb.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfssize.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfsview.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfsview_list.m
|
||||
%%OCTAVE%%share/octave/%%OCTAVE_VERSION%%/site/m/pfstools/pfsview_rgb.m
|
||||
%%OCTAVE%%@cwd %%PFS_BASE%%
|
||||
%%QT%%man/man1/pfsv.1.gz
|
||||
%%QT%%man/man1/pfsview.1.gz
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b2.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b2.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b3.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b3.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b4.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b4.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_c_b5.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_t_b5.csv
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_default_templ/hdrhtml_page_templ.html
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_default_templ/hdrhtml_image_templ.html
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/loading-spinner.gif
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/information-red.png
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-red.png
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/hdr_viewer.js
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-black.png
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/information.png
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/mouse2touch.js
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/mootools-1.2.4.js
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/hdr_viewer.css
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets/slider-white.png
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ.html
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ_slider-above.html
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_image_templ.html
|
||||
%%IMAGEMAGICK%%%%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_page_templ_short.html
|
||||
@dirrm include/pfs-1.2
|
||||
%%IMAGEMAGICK%%@dirrm %%DATADIR%%/hdrhtml_hdrlabs_templ/hdrhtml_assets
|
||||
%%IMAGEMAGICK%%@dirrm %%DATADIR%%/hdrhtml_hdrlabs_templ
|
||||
%%IMAGEMAGICK%%@dirrm %%DATADIR%%/hdrhtml_default_templ
|
||||
%%IMAGEMAGICK%%@dirrm %%DATADIR%%
|
||||
%%OCTAVE%%@cwd %%OCTAVE_BASE%%
|
||||
%%OCTAVE%%@dirrm share/octave/%%OCTAVE_VERSION%%/site/m/pfstools
|
||||
%%OCTAVE%%@dirrmtry share/octave/%%OCTAVE_VERSION%%/site/m
|
||||
%%OCTAVE%%@dirrmtry share/octave/%%OCTAVE_VERSION%%/site
|
||||
%%OCTAVE%%@dirrmtry share/octave/%%OCTAVE_VERSION%%
|
||||
%%OCTAVE%%@dirrmtry share/octave
|
||||
%%OCTAVE%%@dirrm libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%/pfstools
|
||||
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%/site/oct/%%BUILD%%
|
||||
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%/site/oct
|
||||
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%/site
|
||||
%%OCTAVE%%@dirrmtry libexec/octave/%%OCTAVE_VERSION%%
|
||||
%%OCTAVE%%@dirrmtry libexec/octave
|
||||
%%OCTAVE%%@cwd %%PFS_BASE%%
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsclose.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsget.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsopen.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsput.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfsread.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfstransform_colorspace.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_OCT%%/pfstools/pfswrite.oct
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_close_frames.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_open_frames.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_read_luminance.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_read_rgb.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_read_xyz.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfs_write_rgb.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfssize.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfsview.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfsview_list.m
|
||||
%%OCTAVE%%%%OCTAVE_SITE_M%%/pfstools/pfsview_rgb.m
|
||||
%%OCTAVE%%@dirrm %%OCTAVE_SITE_OCT%%/pfstools
|
||||
%%OCTAVE%%@dirrm %%OCTAVE_SITE_M%%/pfstools
|
||||
|
Loading…
x
Reference in New Issue
Block a user