Demosaicing and pre-processing parameters selectable for each image.
Dark frames subtraction and badpixels file support
Fast loading in editor.
This commit is contained in:
ffsup2 2010-10-30 22:14:47 +02:00
parent 5e7a81f0f1
commit 647dfb8366
153 changed files with 10304 additions and 6407 deletions

View File

@ -1,44 +1,80 @@
If you have problems with the compilation, identified the reason and fixed
the bug, please send me the updated build scripts (CMakeLists.txt files) to:
hgabor@rawtherapee.com
Windows
-------
Requirements:
- MinGW + MSYS
- CMake
- GTK and GTKMM development environments
METHOD 1:
Requirements:
- MinGW + MSYS
- CMake
- GTK and GTKMM development environments
Compile:
- Start MSYS
- Enter the root directory of the RawTherapee source tree
- Type: cmake -G "MSYS Makefiles" .
- Type: make install
- You find the compiled program in the release directory
Compile:
- Start MSYS
- Enter the root directory of the RawTherapee source tree
- Type: cmake -G "MSYS Makefiles" .
- Type: make install
- You find the compiled program in the release directory
METHOD 2:
Requirements:
- tdm-gcc (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download)
- cmake (http://www.cmake.org/cmake/resources/software.html)
- mercurial (http://mercurial.selenic.com/wiki/WindowsInstall)
- gtkmm (http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/)
Compile:
- Enter the root directory of the RawTherapee source tree
- Type: cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
- Type: mingw32-make.exe install
- You find the compiled program in the "release" directory
Linux
-----
Requirements:
- CMake
- GTK and GTKMM development packages
- libtiff, libpng, libjpeg, lcms, libiptcdata development packages
- ...did I forget something?
Requirements:
- CMake
- GTK and GTKMM development packages
- libtiff, libpng, libjpeg, lcms, libiptcdata development packages
- ...did I forget something?
On Ubuntu/Debian the requirements can be installed by running:
sudo apt-get install build-essential cmake libgtk2.0-dev libgtkmm-2.4-dev libtiff-dev libpng-dev libjpeg-dev liblcms-dev libiptcdata-dev merciurial
On Ubuntu/Debian the requirements can be installed by running:
sudo apt-get install build-essential cmake libgtk2.0-dev libgtkmm-2.4-dev libtiff-dev libpng-dev libjpeg-dev liblcms-dev libiptcdata-dev merciurial
Compile:
- Enter the root directory of the RawTherapee source tree
- Type: cmake -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
- Type: make install
- You find the compiled program in the release directory (you can copy it
anywhere you want)
Compile:
- Enter the root directory of the RawTherapee source tree
- Type: cmake -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=.
- Type: make install
- You find the compiled program in the release directory (you can copy it
anywhere you want)
(By changing the cmake flags, you can change where the release is. By removing all flags it should go to the standard system install location).
(By changing the cmake flags, you can change where the release is. By removing all flags it should go to the standard system install location).
...If you have problems with the compilation, identified the reason and fixed
the bug, please send me the updated build scripts (CMakeLists.txt files) to:
hgabor@rawtherapee.com
Using Eclipse under Linux:
Eclipse mercurial plugin:
click Help -> Install new Software.
The Eclipse Update Site for MercurialEclipse is available at this URL:
http://cbes.javaforge.com/update
Import the rawtherapee mercurial repository:
File->new->'other'->mercurial->Clone existing repository
fill in URL: https://rawtherapee.googlecode.com/hg
Enter root directory of RawTherapee source tree from a terminal window.
configure the source for Eclipse with:
cmake -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./release -DBINDIR=. -DDATADIR=. -DLIBDIR=. -DCMAKE_BUILD_TYPE=Release
Eclipse does not do 'make install' but only 'make all' so to get the release there are 2 ways.
1. type 'make install' in the console or,
2. in 'Project'->'properties'->'C/C++ Make Project'->'Build (incremental build)' change 'all' to 'install'
...
OSX
---

View File

@ -598,7 +598,7 @@ ZOOMBAR_SMALL;Petit
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -649,6 +649,12 @@ ZOOMBAR_SMALL;Petit
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -656,26 +662,42 @@ ZOOMBAR_SMALL;Petit
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -684,6 +706,11 @@ ZOOMBAR_SMALL;Petit
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -602,7 +602,7 @@ ZOOMBAR_SMALL;小
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -653,6 +653,12 @@ ZOOMBAR_SMALL;小
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -660,26 +666,42 @@ ZOOMBAR_SMALL;小
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -688,6 +710,11 @@ ZOOMBAR_SMALL;小
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -615,7 +615,7 @@ ZOOMBAR_SMALL;小
!!!!!!!!!!!!!!!!!!!!!!!!!
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -656,6 +656,12 @@ ZOOMBAR_SMALL;小
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -663,25 +669,41 @@ ZOOMBAR_SMALL;小
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -690,6 +712,11 @@ ZOOMBAR_SMALL;小
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -602,7 +602,7 @@ ZOOMBAR_SMALL;Malý
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -653,6 +653,12 @@ ZOOMBAR_SMALL;Malý
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -660,25 +666,41 @@ ZOOMBAR_SMALL;Malý
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -687,6 +709,11 @@ ZOOMBAR_SMALL;Malý
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -600,7 +600,7 @@ ZOOMBAR_SMALL;Lille
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -651,6 +651,12 @@ ZOOMBAR_SMALL;Lille
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -658,26 +664,42 @@ ZOOMBAR_SMALL;Lille
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -686,6 +708,11 @@ ZOOMBAR_SMALL;Lille
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -9,6 +9,8 @@
#07 22.12.2007
#08 4.4.2008: Anpassungen für 2.4
#09 Leichte Anpassungen (keenonkites/klonk)
#10 Erweiterung (oduis)
ADJUSTER_RESET_TO_DEFAULT;Standard wiederherstellen
BATCHQUEUE_AUTOSTART;Automatisch starten
BATCH_PROCESSING;Batch-Verarbeitung
CURVEEDITOR_CUSTOM;Angepasst
@ -19,6 +21,7 @@ CURVEEDITOR_HIGHLIGHTS;Spitzlichter
CURVEEDITOR_LIGHTS;Lichter
CURVEEDITOR_LINEAR;Linear
CURVEEDITOR_LOADDLGLABEL;Kurve Laden...
CURVEEDITOR_NURBS;NURBS-Kurve
CURVEEDITOR_PARAMETRIC;Parametrisch
CURVEEDITOR_SAVEDLGLABEL;Kurve Speichern...
CURVEEDITOR_SHADOWS;Schatten
@ -32,7 +35,7 @@ EXIFFILTER_DIALOGLABEL;Exif Filter
EXIFFILTER_FOCALLEN;Brennweite
EXIFFILTER_ISO;ISO
EXIFFILTER_LENS;Objektiv
EXIFFILTER_METADATAFILTER;Metadaten Filter einschalten
EXIFFILTER_METADATAFILTER;Metadaten-Filter einschalten
EXIFFILTER_SHUTTER;Verschlusszeit
EXIFPANEL_ADDEDIT;Neu/Ändern
EXIFPANEL_ADDEDITHINT;Hinzufügen eines neuen oder Ändern eines bestehenden Attributs
@ -48,14 +51,14 @@ EXIFPANEL_RESETALL;Alle zurücksetzen
EXIFPANEL_RESETALLHINT;Alle Attribute zu den ursrpünglichen Werten zurücksetzen
EXIFPANEL_RESETHINT;Gewählte Attribute zu den ursprünglich Werten zurücksetzen
EXIFPANEL_SUBDIRECTORY;Unterverzeichnis
FILEBROWSER_ADDDELTEMPLATE;Vorlagen hinzu/löschen...
FILEBROWSER_ADDDELTEMPLATE;Vorlagen hinzu/entfernen...
FILEBROWSER_APPLYPROFILE;Profil anwenden
FILEBROWSER_ARRANGEMENTHINT;Wechseln zwischen vertikaler und horizontaler Ausrichtung der Voransichten
FILEBROWSER_CLEARPROFILE;Profil löschen
FILEBROWSER_COPYPROFILE;Profil kopieren
FILEBROWSER_CURRENT_NAME;Aktueller Name:
FILEBROWSER_DELETEDLGLABEL;Bestätige Löschen von Dateien
FILEBROWSER_DELETEDLGMSG;Wollen sie wirklich %1 Dateien löschen?
FILEBROWSER_DELETEDLGMSG;Wollen sie wirklich %1 Datei(en) löschen?
FILEBROWSER_EMPTYTRASH;Papierkorb leeren
FILEBROWSER_EMPTYTRASHHINT;Endgültiges Löschen der Dateien im Papierkorb
FILEBROWSER_EXIFFILTERAPPLY;Anwenden
@ -109,10 +112,10 @@ GENERAL_ABOUT;Über
GENERAL_AFTER;Nachher
GENERAL_BEFORE;Vorher
GENERAL_CANCEL;Abbruch
GENERAL_DISABLE;ausschalten
GENERAL_DISABLED;ausgeschaltet
GENERAL_ENABLE;einschalten
GENERAL_ENABLED;eingeschaltet
GENERAL_DISABLE;deaktivieren
GENERAL_DISABLED;deaktiviert
GENERAL_ENABLE;Aktivieren
GENERAL_ENABLED;Aktiv
GENERAL_HIGH_QUALITY;Hohe Qualität
GENERAL_LANDSCAPE;Quer
GENERAL_LOAD;Laden
@ -150,17 +153,17 @@ HISTORY_MSG_19;Luminanz Kurve
HISTORY_MSG_1;Bild geladen
HISTORY_MSG_20;Schärfen
HISTORY_MSG_21;Schärfen Radius
HISTORY_MSG_22;Schärfen Menge
HISTORY_MSG_22;Schärfen Stärke
HISTORY_MSG_23;Schärfen Schwellwert
HISTORY_MSG_24;Schärfen nur Kanten
HISTORY_MSG_25;Schärfen Kantensuche Radius
HISTORY_MSG_26;Schärfen Kanten-Toleranz
HISTORY_MSG_27;Schärfen Halo-Kontrolle
HISTORY_MSG_28;Schärfen Halo-Kontrolle Menge
HISTORY_MSG_28;Schärfen Halo-Kontrolle Stärke
HISTORY_MSG_29;Schärfen Methode
HISTORY_MSG_2;Profil geladen
HISTORY_MSG_30;Dekonvolution Radius
HISTORY_MSG_31;Dekonvolution Menge
HISTORY_MSG_31;Dekonvolution Stärke
HISTORY_MSG_32;Dekonvolution Dämpfung
HISTORY_MSG_33;Dekonvolution Iterationen
HISTORY_MSG_34;Verhindere Farbbeschneidungen
@ -199,13 +202,13 @@ HISTORY_MSG_63;Variante gewählt
HISTORY_MSG_64;Bild beschneiden
HISTORY_MSG_65;Farbsaum-Entfernung
HISTORY_MSG_66;Lichter wiederherstellen
HISTORY_MSG_67;Lichter wiederherstellen Menge
HISTORY_MSG_67;Lichter wiederherstellen Stärke
HISTORY_MSG_68;Lichter wiederherstellen Methode
HISTORY_MSG_69;Aktueller Farbraum
HISTORY_MSG_6;Kontrast
HISTORY_MSG_70;Farbraum für Ausgabe
HISTORY_MSG_71;Farbraum für Eingabe
HISTORY_MSG_72;Korrektur Randlichtabfall
HISTORY_MSG_72;Vignettierungs-Korrektur
HISTORY_MSG_73;Kanal-Mixer
HISTORY_MSG_74;Änderung Größe - Maßstab
HISTORY_MSG_75;Änderung Größe - Methode
@ -216,7 +219,17 @@ HISTORY_MSG_79;Änderung Größe - Breite
HISTORY_MSG_7;Schwarz
HISTORY_MSG_80;Änderung Größe - Höhe
HISTORY_MSG_81;Änderung Größe - eingeschaltet
HISTORY_MSG_82;Profil geändert
HISTORY_MSG_83;Schatten/Lichter hohe Qualität
HISTORY_MSG_84;Perspektivische Korrektur
HISTORY_MSG_85;Wavelet Koeffizienten
HISTORY_MSG_86;Wavelet Equalizer
HISTORY_MSG_87;Impulsrauschfilter
HISTORY_MSG_89;Gerichtete Pyramide
HISTORY_MSG_8;Belichtungskorrektur
HISTORY_MSG_90;Gerichtete Pyramide Luminanz
HISTORY_MSG_91;Gerichtete Pyramide Chrominanz
HISTORY_MSG_92;Gerichtete Pyramide Gamma
HISTORY_MSG_9;Lichter-Kompression
HISTORY_NEWSNAPSHOT;Neue Variante
HISTORY_NEWSNAPSHOTAS;als...
@ -231,7 +244,7 @@ ICMPANEL_GAMMABEFOREINPUT;Profil enthält Gammaanpassung
ICMPANEL_INPUTCAMERA;Kamera-Standard
ICMPANEL_INPUTCUSTOM;Benutzerdefiniert
ICMPANEL_INPUTDLGLABEL;Wähle Eingabe-ICC-Profil...
ICMPANEL_INPUTEMBEDDED;Verwende eingebettetes, wenn möglich
ICMPANEL_INPUTEMBEDDED;Eingebettetes verwenden, wenn möglich
ICMPANEL_INPUTPROFILE;Eingabeprofil
ICMPANEL_NOICM;Kein ICM: sRGB-Ausgabe
ICMPANEL_OUTPUTDLGLABEL;Wähle Ausgabe-ICC-Profil...
@ -284,18 +297,21 @@ IPTCPANEL_TRANSREFERENCEHINT;Ein Code, der den ursprünglichen Ort der Übertrag
MAIN_BUTTON_EXIT;Verlassen
MAIN_BUTTON_FULLSCREEN;Vollbild
MAIN_BUTTON_PREFERENCES;Einstellungen
MAIN_BUTTON_PUTTOQUEUE;Auf die Warteschlange
MAIN_BUTTON_QUEUE;Auf die Warteschlange
MAIN_BUTTON_PUTTOQUEUE;In Warteschlange
MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Reiht aktuelles Bild in die Warteschlange ein <b>Strg+Q</b>
MAIN_BUTTON_QUEUE;In die Warteschlange
MAIN_BUTTON_SAVE;Bild speichern
MAIN_BUTTON_SAVEAS;unter...
MAIN_BUTTON_SENDTOEDITOR;Im Editor laden
MAIN_BUTTON_SAVEAS;Speichern unter...
MAIN_BUTTON_SAVE_TOOLTIP;Aktuelles Bild speichern <b>Ctrl+S</b>
MAIN_BUTTON_SENDTOEDITOR;Im Editor öffnen
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Öffnes das aktuelle Bild im externen Editor <b>Strg+E</b>
MAIN_BUTTON_UNFULLSCREEN;Vollbild beenden
MAIN_FRAME_BATCHQUEUE;Warteschlange
MAIN_FRAME_FILEBROWSER;Dateiverwaltung
MAIN_FRAME_PLACES;Orte
MAIN_FRAME_PLACES_ADD;Hinzu
MAIN_FRAME_PLACES_DEL;Löschen
MAIN_FRAME_RECENT;Verwendete Ordner
MAIN_FRAME_PLACES;Favoriten
MAIN_FRAME_PLACES_ADD;Hinzuf.
MAIN_FRAME_PLACES_DEL;Entf.
MAIN_FRAME_RECENT;Zuletzt besucht
MAIN_MSG_ALREADYEXISTS;Diese Datei existiert schon.
MAIN_MSG_CANNOTLOAD;Bild kann nicht geladen werden
MAIN_MSG_CANNOTSAVE;Fehler beim Speichern
@ -303,11 +319,11 @@ MAIN_MSG_CANNOTSTARTEDITOR;Der Editor kann nicht gestartet werden.
MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Setzen Sie bitte den richtigen Pfad in den Einstellungen.
MAIN_MSG_ERRORDURINGIMAGESAVING;Fehler beim Speichern des Bildes
MAIN_MSG_EXITJOBSINQUEUEINFO;Unverarbeitete Bilder in der Warteschlange gehen beim Verlassen der Anwendung verloren.
MAIN_MSG_EXITJOBSINQUEUEQUEST;Wollen Sie die Anwendung wirklich schliessen ? Es hat noch unverarbeitete Bilder in der Warteschlange.
MAIN_MSG_EXITJOBSINQUEUEQUEST;Wollen Sie die Anwendung wirklich schliessen? Es hat noch unverarbeitete Bilder in der Warteschlange.
MAIN_MSG_JOBSINQUEUE;Job in Bearbeitung
MAIN_MSG_NAVIGATOR;Navigator
MAIN_MSG_PLACES;Orte
MAIN_MSG_QOVERWRITE;Wollen sie die Datei überschreiben ?
MAIN_MSG_QOVERWRITE;Wollen sie die Datei überschreiben?
MAIN_TAB_BASIC;Basis
MAIN_TAB_COLOR;Farbe
MAIN_TAB_DETAIL;Detail
@ -317,7 +333,7 @@ MAIN_TAB_EXPOSURE;Belichtung
MAIN_TAB_FILTER;Metadaten-Filter
MAIN_TAB_ICM;ICM
MAIN_TAB_IPTC;IPTC
MAIN_TAB_METADATA;Metadata
MAIN_TAB_METADATA;Meta-Daten
MAIN_TAB_TAGGING;Tagging
MAIN_TAB_TRANSFORM;Verändern
MAIN_TOGGLE_BEFORE_AFTER;V|N
@ -360,6 +376,7 @@ PARTIALPASTE_EXPOSURE;Belichtung
PARTIALPASTE_HLRECOVERY;Lichter wiederherstellen
PARTIALPASTE_ICMSETTINGS;Einstellungen ICM
PARTIALPASTE_IPTCINFO;IPTC Informationen
PARTIALPASTE_LABCURVE;LAB-Kurve
PARTIALPASTE_LENSGROUP;Gruppe Farbeinstellungen
PARTIALPASTE_LUMACURVE;Luminanzkurve
PARTIALPASTE_LUMADENOISE;Luminanz-Rauschfilter
@ -369,7 +386,7 @@ PARTIALPASTE_RESIZE;Grösse ändern
PARTIALPASTE_ROTATION;Drehen
PARTIALPASTE_SHADOWSHIGHLIGHTS;Schatten/Lichter
PARTIALPASTE_SHARPENING;Schärfen
PARTIALPASTE_VIGNETTING;Korrektur Randlichtabfall
PARTIALPASTE_VIGNETTING;Korrektur Vignettierung
PARTIALPASTE_WHITEBALANCE;Weissabgleich
PREFERENCES_ADD;HINZU
PREFERENCES_APPLNEXTSTARTUP;beim nächsten Programmstart aktiv
@ -388,6 +405,7 @@ PREFERENCES_CACHESTRAT2;Priorität auf minimierten Speicherverbrauch (geringere
PREFERENCES_CACHESTRAT;Strategie des Zwischenspeichers
PREFERENCES_CACHETHUMBFORM;Format des Zwischenspeichers
PREFERENCES_CACHETHUMBHEIGHT;Maximale Höhe der Voransichten
PREFERENCES_CACORRECTION;Autom. Korrektur Chrom. Abberation
PREFERENCES_CLEARDLG_LINE1;Löschen des Zwischenspeichers
PREFERENCES_CLEARDLG_LINE2;Das kann einige Sekunden dauern.
PREFERENCES_CLEARDLG_TITLE;Bitte warten
@ -406,25 +424,31 @@ PREFERENCES_DIROTHER;Anderes
PREFERENCES_DIRSELECTDLG;Wähle das Bild-Verzeichnis beim Programmstart...
PREFERENCES_DIRSOFTWARE;Installationsverzeichnis
PREFERENCES_DMETHOD;Methode
PREFERENCES_DMETHODBATCH;Warteschlange
PREFERENCES_EDITORCMDLINE;Andere Befehlszeile
PREFERENCES_EDITORLAYOUT;Editor-Layout
PREFERENCES_EXTERNALEDITOR;Externer Editor
PREFERENCES_FALSECOLOR;Stufen zur Unterdrückung von Falschfarben
PREFERENCES_FALSECOLOR;Stufen Falschfarben-Unterdrückung
PREFERENCES_FBROWSEROPTS;Datei-Browser-Einstellungen
PREFERENCES_FILEFORMAT;Datei-Format
PREFERENCES_FORIMAGE;Für Bild-Dateien
PREFERENCES_FORRAW;Für RAW-Dateien
PREFERENCES_GIMPPATH;GIMP Installations Verzeichnis
PREFERENCES_GIMPPATH;GIMP Installations-Verzeichnis
PREFERENCES_GREENEQUIL;Grün-Ausgleich
PREFERENCES_GTKTHEME;Standard GTK
PREFERENCES_HINT;Erklärungen
PREFERENCES_HLTHRESHOLD;Schwellwert - zu hell
PREFERENCES_HOTDEADPIXFILT;Hot/Dead Pixel Filter anwenden
PREFERENCES_ICCDIR;ICC-Profile-Verzeichnis
PREFERENCES_IMPROCPARAMS;Standard-Bildbearbeitungsparameter
PREFERENCES_INTENT_ABSOLUTE;Absolut farbmetrisch
PREFERENCES_INTENT_PERCEPTUAL;Wahrnehmungsabhängig
PREFERENCES_INTENT_RELATIVE;Relative farbmetrisch
PREFERENCES_INTENT_RELATIVE;Relativ farbmetrisch
PREFERENCES_INTENT_SATURATION;Sättigung
PREFERENCES_LINEDENOISE;Zeilenrausch-Filter
PREFERENCES_LIVETHUMBNAILS;Live Voransichten (langsamer)
PREFERENCES_MONITORICC;Monitor-Profil
PREFERENCES_MULTITAB;Multi-Reiter Modus
PREFERENCES_OUTDIR;Ausgabe-Verzeichnis
PREFERENCES_OUTDIRFOLDER;Speichern in Verzeichnis
PREFERENCES_OUTDIRFOLDERHINT;Ablegen der gespeicherten Bilder in ein ausgewähltes Verzeichnis
@ -439,20 +463,22 @@ PREFERENCES_PARSEDEXTDELHINT;Lösche den ausgewählten Datei-Typ von der Liste
PREFERENCES_PROFILEHANDLING;Behandlung der Bearbeitungsprofile
PREFERENCES_PROFILELOADPR;Priorität der Profile beim Laden
PREFERENCES_PROFILEPRCACHE;Bearbeitungsprofil im Zwischenspeicher (Cache)
PREFERENCES_PROFILEPRFILE;Bearbeitungsprofile bei der urpsrünglich geladenen Datei
PREFERENCES_PROFILEPRFILE;Bearbeitungsprofile bei der ursprünglich geladenen Datei
PREFERENCES_PROFILESAVECACHE;Speichern der Verarbeitungsparameter im Zwischenspeicher (Cache)
PREFERENCES_PROFILESAVEINPUT;Speichern der Verarbeitungsparameter zusammen mit der ursprünglich geladenen Datei
PREFERENCES_PROPERTY;Eigenschaft
PREFERENCES_PSPATH;Adobe Photoshop Installations Verzeichnis
PREFERENCES_PSPATH;Adobe Photoshop Installations-Verzeichnis
PREFERENCES_SELECTFONT;Schriftart
PREFERENCES_SELECTICCDIRDLG;Wähle ICC-Profile-Verzeichnis...
PREFERENCES_SELECTLANG;Sprache
PREFERENCES_SELECTMONITORPROFDLG;Wähle ICC-Profil für den Monitor...
PREFERENCES_SELECTTHEME;Wähle Oberflächendesign
PREFERENCES_SELECTTHEME;Oberflächendesign
PREFERENCES_SET;SETZEN
PREFERENCES_SHOWBASICEXIF;Zeige grundlegende Exif-Informationen
PREFERENCES_SHOWDATETIME;Zeige Datum und Zeit
PREFERENCES_SHOWONLYRAW;Zeige nur Rohdateien (RAW)
PREFERENCES_SHTHRESHOLD;Schwellwert - zu dunkel
PREFERENCES_SINGLETAB;Ein-Reiter Modus
PREFERENCES_STARTUPIMDIR;Bild-Verzeichnis beim Programmstart
PREFERENCES_TAB_BROWSER;Datei-Browser
PREFERENCES_TAB_COLORMGR;Farbmanagement
@ -460,6 +486,8 @@ PREFERENCES_TAB_GENERAL;Allgemein
PREFERENCES_TAB_IMPROC;Bildbearbeitung
PREFERENCES_TAB_OUTPUT;Ausgabe
PREFERENCES_THUMBSIZE;Größe der Vorschau
PREFERENCES_USESYSTEMTHEME; System-Overfläche verwenden
PREFERENCES_WORKFLOW;Workflow
PROFILEPANEL_FILEDLGFILTERANY;Alle Dateien
PROFILEPANEL_FILEDLGFILTERPP;Bearbeitungsprofile
PROFILEPANEL_LABEL;Bearbeitungsprofile
@ -493,6 +521,7 @@ QINFO_FOCALLENGTH;Brennweite
QINFO_ISO;ISO
QINFO_LENS;Objektiv
QINFO_NOEXIF;Keine Exif-Daten vorhanden.
SAVEDLG_AUTOSUFFIX;Suffix an Dateinamen hängen falls schon vorhanden
SAVEDLG_FILEFORMAT;Dateiformat
SAVEDLG_JPEGQUAL;JPEG-Qualität
SAVEDLG_JPGFILTER;JPEG-Datei
@ -501,8 +530,8 @@ SAVEDLG_PNGFILTER;PNG-Datei
SAVEDLG_PUTTOQUEUE;In Warteschlange für Verarbeitung legen
SAVEDLG_PUTTOQUEUEHEAD;An Anfang der Warteschlange für Verarbeitung legen
SAVEDLG_PUTTOQUEUETAIL;Ans Ende der Warteschlange für Verarbeitung legen
SAVEDLG_SAVEIMMEDIATELY;Sofort Speichern
SAVEDLG_SAVESPP;Speichere die Prozessparameter mit dem Bild
SAVEDLG_SAVEIMMEDIATELY;Sofort speichern
SAVEDLG_SAVESPP;Speichere Prozessparameter mit dem Bild
SAVEDLG_TIFFFILTER;TIFF-Datei
SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
TOOLBAR_TOOLTIP_CROP;Auswahl des Ausschnitts (Taste C)
@ -522,7 +551,7 @@ TP_COARSETRAF_TOOLTIP_ROTLEFT;nach links drehen
TP_COARSETRAF_TOOLTIP_ROTRIGHT;nach rechts drehen
TP_COARSETRAF_TOOLTIP_VFLIP;vertikal spiegeln
TP_COLORBOOST_ACHANNEL;Kanal "a"
TP_COLORBOOST_AMOUNT;Menge
TP_COLORBOOST_AMOUNT;Stärke
TP_COLORBOOST_AVOIDCOLORCLIP;Verhindere Übersättigung
TP_COLORBOOST_BCHANNEL;Kanal "b"
TP_COLORBOOST_CHAB;a & b
@ -550,27 +579,44 @@ TP_CROP_GTRULETHIRDS;Goldener Schnitt
TP_CROP_GUIDETYPE;Hilfslinien:
TP_CROP_H;H
TP_CROP_LABEL;Ausschnitt
TP_CROP_SELECTCROP; Wähle Ausschnitt
TP_CROP_SELECTCROP;Ausschnitt wählen
TP_CROP_W;W
TP_CROP_X;x
TP_CROP_Y;y
TP_DETAIL_AMOUNT;Menge
TP_DETAIL_AMOUNT;Stärke
TP_DIRPYRDENOISE_CHROMA;Chrominanz
TP_DIRPYRDENOISE_GAMMA;Gamma
TP_DIRPYRDENOISE_LABEL;Direktionale Pyramiden-Rauschminderung
TP_DIRPYRDENOISE_LUMA;Luminanz
TP_DIRPYREQUALIZER_LABEL;Direktionaler Pyramiden-Equalizer
TP_DIRPYREQUALIZER_LUMACOARSEST;Gröbstes
TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Kontrast-
TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Kontrast+
TP_DIRPYREQUALIZER_LUMAFINEST;Feinstes
TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
TP_DIRPYREQUALIZER_THRESHOLD;Schwellwert
TP_DISTORTION_AMOUNT;Menge
TP_DISTORTION_LABEL;Entzerrung
TP_EXPOSURE_AUTOLEVELS;autom.
TP_EXPOSURE_BLACKLEVEL;schwarz
TP_EQUALIZER_CONTRAST_MINUS;Kontrast-
TP_EQUALIZER_CONTRAST_PLUS;Kontrast+
TP_EQUALIZER_FINEST;Feinstes
TP_EQUALIZER_LABEL;Wavelet-Equalizer
TP_EQUALIZER_LARGEST;Gröbstes
TP_EQUALIZER_NEUTRAL;Neutral
TP_EXPOSURE_AUTOLEVELS;Auto
TP_EXPOSURE_BLACKLEVEL;Schwarzpegel
TP_EXPOSURE_BRIGHTNESS;Helligkeit
TP_EXPOSURE_CLIP;beschneiden
TP_EXPOSURE_CLIP;Grenzwert
TP_EXPOSURE_COMPRHIGHLIGHTS;Lichter-Kompression
TP_EXPOSURE_COMPRSHADOWS;Schatten-Kompression
TP_EXPOSURE_CONTRAST;Kontrast
TP_EXPOSURE_CURVEEDITOR;Tonwertkurve
TP_EXPOSURE_EXPCOMP;Bel.Korrektur
TP_EXPOSURE_EXPCOMP;Belichtungskorrektur
TP_EXPOSURE_LABEL;Belichtung
TP_HLREC_CIELAB;CIELab Überlagerung
TP_HLREC_COLOR;Farbübertragung
TP_HLREC_LABEL;Lichter wiederherstellen
TP_HLREC_LUMINANCE;Luminanz herstellen
TP_HLREC_LUMINANCE;Luminanz wiederherstellen
TP_HLREC_METHOD;Methode:
TP_ICM_FILEDLGFILTERANY;Alle Dateien
TP_ICM_FILEDLGFILTERICM;ICC-Profildateien
@ -586,6 +632,16 @@ TP_ICM_OUTPUTDLGLABEL;Wähle Ausgabe-ICC-Profil...
TP_ICM_OUTPUTPROFILE;Ausgabeprofil
TP_ICM_SAVEREFERENCE;Speichere Referenzbild für die Profilierung
TP_ICM_WORKINGPROFILE;Arbeitsfarbraum
TP_IMPULSEDENOISE_LABEL;Impulsrauschminderung
TP_IMPULSEDENOISE_THRESH;Schwellwert
TP_LABCURVE_BRIGHTNESS;Helligkeit
TP_LABCURVE_CONTRAST;Kontrast
TP_LABCURVE_CURVEEDITOR;Luminanzkurve
TP_LABCURVE_LABEL;Luminanzkurve
TP_LABCURVE_SATURATION;Sättigung
TP_LENSGEOM_AUTOCROP;Auto-Schneiden
TP_LENSGEOM_FILL;Auto-Füllen
TP_LENSGEOM_LABEL;Objektivkorrekturen
TP_LUMACURVE_BLACKLEVEL;schwarz
TP_LUMACURVE_BRIGHTNESS;Helligkeit
TP_LUMACURVE_COMPRHIGHLIGHTS;Lichter-Kompression
@ -596,6 +652,9 @@ TP_LUMACURVE_LABEL;Luminanzkurve
TP_LUMADENOISE_EDGETOLERANCE;Kanten-Toleranz
TP_LUMADENOISE_LABEL;Luminanz-Rauschfilter
TP_LUMADENOISE_RADIUS;Radius
TP_PERSPECTIVE_HORIZONTAL;Horizontal
TP_PERSPECTIVE_LABEL;Perspektive
TP_PERSPECTIVE_VERTICAL;Vertikal
TP_RESIZE_BICUBIC;Bikubisch
TP_RESIZE_BICUBICSF;Bikubisch (Weicher)
TP_RESIZE_BICUBICSH;Bikubisch (Schärfer)
@ -624,23 +683,23 @@ TP_SHADOWSHLIGHTS_LOCALCONTR;Lokaler Kontrast
TP_SHADOWSHLIGHTS_RADIUS;Radius
TP_SHADOWSHLIGHTS_SHADOWS;Schatten
TP_SHADOWSHLIGHTS_SHTONALW;Farbtonbereich
TP_SHARPENING_AMOUNT;Menge
TP_SHARPENING_AMOUNT;Stärke
TP_SHARPENING_EDRADIUS;Radius
TP_SHARPENING_EDTOLERANCE;Kanten-Toleranz
TP_SHARPENING_HALOCONTROL;Halo-Kontrolle
TP_SHARPENING_HCAMOUNT;Menge
TP_SHARPENING_HCAMOUNT;Stärke
TP_SHARPENING_LABEL;Schärfen
TP_SHARPENING_METHOD;Methode
TP_SHARPENING_ONLYEDGES;nur Kanten schärfen
TP_SHARPENING_RADIUS;Radius
TP_SHARPENING_RLD;R-L Bildrestaurierung
TP_SHARPENING_RLD_AMOUNT;Menge
TP_SHARPENING_RLD;R-L Deconvolution
TP_SHARPENING_RLD_AMOUNT;Stärke
TP_SHARPENING_RLD_DAMPING;Dämpfung
TP_SHARPENING_RLD_ITERATIONS;Iterationen
TP_SHARPENING_THRESHOLD;Schwellwert
TP_SHARPENING_USM;Unscharf maskieren
TP_VIGNETTING_AMOUNT;Menge
TP_VIGNETTING_LABEL;Korrektur Randlichtabfall
TP_SHARPENING_USM;Unschärfemaske
TP_VIGNETTING_AMOUNT;Stärke
TP_VIGNETTING_LABEL;Vignettierungs-Korrektur
TP_VIGNETTING_RADIUS;Radius
TP_WBALANCE_AUTO;Automatisch
TP_WBALANCE_CAMERA;Kamera
@ -649,7 +708,7 @@ TP_WBALANCE_GREEN;Farbton
TP_WBALANCE_LABEL;Weißabgleich
TP_WBALANCE_METHOD;Methode
TP_WBALANCE_SIZE;Größe:
TP_WBALANCE_SPOTWB;manuel setzen
TP_WBALANCE_SPOTWB;Manuell setzen
TP_WBALANCE_TEMPERATURE;Farbtemperatur
ZOOMBAR_DETAIL;Detail
ZOOMBAR_HUGE;riesig
@ -662,9 +721,9 @@ ZOOMPANEL_100;(100%)
ZOOMPANEL_NEWCROPWINDOW;(Neues) Detailfenster öffnen
ZOOMPANEL_ZOOM100;Zoom 100%
ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen
ZOOMPANEL_ZOOMIN;Hinein zoomen
ZOOMPANEL_ZOOMOUT;Heraus zoomen
ADJUSTER_RESET_TO_DEFAULT;Zurück zum Standard
ZOOMPANEL_ZOOMIN;Hineinzoomen
ZOOMPANEL_ZOOMOUT;Herauszoomen

!!!!!!!!!!!!!!!!!!!!!!!!!
@ -672,41 +731,9 @@ ZOOMPANEL_ZOOMOUT;Heraus zoomen
!!!!!!!!!!!!!!!!!!!!!!!!!
!ADJUSTER_RESET_TO_DEFAULT;Reset to default
!CURVEEDITOR_NURBS;Control cage
!HISTORY_MSG_82;Profile Changed
!HISTORY_MSG_83;High quality shadows/highlights
!HISTORY_MSG_84;Perspective correction
!HISTORY_MSG_85;Wavelet coefficients
!HISTORY_MSG_86;Wavelet equalizer
!HISTORY_MSG_87;Impulse noise reduction
!HISTORY_MSG_89;Directional pyramid
!HISTORY_MSG_90;Directional pyramid luminance
!HISTORY_MSG_91;Directional pyramid chominance
!HISTORY_MSG_92;Directional pyramid gamma
!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Add current image to processing queue <b>Ctrl+Q</b>
!MAIN_BUTTON_SAVE_TOOLTIP;Save current image <b>Ctrl+S</b>
!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E</b>
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
!TP_EQUALIZER_LABEL;Wavelet equalizer
!TP_EQUALIZER_LARGEST;coarsest
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_PERSPECTIVE_HORIZONTAL;Horizontal
!TP_PERSPECTIVE_LABEL;Perspective
!TP_PERSPECTIVE_VERTICAL;Vertical
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1

View File

@ -9,7 +9,7 @@
!ADJUSTER_RESET_TO_DEFAULT;Reset to default
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_FILEDLGFILTERANY;Any files
@ -349,6 +349,12 @@
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -373,8 +379,9 @@
!PARTIALPASTE_HLRECOVERY;Highlight recovery
!PARTIALPASTE_ICMSETTINGS;ICM settings
!PARTIALPASTE_IPTCINFO;IPTC info
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PARTIALPASTE_LENSGROUP;Lens related settings
!PARTIALPASTE_LUMACURVE;Luminance curve
!PARTIALPASTE_LUMADENOISE;Luminance noise reduction
!PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
!PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
@ -385,7 +392,7 @@
!PARTIALPASTE_VIGNETTING;Vignetting correction
!PARTIALPASTE_WHITEBALANCE;White balance
!PREFERENCES_ADD;ADD
!PREFERENCES_APPLNEXTSTARTUP;applied at next startup
!PREFERENCES_APPLNEXTSTARTUP;restart required
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_BLINKCLIPPED;Blink clipped areas
@ -402,9 +409,6 @@
!PREFERENCES_CACHETHUMBFORM;Cache Thumbnail Format
!PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_CLEARDLG_LINE1;Clearing cache
!PREFERENCES_CLEARDLG_LINE2;This may take a few seconds.
!PREFERENCES_CLEARDLG_TITLE;Please wait
!PREFERENCES_CLIPPINGIND;Clipping indication
!PREFERENCES_CMETRICINTENT;Colorimetric Intent
!PREFERENCES_DATEFORMAT;Date Format
@ -419,8 +423,10 @@
!PREFERENCES_DIROTHER;Other
!PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup...
!PREFERENCES_DIRSOFTWARE;Installation directory
!PREFERENCES_DMETHOD;Method
!PREFERENCES_DMETHOD;Preview
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORCMDLINE;Other command line
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_EXTERNALEDITOR;External editor
!PREFERENCES_FALSECOLOR;False color suppression steps
!PREFERENCES_FBROWSEROPTS;File Browser Options
@ -442,12 +448,13 @@
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
!PREFERENCES_MONITORICC;Monitor Profile
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OUTDIR;Output Directory
!PREFERENCES_OUTDIRFOLDER;Save to folder
!PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the selected folder
!PREFERENCES_OUTDIRHINT;<i>You can use the following formatting strings:</i>n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>n<i>nThese formatting strings refer to the directories and sub-paths of the path of the raw file.nnFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...n</b><i>nIf you want to save the output image where the original is, write:n</i><b>%p1/%fn</b><i>nIf you want to save the output image in a directory 'converted' located the directory of the original, write:n</i><b>%p1/converted/%fn</b><i>nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:n</i><b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRHINT;You can use the following formatting strings:n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...nnThese formatting strings refer to the different parts of the photo's pathname.nnFor example, if the photo being processed has the following pathname:n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>nthe meaning of the formatting strings are:n<b>%d4</b> = <i>home</i>n<b>%d3</b> = <i>tom</i>n<b>%d2</b> = <i>photos</i>n<b>%d1</b> = <i>2010-10-31</i>n<b>%f</b> = <i>dsc0042</i>n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>n<b>%p2</b> = <i>/home/tom/photos/</i>n<b>%p3</b> = <i>/home/tom/</i>n<b>%p4</b> = <i>/home/</i>nnIf you want to save the output image where the original is, write:n<b>%p1/%f</b>nnIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:n<b>%p1/converted/%f</b>nnIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:n<b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRTEMPLATE;Use Template
!PREFERENCES_OUTDIRTEMPLATEHINT;<i>You can use the following formatting strings:</i>n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>n<i>nThese formatting strings refer to the directories and sub-paths of the path of the raw file.nnFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...n</b><i>nIf you want to save the output image where the original is, write:n</i><b>%p1/%fn</b><i>nIf you want to save the output image in a directory 'converted' located the directory of the original, write:n</i><b>%p1/converted/%fn</b><i>nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:n</i><b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...nnThese formatting strings refer to the different parts of the photo's pathname.nnFor example, if the photo being processed has the following pathname:n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>nthe meaning of the formatting strings are:n<b>%d4</b> = <i>home</i>n<b>%d3</b> = <i>tom</i>n<b>%d2</b> = <i>photos</i>n<b>%d1</b> = <i>2010-10-31</i>n<b>%f</b> = <i>dsc0042</i>n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>n<b>%p2</b> = <i>/home/tom/photos/</i>n<b>%p3</b> = <i>/home/tom/</i>n<b>%p4</b> = <i>/home/</i>nnIf you want to save the output image where the original is, write:n<b>%p1/%f</b>nnIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:n<b>%p1/converted/%f</b>nnIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:n<b>%p2/converted/%d1/%f</b>
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PARSEDEXT;Parsed Extensions
!PREFERENCES_PARSEDEXTADD;Add Extension
@ -461,6 +468,7 @@
!PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File
!PREFERENCES_PROPERTY;Property
!PREFERENCES_PSPATH;Adobe Photoshop installation directory
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SELECTICCDIRDLG;Select ICC Profile Directory...
!PREFERENCES_SELECTLANG;Select language
!PREFERENCES_SELECTMONITORPROFDLG;Select ICC Profile of the Display...
@ -470,6 +478,7 @@
!PREFERENCES_SHOWDATETIME;Show date and time
!PREFERENCES_SHOWONLYRAW;Show only RAW files
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_STARTUPIMDIR;Image directory at startup
!PREFERENCES_TAB_BROWSER;File Browser
!PREFERENCES_TAB_COLORMGR;Color Management
@ -477,6 +486,8 @@
!PREFERENCES_TAB_IMPROC;Image Processing
!PREFERENCES_TAB_OUTPUT;Output Options
!PREFERENCES_THUMBSIZE;Thumbnail Size
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROFILEPANEL_FILEDLGFILTERANY;Any files
!PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles
!PROFILEPANEL_LABEL;Postprocessing Profiles
@ -575,8 +586,15 @@
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_DISTORTION_AMOUNT;Amount
!TP_DISTORTION_LABEL;Distortion
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
@ -589,15 +607,15 @@
!TP_EXPOSURE_BLACKLEVEL;Black
!TP_EXPOSURE_BRIGHTNESS;Brightness
!TP_EXPOSURE_CLIP;Clip
!TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight compression
!TP_EXPOSURE_COMPRSHADOWS;Shadow compression
!TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight recovery
!TP_EXPOSURE_COMPRSHADOWS;Shadow recovery
!TP_EXPOSURE_CONTRAST;Contrast
!TP_EXPOSURE_CURVEEDITOR;Tone Curve
!TP_EXPOSURE_EXPCOMP;Exp. Comp.
!TP_EXPOSURE_LABEL;Exposure
!TP_HLREC_CIELAB;CIELab Blending
!TP_HLREC_COLOR;Color Propagation
!TP_HLREC_LABEL;Highlight Recovery
!TP_HLREC_LABEL;Highlight Reconstruction
!TP_HLREC_LUMINANCE;Luminance Recovery
!TP_HLREC_METHOD;Method:
!TP_ICM_FILEDLGFILTERANY;Any files
@ -616,16 +634,14 @@
!TP_ICM_WORKINGPROFILE;Working Profile
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LUMACURVE_BLACKLEVEL;Black
!TP_LUMACURVE_BRIGHTNESS;Brightness
!TP_LUMACURVE_COMPRHIGHLIGHTS;Highlight compression
!TP_LUMACURVE_COMPRSHADOWS;Shadow compression
!TP_LUMACURVE_CONTRAST;Contrast
!TP_LUMACURVE_CURVEEDITOR;Luminance Curve
!TP_LUMACURVE_LABEL;Luminance Curve
!TP_LUMADENOISE_EDGETOLERANCE;Edge Tolerance
!TP_LUMADENOISE_LABEL;Luminance Noise Reduction
!TP_LUMADENOISE_RADIUS;Radius

View File

@ -1,9 +1,8 @@
#00 English (UK)
#01 16.01.2009: Richard Regal
#01 17.10.2010: Richard Regal
HISTORY_MSG_34;Avoid Colour Clipping
HISTORY_MSG_37;Colour Boost
HISTORY_MSG_38;White Balance Method
HISTORY_MSG_39;Colour Temperature
HISTORY_MSG_41;Colour Shift "A"
HISTORY_MSG_42;Colour Shift "B"
@ -14,6 +13,9 @@ HISTORY_MSG_49;Edge Sensitive Colour Denoising
HISTORY_MSG_69;Working Colour Space
HISTORY_MSG_70;Output Colour Space
HISTORY_MSG_71;Input Colour Space
IPTCPANEL_DATECREATEDHINT;The date the intellectual content of the image was created; Format: YYYYMMMDD (Date Created).
IPTCPANEL_PROVINCE;County
IPTCPANEL_PROVINCEHINT;The County where the image originates (County).
MAIN_TAB_COLOR;Colour
PARTIALPASTE_COLORBOOST;Colour boost
PARTIALPASTE_COLORDENOISE;Colour denoise
@ -36,7 +38,7 @@ TP_HLREC_COLOR;Colour Propagation
!ADJUSTER_RESET_TO_DEFAULT;Reset to default
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_FILEDLGFILTERANY;Any files
@ -192,6 +194,7 @@ TP_HLREC_COLOR;Colour Propagation
!HISTORY_MSG_33;Deconvolution Iterations
!HISTORY_MSG_35;Saturation Limiter
!HISTORY_MSG_36;Saturation Limit
!HISTORY_MSG_38;White Balance Method
!HISTORY_MSG_40;White Balance Tint
!HISTORY_MSG_43;Luminance Denoising
!HISTORY_MSG_44;Lum. Denoising Radius
@ -278,8 +281,6 @@ TP_HLREC_COLOR;Colour Propagation
!IPTCPANEL_COUNTRYHINT;The name of the country/primary location where the image was created (Country - Primary Location Name).
!IPTCPANEL_CREDIT;Credit
!IPTCPANEL_CREDITHINT;Identifies the provider of the image, not necessarily the owner/creator (Credit).
!IPTCPANEL_DATECREATED;Date Created
!IPTCPANEL_DATECREATEDHINT;The date the intellectual content of the image was created; Format: JJJJMMTT (Date Created).
!IPTCPANEL_EMBEDDED;Embedded
!IPTCPANEL_EMBEDDEDHINT;Reset to IPTC data embedded in the image file
!IPTCPANEL_HEADLINE;Headline
@ -289,8 +290,6 @@ TP_HLREC_COLOR;Colour Propagation
!IPTCPANEL_KEYWORDS;Keywords
!IPTCPANEL_KEYWORDSHINT;Used to indicate specific information retrieval words (Keywords).
!IPTCPANEL_PASTEHINT;Paste IPTC settings from clipboard
!IPTCPANEL_PROVINCE;Province
!IPTCPANEL_PROVINCEHINT;The Province/State where the image originates (Province-State).
!IPTCPANEL_RESET;Reset
!IPTCPANEL_RESETHINT;Reset to profile default
!IPTCPANEL_SOURCE;Source
@ -358,6 +357,12 @@ TP_HLREC_COLOR;Colour Propagation
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -377,8 +382,9 @@ TP_HLREC_COLOR;Colour Propagation
!PARTIALPASTE_HLRECOVERY;Highlight recovery
!PARTIALPASTE_ICMSETTINGS;ICM settings
!PARTIALPASTE_IPTCINFO;IPTC info
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PARTIALPASTE_LENSGROUP;Lens related settings
!PARTIALPASTE_LUMACURVE;Luminance curve
!PARTIALPASTE_LUMADENOISE;Luminance noise reduction
!PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
!PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
@ -389,7 +395,7 @@ TP_HLREC_COLOR;Colour Propagation
!PARTIALPASTE_VIGNETTING;Vignetting correction
!PARTIALPASTE_WHITEBALANCE;White balance
!PREFERENCES_ADD;ADD
!PREFERENCES_APPLNEXTSTARTUP;applied at next startup
!PREFERENCES_APPLNEXTSTARTUP;restart required
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_BLINKCLIPPED;Blink clipped areas
@ -406,9 +412,6 @@ TP_HLREC_COLOR;Colour Propagation
!PREFERENCES_CACHETHUMBFORM;Cache Thumbnail Format
!PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_CLEARDLG_LINE1;Clearing cache
!PREFERENCES_CLEARDLG_LINE2;This may take a few seconds.
!PREFERENCES_CLEARDLG_TITLE;Please wait
!PREFERENCES_CLIPPINGIND;Clipping indication
!PREFERENCES_CMETRICINTENT;Colorimetric Intent
!PREFERENCES_DATEFORMAT;Date Format
@ -423,8 +426,10 @@ TP_HLREC_COLOR;Colour Propagation
!PREFERENCES_DIROTHER;Other
!PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup...
!PREFERENCES_DIRSOFTWARE;Installation directory
!PREFERENCES_DMETHOD;Method
!PREFERENCES_DMETHOD;Preview
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORCMDLINE;Other command line
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_EXTERNALEDITOR;External editor
!PREFERENCES_FBROWSEROPTS;File Browser Options
!PREFERENCES_FILEFORMAT;File format
@ -445,12 +450,13 @@ TP_HLREC_COLOR;Colour Propagation
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
!PREFERENCES_MONITORICC;Monitor Profile
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OUTDIR;Output Directory
!PREFERENCES_OUTDIRFOLDER;Save to folder
!PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the selected folder
!PREFERENCES_OUTDIRHINT;<i>You can use the following formatting strings:</i>n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>n<i>nThese formatting strings refer to the directories and sub-paths of the path of the raw file.nnFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...n</b><i>nIf you want to save the output image where the original is, write:n</i><b>%p1/%fn</b><i>nIf you want to save the output image in a directory 'converted' located the directory of the original, write:n</i><b>%p1/converted/%fn</b><i>nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:n</i><b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRHINT;You can use the following formatting strings:n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...nnThese formatting strings refer to the different parts of the photo's pathname.nnFor example, if the photo being processed has the following pathname:n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>nthe meaning of the formatting strings are:n<b>%d4</b> = <i>home</i>n<b>%d3</b> = <i>tom</i>n<b>%d2</b> = <i>photos</i>n<b>%d1</b> = <i>2010-10-31</i>n<b>%f</b> = <i>dsc0042</i>n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>n<b>%p2</b> = <i>/home/tom/photos/</i>n<b>%p3</b> = <i>/home/tom/</i>n<b>%p4</b> = <i>/home/</i>nnIf you want to save the output image where the original is, write:n<b>%p1/%f</b>nnIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:n<b>%p1/converted/%f</b>nnIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:n<b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRTEMPLATE;Use Template
!PREFERENCES_OUTDIRTEMPLATEHINT;<i>You can use the following formatting strings:</i>n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>n<i>nThese formatting strings refer to the directories and sub-paths of the path of the raw file.nnFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...n</b><i>nIf you want to save the output image where the original is, write:n</i><b>%p1/%fn</b><i>nIf you want to save the output image in a directory 'converted' located the directory of the original, write:n</i><b>%p1/converted/%fn</b><i>nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:n</i><b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...nnThese formatting strings refer to the different parts of the photo's pathname.nnFor example, if the photo being processed has the following pathname:n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>nthe meaning of the formatting strings are:n<b>%d4</b> = <i>home</i>n<b>%d3</b> = <i>tom</i>n<b>%d2</b> = <i>photos</i>n<b>%d1</b> = <i>2010-10-31</i>n<b>%f</b> = <i>dsc0042</i>n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>n<b>%p2</b> = <i>/home/tom/photos/</i>n<b>%p3</b> = <i>/home/tom/</i>n<b>%p4</b> = <i>/home/</i>nnIf you want to save the output image where the original is, write:n<b>%p1/%f</b>nnIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:n<b>%p1/converted/%f</b>nnIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:n<b>%p2/converted/%d1/%f</b>
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PARSEDEXT;Parsed Extensions
!PREFERENCES_PARSEDEXTADD;Add Extension
@ -464,6 +470,7 @@ TP_HLREC_COLOR;Colour Propagation
!PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File
!PREFERENCES_PROPERTY;Property
!PREFERENCES_PSPATH;Adobe Photoshop installation directory
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SELECTICCDIRDLG;Select ICC Profile Directory...
!PREFERENCES_SELECTLANG;Select language
!PREFERENCES_SELECTMONITORPROFDLG;Select ICC Profile of the Display...
@ -473,12 +480,15 @@ TP_HLREC_COLOR;Colour Propagation
!PREFERENCES_SHOWDATETIME;Show date and time
!PREFERENCES_SHOWONLYRAW;Show only RAW files
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_STARTUPIMDIR;Image directory at startup
!PREFERENCES_TAB_BROWSER;File Browser
!PREFERENCES_TAB_GENERAL;General
!PREFERENCES_TAB_IMPROC;Image Processing
!PREFERENCES_TAB_OUTPUT;Output Options
!PREFERENCES_THUMBSIZE;Thumbnail Size
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROFILEPANEL_FILEDLGFILTERANY;Any files
!PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles
!PROFILEPANEL_LABEL;Postprocessing Profiles
@ -573,8 +583,15 @@ TP_HLREC_COLOR;Colour Propagation
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_DISTORTION_AMOUNT;Amount
!TP_DISTORTION_LABEL;Distortion
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
@ -587,14 +604,14 @@ TP_HLREC_COLOR;Colour Propagation
!TP_EXPOSURE_BLACKLEVEL;Black
!TP_EXPOSURE_BRIGHTNESS;Brightness
!TP_EXPOSURE_CLIP;Clip
!TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight compression
!TP_EXPOSURE_COMPRSHADOWS;Shadow compression
!TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight recovery
!TP_EXPOSURE_COMPRSHADOWS;Shadow recovery
!TP_EXPOSURE_CONTRAST;Contrast
!TP_EXPOSURE_CURVEEDITOR;Tone Curve
!TP_EXPOSURE_EXPCOMP;Exp. Comp.
!TP_EXPOSURE_LABEL;Exposure
!TP_HLREC_CIELAB;CIELab Blending
!TP_HLREC_LABEL;Highlight Recovery
!TP_HLREC_LABEL;Highlight Reconstruction
!TP_HLREC_LUMINANCE;Luminance Recovery
!TP_HLREC_METHOD;Method:
!TP_ICM_FILEDLGFILTERANY;Any files
@ -613,16 +630,14 @@ TP_HLREC_COLOR;Colour Propagation
!TP_ICM_WORKINGPROFILE;Working Profile
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LUMACURVE_BLACKLEVEL;Black
!TP_LUMACURVE_BRIGHTNESS;Brightness
!TP_LUMACURVE_COMPRHIGHLIGHTS;Highlight compression
!TP_LUMACURVE_COMPRSHADOWS;Shadow compression
!TP_LUMACURVE_CONTRAST;Contrast
!TP_LUMACURVE_CURVEEDITOR;Luminance Curve
!TP_LUMACURVE_LABEL;Luminance Curve
!TP_LUMADENOISE_EDGETOLERANCE;Edge Tolerance
!TP_LUMADENOISE_LABEL;Luminance Noise Reduction
!TP_LUMADENOISE_RADIUS;Radius

View File

@ -1,4 +1,5 @@
#00 English (US)
!!!!!!!!!!!!!!!!!!!!!!!!!
@ -8,7 +9,7 @@
!ADJUSTER_RESET_TO_DEFAULT;Reset to default
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_FILEDLGFILTERANY;Any files
@ -348,6 +349,12 @@
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -372,8 +379,9 @@
!PARTIALPASTE_HLRECOVERY;Highlight recovery
!PARTIALPASTE_ICMSETTINGS;ICM settings
!PARTIALPASTE_IPTCINFO;IPTC info
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PARTIALPASTE_LENSGROUP;Lens related settings
!PARTIALPASTE_LUMACURVE;Luminance curve
!PARTIALPASTE_LUMADENOISE;Luminance noise reduction
!PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
!PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
@ -384,7 +392,7 @@
!PARTIALPASTE_VIGNETTING;Vignetting correction
!PARTIALPASTE_WHITEBALANCE;White balance
!PREFERENCES_ADD;ADD
!PREFERENCES_APPLNEXTSTARTUP;applied at next startup
!PREFERENCES_APPLNEXTSTARTUP;restart required
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_BLINKCLIPPED;Blink clipped areas
@ -401,9 +409,6 @@
!PREFERENCES_CACHETHUMBFORM;Cache Thumbnail Format
!PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_CLEARDLG_LINE1;Clearing cache
!PREFERENCES_CLEARDLG_LINE2;This may take a few seconds.
!PREFERENCES_CLEARDLG_TITLE;Please wait
!PREFERENCES_CLIPPINGIND;Clipping indication
!PREFERENCES_CMETRICINTENT;Colorimetric Intent
!PREFERENCES_DATEFORMAT;Date Format
@ -418,8 +423,10 @@
!PREFERENCES_DIROTHER;Other
!PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup...
!PREFERENCES_DIRSOFTWARE;Installation directory
!PREFERENCES_DMETHOD;Method
!PREFERENCES_DMETHOD;Preview
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORCMDLINE;Other command line
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_EXTERNALEDITOR;External editor
!PREFERENCES_FALSECOLOR;False color suppression steps
!PREFERENCES_FBROWSEROPTS;File Browser Options
@ -441,12 +448,13 @@
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
!PREFERENCES_MONITORICC;Monitor Profile
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OUTDIR;Output Directory
!PREFERENCES_OUTDIRFOLDER;Save to folder
!PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the selected folder
!PREFERENCES_OUTDIRHINT;<i>You can use the following formatting strings:</i>n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>n<i>nThese formatting strings refer to the directories and sub-paths of the path of the raw file.nnFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...n</b><i>nIf you want to save the output image where the original is, write:n</i><b>%p1/%fn</b><i>nIf you want to save the output image in a directory 'converted' located the directory of the original, write:n</i><b>%p1/converted/%fn</b><i>nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:n</i><b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRHINT;You can use the following formatting strings:n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...nnThese formatting strings refer to the different parts of the photo's pathname.nnFor example, if the photo being processed has the following pathname:n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>nthe meaning of the formatting strings are:n<b>%d4</b> = <i>home</i>n<b>%d3</b> = <i>tom</i>n<b>%d2</b> = <i>photos</i>n<b>%d1</b> = <i>2010-10-31</i>n<b>%f</b> = <i>dsc0042</i>n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>n<b>%p2</b> = <i>/home/tom/photos/</i>n<b>%p3</b> = <i>/home/tom/</i>n<b>%p4</b> = <i>/home/</i>nnIf you want to save the output image where the original is, write:n<b>%p1/%f</b>nnIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:n<b>%p1/converted/%f</b>nnIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:n<b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRTEMPLATE;Use Template
!PREFERENCES_OUTDIRTEMPLATEHINT;<i>You can use the following formatting strings:</i>n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>n<i>nThese formatting strings refer to the directories and sub-paths of the path of the raw file.nnFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...n</b><i>nIf you want to save the output image where the original is, write:n</i><b>%p1/%fn</b><i>nIf you want to save the output image in a directory 'converted' located the directory of the original, write:n</i><b>%p1/converted/%fn</b><i>nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:n</i><b>%p2/converted/%d1/%f</b>
!PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...nnThese formatting strings refer to the different parts of the photo's pathname.nnFor example, if the photo being processed has the following pathname:n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>nthe meaning of the formatting strings are:n<b>%d4</b> = <i>home</i>n<b>%d3</b> = <i>tom</i>n<b>%d2</b> = <i>photos</i>n<b>%d1</b> = <i>2010-10-31</i>n<b>%f</b> = <i>dsc0042</i>n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>n<b>%p2</b> = <i>/home/tom/photos/</i>n<b>%p3</b> = <i>/home/tom/</i>n<b>%p4</b> = <i>/home/</i>nnIf you want to save the output image where the original is, write:n<b>%p1/%f</b>nnIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:n<b>%p1/converted/%f</b>nnIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:n<b>%p2/converted/%d1/%f</b>
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PARSEDEXT;Parsed Extensions
!PREFERENCES_PARSEDEXTADD;Add Extension
@ -460,6 +468,7 @@
!PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File
!PREFERENCES_PROPERTY;Property
!PREFERENCES_PSPATH;Adobe Photoshop installation directory
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SELECTICCDIRDLG;Select ICC Profile Directory...
!PREFERENCES_SELECTLANG;Select language
!PREFERENCES_SELECTMONITORPROFDLG;Select ICC Profile of the Display...
@ -469,6 +478,7 @@
!PREFERENCES_SHOWDATETIME;Show date and time
!PREFERENCES_SHOWONLYRAW;Show only RAW files
!PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_STARTUPIMDIR;Image directory at startup
!PREFERENCES_TAB_BROWSER;File Browser
!PREFERENCES_TAB_COLORMGR;Color Management
@ -476,6 +486,8 @@
!PREFERENCES_TAB_IMPROC;Image Processing
!PREFERENCES_TAB_OUTPUT;Output Options
!PREFERENCES_THUMBSIZE;Thumbnail Size
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROFILEPANEL_FILEDLGFILTERANY;Any files
!PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles
!PROFILEPANEL_LABEL;Postprocessing Profiles
@ -574,8 +586,15 @@
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_DISTORTION_AMOUNT;Amount
!TP_DISTORTION_LABEL;Distortion
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
@ -588,15 +607,15 @@
!TP_EXPOSURE_BLACKLEVEL;Black
!TP_EXPOSURE_BRIGHTNESS;Brightness
!TP_EXPOSURE_CLIP;Clip
!TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight compression
!TP_EXPOSURE_COMPRSHADOWS;Shadow compression
!TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight recovery
!TP_EXPOSURE_COMPRSHADOWS;Shadow recovery
!TP_EXPOSURE_CONTRAST;Contrast
!TP_EXPOSURE_CURVEEDITOR;Tone Curve
!TP_EXPOSURE_EXPCOMP;Exp. Comp.
!TP_EXPOSURE_LABEL;Exposure
!TP_HLREC_CIELAB;CIELab Blending
!TP_HLREC_COLOR;Color Propagation
!TP_HLREC_LABEL;Highlight Recovery
!TP_HLREC_LABEL;Highlight Reconstruction
!TP_HLREC_LUMINANCE;Luminance Recovery
!TP_HLREC_METHOD;Method:
!TP_ICM_FILEDLGFILTERANY;Any files
@ -615,16 +634,14 @@
!TP_ICM_WORKINGPROFILE;Working Profile
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_LUMACURVE_BLACKLEVEL;Black
!TP_LUMACURVE_BRIGHTNESS;Brightness
!TP_LUMACURVE_COMPRHIGHLIGHTS;Highlight compression
!TP_LUMACURVE_COMPRSHADOWS;Shadow compression
!TP_LUMACURVE_CONTRAST;Contrast
!TP_LUMACURVE_CURVEEDITOR;Luminance Curve
!TP_LUMACURVE_LABEL;Luminance Curve
!TP_LUMADENOISE_EDGETOLERANCE;Edge Tolerance
!TP_LUMADENOISE_LABEL;Luminance Noise Reduction
!TP_LUMADENOISE_RADIUS;Radius

View File

@ -606,7 +606,7 @@ ZOOMBAR_SMALL;Pequeño
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -657,6 +657,12 @@ ZOOMBAR_SMALL;Pequeño
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -664,26 +670,42 @@ ZOOMBAR_SMALL;Pequeño
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -692,6 +714,11 @@ ZOOMBAR_SMALL;Pequeño
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -600,7 +600,7 @@ ZOOMBAR_SMALL;Txikia
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -651,6 +651,12 @@ ZOOMBAR_SMALL;Txikia
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -658,26 +664,42 @@ ZOOMBAR_SMALL;Txikia
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -686,6 +708,11 @@ ZOOMBAR_SMALL;Txikia
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -216,7 +216,14 @@ HISTORY_MSG_81;Redimensionnement activé
HISTORY_MSG_82;Changement de profil
HISTORY_MSG_83;Ombres/Hautes lumières haute qualité
HISTORY_MSG_84;Correction de la perspective
HISTORY_MSG_85;Coefficients d'ondelette
HISTORY_MSG_86;Égaliseur d'ondelette
HISTORY_MSG_87;Réduction du bruit d'impulsion
HISTORY_MSG_89;Réd. du bruit présevant les bords
HISTORY_MSG_8;Compensation d'exposition
HISTORY_MSG_90;Réd. de bruit Luminance
HISTORY_MSG_91;Réd. de bruit Chominance
HISTORY_MSG_92;Réd. de bruit Gamma
HISTORY_MSG_9;Compression des hautes lumières
HISTORY_NEWSNAPSHOT;Ajouter
HISTORY_NEWSNAPSHOTAS;Sous...
@ -293,7 +300,6 @@ MAIN_BUTTON_SAVE_TOOLTIP;Enregistrer l'image courante <b>Ctrl+S</b>
MAIN_BUTTON_SENDTOEDITOR;Envoyer vers l'éditeur
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Éditer l'image courante dans l'éditeur externe <b>Ctrl+E</b>
MAIN_BUTTON_UNFULLSCREEN;Quitter le plein écran
MAIN_BUTTON_UNFULLSCREEN;Quitter plein écran
MAIN_FRAME_BATCHQUEUE;File d'attente
MAIN_FRAME_FILEBROWSER;Explorateur de fichiers
MAIN_FRAME_PLACES;Emplacements
@ -411,7 +417,9 @@ PREFERENCES_DIROTHER;Autre
PREFERENCES_DIRSELECTDLG;Choix du dossier Image au lancement...
PREFERENCES_DIRSOFTWARE;Dossier d'installation
PREFERENCES_DMETHOD;Méthode
PREFERENCES_DMETHODBATCH;Batch
PREFERENCES_EDITORCMDLINE;Autre ligne de commande
PREFERENCES_EDITORLAYOUT;Disposition de l'éditeur
PREFERENCES_EXTERNALEDITOR;Éditeur externe
PREFERENCES_FALSECOLOR;Itérations pour la suppression des fausses couleurs
PREFERENCES_FBROWSEROPTS;Options du navigateur de fichiers
@ -433,6 +441,7 @@ PREFERENCES_INTENT_SATURATION;Saturation
PREFERENCES_LINEDENOISE;Filtre de bruit de Ligne
PREFERENCES_LIVETHUMBNAILS;Vignettes "Live" (plus lent)
PREFERENCES_MONITORICC;Profil du moniteur
PREFERENCES_MULTITAB;Mode éditeurs multiple
PREFERENCES_OUTDIR;Dossier de sortie
PREFERENCES_OUTDIRFOLDER;Dossier de sauvegarde
PREFERENCES_OUTDIRFOLDERHINT;Place les images traitées dans le dossier selectionné
@ -452,6 +461,7 @@ PREFERENCES_PROFILESAVECACHE;Enregistrer la paramètres de traitement dans le Ca
PREFERENCES_PROFILESAVEINPUT;Enregistrer la paramètres de traitement accolé au fichier d'entrée
PREFERENCES_PROPERTY;Propriété
PREFERENCES_PSPATH;Dossier d'installation d'Adobe Photoshop
PREFERENCES_SELECTFONT;Police de caractère
PREFERENCES_SELECTICCDIRDLG;Choix du dossier des profils ICC...
PREFERENCES_SELECTLANG;Choix de la langue
PREFERENCES_SELECTMONITORPROFDLG;Choix du profil ICC de l'affichage...
@ -461,6 +471,7 @@ PREFERENCES_SHOWBASICEXIF;Voir les infos EXIF basiques
PREFERENCES_SHOWDATETIME;Voir la date et l'heure
PREFERENCES_SHOWONLYRAW;Voir seulement les fichiers RAW
PREFERENCES_SHTHRESHOLD;Seuil pour le dépassement de domaine inférieur
PREFERENCES_SINGLETAB;Mode éditeur unique
PREFERENCES_STARTUPIMDIR;Répertoire Image au démarrage
PREFERENCES_TAB_BROWSER;Navigateur de fichiers
PREFERENCES_TAB_COLORMGR;Gestion des couleurs
@ -468,6 +479,8 @@ PREFERENCES_TAB_GENERAL;Général
PREFERENCES_TAB_IMPROC;Traitement de l'Image
PREFERENCES_TAB_OUTPUT;Options de sortie
PREFERENCES_THUMBSIZE;Tailles des vignettes
PREFERENCES_USESYSTEMTHEME; Utiliser le thème système
PREFERENCES_WORKFLOW;Habitudes de travail
PROFILEPANEL_FILEDLGFILTERANY;Tous les fichiers
PROFILEPANEL_FILEDLGFILTERPP;Profils de post-traitement
PROFILEPANEL_LABEL;Profils de post-traitement
@ -568,6 +581,13 @@ TP_DIRPYRDENOISE_CHROMA;Chrominance
TP_DIRPYRDENOISE_GAMMA;Gamma
TP_DIRPYRDENOISE_LABEL;Réduction du bruit présevant les bords
TP_DIRPYRDENOISE_LUMA;Luminance
TP_DIRPYREQUALIZER_LABEL;Égaliseur d'amas
TP_DIRPYREQUALIZER_LUMACOARSEST;les plus gros
TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contraste-
TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contraste+
TP_DIRPYREQUALIZER_LUMAFINEST;les plus petits
TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutre
TP_DIRPYREQUALIZER_THRESHOLD;Seuil
TP_DISTORTION_AMOUNT;Quantité
TP_DISTORTION_LABEL;Distorsion
TP_EQUALIZER_CONTRAST_MINUS;Contraste-
@ -696,10 +716,16 @@ ZOOMPANEL_ZOOMOUT;Zoom <b>-</b>
!!!!!!!!!!!!!!!!!!!!!!!!!
!HISTORY_MSG_85;Wavelet coefficients
!HISTORY_MSG_86;Wavelet equalizer
!HISTORY_MSG_87;Impulse noise reduction
!HISTORY_MSG_89;Directional pyramid
!HISTORY_MSG_90;Directional pyramid luminance
!HISTORY_MSG_91;Directional pyramid chominance
!HISTORY_MSG_92;Directional pyramid gamma
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation

View File

@ -598,7 +598,7 @@ ZOOMBAR_SMALL;Μικρό
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -649,6 +649,12 @@ ZOOMBAR_SMALL;Μικρό
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -656,26 +662,42 @@ ZOOMBAR_SMALL;Μικρό
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -684,6 +706,11 @@ ZOOMBAR_SMALL;Μικρό
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -599,7 +599,7 @@ ZOOMBAR_SMALL;קטן
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -650,6 +650,12 @@ ZOOMBAR_SMALL;קטן
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -657,26 +663,42 @@ ZOOMBAR_SMALL;קטן
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -685,6 +707,11 @@ ZOOMBAR_SMALL;קטן
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -602,7 +602,7 @@ ZOOMBAR_SMALL;Piccola
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -653,6 +653,12 @@ ZOOMBAR_SMALL;Piccola
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -660,26 +666,42 @@ ZOOMBAR_SMALL;Piccola
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -688,6 +710,11 @@ ZOOMBAR_SMALL;Piccola
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -2,7 +2,7 @@
#00 Japanese
#01 2009-02-18 by A3novy
#02 updated to RT2.4-RC by paul.matthijsse
#03 2010-06-20 updated to RT3.0 alpha 1 by A3novy
#03 2010-10-24 updated to RT3.0 alpha 1 by A3novy
ADJUSTER_RESET_TO_DEFAULT;リセット初期化
BATCHQUEUE_AUTOSTART;オートスタート
BATCH_PROCESSING;バッチ処理
@ -14,6 +14,7 @@ CURVEEDITOR_HIGHLIGHTS;ハイライト
CURVEEDITOR_LIGHTS;ライト
CURVEEDITOR_LINEAR;リニア
CURVEEDITOR_LOADDLGLABEL;カーブ読み込み...
CURVEEDITOR_NURBS;ナーブス カーブ
CURVEEDITOR_PARAMETRIC;パラメトリック
CURVEEDITOR_SAVEDLGLABEL;カーブ保存...
CURVEEDITOR_SHADOWS;シャドウ
@ -136,12 +137,12 @@ HISTORY_MSG_10;シャドウ補正
HISTORY_MSG_11;トーンカーブ
HISTORY_MSG_12;露出 オート
HISTORY_MSG_13;露出 クリッピング
HISTORY_MSG_14;輝度 明るさ
HISTORY_MSG_15;輝度 コントラスト
HISTORY_MSG_14;Lab 明るさ
HISTORY_MSG_15;Lab コントラスト
HISTORY_MSG_16;輝度 黒レベル
HISTORY_MSG_17;輝度 ハイライト圧縮
HISTORY_MSG_18;輝度 シャドウ圧縮
HISTORY_MSG_19;輝度 カーブ
HISTORY_MSG_19;Lab 輝度カーブ
HISTORY_MSG_1;写真を読み込みました
HISTORY_MSG_20;シャープ
HISTORY_MSG_21;シャープ 半径
@ -214,7 +215,19 @@ HISTORY_MSG_81;リサイズ 有効
HISTORY_MSG_82;プロファイル変更
HISTORY_MSG_83;高画質 シャドウ/ハイライト
HISTORY_MSG_84;パースペクティブ コレクション
HISTORY_MSG_85;ウェーブレット係数
HISTORY_MSG_86;ウェーブレット イコライザ
HISTORY_MSG_87;インパルス ノイズ除去
HISTORY_MSG_89;指向性ピラミッド
HISTORY_MSG_8;露出補正
HISTORY_MSG_90;指向性ピラミッド 輝度
HISTORY_MSG_91;指向性ピラミッド 色度
HISTORY_MSG_92;指向性ピラミッド ガンマ
HISTORY_MSG_93;指向性ピラミッド係数
HISTORY_MSG_94;指向性ピラミッド イコライザ
HISTORY_MSG_95;Lab 彩度
HISTORY_MSG_96;Lab aカーブ
HISTORY_MSG_97;Lab bカーブ
HISTORY_MSG_9;ハイライト補正
HISTORY_NEWSNAPSHOT;追加
HISTORY_NEWSNAPSHOTAS;ラベル
@ -283,10 +296,13 @@ MAIN_BUTTON_EXIT;終了
MAIN_BUTTON_FULLSCREEN;フルスクリーン
MAIN_BUTTON_PREFERENCES;環境設定
MAIN_BUTTON_PUTTOQUEUE;キューに追加
MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;現在の画像をキュー処理に加える <b>Ctrl+Q</b>
MAIN_BUTTON_QUEUE;キューに追加
MAIN_BUTTON_SAVE;画像の保存
MAIN_BUTTON_SAVEAS;別途保存
MAIN_BUTTON_SAVE_TOOLTIP;現在の画像を保存 <b>Ctrl+S</b>
MAIN_BUTTON_SENDTOEDITOR;エディタに送る
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;現在の画像を外部エディターで編集 <b>Ctrl+E</b>
MAIN_BUTTON_UNFULLSCREEN;フルスクリーン解除
MAIN_FRAME_BATCHQUEUE;バッチ キュー
MAIN_FRAME_FILEBROWSER;ファイルブラウザ
@ -334,6 +350,12 @@ NAVIGATOR_G_NA;G = n/a
NAVIGATOR_G_VALUE;G = %1
NAVIGATOR_H_NA;H = n/a
NAVIGATOR_H_VALUE;H = %1
NAVIGATOR_LAB_A_NA;A = n/a
NAVIGATOR_LAB_A_VALUE;A = %1
NAVIGATOR_LAB_B_NA;B = n/a
NAVIGATOR_LAB_B_VALUE;B = %1
NAVIGATOR_LAB_L_NA;L = n/a
NAVIGATOR_LAB_L_VALUE;L = %1
NAVIGATOR_R_NA;R = n/a
NAVIGATOR_R_VALUE;R = %1
NAVIGATOR_S_NA;S = n/a
@ -358,8 +380,8 @@ PARTIALPASTE_EXPOSURE;露出
PARTIALPASTE_HLRECOVERY;ハイライト修復
PARTIALPASTE_ICMSETTINGS;ICM 設定
PARTIALPASTE_IPTCINFO;IPTC 情報
PARTIALPASTE_LABCURVE;Lab カーブ
PARTIALPASTE_LENSGROUP;レンズ設定
PARTIALPASTE_LUMACURVE;輝度カーブ
PARTIALPASTE_LUMADENOISE;輝度 ノイズ除去
PARTIALPASTE_LUMINANCEGROUP;輝度設定
PARTIALPASTE_METAICMGROUP;メタデータ/ICM 設定
@ -386,6 +408,7 @@ PREFERENCES_CACHESTRAT2;メモリ消費重視
PREFERENCES_CACHESTRAT;キャッシュ運用の方針
PREFERENCES_CACHETHUMBFORM;キャッシュのサムネイル形式
PREFERENCES_CACHETHUMBHEIGHT;サムネイル縦の最大値
PREFERENCES_CACORRECTION;色収差補正を適応
PREFERENCES_CLEARDLG_LINE1;キャッシュの削除
PREFERENCES_CLEARDLG_LINE2;数秒掛かるかも・・
PREFERENCES_CLEARDLG_TITLE;ちょっと待って・・
@ -404,7 +427,9 @@ PREFERENCES_DIROTHER;他
PREFERENCES_DIRSELECTDLG;起動時の画像・ディレクトリ選択...
PREFERENCES_DIRSOFTWARE;インストール・ディレクトリ
PREFERENCES_DMETHOD;方法
PREFERENCES_DMETHODBATCH;バッチ
PREFERENCES_EDITORCMDLINE;その他・コマンド入力
PREFERENCES_EDITORLAYOUT;エディタ レイアウト
PREFERENCES_EXTERNALEDITOR;外部エディタ
PREFERENCES_FALSECOLOR;偽色 補間ステップ
PREFERENCES_FBROWSEROPTS;ファイルブラウザのオプション
@ -412,17 +437,21 @@ PREFERENCES_FILEFORMAT;ファイル形式
PREFERENCES_FORIMAGE;画像ファイル
PREFERENCES_FORRAW;RAW ファイル
PREFERENCES_GIMPPATH;GIMP インストール ディレクトリ
PREFERENCES_GREENEQUIL;グリーン 平衡化
PREFERENCES_GTKTHEME;GTK デフォルト
PREFERENCES_HINT;ヒント
PREFERENCES_HLTHRESHOLD;ハイライト・クリッピング領域のしきい値
PREFERENCES_HOTDEADPIXFILT;ホット/デッド ピクセル・フィルターを適応
PREFERENCES_ICCDIR;ICCプロファイルのディレクトリ
PREFERENCES_IMPROCPARAMS;画像処理の規定値
PREFERENCES_INTENT_ABSOLUTE;絶対的な色域を維持
PREFERENCES_INTENT_PERCEPTUAL;知覚的
PREFERENCES_INTENT_RELATIVE;相対的な色域を維持
PREFERENCES_INTENT_SATURATION;彩度
PREFERENCES_LINEDENOISE;ライン ノイズフィルタ
PREFERENCES_LIVETHUMBNAILS;ライブ・サムネイル (遅い)
PREFERENCES_MONITORICC;モニタープロファイル
PREFERENCES_MULTITAB;マルチ タブモード
PREFERENCES_OUTDIR;出力ディレクトリ
PREFERENCES_OUTDIRFOLDER;フォルダに保存
PREFERENCES_OUTDIRFOLDERHINT;選択したフォルダに画像を保存します
@ -442,6 +471,7 @@ PREFERENCES_PROFILESAVECACHE;処理済みのプロファイル・パラメータ
PREFERENCES_PROFILESAVEINPUT;処理済みプロファイル・パラメータを入力ファイルと同じディレクトリに保存
PREFERENCES_PROPERTY;プロパティ
PREFERENCES_PSPATH;Adobe Photoshop のインストール・ディレクトリ
PREFERENCES_SELECTFONT;フォント選択
PREFERENCES_SELECTICCDIRDLG;ICCプロファイル・ディレクトリ選択...
PREFERENCES_SELECTLANG;言語選択
PREFERENCES_SELECTMONITORPROFDLG;ディスプレイのICCプロファイルを選択...
@ -451,6 +481,7 @@ PREFERENCES_SHOWBASICEXIF;基本Exif情報 表示
PREFERENCES_SHOWDATETIME;日付表示
PREFERENCES_SHOWONLYRAW;RAWファイルのみ表示
PREFERENCES_SHTHRESHOLD;シャドウ・クリッピング領域のしきい値
PREFERENCES_SINGLETAB;シングル タブモード
PREFERENCES_STARTUPIMDIR;起動時の画像・ディレクトリ
PREFERENCES_TAB_BROWSER;ファイルブラウザ
PREFERENCES_TAB_COLORMGR;カラーマネジメント
@ -458,6 +489,8 @@ PREFERENCES_TAB_GENERAL;一般
PREFERENCES_TAB_IMPROC;画像処理
PREFERENCES_TAB_OUTPUT;出力オプション
PREFERENCES_THUMBSIZE;サムネイル・サイズ
PREFERENCES_USESYSTEMTHEME;システムのテーマを使う
PREFERENCES_WORKFLOW;ワークフロー
PROFILEPANEL_FILEDLGFILTERANY;すべてのファイル
PROFILEPANEL_FILEDLGFILTERPP;処理済みプロファイル
PROFILEPANEL_LABEL;処理済みプロファイル
@ -491,6 +524,7 @@ QINFO_FOCALLENGTH;焦点距離
QINFO_ISO;ISO
QINFO_LENS;レンズ
QINFO_NOEXIF;Exifデータがありません
SAVEDLG_AUTOSUFFIX;ファイルが存在する場合、自動的に末尾に文字を加える
SAVEDLG_FILEFORMAT;ファイル形式
SAVEDLG_JPEGQUAL;JPEG 品質
SAVEDLG_JPGFILTER;JPEG ファイル
@ -553,8 +587,25 @@ TP_CROP_W;W
TP_CROP_X;x
TP_CROP_Y;y
TP_DETAIL_AMOUNT;量
TP_DIRPYRDENOISE_CHROMA;色度
TP_DIRPYRDENOISE_GAMMA;ガンマ
TP_DIRPYRDENOISE_LABEL;指向性ピラミッド ノイズ除去
TP_DIRPYRDENOISE_LUMA;輝度
TP_DIRPYREQUALIZER_LABEL;指向性ピラミッド イコライザ
TP_DIRPYREQUALIZER_LUMACOARSEST;粗い
TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;コントラスト-
TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;コントラスト+
TP_DIRPYREQUALIZER_LUMAFINEST;細い
TP_DIRPYREQUALIZER_LUMANEUTRAL;ニュートラル
TP_DIRPYREQUALIZER_THRESHOLD;しきい値
TP_DISTORTION_AMOUNT;量
TP_DISTORTION_LABEL;歪曲収差補正
TP_EQUALIZER_CONTRAST_MINUS;コントラスト-
TP_EQUALIZER_CONTRAST_PLUS;コントラスト+
TP_EQUALIZER_FINEST;細い
TP_EQUALIZER_LABEL;ウェーブレット イコライザ
TP_EQUALIZER_LARGEST;粗い
TP_EQUALIZER_NEUTRAL;ニュートラル
TP_EXPOSURE_AUTOLEVELS;オートレベル
TP_EXPOSURE_BLACKLEVEL;黒レベル
TP_EXPOSURE_BRIGHTNESS;明るさ
@ -584,16 +635,17 @@ TP_ICM_OUTPUTDLGLABEL;出力 ICC プロファイルを選択...
TP_ICM_OUTPUTPROFILE;出力プロファイル
TP_ICM_SAVEREFERENCE;プロファイリングの参照する画像を保存
TP_ICM_WORKINGPROFILE;作業プロファイル
TP_IMPULSEDENOISE_LABEL;インパルス ノイズ除去
TP_IMPULSEDENOISE_THRESH;しきい値
TP_LABCURVE_BRIGHTNESS;明るさ
TP_LABCURVE_CONTRAST;コントラスト
TP_LABCURVE_CURVEEDITOR
TP_LABCURVE_CURVEEDITOR;Lab 輝度カーブ
TP_LABCURVE_LABEL;Lab カーブ
TP_LABCURVE_SATURATION;彩度
TP_LENSGEOM_AUTOCROP;自動的に切り抜き選択
TP_LENSGEOM_FILL;オートフィル
TP_LENSGEOM_LABEL;レンズ / 形状
TP_LUMACURVE_BLACKLEVEL;黒レベル
TP_LUMACURVE_BRIGHTNESS;明るさ
TP_LUMACURVE_COMPRHIGHLIGHTS;ハイライト圧縮
TP_LUMACURVE_COMPRSHADOWS;シャドウ圧縮
TP_LUMACURVE_CONTRAST;コントラスト
TP_LUMACURVE_CURVEEDITOR;輝度カーブエディタ
TP_LUMACURVE_LABEL;輝度カーブ
TP_LUMADENOISE_EDGETOLERANCE;エッジの許容度
TP_LUMADENOISE_LABEL;輝度 ノイズ除去
TP_LUMADENOISE_RADIUS;半径
@ -676,31 +728,3 @@ ZOOMPANEL_ZOOMOUT;ズームアウト
!!!!!!!!!!!!!!!!!!!!!!!!!
!CURVEEDITOR_NURBS;Control cage
!HISTORY_MSG_85;Wavelet coefficients
!HISTORY_MSG_86;Wavelet equalizer
!HISTORY_MSG_87;Impulse noise reduction
!HISTORY_MSG_89;Directional pyramid
!HISTORY_MSG_90;Directional pyramid luminance
!HISTORY_MSG_91;Directional pyramid chominance
!HISTORY_MSG_92;Directional pyramid gamma
!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Add current image to processing queue <b>Ctrl+Q</b>
!MAIN_BUTTON_SAVE_TOOLTIP;Save current image <b>Ctrl+S</b>
!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E</b>
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
!TP_EQUALIZER_LABEL;Wavelet equalizer
!TP_EQUALIZER_LARGEST;coarsest
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold

View File

@ -598,7 +598,7 @@ ZOOMBAR_SMALL;Mazs
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -649,6 +649,12 @@ ZOOMBAR_SMALL;Mazs
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -656,26 +662,42 @@ ZOOMBAR_SMALL;Mazs
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -684,6 +706,11 @@ ZOOMBAR_SMALL;Mazs
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -597,7 +597,7 @@ ZOOMBAR_SMALL;Kicsi
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -648,6 +648,12 @@ ZOOMBAR_SMALL;Kicsi
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -655,26 +661,42 @@ ZOOMBAR_SMALL;Kicsi
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -683,6 +705,11 @@ ZOOMBAR_SMALL;Kicsi
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -683,15 +683,37 @@ ZOOMPANEL_ZOOMOUT;Zoom uit
!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Add current image to processing queue <b>Ctrl+Q</b>
!MAIN_BUTTON_SAVE_TOOLTIP;Save current image <b>Ctrl+S</b>
!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E</b>
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -700,6 +722,11 @@ ZOOMPANEL_ZOOMOUT;Zoom uit
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -599,7 +599,7 @@ ZOOMBAR_SMALL;Liten
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -650,6 +650,12 @@ ZOOMBAR_SMALL;Liten
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -657,26 +663,42 @@ ZOOMBAR_SMALL;Liten
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -685,6 +707,11 @@ ZOOMBAR_SMALL;Liten
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -604,7 +604,7 @@ ZOOMBAR_SMALL;Mała
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -655,6 +655,12 @@ ZOOMBAR_SMALL;Mała
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -662,25 +668,41 @@ ZOOMBAR_SMALL;Mała
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -689,6 +711,11 @@ ZOOMBAR_SMALL;Mała
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -602,7 +602,7 @@ ZOOMBAR_SMALL;Mala
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -653,6 +653,12 @@ ZOOMBAR_SMALL;Mala
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -660,26 +666,42 @@ ZOOMBAR_SMALL;Mala
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -688,6 +710,11 @@ ZOOMBAR_SMALL;Mala
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -599,7 +599,7 @@ ZOOMBAR_SMALL;Pequeno
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -650,6 +650,12 @@ ZOOMBAR_SMALL;Pequeno
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -657,26 +663,42 @@ ZOOMBAR_SMALL;Pequeno
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -685,6 +707,11 @@ ZOOMBAR_SMALL;Pequeno
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -603,7 +603,7 @@ ZOOMBAR_SMALL;Минимальное
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -654,6 +654,12 @@ ZOOMBAR_SMALL;Минимальное
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -661,26 +667,42 @@ ZOOMBAR_SMALL;Минимальное
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -689,6 +711,11 @@ ZOOMBAR_SMALL;Минимальное
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -1,3 +1,4 @@
# Serbian translation
#00 Serbian (Cyrilic)
#01 by gpopac 2010-09-21
@ -702,3 +703,30 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!HISTORY_MSG_90;Directional pyramid luminance
!HISTORY_MSG_91;Directional pyramid chominance
!HISTORY_MSG_92;Directional pyramid gamma
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation

View File

@ -1,3 +1,4 @@
# Serbian translation
#00 Serbian (Cyrilic)
#01 by gpopac 2010-09-21
@ -702,3 +703,30 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!HISTORY_MSG_90;Directional pyramid luminance
!HISTORY_MSG_91;Directional pyramid chominance
!HISTORY_MSG_92;Directional pyramid gamma
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation

View File

@ -1,23 +1,38 @@
#00 Sloven?~Mina
#00 Slovenčina
#01 08.05.2008
#02 01.02.2009
#03 (Slapo)
#03 23.10.2010
#04 (Slapo)
ADJUSTER_RESET_TO_DEFAULT;Resetovať na predvolené nastavenia
BATCHQUEUE_AUTOSTART;Auto štart
BATCH_PROCESSING;Dávkové spracovanie
CURVEEDITOR_CUSTOM;Vlastné
CURVEEDITOR_DARKS;Tiene
CURVEEDITOR_FILEDLGFILTERANY;Všetky súbory
CURVEEDITOR_FILEDLGFILTERCURVE;Súbory kriviek
CURVEEDITOR_HIGHLIGHTS;Najvyššie svetlá
CURVEEDITOR_LIGHTS;Svetlá
CURVEEDITOR_LINEAR;Lineárna
CURVEEDITOR_LOADDLGLABEL;Načítať krivku...
CURVEEDITOR_NURBS;Kontrolná klietka
CURVEEDITOR_PARAMETRIC;Parametricky
CURVEEDITOR_SAVEDLGLABEL;Uložiť krivku...
CURVEEDITOR_SHADOWS;Hlboké tiene
CURVEEDITOR_TOOLTIPLINEAR;Resetovať krivku na lineárnu
CURVEEDITOR_TOOLTIPLOAD;Načítať krivku zo súboru
CURVEEDITOR_TOOLTIPSAVE;Uložiť súčasnú krivku
CURVEEDITOR_TYPE;Typ:
EXIFFILTER_APERTURE;Clona
EXIFFILTER_CAMERA;Fotoaparát
EXIFFILTER_DIALOGLABEL;Exif filter
EXIFFILTER_FOCALLEN;Ohnisková vzdialenosť
EXIFFILTER_ISO;ISO
EXIFFILTER_LENS;Objektív
EXIFFILTER_METADATAFILTER;Povoliť filtre meta údajov
EXIFFILTER_SHUTTER;Uzávierka
EXIFPANEL_ADDEDIT;Pridať/Upraviť
EXIFPANEL_ADDEDITHINT;Pridať novú značku alebo upraviť značku
@ -33,10 +48,12 @@ EXIFPANEL_RESETALL;Resetovať všetky
EXIFPANEL_RESETALLHINT;Resetovať všetky značky na ich pôvodné hodnoty
EXIFPANEL_RESETHINT;Resetovať vybrané značky na ich pôvodné hodnoty
EXIFPANEL_SUBDIRECTORY;Podadresár
FILEBROWSER_ADDDELTEMPLATE;Pridať/Odstrániť šablóny...
FILEBROWSER_APPLYPROFILE;Použiť profil
FILEBROWSER_ARRANGEMENTHINT;Zmeniť medzi vertikálnym/horizontálnym zarovnaním zmenšenín
FILEBROWSER_CLEARPROFILE;Vyčistiť profil
FILEBROWSER_COPYPROFILE;Kopírovať profil
FILEBROWSER_CURRENT_NAME;Súčasný názov:
FILEBROWSER_DELETEDLGLABEL;Potvrdenie odstránenia súboru
FILEBROWSER_DELETEDLGMSG;Ste si istí, že chcete odstrániť vybrané %1 súbory?
FILEBROWSER_EMPTYTRASH;Vyprázdniť kôš
@ -46,6 +63,7 @@ FILEBROWSER_EXIFFILTERAPPLYHINT;Zapnúť/vypnúť EXIF filter prehliadača súbo
FILEBROWSER_EXIFFILTERLABEL;Exif Filter
FILEBROWSER_EXIFFILTERSETTINGS;Nastavenia
FILEBROWSER_EXIFFILTERSETTINGSHINT;Zmeňte nastavenia EXIF filtra
FILEBROWSER_NEW_NAME;Nový názov:
FILEBROWSER_PARTIALPASTEPROFILE;Čiastočné vloženie
FILEBROWSER_PASTEPROFILE;Vložiť profil
FILEBROWSER_POPUPCANCELJOB;Zrušiť úlohu
@ -69,6 +87,7 @@ FILEBROWSER_PROCESSINGSETTINGSHINT;Nastaviť formát súborov a výstupný adres
FILEBROWSER_RENAMEDLGLABEL;Premenovať súbor
FILEBROWSER_RENAMEDLGMSG;Premenovať súbor "%1" na:
FILEBROWSER_SHOWDIRHINT;Ukázať všetky obrázky v adresári
FILEBROWSER_SHOWEXIFINFO;Ukázať EXIF info <b>i</b>
FILEBROWSER_SHOWQUEUEHINT;Zobraziť obsah radu na spracovanie
FILEBROWSER_SHOWRANK1HINT;Ukázať obrázky triedy 1 hviezda
FILEBROWSER_SHOWRANK2HINT;Ukázať obrázky triedy 2 hviezda
@ -82,14 +101,19 @@ FILEBROWSER_STARTPROCESSINGHINT;Začať spracovanie/ukladanie obrázkov v rade
FILEBROWSER_STOPPROCESSING;Zastaviť spracovanie
FILEBROWSER_STOPPROCESSINGHINT;Zastaviť spracovanie obrázkov
FILEBROWSER_THUMBSIZE;Veľkosť zmenšenín
FILEBROWSER_TOOLTIP_STOPPROCESSING;Začať spracovanie automaticky, keď príde nová úloha
FILEBROWSER_USETEMPLATE;Použiť šablónu:
FILEBROWSER_ZOOMINHINT;Zväčšiť veľkosť zmenšenín
FILEBROWSER_ZOOMOUTHINT;Zmenšiť veľkosť zmenšenín
GENERAL_ABOUT;O programe
GENERAL_AFTER;Potom
GENERAL_BEFORE;Predtým
GENERAL_CANCEL;Zrušiť
GENERAL_DISABLE;Zakázať
GENERAL_DISABLED;Zakázané
GENERAL_ENABLE;Povoliť
GENERAL_ENABLED;Povolené
GENERAL_HIGH_QUALITY;Vysoká kvalita
GENERAL_LANDSCAPE;Krajina
GENERAL_LOAD;Načítať
GENERAL_NA;n/a
@ -97,17 +121,23 @@ GENERAL_NO;Nie
GENERAL_OK;OK
GENERAL_PORTRAIT;Portrét
GENERAL_SAVE;Uložiť
GENERAL_UNCHANGED;(Nezmenené)
GENERAL_YES;Áno
HISTOGRAM_BUTTON_B;B
HISTOGRAM_BUTTON_G;G
HISTOGRAM_BUTTON_L;L
HISTOGRAM_BUTTON_R;R
HISTOGRAM_LABEL;Histogram
HISTOGRAM_TOOLTIP_B;Zobraziť/Schovať MODRÝ histogram
HISTOGRAM_TOOLTIP_G;Zobraziť/Schovať ZELENÝ histogram
HISTOGRAM_TOOLTIP_L;Zobraziť/Schovať histogram CIELAB svietivosti
HISTOGRAM_TOOLTIP_R;Zobraziť/Schovať ČERVENÝ histogram
HISTORY_CHANGED;Zmenené
HISTORY_CUSTOMCURVE;Vlastná krivka
HISTORY_DELSNAPSHOT;Odstrániť Snímok
HISTORY_FROMCLIPBOARD;Zo schránky
HISTORY_CHANGED;Zmenené
HISTORY_LABEL;História
HISTORY_MSG_1;Fotka načítaná
HISTORY_MSG_10;Kompresia tieňov
HISTORY_MSG_11;Krivka tónov
HISTORY_MSG_12;Auto expozícia
@ -118,7 +148,7 @@ HISTORY_MSG_16;Čierna svietivosti
HISTORY_MSG_17;Kompresia najvyšších svetiel v oblasti svietivosti
HISTORY_MSG_18;Kompresia tieňov v oblasti svietivosti
HISTORY_MSG_19;Krivka svietivosti
HISTORY_MSG_1;Fotka načítaná
HISTORY_MSG_2;Profil načítaný
HISTORY_MSG_20;Doostrenie
HISTORY_MSG_21;Polomer doostrenia
HISTORY_MSG_22;Množstvo doostrenia
@ -129,7 +159,7 @@ HISTORY_MSG_26;Tolerancia okrajov pri doostrení
HISTORY_MSG_27;Kontrola svätožiary pri doostrení
HISTORY_MSG_28;Množstvo kontroly svätožiary
HISTORY_MSG_29;Doostrovacia metóda
HISTORY_MSG_2;Profil načíta
HISTORY_MSG_3;Profil zmene
HISTORY_MSG_30;Polomer dekonvolúcie
HISTORY_MSG_31;Množstvo dekonvolúcie
HISTORY_MSG_32;Tlmenie dekonvolúcie
@ -140,7 +170,7 @@ HISTORY_MSG_36;Hranica sýtosti
HISTORY_MSG_37;Zosilnenie farieb
HISTORY_MSG_38;Metóda vyváženia bielej
HISTORY_MSG_39;Farebná teplota
HISTORY_MSG_3;Profil zmenený
HISTORY_MSG_4;História prehliadania
HISTORY_MSG_40;Nádych vyváženia bielej
HISTORY_MSG_41;Farebný posun "A"
HISTORY_MSG_42;Farebný posun "B"
@ -151,7 +181,7 @@ HISTORY_MSG_46;Farebné odšumenie
HISTORY_MSG_47;Polomer farebného odšumenia
HISTORY_MSG_48;Tolerancia okrajov farebného odšumenia
HISTORY_MSG_49;Citlivosť na okraje pri farebnom odšumení
HISTORY_MSG_4;História prehliadania
HISTORY_MSG_5;Jas
HISTORY_MSG_50;Nástroj Tiene/Najvyššie svetlá
HISTORY_MSG_51;Zosilnenie najvyšších svetiel
HISTORY_MSG_52;Zosilnenie tieňov
@ -162,7 +192,7 @@ HISTORY_MSG_56;Polomer Tiene/Najvyššie svetlá
HISTORY_MSG_57;Hrubé otočenie
HISTORY_MSG_58;Horizontálne preklápanie
HISTORY_MSG_59;Vertikálne preklápanie
HISTORY_MSG_5;Jas
HISTORY_MSG_6;Kontrast
HISTORY_MSG_60;Otočenie
HISTORY_MSG_61;Otočenie
HISTORY_MSG_62;Korekcia zakrivenia objektívu
@ -173,7 +203,7 @@ HISTORY_MSG_66;Obnova najvyšších svetiel
HISTORY_MSG_67;Množstvo obnovy najvyšších svetiel
HISTORY_MSG_68;Metóda obnovy najvyšších svetiel
HISTORY_MSG_69;Pracovný farebný priestor
HISTORY_MSG_6;Kontrast
HISTORY_MSG_7;Čierna
HISTORY_MSG_70;Výstupný farebný priestor
HISTORY_MSG_71;Vstupný farebný priestor
HISTORY_MSG_72;Korekcia vignetácie
@ -182,13 +212,22 @@ HISTORY_MSG_74;Zmeniť veľkosť - Rozmer
HISTORY_MSG_75;Zmeniť veľkosť - Metóda
HISTORY_MSG_76;Exif Metadáta
HISTORY_MSG_77;IPTC Metadáta
HISTORY_MSG_78;Data specified for resize
HISTORY_MSG_79;Resize width
HISTORY_MSG_7;Čierna
HISTORY_MSG_80;Resize height
HISTORY_MSG_81;Resize enabled
HISTORY_MSG_78;Zadané údaje pre zmenu veľkosti
HISTORY_MSG_79;Zmena veľkosti podľa šírky
HISTORY_MSG_8;Kompenzácia expozície
HISTORY_MSG_80;Zmena veľkosti podľa výšky
HISTORY_MSG_81;Zmena veľkosti povolená
HISTORY_MSG_82;Profil zmenený
HISTORY_MSG_83;Tiene/najvyšie svetlá vyskokej kvality
HISTORY_MSG_84;Náprava perspektívy
HISTORY_MSG_85;Koeficienty vlnky
HISTORY_MSG_86;Vyrovnávač vlnky
HISTORY_MSG_87;Impulzná redukcia šumu
HISTORY_MSG_89;Smerová pyramída
HISTORY_MSG_9;Kompresia najvyšších svetiel
HISTORY_MSG_90;Svietivosť smerovej pyramídy
HISTORY_MSG_91;Farebnosť smerovej pyramídy
HISTORY_MSG_92;Gamma smerovej pyramídy
HISTORY_NEWSNAPSHOT;Nový Snímok
HISTORY_NEWSNAPSHOTAS;Ako...
HISTORY_NEWSSDIALOGLABEL;Menovka snímku:
@ -252,31 +291,40 @@ IPTCPANEL_TITLE;Názov
IPTCPANEL_TITLEHINT;Krátka referencia pre obrázok (Meno objektu).
IPTCPANEL_TRANSREFERENCE;Referencia prenosu
IPTCPANEL_TRANSREFERENCEHINT;Kód reprezentujúci miesto pôvodného prenosu (Pôvodná referencia prenosu).
MAIN_BUTTON_EXIT;Exit
MAIN_BUTTON_EXIT;Ukončiť
MAIN_BUTTON_FULLSCREEN;Celá obrazovka
MAIN_BUTTON_PREFERENCES;Predvoľby
MAIN_BUTTON_QUEUE;Put to queue
MAIN_BUTTON_PUTTOQUEUE;Vložiť do radu
MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Pridať súčasný obrázok do radu na spracovanie <b>Ctrl+Q</b>
MAIN_BUTTON_QUEUE;Vložiť do radu
MAIN_BUTTON_SAVE;Uložiť obrázok
MAIN_BUTTON_SAVE_TOOLTIP;Uložiť súčasný obrázok <b>Ctrl+S</b>
MAIN_BUTTON_SAVEAS;Ako...
MAIN_BUTTON_SENDTOEDITOR;Odoslať do editora
MAIN_FRAME_BATCHQUEUE;Batch Queue
MAIN_FRAME_FILEBROWSER;File Browser
MAIN_FRAME_PLACES;Places
MAIN_FRAME_PLACES_ADD;Add
MAIN_FRAME_PLACES_DEL;Del
MAIN_FRAME_RECENT;Recent Folders
MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Upraviť súčasný obrázok v externom editore <b>Ctrl+E</b>
MAIN_BUTTON_UNFULLSCREEN;Ukončiť zobrazenie na celú obrazovku
MAIN_FRAME_BATCHQUEUE;Dávkový rad
MAIN_FRAME_FILEBROWSER;Prehliadač súborov
MAIN_FRAME_PLACES;Miesta
MAIN_FRAME_PLACES_ADD;Pridať
MAIN_FRAME_PLACES_DEL;Odstrániť
MAIN_FRAME_RECENT;Nedávne priečinky
MAIN_MSG_ALREADYEXISTS;Súbor už existuje.
MAIN_MSG_CANNOTLOAD;Nemôžem načítať obrázok
MAIN_MSG_CANNOTSAVE;Chyba pri ukladaní súboru
MAIN_MSG_CANNOTSTARTEDITOR;Nebolo možné spustiť editor.
MAIN_MSG_CANNOTSTARTEDITOR_SECONDARY;Prosím, nastavte správnu cestu v dialógu "Predvoľby".
MAIN_MSG_ERRORDURINGIMAGESAVING;Chyba pri ukladaní obrázka
MAIN_MSG_EXITJOBSINQUEUEINFO;Nespracované obrázky v rade budú pri ukončení programu stratené.
MAIN_MSG_EXITJOBSINQUEUEQUEST;Ste si istí, že chcete ukončiť program? V rade sú nespracované obrázky.
MAIN_MSG_JOBSINQUEUE;Úlohy v rade
MAIN_MSG_NAVIGATOR;Navigátor
MAIN_MSG_PLACES;Miesta
MAIN_MSG_QOVERWRITE;Chcete ho prepísať?
MAIN_TAB_BASIC;Základné
MAIN_TAB_COLOR;Farba
MAIN_TAB_DETAIL;Detail
MAIN_TAB_DEVELOP;Develop
MAIN_TAB_DEVELOP;Vyvinúť
MAIN_TAB_EXIF;Exif
MAIN_TAB_EXPOSURE;Expozícia
MAIN_TAB_FILTER;Filter
@ -285,6 +333,7 @@ MAIN_TAB_IPTC;IPTC
MAIN_TAB_METADATA;Metadáta
MAIN_TAB_TAGGING;Tagging
MAIN_TAB_TRANSFORM;Transformácie
MAIN_TOGGLE_BEFORE_AFTER;B|A
MAIN_TOOLTIP_HIDEFP;Zobraziť/ukázať panel tlačidiel (prehliadač adresárov a súborov, shortcut key: F)
MAIN_TOOLTIP_HIDEHP;Zobraziť/ukázať ľavý panel (vrátane histórie, shortcut key: H)
MAIN_TOOLTIP_INDCLIPPEDH;Indikácia orezania najvyšších svetiel
@ -293,6 +342,20 @@ MAIN_TOOLTIP_PREFERENCES;Nastaviť predvoľby
MAIN_TOOLTIP_QINFO;Rýchle informácie o obrázku
MAIN_TOOLTIP_SAVE;Uložiť obrázok do predvoleného adresára
MAIN_TOOLTIP_SAVEAS;Uložiť obrázok do vybraného adresára
MAIN_TOOLTIP_TOGGLE;Prepnúť pohľad predtým/potom <b>B</b>
NAVIGATOR_B_NA;B = n/a
NAVIGATOR_B_VALUE;B = %1
NAVIGATOR_G_NA;G = n/a
NAVIGATOR_G_VALUE;G = %1
NAVIGATOR_H_NA;H = n/a
NAVIGATOR_H_VALUE;H = %1
NAVIGATOR_R_NA;R = n/a
NAVIGATOR_R_VALUE;R = %1
NAVIGATOR_S_NA;S = n/a
NAVIGATOR_S_VALUE;S = %1
NAVIGATOR_V_NA;V = n/a
NAVIGATOR_V_VALUE;V = %1
NAVIGATOR_XY_NA;x = n/a, y = n/a
PARTIALPASTE_BASICGROUP;Základné nastavenia
PARTIALPASTE_CACORRECTION;Korekcia C/A
PARTIALPASTE_COARSETRANS;90° otočenie/preklopenie
@ -310,6 +373,7 @@ PARTIALPASTE_EXPOSURE;Expozícia
PARTIALPASTE_HLRECOVERY;Obnova najvyšších svetiel
PARTIALPASTE_ICMSETTINGS;Nastavenia ICM
PARTIALPASTE_IPTCINFO;IPTC informácie
PARTIALPASTE_LABCURVE;Krivka svietivosti
PARTIALPASTE_LENSGROUP;Nastavenia súvisiace s objektívom
PARTIALPASTE_LUMACURVE;Krivka svietivosti
PARTIALPASTE_LUMADENOISE;Redukcia šumu v oblasti svietivosti
@ -321,8 +385,12 @@ PARTIALPASTE_SHADOWSHIGHLIGHTS;Tiene/Najvyššie svetlá
PARTIALPASTE_SHARPENING;Doostrenie
PARTIALPASTE_VIGNETTING;Korekcia vignetácie
PARTIALPASTE_WHITEBALANCE;Vyváženie bielej
PREFERENCES_ADD;Pridať
PREFERENCES_APPLNEXTSTARTUP;Aplikovaný pri ďalšom spustení
PREFERENCES_BATCH_PROCESSING;dávkové spracovanie
PREFERENCES_BEHAVIOR;Správanie sa
PREFERENCES_BLINKCLIPPED;Blikať orezanými miestami
PREFERENCES_CACORRECTION;Použiť automatickú úpravu CA
PREFERENCES_CACHECLEARALL;Vyčistiť všetko
PREFERENCES_CACHECLEARPROFILES;Vyčistiť profily
PREFERENCES_CACHECLEARTHUMBS;Vyčistiť zmenšeniny
@ -330,9 +398,9 @@ PREFERENCES_CACHEFORMAT1;Vlastné (rýchlejšie a kvalitnejšie)
PREFERENCES_CACHEFORMAT2;JPEG (menšia veľkosť na disku)
PREFERENCES_CACHEMAXENTRIES;Maximálny počet vstupov v cache
PREFERENCES_CACHEOPTS;Možnosti cache
PREFERENCES_CACHESTRAT;Stratégia použitia cache
PREFERENCES_CACHESTRAT1;Uprednostniť rýchlosť pred malou spotrebou pamäte
PREFERENCES_CACHESTRAT2;Uprednostniť malú spotrebu pamäte pred rýchlosťou
PREFERENCES_CACHESTRAT;Stratégia použitia cache
PREFERENCES_CACHETHUMBFORM;Formát zmenšenín pre cache
PREFERENCES_CACHETHUMBHEIGHT;Maximálna výška zmenšenín
PREFERENCES_CLEARDLG_LINE1;Čistím cache
@ -342,6 +410,8 @@ PREFERENCES_CLIPPINGIND;Indikácia orezu
PREFERENCES_CMETRICINTENT;Kolorimetrický zámer
PREFERENCES_DATEFORMAT;Formát dátumu
PREFERENCES_DATEFORMATHINT;<i>Môžete použiť nasledujúce formátovacie reťazce:</i>\n<b>%y</b><i> : rok</i>\n<b>%m</b><i> : mesiac</i>\n<b>%d</b><i> : deň</i>\n<i>\nNapríklad, slovenský formát je:</i>\n<b>%d.%m.%y</b>
PREFERENCES_DCBENHANCE;Použiť vylepšovací krok DCB
PREFERENCES_DCBITERATIONS;Počet iterácií DCB
PREFERENCES_DEFAULTLANG;Predvolený jazyk
PREFERENCES_DEFAULTTHEME;Predvolený vzhľad
PREFERENCES_DEMOSAICINGALGO;Demozaikovací algoritmus
@ -351,7 +421,9 @@ PREFERENCES_DIROTHER;Iný
PREFERENCES_DIRSELECTDLG;Vybrať adresár s obrázkami pri spustení...
PREFERENCES_DIRSOFTWARE;Inštalačný adresár
PREFERENCES_DMETHOD;Metóda
PREFERENCES_DMETHODBATCH;Dávka
PREFERENCES_EDITORCMDLINE;Iný príkazový riadok
PREFERENCES_EDITORLAYOUT;Rozloženie editora
PREFERENCES_EXTERNALEDITOR;Externý editor
PREFERENCES_FALSECOLOR;Kroky potlačenia chybných farieb
PREFERENCES_FBROWSEROPTS;Voľby prehliadača súborov
@ -359,23 +431,28 @@ PREFERENCES_FILEFORMAT;Formát súborov
PREFERENCES_FORIMAGE;Pre obrazové súbory
PREFERENCES_FORRAW;Pre RAW súbory
PREFERENCES_GIMPPATH;Inštalačný adresár GIMPu
PREFERENCES_GREENEQUIL;Vyvažovanie zelenej
PREFERENCES_GTKTHEME;GTK predvolený
PREFERENCES_HINT;Tip
PREFERENCES_HLTHRESHOLD;Prah pre orezanie najvyšších svetiel
PREFERENCES_HOTDEADPIXFILT;Použiť filter na horúce/mŕtve pixely
PREFERENCES_ICCDIR;Adresár s ICC profilmy
PREFERENCES_IMPROCPARAMS;Predvolené parametre spracovania obrazu
PREFERENCES_INTENT_ABSOLUTE;Absolútny kolorimetrický
PREFERENCES_INTENT_PERCEPTUAL;Vnímaný
PREFERENCES_INTENT_RELATIVE;Relatívny kolorimetrický
PREFERENCES_INTENT_SATURATION;Sýtosť
PREFERENCES_LINEDENOISE;Filter šumu vedenia
PREFERENCES_LIVETHUMBNAILS;Živé zmenšeniny (pomalšie)
PREFERENCES_MONITORICC;Profil monitora
PREFERENCES_MULTITAB;Režim viacerých kariet
PREFERENCES_OUTDIR;Výstupný adresár
PREFERENCES_OUTDIRFOLDER;Uložiť do adresára
PREFERENCES_OUTDIRFOLDERHINT;Uložiť obrázky do vybraného adresára
PREFERENCES_OUTDIRHINT;<i>Môžete použiť nasledujúce formátovacie reťazce:</i>\n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>\n<i>\nTieto formátovacie reťazce odkazujú na adresáre a časti cesty k raw súboru.\n\nNapríklad, ak bol </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>otvorený, význam formátovacích reťazcov je:\n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n</b><i>\nAk chcete uložiť výstupný obraz tam, kde je originál, napíšte:\n</i><b>%p1/%f\n</b><i>\nAk chcete uložiť výstupný obraz v adresári 'converted' nachádzajúcom sa v adresári s originálom, napíšte:\n</i><b>%p1/converted/%f\n</b><i>\nAk chcete uložiť výstupný obraz v adresári '/home/tom/converted' pri zachovaní toho istého podadresára s dátumami, napíšte:\n</i><b>%p2/converted/%d1/%f</b>
PREFERENCES_OUTDIRTEMPLATE;Použiť šablónu
PREFERENCES_OUTDIRTEMPLATEHINT;<i>Môžete použiť nasledujúce formátovacie reťazce:</i>\n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>\n<i>\nTieto formátovacie reťazce odkazujú na adresáre a časti cesty k raw súboru.\n\nNapríklad, ak bol </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>otvorený, význam formátovacích reťazcov je:\n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, p3=/home/tom, ...\n</b><i>\nIf you want to save the output image where the original is, write:\n</i><b>%p1/%f\n</b><i>\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n</i><b>%p1/converted/%f\n</b><i>\nAk chcete uložiť výstupný obraz tam, kde je originál, napíšte:\n</i><b>%p1/%f\n</b><i>\nAk chcete uložiť výstupný obraz v adresári 'converted' nachádzajúcom sa v adresári s originálom, napíšte:\n</i><b>%p1/converted/%f\n</b><i>\nAk chcete uložiť výstupný obraz v adresári '/home/tom/converted' pri zachovaní toho istého podadresára s dátumami, napíšte:\n</i><b>%p2/converted/%d1/%f</b>
PREFERENCES_OVERLAY_FILENAMES;Prekryť mená súborov cez zmenšeniny
PREFERENCES_PARSEDEXT;Spracúvané prípony
PREFERENCES_PARSEDEXTADD;Pridať príponu
PREFERENCES_PARSEDEXTADDHINT;Napíšte príponu a stlačte tento gombík pre pripojenie k zoznamu
@ -386,15 +463,19 @@ PREFERENCES_PROFILEPRCACHE;Profil v cache
PREFERENCES_PROFILEPRFILE;Profil pri vstupnom súbore
PREFERENCES_PROFILESAVECACHE;Uložiť parametre spracovania do cache
PREFERENCES_PROFILESAVEINPUT;Uložiť parametre spracovania k vstupnému súboru
PREFERENCES_PROPERTY;Vlastnosť
PREFERENCES_PSPATH;Inštalačný adresár Adobe Photoshop
PREFERENCES_SELECTFONT;Vybrať písmo
PREFERENCES_SELECTICCDIRDLG;Vybrať adresár s ICC profilmi...
PREFERENCES_SELECTLANG;Vybrať si jazyk
PREFERENCES_SELECTMONITORPROFDLG;Vybrať ICC profil monitora...
PREFERENCES_SELECTTHEME;Vybrať vzhľad
PREFERENCES_SET;Nastaviť
PREFERENCES_SHOWBASICEXIF;Zobrazovať základné EXIF informácie
PREFERENCES_SHOWDATETIME;Ukázovať dátum a čas
PREFERENCES_SHOWONLYRAW;Ukazovať len RAW súbory
PREFERENCES_SHTHRESHOLD;Prah pre orezané tiene
PREFERENCES_SINGLETAB;Režim jednej karty
PREFERENCES_STARTUPIMDIR;Adresár s obrázkami pri spustení
PREFERENCES_TAB_BROWSER;Prehliadač súborov
PREFERENCES_TAB_COLORMGR;Správa farieb
@ -402,6 +483,8 @@ PREFERENCES_TAB_GENERAL;Všeobecné
PREFERENCES_TAB_IMPROC;Spracovanie obrazu
PREFERENCES_TAB_OUTPUT;Výstupné možnosti
PREFERENCES_THUMBSIZE;Veľkosť zmenšeniny
PREFERENCES_USESYSTEMTHEME; Použiť systémový vzhľad
PREFERENCES_WORKFLOW;Tok práce
PROFILEPANEL_FILEDLGFILTERANY;Všetky súbory
PROFILEPANEL_FILEDLGFILTERPP;Profily spracovania
PROFILEPANEL_LABEL;Profily spracovania
@ -429,11 +512,13 @@ PROGRESSBAR_SAVEPNG;Ukladám PNG súbor...
PROGRESSBAR_SAVETIFF;Ukladám TIFF súbor...
PROGRESSDLG_LOADING;Načítava sa súbor...
PROGRESSDLG_PROCESSING;Spracúva sa obrázok...
PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmenený v prehliadači
PROGRESSDLG_SAVING;Ukladá sa súbor...
QINFO_FOCALLENGTH;Ohnisková vzdialenosť
QINFO_ISO;ISO
QINFO_LENS;Objektív
QINFO_NOEXIF;Exif údaje sú nedostupné.
SAVEDLG_AUTOSUFFIX;Automaticky pridať príponu, ak už súbor existuje
SAVEDLG_FILEFORMAT;Formát súboru
SAVEDLG_JPEGQUAL;JPEG Kvalita
SAVEDLG_JPGFILTER;JPEG súbory
@ -445,6 +530,7 @@ SAVEDLG_PUTTOQUEUETAIL;Presunúť na koniec radu na spracovanie
SAVEDLG_SAVEIMMEDIATELY;Uložiť okamžite
SAVEDLG_SAVESPP;Uložiť parametre spracovania s obrázkom
SAVEDLG_TIFFFILTER;TIFF súbory
SAVEDLG_TIFFUNCOMPRESSED;Nekomprimovaný TIFF
TOOLBAR_TOOLTIP_CROP;Orezanie výberu (shortcut key: C)
TOOLBAR_TOOLTIP_HAND;Nástroj ruka (shortcut key: N)
TOOLBAR_TOOLTIP_STRAIGHTEN;Výber rovnej čiary (shortcut key: S)
@ -461,10 +547,10 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Prevrátiť horizontálne
TP_COARSETRAF_TOOLTIP_ROTLEFT;Otočiť doľava
TP_COARSETRAF_TOOLTIP_ROTRIGHT;Otočiť doprava
TP_COARSETRAF_TOOLTIP_VFLIP;Prevrátiť vertikálne
TP_COLORBOOST_ACHANNEL;kanál "a"
TP_COLORBOOST_ACHANNEL;Kanál "a"
TP_COLORBOOST_AMOUNT;Množstvo
TP_COLORBOOST_AVOIDCOLORCLIP;Vyhnúť sa orezaniu farieb
TP_COLORBOOST_BCHANNEL;kanál "b"
TP_COLORBOOST_BCHANNEL;Kanál "b"
TP_COLORBOOST_CHAB;a & b
TP_COLORBOOST_CHANNEL;Kanál
TP_COLORBOOST_CHSEPARATE;oddelené
@ -494,8 +580,26 @@ TP_CROP_SELECTCROP; Vyberte Orez
TP_CROP_W;Š
TP_CROP_X;x
TP_CROP_Y;y
TP_DETAIL_AMOUNT;Množstvo
TP_DIRPYRDENOISE_CHROMA;Farebnosť
TP_DIRPYRDENOISE_GAMMA;Gamma
TP_DIRPYRDENOISE_LABEL;Redukcia šumu pomocou smerovej pyramídy
TP_DIRPYRDENOISE_LUMA;Svietivosť
TP_DIRPYREQUALIZER_LABEL;Vyrovnávač smerovej pyramídy
TP_DIRPYREQUALIZER_LUMACOARSEST;Najhrubšie
TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Kontrast-
TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Kontrast+
TP_DIRPYREQUALIZER_LUMAFINEST;Najjemnejšie
TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutrálne
TP_DIRPYREQUALIZER_THRESHOLD;Threshold
TP_DISTORTION_AMOUNT;Množstvo
TP_DISTORTION_LABEL;Zakrivenie
TP_EQUALIZER_CONTRAST_MINUS;Kontrast-
TP_EQUALIZER_CONTRAST_PLUS;Kontrast+
TP_EQUALIZER_FINEST;najjemnejšie
TP_EQUALIZER_LABEL;Vyrovnávač vlnky
TP_EQUALIZER_LARGEST;najhrubšie
TP_EQUALIZER_NEUTRAL;Neutrálne
TP_EXPOSURE_AUTOLEVELS;Auto úrovne
TP_EXPOSURE_BLACKLEVEL;Čierna
TP_EXPOSURE_BRIGHTNESS;Jas
@ -525,6 +629,16 @@ TP_ICM_OUTPUTDLGLABEL;Vybrať výstupný ICC profil...
TP_ICM_OUTPUTPROFILE;Výstupný profil
TP_ICM_SAVEREFERENCE;Uložiť referenčný obrázok pre tvorbu profilu
TP_ICM_WORKINGPROFILE;Pracovný profil
TP_IMPULSEDENOISE_LABEL;Impulzná redukcia šumu
TP_IMPULSEDENOISE_THRESH;Prah
TP_LABCURVE_BRIGHTNESS;Jas
TP_LABCURVE_CONTRAST;Kontrast
TP_LABCURVE_CURVEEDITOR;Krivka svietivosti
TP_LABCURVE_LABEL;Krivka svietivosti
TP_LABCURVE_SATURATION;Sýtosť
TP_LENSGEOM_AUTOCROP;Automatické orezanie
TP_LENSGEOM_FILL;Automatické vyplnenie
TP_LENSGEOM_LABEL;Objektív/Geometria
TP_LUMACURVE_BLACKLEVEL;Čierna
TP_LUMACURVE_BRIGHTNESS;Jas
TP_LUMACURVE_COMPRHIGHLIGHTS;Kompresia najvyšších svetiel
@ -535,17 +649,25 @@ TP_LUMACURVE_LABEL;Krivka svietivosti
TP_LUMADENOISE_EDGETOLERANCE;Tolerancia okrajov
TP_LUMADENOISE_LABEL;Redukcia šumu v oblasti svietivosti
TP_LUMADENOISE_RADIUS;Polomer
TP_PERSPECTIVE_HORIZONTAL;Horizontálne
TP_PERSPECTIVE_LABEL;Perspektíva
TP_PERSPECTIVE_VERTICAL;Vertikálne
TP_RESIZE_BICUBIC;Bikubická
TP_RESIZE_BICUBICSF;Bikubická (Mäkšia)
TP_RESIZE_BICUBICSH;Bikubická (Ostrejšia)
TP_RESIZE_BILINEAR;Bilineárna
TP_RESIZE_DOWNSCALEB;Downscale (Lepšie)
TP_RESIZE_DOWNSCALEF;Downscale (Rýchlejšie)
TP_RESIZE_FULLSIZE;Celá veľkosť obrázka:
TP_RESIZE_H;V:
TP_RESIZE_HEIGHT;Výška
TP_RESIZE_LABEL;Zmeniť veľkosť
TP_RESIZE_METHOD;Metóda:
TP_RESIZE_NEAREST;Najbližšie
TP_RESIZE_SCALE;Rozmer
TP_RESIZE_SCALE;Pomer
TP_RESIZE_SPECIFY;Zadať:
TP_RESIZE_W;Š:
TP_RESIZE_WIDTH;Šírka
TP_ROTATE_AUTOCROP;Automatické orezanie
TP_ROTATE_DEGREE;Stupeň
TP_ROTATE_FILL;Výplň
@ -592,114 +714,9 @@ ZOOMBAR_NORMAL;Normálny
ZOOMBAR_PREVIEW;Náhľad
ZOOMBAR_SCALE;Rozmer
ZOOMBAR_SMALL;Malý
!!!!!!!!!!!!!!!!!!!!!!!!!
! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!!
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
!CURVEEDITOR_LIGHTS;Lights
!CURVEEDITOR_NURBS;Control cage
!CURVEEDITOR_PARAMETRIC;Parametric
!CURVEEDITOR_SHADOWS;Shadows
!CURVEEDITOR_TYPE;Type:
!EXIFFILTER_METADATAFILTER;Enable Metadata Filters
!FILEBROWSER_ADDDELTEMPLATE;Add/Del templates...
!FILEBROWSER_CURRENT_NAME;Current name:
!FILEBROWSER_NEW_NAME;New name:
!FILEBROWSER_SHOWEXIFINFO;Show EXIF info <b>i</b>
!FILEBROWSER_TOOLTIP_STOPPROCESSING;Start processing automatically when a new job arrives
!FILEBROWSER_USETEMPLATE;Use template:
!GENERAL_AFTER;After
!GENERAL_BEFORE;Before
!GENERAL_HIGH_QUALITY;High Quality
!GENERAL_UNCHANGED;(Unchanged)
!HISTOGRAM_BUTTON_B;B
!HISTOGRAM_BUTTON_G;G
!HISTOGRAM_BUTTON_L;L
!HISTOGRAM_BUTTON_R;R
!HISTORY_MSG_82;Profile Changed
!HISTORY_MSG_83;High quality shadows/highlights
!HISTORY_MSG_84;Perspective correction
!HISTORY_MSG_85;Wavelet coefficients
!HISTORY_MSG_86;Wavelet equalizer
!HISTORY_MSG_87;Impulse noise reduction
!HISTORY_MSG_89;Directional pyramid
!HISTORY_MSG_90;Directional pyramid luminance
!HISTORY_MSG_91;Directional pyramid chominance
!HISTORY_MSG_92;Directional pyramid gamma
!MAIN_BUTTON_FULLSCREEN;Fullscreen
!MAIN_BUTTON_PUTTOQUEUE;Put to queue
!MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Add current image to processing queue <b>Ctrl+Q</b>
!MAIN_BUTTON_SAVE_TOOLTIP;Save current image <b>Ctrl+S</b>
!MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor <b>Ctrl+E</b>
!MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen
!MAIN_MSG_ERRORDURINGIMAGESAVING;Error during image saving
!MAIN_MSG_NAVIGATOR;Navigator
!MAIN_MSG_PLACES;Places
!MAIN_TOGGLE_BEFORE_AFTER;B|A
!MAIN_TOOLTIP_TOGGLE;Toggle before/after view <b>B</b>
!NAVIGATOR_B_NA;B = n/a
!NAVIGATOR_B_VALUE;B = %1
!NAVIGATOR_G_NA;G = n/a
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
!NAVIGATOR_S_VALUE;S = %1
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SET;SET
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!SAVEDLG_TIFFUNCOMPRESSED;Uncompressed TIFF
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
!TP_EQUALIZER_LABEL;Wavelet equalizer
!TP_EQUALIZER_LARGEST;coarsest
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry
!TP_PERSPECTIVE_HORIZONTAL;Horizontal
!TP_PERSPECTIVE_LABEL;Perspective
!TP_PERSPECTIVE_VERTICAL;Vertical
!TP_RESIZE_DOWNSCALEB;Downscale (Better)
!TP_RESIZE_DOWNSCALEF;Downscale (Faster)
!TP_RESIZE_HEIGHT;Height
!TP_RESIZE_SPECIFY;Specify:
!TP_RESIZE_WIDTH;Width
!ZOOMPANEL_100;(100%)
!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window
!ZOOMPANEL_ZOOM100;Zoom to 100% <b>1</b>
!ZOOMPANEL_ZOOMFITSCREEN;Fit to screen <b>F</b>
!ZOOMPANEL_ZOOMIN;Zoom In <b>+</b>
!ZOOMPANEL_ZOOMOUT;Zoom Out <b>-</b>
ZOOMPANEL_100;(100%)
ZOOMPANEL_NEWCROPWINDOW;Otvoriť (nové) okno s detailom
ZOOMPANEL_ZOOM100;Priblíženie na 100% <b>1</b>
ZOOMPANEL_ZOOMFITSCREEN;Prispôsobiť obrazovke <b>F</b>
ZOOMPANEL_ZOOMIN;Priblížiť <b>+</b>
ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>

View File

@ -600,7 +600,7 @@ ZOOMBAR_SMALL;Pieni
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -651,6 +651,12 @@ ZOOMBAR_SMALL;Pieni
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -658,25 +664,41 @@ ZOOMBAR_SMALL;Pieni
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -685,6 +707,11 @@ ZOOMBAR_SMALL;Pieni
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

File diff suppressed because it is too large Load Diff

View File

@ -600,7 +600,7 @@ ZOOMBAR_SMALL;Küçük
!BATCHQUEUE_AUTOSTART;Auto start
!BATCH_PROCESSING;batch processing
!BATCH_PROCESSING;Batch processing
!CURVEEDITOR_CUSTOM;Custom
!CURVEEDITOR_DARKS;Darks
!CURVEEDITOR_HIGHLIGHTS;Highlights
@ -651,6 +651,12 @@ ZOOMBAR_SMALL;Küçük
!NAVIGATOR_G_VALUE;G = %1
!NAVIGATOR_H_NA;H = n/a
!NAVIGATOR_H_VALUE;H = %1
!NAVIGATOR_LAB_A_NA;A = n/a
!NAVIGATOR_LAB_A_VALUE;A = %1
!NAVIGATOR_LAB_B_NA;B = n/a
!NAVIGATOR_LAB_B_VALUE;B = %1
!NAVIGATOR_LAB_L_NA;L = n/a
!NAVIGATOR_LAB_L_VALUE;L = %1
!NAVIGATOR_R_NA;R = n/a
!NAVIGATOR_R_VALUE;R = %1
!NAVIGATOR_S_NA;S = n/a
@ -658,25 +664,41 @@ ZOOMBAR_SMALL;Küçük
!NAVIGATOR_V_NA;V = n/a
!NAVIGATOR_V_VALUE;V = %1
!NAVIGATOR_XY_NA;x = n/a, y = n/a
!PARTIALPASTE_LABCURVE;Lab curve
!PARTIALPASTE_LABCURVE;Luminance curve
!PREFERENCES_ADD;ADD
!PREFERENCES_BATCH_PROCESSING;batch processing
!PREFERENCES_BEHAVIOR;Behavior
!PREFERENCES_CACORRECTION;Apply CA auto correction
!PREFERENCES_DCBENHANCE;Apply DCB enhancement step
!PREFERENCES_DCBITERATIONS;Number of DCB iterations
!PREFERENCES_DMETHODBATCH;Batch
!PREFERENCES_EDITORLAYOUT;Editor Layout
!PREFERENCES_GREENEQUIL;Green equilibration
!PREFERENCES_HOTDEADPIXFILT;Apply hot/dead pixel filter
!PREFERENCES_LINEDENOISE;Line noise filter
!PREFERENCES_MULTITAB;Multiple tabs mode
!PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
!PREFERENCES_PROPERTY;Property
!PREFERENCES_SELECTFONT;Select font
!PREFERENCES_SET;SET
!PREFERENCES_SINGLETAB;Single tab mode
!PREFERENCES_USESYSTEMTHEME; Use System Theme
!PREFERENCES_WORKFLOW;Workflow
!PROGRESSDLG_PROFILECHANGEDINBROWSER;Profile changed in browser
!SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists
!TP_DETAIL_AMOUNT;Amount
!TP_DIRPYRDENOISE_CHROMA;Chrominance
!TP_DIRPYRDENOISE_GAMMA;Gamma
!TP_DIRPYRDENOISE_LABEL;Directional Pyramid Noise Reduction
!TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
!TP_DIRPYRDENOISE_LUMA;Luminance
!TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
!TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
!TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
!TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
!TP_DIRPYREQUALIZER_LUMAFINEST;Finest
!TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
!TP_DIRPYREQUALIZER_THRESHOLD;Threshold
!TP_EQUALIZER_CONTRAST_MINUS;Contrast-
!TP_EQUALIZER_CONTRAST_PLUS;Contrast+
!TP_EQUALIZER_FINEST;finest
@ -685,6 +707,11 @@ ZOOMBAR_SMALL;Küçük
!TP_EQUALIZER_NEUTRAL;Neutral
!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
!TP_IMPULSEDENOISE_THRESH;Threshold
!TP_LABCURVE_BRIGHTNESS;Brightness
!TP_LABCURVE_CONTRAST;Contrast
!TP_LABCURVE_CURVEEDITOR;Luminance Curve
!TP_LABCURVE_LABEL;Lab Curves
!TP_LABCURVE_SATURATION;Saturation
!TP_LENSGEOM_AUTOCROP;Auto Crop
!TP_LENSGEOM_FILL;Auto Fill
!TP_LENSGEOM_LABEL;Lens / Geometry

View File

@ -2,7 +2,7 @@
#01 Developers should add translations to this file and then run 'generateDifferences.sh' script to update other locales.
ADJUSTER_RESET_TO_DEFAULT;Reset to default
BATCHQUEUE_AUTOSTART;Auto start
BATCH_PROCESSING;batch processing
BATCH_PROCESSING;Batch processing
CURVEEDITOR_CUSTOM;Custom
CURVEEDITOR_DARKS;Darks
CURVEEDITOR_FILEDLGFILTERANY;Any files
@ -345,6 +345,12 @@ NAVIGATOR_G_NA;G = n/a
NAVIGATOR_G_VALUE;G = %1
NAVIGATOR_H_NA;H = n/a
NAVIGATOR_H_VALUE;H = %1
NAVIGATOR_LAB_A_NA;A = n/a
NAVIGATOR_LAB_A_VALUE;A = %1
NAVIGATOR_LAB_B_NA;B = n/a
NAVIGATOR_LAB_B_VALUE;B = %1
NAVIGATOR_LAB_L_NA;L = n/a
NAVIGATOR_LAB_L_VALUE;L = %1
NAVIGATOR_R_NA;R = n/a
NAVIGATOR_R_VALUE;R = %1
NAVIGATOR_S_NA;S = n/a
@ -369,8 +375,9 @@ PARTIALPASTE_EXPOSURE;Exposure
PARTIALPASTE_HLRECOVERY;Highlight recovery
PARTIALPASTE_ICMSETTINGS;ICM settings
PARTIALPASTE_IPTCINFO;IPTC info
PARTIALPASTE_LABCURVE;Lab curve
PARTIALPASTE_LABCURVE;Luminance curve
PARTIALPASTE_LENSGROUP;Lens related settings
PARTIALPASTE_LUMACURVE;Luminance curve
PARTIALPASTE_LUMADENOISE;Luminance noise reduction
PARTIALPASTE_LUMINANCEGROUP;Luminance related settings
PARTIALPASTE_METAICMGROUP;Metadata/ICM settings
@ -381,7 +388,7 @@ PARTIALPASTE_SHARPENING;Sharpening
PARTIALPASTE_VIGNETTING;Vignetting correction
PARTIALPASTE_WHITEBALANCE;White balance
PREFERENCES_ADD;ADD
PREFERENCES_APPLNEXTSTARTUP;applied at next startup
PREFERENCES_APPLNEXTSTARTUP;restart required
PREFERENCES_BATCH_PROCESSING;batch processing
PREFERENCES_BEHAVIOR;Behavior
PREFERENCES_BLINKCLIPPED;Blink clipped areas
@ -398,9 +405,6 @@ PREFERENCES_CACHESTRAT;Cache Strategy
PREFERENCES_CACHETHUMBFORM;Cache Thumbnail Format
PREFERENCES_CACHETHUMBHEIGHT;Maximal Thumbnail Height
PREFERENCES_CACORRECTION;Apply CA auto correction
PREFERENCES_CLEARDLG_LINE1;Clearing cache
PREFERENCES_CLEARDLG_LINE2;This may take a few seconds.
PREFERENCES_CLEARDLG_TITLE;Please wait
PREFERENCES_CLIPPINGIND;Clipping indication
PREFERENCES_CMETRICINTENT;Colorimetric Intent
PREFERENCES_DARKFRAME;Dark frame
@ -417,8 +421,10 @@ PREFERENCES_DIRLAST;Last visited directory
PREFERENCES_DIROTHER;Other
PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup...
PREFERENCES_DIRSOFTWARE;Installation directory
PREFERENCES_DMETHOD;Method
PREFERENCES_DMETHOD;Preview
PREFERENCES_DMETHODBATCH;Batch
PREFERENCES_EDITORCMDLINE;Other command line
PREFERENCES_EDITORLAYOUT;Editor Layout
PREFERENCES_EXTERNALEDITOR;External editor
PREFERENCES_FALSECOLOR;False color suppression steps
PREFERENCES_FBROWSEROPTS;File Browser Options
@ -440,12 +446,13 @@ PREFERENCES_INTENT_SATURATION;Saturation
PREFERENCES_LINEDENOISE;Line noise filter
PREFERENCES_LIVETHUMBNAILS;Live Thumbnails (slower)
PREFERENCES_MONITORICC;Monitor Profile
PREFERENCES_MULTITAB;Multiple tabs mode
PREFERENCES_OUTDIR;Output Directory
PREFERENCES_OUTDIRFOLDER;Save to folder
PREFERENCES_OUTDIRFOLDERHINT;Put the saved images to the selected folder
PREFERENCES_OUTDIRHINT;<i>You can use the following formatting strings:</i>\n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>\n<i>\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:\n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...\n</b><i>\nIf you want to save the output image where the original is, write:\n</i><b>%p1/%f\n</b><i>\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n</i><b>%p1/converted/%f\n</b><i>\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n</i><b>%p2/converted/%d1/%f</b>
PREFERENCES_OUTDIRHINT;You can use the following formatting strings:\n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...\n\nThese formatting strings refer to the different parts of the photo's pathname.\n\nFor example, if the photo being processed has the following pathname:\n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>\nthe meaning of the formatting strings are:\n<b>%d4</b> = <i>home</i>\n<b>%d3</b> = <i>tom</i>\n<b>%d2</b> = <i>photos</i>\n<b>%d1</b> = <i>2010-10-31</i>\n<b>%f</b> = <i>dsc0042</i>\n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>\n<b>%p2</b> = <i>/home/tom/photos/</i>\n<b>%p3</b> = <i>/home/tom/</i>\n<b>%p4</b> = <i>/home/</i>\n\nIf you want to save the output image where the original is, write:\n<b>%p1/%f</b>\n\nIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:\n<b>%p1/converted/%f</b>\n\nIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:\n<b>%p2/converted/%d1/%f</b>
PREFERENCES_OUTDIRTEMPLATE;Use Template
PREFERENCES_OUTDIRTEMPLATEHINT;<i>You can use the following formatting strings:</i>\n<b>%f, %d1, %d2, ..., %p1, %p2, ...</b>\n<i>\nThese formatting strings refer to the directories and sub-paths of the path of the raw file.\n\nFor example, if </i> <b>/home/tom/image/02-09-2006/dsc0012.nef</b><i>has been opened, the meaning of the formatting strings are:\n</i><b>%f=dsc0012, %d1=02-09-2006, %d2=image, ...\n%p1=/home/tom/image/02-09-2006, %p2=/home/tom/image, %p3=/home/tom, ...\n</b><i>\nIf you want to save the output image where the original is, write:\n</i><b>%p1/%f\n</b><i>\nIf you want to save the output image in a directory 'converted' located the directory of the original, write:\n</i><b>%p1/converted/%f\n</b><i>\nIf you want to save the output image in directory '/home/tom/converted' with keeping the same subdirectory of dates, write:\n</i><b>%p2/converted/%d1/%f</b>
PREFERENCES_OUTDIRTEMPLATEHINT;You can use the following formatting strings:\n<b>%f</b>, <b>%d1</b>, <b>%d2</b>, ..., <b>%p1</b>, <b>%p2</b>, ...\n\nThese formatting strings refer to the different parts of the photo's pathname.\n\nFor example, if the photo being processed has the following pathname:\n<b><i>/home/tom/photos/2010-10-31/dsc0042.nef</i></b>\nthe meaning of the formatting strings are:\n<b>%d4</b> = <i>home</i>\n<b>%d3</b> = <i>tom</i>\n<b>%d2</b> = <i>photos</i>\n<b>%d1</b> = <i>2010-10-31</i>\n<b>%f</b> = <i>dsc0042</i>\n<b>%p1</b> = <i>/home/tom/photos/2010-10-31/</i>\n<b>%p2</b> = <i>/home/tom/photos/</i>\n<b>%p3</b> = <i>/home/tom/</i>\n<b>%p4</b> = <i>/home/</i>\n\nIf you want to save the output image where the original is, write:\n<b>%p1/%f</b>\n\nIf you want to save the output image in a directory named "<i>converted</i>" located in the directory of the opened image, write:\n<b>%p1/converted/%f</b>\n\nIf you want to save the output image in a directory named "<i>/home/tom/photos/converted/2010-10-31</i>", write:\n<b>%p2/converted/%d1/%f</b>
PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails
PREFERENCES_PARSEDEXT;Parsed Extensions
PREFERENCES_PARSEDEXTADD;Add Extension
@ -459,6 +466,7 @@ PREFERENCES_PROFILESAVECACHE;Save Processing Parameters to the Cache
PREFERENCES_PROFILESAVEINPUT;Save Processing Parameters Next to the Input File
PREFERENCES_PROPERTY;Property
PREFERENCES_PSPATH;Adobe Photoshop installation directory
PREFERENCES_SELECTFONT;Select font
PREFERENCES_SELECTICCDIRDLG;Select ICC Profile Directory...
PREFERENCES_SELECTLANG;Select language
PREFERENCES_SELECTMONITORPROFDLG;Select ICC Profile of the Display...
@ -468,6 +476,7 @@ PREFERENCES_SHOWBASICEXIF;Show basic Exif info
PREFERENCES_SHOWDATETIME;Show date and time
PREFERENCES_SHOWONLYRAW;Show only RAW files
PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows
PREFERENCES_SINGLETAB;Single tab mode
PREFERENCES_STARTUPIMDIR;Image directory at startup
PREFERENCES_TAB_BROWSER;File Browser
PREFERENCES_TAB_COLORMGR;Color Management
@ -475,6 +484,8 @@ PREFERENCES_TAB_GENERAL;General
PREFERENCES_TAB_IMPROC;Image Processing
PREFERENCES_TAB_OUTPUT;Output Options
PREFERENCES_THUMBSIZE;Thumbnail Size
PREFERENCES_USESYSTEMTHEME; Use System Theme
PREFERENCES_WORKFLOW;Workflow
PROFILEPANEL_FILEDLGFILTERANY;Any files
PROFILEPANEL_FILEDLGFILTERPP;Postprocessing profiles
PROFILEPANEL_LABEL;Postprocessing Profiles
@ -575,12 +586,12 @@ TP_DIRPYRDENOISE_CHROMA;Chrominance
TP_DIRPYRDENOISE_GAMMA;Gamma
TP_DIRPYRDENOISE_LABEL;Directional pyramid noise reduction
TP_DIRPYRDENOISE_LUMA;Luminance
TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
TP_DIRPYREQUALIZER_LUMACOARSEST;Coarsest
TP_DIRPYREQUALIZER_LUMACONTRAST_MINUS;Contrast-
TP_DIRPYREQUALIZER_LUMACONTRAST_PLUS;Contrast+
TP_DIRPYREQUALIZER_LUMAFINEST;Finest
TP_DIRPYREQUALIZER_LUMANEUTRAL;Neutral
TP_DIRPYREQUALIZER_LABEL;Directional pyramid equalizer
TP_DIRPYREQUALIZER_THRESHOLD;Threshold
TP_DISTORTION_AMOUNT;Amount
TP_DISTORTION_LABEL;Distortion
@ -594,15 +605,15 @@ TP_EXPOSURE_AUTOLEVELS;Auto Levels
TP_EXPOSURE_BLACKLEVEL;Black
TP_EXPOSURE_BRIGHTNESS;Brightness
TP_EXPOSURE_CLIP;Clip
TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight compression
TP_EXPOSURE_COMPRSHADOWS;Shadow compression
TP_EXPOSURE_COMPRHIGHLIGHTS;Highlight recovery
TP_EXPOSURE_COMPRSHADOWS;Shadow recovery
TP_EXPOSURE_CONTRAST;Contrast
TP_EXPOSURE_CURVEEDITOR;Tone Curve
TP_EXPOSURE_EXPCOMP;Exp. Comp.
TP_EXPOSURE_LABEL;Exposure
TP_HLREC_CIELAB;CIELab Blending
TP_HLREC_COLOR;Color Propagation
TP_HLREC_LABEL;Highlight Recovery
TP_HLREC_LABEL;Highlight Reconstruction
TP_HLREC_LUMINANCE;Luminance Recovery
TP_HLREC_METHOD;Method:
TP_ICM_FILEDLGFILTERANY;Any files
@ -621,16 +632,14 @@ TP_ICM_SAVEREFERENCE;Save reference image for profiling
TP_ICM_WORKINGPROFILE;Working Profile
TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction
TP_IMPULSEDENOISE_THRESH;Threshold
TP_LABCURVE_BRIGHTNESS;Brightness
TP_LABCURVE_CONTRAST;Contrast
TP_LABCURVE_CURVEEDITOR;Luminance Curve
TP_LABCURVE_LABEL;Lab Curves
TP_LABCURVE_SATURATION;Saturation
TP_LENSGEOM_AUTOCROP;Auto Crop
TP_LENSGEOM_FILL;Auto Fill
TP_LENSGEOM_LABEL;Lens / Geometry
TP_LUMACURVE_BLACKLEVEL;Black
TP_LUMACURVE_BRIGHTNESS;Brightness
TP_LUMACURVE_COMPRHIGHLIGHTS;Highlight compression
TP_LUMACURVE_COMPRSHADOWS;Shadow compression
TP_LUMACURVE_CONTRAST;Contrast
TP_LUMACURVE_CURVEEDITOR;Luminance Curve
TP_LUMACURVE_LABEL;Luminance Curve
TP_LUMADENOISE_EDGETOLERANCE;Edge Tolerance
TP_LUMADENOISE_LABEL;Luminance Noise Reduction
TP_LUMADENOISE_RADIUS;Radius
@ -683,6 +692,10 @@ TP_SHARPENING_USM;Unsharp Mask
TP_VIGNETTING_AMOUNT;Amount
TP_VIGNETTING_LABEL;Vignetting Correction
TP_VIGNETTING_RADIUS;Radius
TP_VIGNETTING_STRENGTH;Strength
TP_VIGNETTING_CENTER_X;Center X
TP_VIGNETTING_CENTER_Y;Center Y
TP_VIGNETTING_CENTER;Center
TP_WBALANCE_AUTO;Auto
TP_WBALANCE_CAMERA;Camera
TP_WBALANCE_CUSTOM;Custom

View File

@ -1,5 +1,6 @@
[General]
TabbedEditor=true
StoreLastProfile=true
StartupDirectory=last
StartupPath=
@ -9,6 +10,7 @@ DualProcSupport=true
MultiUser=true
Language=English (US)
Theme=Gray
UseSystemTheme=false
Version=300
FirstRun=true
@ -39,6 +41,9 @@ RenameUseTemplates=false
ThumbnailZoomRatios=0.2;0.3;0.45;0.6;0.8;1;
OverlayedFileNames=true
# if TRUE, only fast, internal preview images are taken if the image is not edited yet
InternalThumbIfUntouched=true
[Clipping Indication]
HighlightThreshold=253
ShadowThreshold=8
@ -56,6 +61,9 @@ PathFolder=
UsePathTemplate=true
LastSaveAsPath=
# if TRUE, existing output JPGs/PNGs are overwritten, instead of adding ..-1.jpg, -2.jpg etc.
OverwriteOutputFile=false
[Profiles]
Directory=profiles
RawDefault=default
@ -85,6 +93,7 @@ ToolPanelsExpanded=1;1;0;0;0;1;1;0;0;0;0;1;1;0;0;0;0;0;
[Algorithms]
DemosaicMethod=hphd
DemosaicMethodBatch=hphd
ColorCorrection=1
[Crop Settings]

View File

@ -1,5 +1,6 @@
[General]
TabbedEditor=true
StoreLastProfile=true
StartupDirectory=last
StartupPath=
@ -9,6 +10,7 @@ DualProcSupport=true
MultiUser=true
Language=English (US)
Theme=Gray Textured
UseSystemTheme=false
Version=300
FirstRun=true
@ -39,6 +41,9 @@ RenameUseTemplates=false
ThumbnailZoomRatios=0.2;0.3;0.45;0.6;0.8;1;
OverlayedFileNames=true
# if TRUE, only fast, internal preview images are taken if the image is not edited yet
InternalThumbIfUntouched=true
[Clipping Indication]
HighlightThreshold=253
ShadowThreshold=8
@ -56,6 +61,9 @@ PathFolder=
UsePathTemplate=true
LastSaveAsPath=
# if TRUE, existing output JPGs/PNGs are overwritten, instead of adding ..-1.jpg, -2.jpg etc.
OverwriteOutputFile=false
[Profiles]
Directory=profiles
RawDefault=default
@ -85,6 +93,7 @@ ToolPanelsExpanded=1;1;0;0;0;1;1;0;0;0;0;1;1;0;0;0;0;0;
[Algorithms]
DemosaicMethod=hphd
DemosaicMethodBatch=hphd
ColorCorrection=1
[Crop Settings]

View File

@ -1,5 +1,6 @@
[General]
TabbedEditor=true
StoreLastProfile=true
StartupDirectory=last
StartupPath=
@ -9,6 +10,7 @@ DualProcSupport=true
MultiUser=true
Language=English (US)
Theme=Gray
UseSystemTheme=false
Version=300
FirstRun=true
@ -39,6 +41,9 @@ RenameUseTemplates=false
ThumbnailZoomRatios=0.2;0.3;0.45;0.6;0.8;1;
OverlayedFileNames=true
# if TRUE, only fast, internal preview images are taken if the image is not edited yet
InternalThumbIfUntouched=true
[Clipping Indication]
HighlightThreshold=253
ShadowThreshold=8
@ -56,6 +61,9 @@ PathFolder=
UsePathTemplate=true
LastSaveAsPath=
# if TRUE, existing output JPGs/PNGs are overwritten, instead of adding ..-1.jpg, -2.jpg etc.
OverwriteOutputFile=false
[Profiles]
Directory=profiles
RawDefault=default
@ -85,6 +93,7 @@ ToolPanelsExpanded=1;1;0;0;0;1;1;0;0;0;0;1;1;0;0;0;0;0;
[Algorithms]
DemosaicMethod=hphd
DemosaicMethodBatch=hphd
ColorCorrection=1
[Crop Settings]

View File

@ -1,16 +1,16 @@
[Version]
Version=231
Version=466
[Exposure]
Auto=true
Clip=0.02
Clip=0.001
Compensation=0
Brightness=0
Contrast=12
Black=0
HighlightCompr=100
ShadowCompr=100
HighlightCompr=70
ShadowCompr=25
Curve=1;0;0;1;1;
[Channel Mixer]

View File

@ -1,16 +1,16 @@
[Version]
Version=231
Version=466
[Exposure]
Auto=true
Clip=0.01
Clip=0.001
Compensation=0
Brightness=0
Contrast=0
Black=0
HighlightCompr=100
ShadowCompr=100
HighlightCompr=70
ShadowCompr=25
Curve=1;0;0;1;1;
[Channel Mixer]

View File

@ -1,16 +1,16 @@
[Version]
Version=231
Version=466
[Exposure]
Auto=false
Clip=0.01
Clip=0.001
Compensation=0
Brightness=0
Contrast=0
Black=0
HighlightCompr=100
ShadowCompr=100
HighlightCompr=70
ShadowCompr=25
Curve=1;0;0;1;1;
[Channel Mixer]

View File

@ -21,9 +21,8 @@
# Color scheme contributed by Franco Gotusso based on Clearlooks-DarkCoffee by Chibi
# and edited by bvc as Clearlooks-DarkCoffee2. Downloaded from http://art.gnome.org/themes/gtk2/1065
style "clearlooks-default"
{
font_name = "sans 8"
style "clearlooks-default" {
GtkMenuItem::selected_shadow_type = none
GtkWidget::interior_focus = 1
GtkButton::default_border = { 3, 3, 3, 3 }

View File

@ -23,10 +23,8 @@
# which is based on Bluecurve
# Created by Richard Stellingwerff, Emil Jacobs and Daniel Borgmann.
style "clearlooks-default" {
style "clearlooks-default"
{
font_name = "sans 8"
GtkButton ::default_border = { 0, 0, 0, 0 }
GtkComboBox ::default_border = { 0, 0, 0, 0 }
GtkRange ::trough_border = 0

View File

@ -23,10 +23,8 @@
# which is based on Bluecurve
# Created by Richard Stellingwerff, Emil Jacobs and Daniel Borgmann.
style "clearlooks-default" {
style "clearlooks-default"
{
font_name = "sans 8"
GtkButton ::default_border = { 0, 0, 0, 0 }
GtkRange ::trough_border = 0
GtkPaned ::handle_size = 6

View File

@ -17,9 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
style "theme-default" {
font_name = "sans 8"
style "clearlooks-default" {
GtkButton ::default_border = { 0, 0, 0, 0 }
GtkRange ::trough_border = 1
@ -65,31 +63,31 @@ style "theme-default" {
}
}
style "theme-wide" = "theme-default" {
style "clearlooks-wide" = "clearlooks-default" {
xthickness = 3
ythickness = 3
}
style "theme-text" = "theme-default" {
style "clearlooks-text" = "clearlooks-default" {
#base[SELECTED] = "#fc9747" # Outline?
}
style "theme-toolbar" = "theme-default" {
style "clearlooks-toolbar" = "clearlooks-default" {
bg[NORMAL] = "#A1A1A1"
}
style "theme-tasklist" = "theme-default" {
style "clearlooks-tasklist" = "clearlooks-default" {
xthickness = 5
ythickness = 3
}
style "theme-menu" = "theme-default" {
style "clearlooks-menu" = "clearlooks-default" {
xthickness = 2
ythickness = 2
bg[NORMAL] = "#A1A1A1"
}
style "theme-menu-item" = "theme-default" {
style "clearlooks-menu-item" = "clearlooks-default" {
xthickness = 1
ythickness = 1
fg[PRELIGHT] = "#ffffff"
@ -97,60 +95,60 @@ style "theme-menu-item" = "theme-default" {
base[PRELIGHT] = "#A1A1A1"
}
style "theme-menu-itembar" = "theme-default" {
style "clearlooks-menu-itembar" = "clearlooks-default" {
xthickness = 0
ythickness = 0
}
style "theme-tree" = "theme-default" {
style "clearlooks-tree" = "clearlooks-default" {
xthickness = 2
ythickness = 2
GtkTreeView::odd_row_color = "#f7f7ff"
GtkTreeView::even_row_color = "#ffffff"
}
style "theme-frame-title" = "theme-default" {
style "clearlooks-frame-title" = "clearlooks-default" {
fg[NORMAL] = "#2a2a2a"
}
style "theme-panel" = "theme-default" {
style "clearlooks-panel" = "clearlooks-default" {
xthickness = 3
ythickness = 3
}
style "theme-tooltips" = "theme-default" {
style "clearlooks-tooltips" = "clearlooks-default" {
xthickness = 4
ythickness = 4
bg[NORMAL] = { 1.0,1.0,0.75 }
}
style "theme-progressbar" = "theme-default" {
style "clearlooks-progressbar" = "clearlooks-default" {
xthickness = 1
ythickness = 1
fg[PRELIGHT] = "#ffffff"
}
style "theme-combo" = "theme-default" {
style "clearlooks-combo" = "clearlooks-default" {
xthickness = 2
ythickness = 0
}
style "theme-button" = "theme-wide" {
style "clearlooks-button" = "clearlooks-wide" {
xthickness = 1
ythickness = 1
#bg[NORMAL] = "#31353A"
#bg[PRELIGHT] = "#555555"
#bg[NORMAL] = "#31353A"
}
style "theme-check" = "theme-button" {
style "clearlooks-check" = "clearlooks-button" {
}
style "theme-panel" = "theme-default" {
style "clearlooks-panel" = "clearlooks-default" {
xthickness = 3
ythickness = 3
}
style "theme-notebook" = "theme-wide" {
style "clearlooks-notebook" = "clearlooks-wide" {
base[SELECTED] = "#A1A1A1"
bg[ACTIVE] = "#A1A1A1"
base[PRELIGHT] = "#A1A1A1"
@ -161,7 +159,7 @@ style "metacity-frame" {
bg[SELECTED] = "#5c82b5"
}
style "theme-slab" = "theme-default" {
style "clearlooks-slab" = "clearlooks-default" {
bg[SELECTED] = "#84b0da"
bg[NORMAL] = "#fdfbf7"
bg[ACTIVE] = "#e9eef5"
@ -169,11 +167,11 @@ style "theme-slab" = "theme-default" {
fg[INSENSITIVE] = "#5c8dbf"
}
style "theme-slab-group" = "theme-default" {
style "clearlooks-slab-group" = "clearlooks-default" {
#bg[SELECTED] = "#adc09b" # Slab group text
}
style "theme-shell" = "theme-default" {
style "clearlooks-shell" = "clearlooks-default" {
bg[ACTIVE] = "#e9eef5" # Left side bg color
fg[NORMAL] = "#5c8dbf" # Left side text color
fg[INSENSITIVE] = "#bdcce1" # Left side line
@ -189,53 +187,47 @@ style "evolution-hack" = "clearlooks-default" {
fg[SELECTED] = "#ffffff"
}
style "theme-shell-highlight" = "theme-default" {
style "clearlooks-shell-highlight" = "clearlooks-default" {
}
style "extra-view" {
bg[NORMAL] = "#729fcf"
font = "Sans 6"
}
style "rox" = "theme-default" {
style "rox" = "clearlooks-default" {
bg[NORMAL] = "#ffffff"
bg[ACTIVE] = "#ffffff"
fg[NORMAL] = "#000000"
fg[ACTIVE] = "#000000"
}
class "GtkWidget" style "theme-default"
class "GtkButton" style "theme-button"
class "GtkCombo" style "theme-button"
class "GtkRange" style "theme-wide"
class "GtkFrame" style "theme-wide"
class "GtkMenu" style "theme-menu"
class "GtkEntry" style "theme-button"
class "GtkMenuItem" style "theme-menu-item"
class "GtkStatusbar" style "theme-wide"
class "GtkNotebook" style "theme-notebook"
class "GtkProgressBar" style "theme-progressbar"
class "GtkCheckButton" style "theme-check"
class "GtkRadioButton" style "theme-check"
class "GtkWidget" style "clearlooks-default"
class "GtkButton" style "clearlooks-button"
class "GtkCombo" style "clearlooks-button"
class "GtkRange" style "clearlooks-wide"
class "GtkFrame" style "clearlooks-wide"
class "GtkMenu" style "clearlooks-menu"
class "GtkEntry" style "clearlooks-button"
class "GtkMenuItem" style "clearlooks-menu-item"
class "GtkStatusbar" style "clearlooks-wide"
class "GtkNotebook" style "clearlooks-notebook"
class "GtkProgressBar" style "clearlooks-progressbar"
class "GtkCheckButton" style "clearlooks-check"
class "GtkRadioButton" style "clearlooks-check"
widget_class "*MenuItem.*" style "theme-menu-item"
widget_class "*.GtkComboBox.GtkButton" style "theme-combo"
widget_class "*.GtkCombo.GtkButton" style "theme-combo"
widget_class "*.tooltips.*.GtkToggleButton" style "theme-tasklist"
widget "gtk-tooltip" style "theme-tooltips"
widget_class "*.GtkTreeView.GtkButton" style "theme-tree"
widget_class "*.GtkCTree.GtkButton" style "theme-tree"
widget_class "*.GtkList.GtkButton" style "theme-tree"
widget_class "*.GtkCList.GtkButton" style "theme-tree"
widget_class "*.GtkFrame.GtkLabel" style "theme-frame-title"
widget_class "*.GtkNotebook.*.GtkEventBox" style "theme-notebook"
widget_class "*.GtkNotebook.*.GtkViewport" style "theme-notebook"
widget_class "*MenuItem.*" style "clearlooks-menu-item"
widget_class "*.GtkComboBox.GtkButton" style "clearlooks-combo"
widget_class "*.GtkCombo.GtkButton" style "clearlooks-combo"
widget_class "*.tooltips.*.GtkToggleButton" style "clearlooks-tasklist"
widget "gtk-tooltip" style "clearlooks-tooltips"
widget_class "*.GtkTreeView.GtkButton" style "clearlooks-tree"
widget_class "*.GtkCTree.GtkButton" style "clearlooks-tree"
widget_class "*.GtkList.GtkButton" style "clearlooks-tree"
widget_class "*.GtkCList.GtkButton" style "clearlooks-tree"
widget_class "*.GtkFrame.GtkLabel" style "clearlooks-frame-title"
widget_class "*.GtkNotebook.*.GtkEventBox" style "clearlooks-notebook"
widget_class "*.GtkNotebook.*.GtkViewport" style "clearlooks-notebook"
class "MetaFrames" style "metacity-frame"
widget_class "BasePWidget.GtkEventBox.GtkTable.GtkFrame" style "theme-panel"
widget "*.nautilus-extra-view-widget" style:highest "extra-view"
class "SlabWindow" style "theme-slab"
class "ShellWindow" style "theme-shell"
widget_class "ShellWindow.*.GtkEventBox" style "theme-shell-highlight"
widget_class "BasePWidget.GtkEventBox.GtkTable.GtkFrame" style "clearlooks-panel"
class "SlabWindow" style "clearlooks-slab"
class "ShellWindow" style "clearlooks-shell"
widget_class "ShellWindow.*.GtkEventBox" style "clearlooks-shell-highlight"
widget_class "*GtkCTree*" style "evolution-hack"
widget_class "*GtkList*" style "evolution-hack"
widget_class "*GtkCList*" style "evolution-hack"

View File

@ -22,17 +22,8 @@
# Modified by Wyatt Olson.
# Sneaking through the code are we.? ;)
style "clearlooks-default"
{
#This is actually just a non-existant font to force RT to load
# the default system font. On OSX the GTK default will show some
# incorrect ligatures (e.g., fi is interpreted as the double dagger
# symbol), but by reverting to system default it works. You could
# actually use any non-font here and it will work, e.g. "Foo". To
# change it to use an actual font, enter the full name of the font
# here, along with optional style and size, e.g.
# "Monaco Bold 15".
font_name = "sans 10"
style "clearlooks-default" {
GtkRange::trough_border = 0
GtkRange::slider_width = 14

View File

@ -21,9 +21,8 @@
# Created by Richard Stellingwerff, Emil Jacobs and Daniel Borgmann.
style "clearlooks-default"
{
font_name = "sans 8"
style "clearlooks-default" {
GtkButton ::default_border = { 0, 0, 0, 0 }
GtkRange ::trough_border = 0
GtkPaned ::handle_size = 6

453
rtdata/themes/Unity_Gray Normal file
View File

@ -0,0 +1,453 @@
# Set GtkSettings color scheme property.
# This can be overriden (via an xsetting) with eg. the gnome-appearance-properties.
gtk_color_scheme = "fg_color:#0A0A0A\nbg_color:#A1A1A1\nbase_color:#dddddd\ntext_color:#000\nselected_bg_color:#95B0DB\nselected_fg_color:#fff\ntooltip_bg_color:#F5F5B5\ntooltip_fg_color:#000"
style "clearlooks-default"
{
########
# Style Properties
########
GtkButton ::child-displacement-x = 1
GtkButton ::child-displacement-y = 1
GtkButton ::default-border = { 0, 0, 0, 0 }
GtkCheckButton ::indicator-size = 14
GtkPaned ::handle-size = 6
GtkRange ::trough-border = 0
GtkRange ::slider-width = 15
GtkRange ::stepper-size = 15
GtkScale ::slider-length = 23
GtkScale ::trough-side-details = 1
GtkScrollbar ::min-slider-length = 30
GtkMenuBar ::internal-padding = 0
GtkExpander ::expander-size = 14
GtkToolbar ::internal-padding = 1
GtkTreeView ::expander-size = 12
GtkTreeView ::vertical-separator = 0
GtkMenu ::horizontal-padding = 0
GtkMenu ::vertical-padding = 0
# Glow the tasklist by changing the color, instead of overlaying it with a rectangle
WnckTasklist ::fade-overlay-rect = 0
xthickness = 1
ythickness = 1
fg[NORMAL] = @fg_color
fg[PRELIGHT] = @fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @fg_color
fg[INSENSITIVE] = darker (@bg_color)
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = @bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
base[NORMAL] = @base_color
base[PRELIGHT] = shade (0.95, @bg_color)
base[ACTIVE] = shade (0.9, @selected_bg_color)
base[SELECTED] = @selected_bg_color
base[INSENSITIVE] = @bg_color
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[ACTIVE] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[INSENSITIVE] = darker (@bg_color)
engine "clearlooks"
{
colorize_scrollbar = TRUE
reliefstyle = 1
menubarstyle = 2 # 0 = flat, 1 = sunken, 2 = flat gradient
toolbarstyle = 1 # 0 = flat, 1 = enable effects
animation = FALSE
style = GUMMY
radius = 4.0
# Set a hint to disable backward compatibility fallbacks.
hint = "use-hints"
}
}
style "clearlooks-wide"
{
xthickness = 2
ythickness = 2
}
style "clearlooks-wider"
{
xthickness = 3
ythickness = 3
}
style "clearlooks-button"
{
xthickness = 3
ythickness = 3
bg[NORMAL] = shade (1.07, @bg_color)
bg[PRELIGHT] = shade (1.09, @bg_color)
bg[ACTIVE] = shade (0.85, @bg_color)
engine "clearlooks"
{
hint = "scrollbar"
radius = 5.0
}
}
style "clearlooks-notebook-bg"
{
bg[NORMAL] = shade (1.05, @bg_color)
bg[ACTIVE] = shade (0.98, @bg_color)
}
style "clearlooks-notebook" = "clearlooks-notebook-bg"
{
xthickness = 3
ythickness = 3
}
style "clearlooks-tasklist"
{
xthickness = 5
ythickness = 3
}
style "clearlooks-menu"
{
xthickness = 0
ythickness = 0
bg[NORMAL] = shade (1.09, @bg_color)
# Radius of the menu items (inside menus)
engine "clearlooks"
{
radius = 0.0
}
}
style "clearlooks-menu-item"
{
xthickness = 2
ythickness = 3
fg[PRELIGHT] = @selected_fg_color
}
style "clearlooks-separator-menu-item"
{
GtkSeparatorMenuItem::horizontal-padding = 0
# We are setting the desired height by using wide-separators
# There is no other way to get the odd height ...
GtkWidget::wide-separators = 1
GtkWidget::separator-width = 1
GtkWidget::separator-height = 5
xthickness = 1
ythickness = 0
}
style "clearlooks-treeview"
{
engine "clearlooks" {
hint = "treeview"
}
}
# Based on the default style so that the colors from the button
# style are overriden again.
style "clearlooks-treeview-header" = "clearlooks-default"
{
xthickness = 2
ythickness = 1
bg[NORMAL] = shade (1.07, @bg_color)
engine "clearlooks" {
hint = "treeview-header"
}
}
style "clearlooks-frame-title"
{
fg[NORMAL] = lighter (@fg_color)
}
style "clearlooks-tooltips"
{
xthickness = 4
ythickness = 4
bg[NORMAL] = @tooltip_bg_color
fg[NORMAL] = @tooltip_fg_color
}
style "clearlooks-progressbar"
{
xthickness = 1
ythickness = 1
fg[PRELIGHT] = @selected_fg_color
engine "clearlooks"
{
# Explicitly set the radius, for progress
# bars inside menuitems
radius = 3.0
hint = "progressbar"
}
}
style "clearlooks-statusbar"
{
engine "clearlooks"
{
hint = "statusbar"
}
}
style "clearlooks-comboboxentry"
{
# NOTE:
# If you set the appears-as-list option on comboboxes in the theme
# you should set this hint on the combobox instead.
engine "clearlooks"
{
hint = "comboboxentry"
}
}
style "clearlooks-spinbutton"
{
engine "clearlooks"
{
hint = "spinbutton"
}
}
style "clearlooks-scale-bg"
{
bg[NORMAL] = shade (1.07, @bg_color)
bg[PRELIGHT] = shade (1.09, @bg_color)
}
style "clearlooks-scale" = "clearlooks-scale-bg"
{
engine "clearlooks"
{
hint = "scale"
}
}
style "clearlooks-hscale" = "clearlooks-scale-bg"
{
engine "clearlooks"
{
hint = "hscale"
}
}
style "clearlooks-vscale" = "clearlooks-scale-bg"
{
engine "clearlooks"
{
hint = "vscale"
}
}
style "clearlooks-scrollbar"
{
bg[NORMAL] = shade (1.07, @bg_color)
engine "clearlooks"
{
hint = "scrollbar"
}
}
style "clearlooks-hscrollbar"
{
engine "clearlooks"
{
hint = "hscrollbar"
}
}
style "clearlooks-vscrollbar"
{
engine "clearlooks"
{
hint = "vscrollbar"
}
}
style "clearlooks-toolbar"
{
bg[NORMAL] = shade (1.07, @bg_color)
engine "clearlooks" {
contrast = 1.16
}
}
style "clearlooks-menubar"
{
engine "clearlooks"
{
contrast = 1.1
hint = "menubar"
}
}
style "clearlooks-nautilus-location"
{
bg[NORMAL] = mix(0.60, shade (1.05,@bg_color), @selected_bg_color)
}
#########################################
# Matches
#########################################
# Clearlooks default style is applied to every widget
class "GtkWidget" style "clearlooks-default"
# Increase the x/ythickness in some widgets
class "GtkToolbar" style "clearlooks-toolbar"
class "GtkRange" style "clearlooks-wide"
class "GtkFrame" style "clearlooks-wide"
class "GtkSeparator" style "clearlooks-wide"
class "GtkEntry" style "clearlooks-wider"
class "GtkSpinButton" style "clearlooks-spinbutton"
class "GtkScale" style "clearlooks-scale"
class "GtkVScale" style "clearlooks-vscale"
class "GtkHScale" style "clearlooks-hscale"
class "GtkScrollbar" style "clearlooks-scrollbar"
class "GtkVScrollbar" style "clearlooks-vscrollbar"
class "GtkHScrollbar" style "clearlooks-hscrollbar"
# General matching following, the order is choosen so that the right styles override each other
# eg. progressbar needs to be more important then the menu match.
# This is not perfect, it could be done better
# (That is modify *every* widget in the notebook, and change those back that
# we really don't want changed)
widget_class "*<GtkNotebook>*<GtkEventBox>" style "clearlooks-notebook-bg"
widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "clearlooks-notebook-bg"
widget_class "*<GtkNotebook>*<GtkLayout>" style "clearlooks-notebook-bg"
widget_class "*<GtkButton>" style "clearlooks-button"
widget_class "*<GtkNotebook>" style "clearlooks-notebook"
widget_class "*<GtkStatusbar>*" style "clearlooks-statusbar"
widget_class "*<GtkComboBoxEntry>*" style "clearlooks-comboboxentry"
widget_class "*<GtkCombo>*" style "clearlooks-comboboxentry"
widget_class "*<GtkMenuBar>*" style "clearlooks-menubar"
widget_class "*<GtkMenu>*" style "clearlooks-menu"
widget_class "*<GtkMenuItem>*" style "clearlooks-menu-item"
widget_class "*<GtkSeparatorMenuItem>*" style "clearlooks-separator-menu-item"
widget_class "*.<GtkFrame>.<GtkLabel>" style "clearlooks-frame-title"
widget_class "*.<GtkTreeView>*" style "clearlooks-treeview"
widget_class "*<GtkProgressBar>" style "clearlooks-progressbar"
# Treeview header
widget_class "*.<GtkTreeView>.<GtkButton>" style "clearlooks-treeview-header"
widget_class "*.<GtkCTree>.<GtkButton>" style "clearlooks-treeview-header"
widget_class "*.<GtkList>.<GtkButton>" style "clearlooks-treeview-header"
widget_class "*.<GtkCList>.<GtkButton>" style "clearlooks-treeview-header"
# Workarounds for Evolution
widget_class "*.ETable.ECanvas" style "clearlooks-treeview-header"
widget_class "*.ETree.ECanvas" style "clearlooks-treeview-header"
# The window of the tooltip is called "gtk-tooltip"
################################
# FIXME:
# This will not work if one embeds eg. a button into the tooltip.
# As far as I can tell right now we will need to rework the theme
# quite a bit to get this working correctly.
# (It will involve setting different priorities, etc.)
################################
widget "gtk-tooltip*" style "clearlooks-tooltips"
###################################################
# Special cases and work arounds
###################################################
# Special case the nautilus-extra-view-widget
# ToDo: A more generic approach for all applications that have a widget like this.
widget "*.nautilus-extra-view-widget" style : highest "clearlooks-nautilus-location"
# Work around for http://bugzilla.gnome.org/show_bug.cgi?id=382646
# Note that the work around assumes that the combobox is _not_ in
# appears-as-list mode.
# Similar hack also in the menuitem style.
# This style does not affect GtkComboBoxEntry, it does have an effect
# on comboboxes in appears-as-list mode though.
style "clearlooks-text-is-fg-color-workaround"
{
text[NORMAL] = @fg_color
text[PRELIGHT] = @fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @fg_color
text[INSENSITIVE] = darker (@bg_color)
}
widget_class "*.<GtkComboBox>.<GtkCellView>" style "clearlooks-text-is-fg-color-workaround"
style "clearlooks-menuitem-text-is-fg-color-workaround"
{
text[NORMAL] = @fg_color
text[PRELIGHT] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @fg_color
text[INSENSITIVE] = darker (@bg_color)
}
widget "*.gtk-combobox-popup-menu.*" style "clearlooks-menuitem-text-is-fg-color-workaround"
# Work around the usage of GtkLabel inside GtkListItems to display text.
# This breaks because the label is shown on a background that is based on the
# base color set.
style "clearlooks-fg-is-text-color-workaround"
{
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[ACTIVE] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = darker (@bg_color)
}
widget_class "*<GtkListItem>*" style "clearlooks-fg-is-text-color-workaround"
# The same problem also exists for GtkCList and GtkCTree
# Only match GtkCList and not the parent widgets, because that would also change the headers.
widget_class "*<GtkCList>" style "clearlooks-fg-is-text-color-workaround"
# Work around the evolution "New" button bug by making the toolbar flat.
# http://bugzilla.gnome.org/show_bug.cgi?id=446953
# Maybe remove this workaround in unstable releases.
style "clearlooks-evo-new-button-workaround"
{
GtkMenuBar ::shadow-type = GTK_SHADOW_NONE
GtkToolbar ::shadow-type = GTK_SHADOW_NONE
bg[NORMAL] = @bg_color
engine "clearlooks"
{
toolbarstyle = 0
}
}
widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "clearlooks-evo-new-button-workaround"

View File

@ -382,8 +382,8 @@ void RawImageSource::CA_correct_RT() {
// along line segments, find the point along each segment that minimizes the color variance
// averaged over the tile; evaluate for up/down and left/right away from R/B grid point
for (rr=8; rr < rr1-8; rr++)
for (cc=8+(FC(rr,2)&1), indx=rr*TS+cc, c = FC(rr,cc); cc < cc1-8; cc+=2, indx+=2) {
for (rr=rrmin+8; rr < rrmax-8; rr++)
for (cc=ccmin+8+(FC(rr,2)&1), indx=rr*TS+cc, c = FC(rr,cc); cc < ccmax-8; cc+=2, indx+=2) {
if (rgb[indx][c]>0.8*clip_pt || Gtmp[indx]>0.8*clip_pt) continue;
@ -422,7 +422,9 @@ void RawImageSource::CA_correct_RT() {
for (c=0; c<3; c+=2){
for (j=0; j<2; j++) {// vert/hor
//printf("hblock %d vblock %d j %d c %d areawt %d \n",hblock,vblock,j,c,areawt[j][c]);
if (areawt[j][c]>500) {
//printf("hblock %d vblock %d j %d c %d areawt %d ",hblock,vblock,j,c,areawt[j][c]);
if (areawt[j][c]>0) {
CAshift[j][c]=coeff[j][1][c]/coeff[j][2][c];
blockwt[vblock*hblsz+hblock]= areawt[j][c];//*coeff[j][2][c]/(eps+coeff[j][0][c]) ;
} else {
@ -430,6 +432,8 @@ void RawImageSource::CA_correct_RT() {
blockwt[vblock*hblsz+hblock]=0;
}
//printf("%f \n",CAshift[j][c]);
//CAshift[j][c]=coeff[j][1][c]/coeff[j][2][c];
//blockwt[vblock*hblsz+hblock] = (float)(rr1-8)*(cc1-8)/4 * coeff[j][2][c]/(eps+coeff[j][0][c]) ;
@ -482,7 +486,7 @@ void RawImageSource::CA_correct_RT() {
}
}
//if (verbose) fprintf (stderr,_("tile variances %f %f %f %f \n"),blockvar[0][0],blockvar[1][0],blockvar[0][2],blockvar[1][2] );
//printf ("tile variances %f %f %f %f \n",blockvar[0][0],blockvar[1][0],blockvar[0][2],blockvar[1][2] );
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -2,7 +2,7 @@
include_directories (${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../rtexif
${EXTRA_INCDIR} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS}
${GLIBMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/../rtgui ${GTKMM_INCLUDE_DIRS})
${CMAKE_CURRENT_SOURCE_DIR}/../rtgui ${GTKMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS})
link_directories (${CMAKE_CURRENT_SOURCE_DIR}/../rtexif ${EXTRA_LIBDIR} ${GTHREAD_LIBRARY_DIRS}
${GOBJECT_LIBRARY_DIRS} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS}
${IPTCDATA_LIBRARY_DIRS} ${LCMS_LIBRARY_DIRS})
@ -13,6 +13,7 @@ set (RTENGINESOURCEFILES colortemp.cc curves.cc dcraw.cc iccstore.cc dfmanager.c
stdimagesource.cc myfile.cc iccjpeg.c hlmultipliers.cc improccoordinator.cc
processingjob.cc rtthumbnail.cc utils.cc labimage.cc slicer.cc
iplab2rgb.cc ipsharpen.cc iptransform.cc ipresize.cc
jpeg_memsrc.c
wavelet_dec.cc ipequalizer.cc dirpyrLab_denoise.cc dirpyrLab_equalizer.cc dirpyr_equalizer.cc)
add_library (rtengine ${RTENGINESOURCEFILES})

View File

@ -334,9 +334,11 @@ template<class T, class A> void bilateral25 (T** src, T** dst, T** buffer, int W
// main bilateral filter
template<class T, class A> void bilateral (T** src, T** dst, T** buffer, int W, int H, double sigma, double sens, bool multiThread) {
if (sigma<0.45)
#pragma omp parallel for if (multiThread)
//parallel if (multiThread)
if (sigma<0.45)
#ifdef _OPENMP
#pragma omp for
#endif
for (int i=0; i<H; i++) {
memcpy (buffer[i], src[i], W*sizeof(T));
memcpy (dst[i], buffer[i], W*sizeof(T));

View File

@ -64,7 +64,9 @@ void RawImageSource::CLASS cfa_linedn(float noise)
int ex, ey;
int verbose=1;
float eps=1e-10; //tolerance to avoid dividing by zero
const float clip_pt = 0.8*ri->defgain;
float eps=1e-5; //tolerance to avoid dividing by zero
float gauss[5] = {0.20416368871516755, 0.18017382291138087, 0.1238315368057753, 0.0662822452863612, 0.02763055063889883};
float rolloff[8] = {0, 0.135335, 0.249352, 0.411112, 0.606531, 0.800737, 0.945959, 1}; //gaussian with sigma=3
@ -189,7 +191,8 @@ void RawImageSource::CLASS cfa_linedn(float noise)
for (rr=16; rr < numrows-16; rr++) {
row = rr + top;
for (col=16+left, indx=rr*TS+16; indx < rr*TS+numcols-16; indx++, col++) {
rawData[row][col] = CLIP((int)(cfadn[indx]+ 0.5));
if (rawData[row][col]<clip_pt && cfadn[indx]<clip_pt)
rawData[row][col] = CLIP((int)(cfadn[indx]+ 0.5));
}
}
if(plistener) plistener->setProgress(fabs((float)top/height));

View File

@ -51,7 +51,8 @@ Curve::Curve (const std::vector<double>& p, int poly_pn) : x(NULL), y(NULL), ypp
if (kind==Spline)
spline_cubic_set ();
else if (kind==NURBS && N > 2)
NURBS_set ();
NURBS_set ();
else kind=Linear;
}
else if (kind==Parametric) {
if (p.size()!=8 && p.size()!=9)
@ -110,7 +111,7 @@ void Curve::NURBS_set () {
std::vector<double> sc_x(nbSubCurvesPoints); // X sub-curve points ( XP0,XP1,XP2, XP2,XP3,XP4, ...)
std::vector<double> sc_y(nbSubCurvesPoints); // Y sub-curve points ( YP0,YP1,YP2, YP2,YP3,YP4, ...)
std::vector<double> sc_length(N-2); // Length of the subcurves
std::vector<double> sc_length(N+2); // Length of the subcurves
double total_length=0.;
// Create the list of Bezier sub-curves
@ -120,6 +121,8 @@ void Curve::NURBS_set () {
int k = 0;
for (int i = 0; i < N-1;) {
double length;
double dx;
double dy;
// first point (on the curve)
if (!i) {
@ -146,7 +149,9 @@ void Curve::NURBS_set () {
sc_x[j] = (x[i-1] + x[i]) / 2.;
sc_y[j] = (y[i-1] + y[i]) / 2.;
}
length += sqrt(pow(sc_x[j] - sc_x[j-1],2) + pow(sc_y[j] - sc_y[j-1],2));
dx = sc_x[j] - sc_x[j-1];
dy = sc_y[j] - sc_y[j-1];
length += sqrt(dx*dx + dy*dy);
j++;
// Storing the length of all sub-curves and the total length (to have a better distribution
@ -155,24 +160,24 @@ void Curve::NURBS_set () {
total_length += length;
}
unsigned int total_points = 0;
for (unsigned int i=0; i < sc_x.size(); i+=3) {
total_points += (int)(((double)ppn+N-2) * sc_length[i/3] / total_length) + (i==0 ? 1 : 0) - 1;
}
poly_x.resize(total_points);
poly_y.resize(total_points);
poly_x.clear();
poly_y.clear();
unsigned int sc_xsize=j-1;
j = 0;
// create the polyline with the number of points adapted to the X range of the sub-curve
for (unsigned int i=0; i < sc_x.size(); i+=3) {
for (unsigned int i=0; i < sc_xsize /*sc_x.size()*/; i+=3) {
// TODO: Speeding-up the interface by caching the polyline, instead of rebuilding it at each action on sliders !!!
int nbr_points = (int)(((double)ppn+N-2) * sc_length[i/3] / total_length);
int nbr_points = (int)(((double)(ppn+N-2) * sc_length[i/3] )/ total_length);
if (nbr_points<0){
for(int it=0;it < sc_x.size(); it+=3) printf("sc_length[%d/3]=%f \n",it,sc_length[it/3]);
printf("NURBS: error detected!\n i=%d nbr_points=%d ppn=%d N=%d sc_length[i/3]=%f total_length=%f",i,nbr_points,ppn,N,sc_length[i/3],total_length);
exit(0);
}
// increment along the curve, not along the X axis
double increment = 1.0 / (double)(nbr_points-1);
if (!i) {
poly_x[j ] = sc_x[i];
poly_y[j++] = sc_y[i];
poly_x.push_back( sc_x[i]);
poly_y.push_back(sc_y[i]);
}
for (k=1; k<(nbr_points-1); k++) {
double t = k*increment;
@ -182,12 +187,12 @@ void Curve::NURBS_set () {
double tr2t = tr*2*t;
// adding a point to the polyline
poly_x[j ] = tr2*sc_x[i] + tr2t*sc_x[i+1] + t2*sc_x[i+2];
poly_y[j++] = tr2*sc_y[i] + tr2t*sc_y[i+1] + t2*sc_y[i+2];
poly_x.push_back( tr2*sc_x[i] + tr2t*sc_x[i+1] + t2*sc_x[i+2]);
poly_y.push_back( tr2*sc_y[i] + tr2t*sc_y[i+1] + t2*sc_y[i+2]);
}
// adding the last point of the sub-curve
poly_x[j ] = sc_x[i+2];
poly_y[j++] = sc_y[i+2];
poly_x.push_back( sc_x[i+2]);
poly_y.push_back(sc_y[i+2]);
}
}
@ -417,8 +422,11 @@ if (igamma) {
delete [] dcurve;
}*/
/*
void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, double shcompr, double br, double contr, double defmul, double gamma_, bool igamma, const std::vector<double>& curvePoints, unsigned int* histogram, int* outCurve, unsigned int* outBeforeCCurveHistogram, int skip) {
printf ("ecomp= %f black= %f hlcompr= %f shcompr= %f br= %f contr= %f defmul= %f gamma= %f, skip= %d \n",ecomp,black,hlcompr,shcompr,br,contr,defmul,gamma_,skip);
double def_mul = pow (2.0, defmul);
// compute parameters of the gamma curve
@ -428,7 +436,7 @@ void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, dou
double add = 0.099;
// theoretical maximum of the curve
double D = /* gamma_>0 ? gamma (def_mul, gamma_, start, slope, mul, add) : */ def_mul;
double D = def_mul;
// a: slope of the curve, black: starting point at the x axis
double a = pow (2.0, ecomp);
@ -450,9 +458,6 @@ void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, dou
// clear array that stores histogram valid before applying the custom curve
if (outBeforeCCurveHistogram)
memset (outBeforeCCurveHistogram, 0, 256*sizeof(int));
//float atmp=a;
//a = 1;
for (int i=0; i<=0xffff; i+= i<0xffff-skip ? skip : 1 ) {
@ -461,13 +466,7 @@ void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, dou
// apply default multiplier (that is >1 if highlight recovery is on)
val *= def_mul;
//exposure compensation
//val *= atmp;
//black *= atmp;
//D *= atmp;
// apply base curve, thus, exposure compensation and black point with shadow and highlight protection
val = basecurve (val, a, black, D, hlcompr/100.0, shcompr/100.0);
@ -539,7 +538,391 @@ void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, dou
outCurve[i] = (int) (65535.0 * dcurve[i]);
delete [] dcurve;
}
*/
/*
void CurveFactory::complexsgnCurve (double satclip, double satcompr, double saturation, double colormult, const std::vector<double>& curvePoints, int* outCurve, int skip) {
//colormult = chroma_scale for Lab manipulations
bool needsaturation = (saturation<-0.0001 || saturation>0.0001);
// curve without contrast
double* dcurve = new double[65536];
// create a curve if needed
Curve* tcurve = NULL;
if (curvePoints.size()>0 && curvePoints[0]!=0)
tcurve = new Curve (curvePoints, CURVES_MIN_POLY_POINTS/skip);
for (int i=0; i<=0xffff; i+= i<0xffff-skip ? skip : 1 ) {
// change to [0,1] range
double val = (double)i / 65535.0;
// apply default multiplier (that is >1 if highlight recovery is on)
val *= colormult;
// apply base curve, thus, exposure compensation and black point with shadow and highlight protection
//val = basecurve (val, 1.0, 0, colormult, satcompr/100.0, satcompr/100.0);
// apply custom/parametric/NURBS curve, if any
if (tcurve) {
val = tcurve->getVal (val);
}
// store result in a temporary array
dcurve[i] = CLIPD(val);
}
delete tcurve;
// if skip>1, let apply linear interpolation in the skipped points of the curve
int prev = 0;
for (int i=1; i<=0xffff-skip; i++) {
if (i%skip==0) {
prev+=skip;
continue;
}
dcurve[i] = ( dcurve[prev] * (skip - i%skip) + dcurve[prev+skip] * (i%skip) ) / skip;
}
if (needsaturation) {
float avg = 0.5;
// compute contrast parameter
double saturation_b = saturation / 20;
if (saturation_b>=0 && saturation_b < 0.00001)
saturation_b = 0.00001;
else if (saturation_b<0 && saturation_b > -0.00001)
saturation_b = -0.00001;
// apply contrast enhancement
for (int i=0; i<=0xffff; i++) {
double val = centercontrast (dcurve[i], saturation_b, avg);
outCurve[i] = (int) (65535.0 * CLIPD(val));
}
}
else
for (int i=0; i<=0xffff; i++)
outCurve[i] = (int) (65535.0 * dcurve[i]);
delete [] dcurve;
}
*/
void CurveFactory::complexsgnCurve (double satclip, double satcompr, double saturation, double colormult, const std::vector<double>& curvePoints, int* outCurve, int skip) {
//colormult = chroma_scale for Lab manipulations
// check if contrast curve is needed
bool needsaturation = (saturation<-0.0001 || saturation>0.0001);
// curve without contrast
double* dcurve = new double[65536];
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
std::vector<double> satcurvePoints;
satcurvePoints.push_back((double)((CurveType)NURBS));
if (saturation>0) {
satcurvePoints.push_back(0); //black point. Value in [0 ; 1] range
satcurvePoints.push_back(0); //black point. Value in [0 ; 1] range
satcurvePoints.push_back(0.25+saturation/500.0); //toe point
satcurvePoints.push_back(0.25-saturation/500.0); //value at toe point
satcurvePoints.push_back(0.75-saturation/500.0); //shoulder point
satcurvePoints.push_back(0.75+saturation/500.0); //value at shoulder point
satcurvePoints.push_back(1); // white point
satcurvePoints.push_back(1); // value at white point
} else {
satcurvePoints.push_back(0);
satcurvePoints.push_back(-0.5*(saturation/100.0));
satcurvePoints.push_back(1);
satcurvePoints.push_back(1+saturation/200.0);
}
Curve* satcurve = NULL;
satcurve = new Curve (satcurvePoints, CURVES_MIN_POLY_POINTS/skip); // Actually, CURVES_MIN_POLY_POINTS = 1000,
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// create a curve if needed
Curve* tcurve = NULL;
if (curvePoints.size()>0 && curvePoints[0]!=0)
tcurve = new Curve (curvePoints, CURVES_MIN_POLY_POINTS/skip);
for (int i=0; i<=0xffff; i+= i<0xffff-skip ? skip : 1 ) {
// change to [0,1] range
double val = (double)i / 65535.0;
// apply default multiplier (that is >1 if highlight recovery is on)
val *= colormult;
// apply saturation curve
if (needsaturation)
val = satcurve->getVal (val);
// apply custom/parametric/NURBS curve, if any
if (tcurve) {
val = tcurve->getVal (val);
}
// store result in a temporary array
dcurve[i] = CLIPD(val);
}
delete tcurve;
// if skip>1, let apply linear interpolation in the skipped points of the curve
int prev = 0;
for (int i=1; i<=0xffff-skip; i++) {
if (i%skip==0) {
prev+=skip;
continue;
}
dcurve[i] = ( dcurve[prev] * (skip - i%skip) + dcurve[prev+skip] * (i%skip) ) / skip;
}
for (int i=0; i<=0xffff; i++)
outCurve[i] = (int) (65535.0 * dcurve[i]);
delete [] dcurve;
delete satcurve;
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
void CurveFactory::complexCurve (double ecomp, double black, double hlcompr, double shcompr, double br, double contr, double defmul, double gamma_, bool igamma, const std::vector<double>& curvePoints, unsigned int* histogram, int* outCurve1, int* outCurve2, unsigned int* outBeforeCCurveHistogram, int skip) {
double def_mul = pow (2.0, defmul);
//printf ("def_mul= %f ecomp= %f black= %f hlcompr= %f shcompr= %f br= %f contr= %f defmul= %f gamma= %f, skip= %d \n",def_mul,ecomp,black,hlcompr,shcompr,br,contr,defmul,gamma_,skip);
// compute parameters of the gamma curve
double start = exp(gamma_*log( -0.099 / ((1.0/gamma_-1.0)*1.099 )));
double slope = 1.099 * pow (start, 1.0/gamma_-1) - 0.099/start;
double mul = 1.099;
double add = 0.099;
// a: slope of the curve, black: starting point at the x axis
double a = pow (2.0, ecomp);
// curve without contrast
double* dcurve = new double[65536];
// check if contrast curve is needed
bool needcontrast = contr>0.00001 || contr<-0.00001;
// check if inverse gamma is needed at the end
bool needigamma = !needcontrast && igamma && gamma_>0;
// create a curve if needed
Curve* tcurve = NULL;
if (curvePoints.size()>0 && curvePoints[0]!=0)
tcurve = new Curve (curvePoints, CURVES_MIN_POLY_POINTS/skip);
// clear array that stores histogram valid before applying the custom curve
if (outBeforeCCurveHistogram)
memset (outBeforeCCurveHistogram, 0, 256*sizeof(int));
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// tone curve base. a: slope (from exp.comp.), b: black, def_mul: max. x value (can be>1), hr,sr: highlight,shadow recovery
std::vector<double> basecurvePoints;
basecurvePoints.push_back((double)((CurveType)NURBS));
//float toex = MIN(1,black/(a*def_mul));
//float toey = MAX(0,toex*a*def_mul*(shcompr/25.0-1));
float toex = black;
float toey = MAX(0,toex*(shcompr/25.0-1));
float shoulderx = MAX(black,1/(a*def_mul));//point in x at which line of slope a starting at (0,0) reaches y=1
float shouldery=1;
float toneslope=(shouldery-toey)/(shoulderx-toex);
if (shoulderx<1) {//a>1; positive EC
//move shoulder down if there is highlight rolloff
shouldery = shouldery-(0.3)*(hlcompr/100.0);
shoulderx = shoulderx - (1-shouldery)/toneslope;
} else {//a<1; negative EC
//if (shoulderx>1) {
shoulderx = 1;
shouldery = a*def_mul;
}
/*float shoulderx = toex+(1-toey)/a;//point in x at which line of slope a starting at toe point reaches y=1
float shouldery;
if (shoulderx<1) {
shouldery = MAX(2*toey, 1-(1-shoulderx)*(hlcompr/200.0));
shoulderx = shoulderx - (1-shouldery)/a;
} else {
shoulderx = 1;
shouldery = toey + (1-toex)*a;
}*/
basecurvePoints.push_back(MAX(0,0.99*toex*(1-shcompr/25.0))); //black point. Value in [0 ; 1] range
basecurvePoints.push_back(0); //black point. Value in [0 ; 1] range
basecurvePoints.push_back(toex); //toe point
basecurvePoints.push_back(toey); //value at toe point
if (toex<1) {
//add a point along the line between the toe point and shoulder point
basecurvePoints.push_back(0.4*toex+0.6*shoulderx); //mid point
basecurvePoints.push_back(0.4*toey+0.6*shouldery); //value at mid point
basecurvePoints.push_back(shoulderx); //shoulder point
basecurvePoints.push_back(shouldery); //value at shoulder point
if (shoulderx<1) {
basecurvePoints.push_back(1-0.95*(1-shoulderx)*(1-hlcompr/105.0)); // lead into point
basecurvePoints.push_back(1); // value near white point
basecurvePoints.push_back(1); // white point
basecurvePoints.push_back(1); // value at white point
}
}
Curve* basecurve = NULL;
basecurve = new Curve (basecurvePoints, CURVES_MIN_POLY_POINTS/skip); // Actually, CURVES_MIN_POLY_POINTS = 1000,
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
std::vector<double> brightcurvePoints;
brightcurvePoints.push_back((double)((CurveType)NURBS));
brightcurvePoints.push_back(0); //black point. Value in [0 ; 1] range
brightcurvePoints.push_back(0); //black point. Value in [0 ; 1] range
if(br>0) {
brightcurvePoints.push_back(0.1); //toe point
brightcurvePoints.push_back(0.1+br/150.0); //value at toe point
brightcurvePoints.push_back(0.7); //shoulder point
brightcurvePoints.push_back(MIN(1.0,0.7+br/300.0)); //value at shoulder point
} else {
brightcurvePoints.push_back(0.1-br/150.0); //toe point
brightcurvePoints.push_back(0.1); //value at toe point
brightcurvePoints.push_back(MIN(1.0,0.7-br/300.0)); //shoulder point
brightcurvePoints.push_back(0.7); //value at shoulder point
}
brightcurvePoints.push_back(1); // white point
brightcurvePoints.push_back(1); // value at white point
Curve* brightcurve = NULL;
brightcurve = new Curve (brightcurvePoints, CURVES_MIN_POLY_POINTS/skip); // Actually, CURVES_MIN_POLY_POINTS = 1000,
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for (int i=0; i<=0xffff; i+= i<0xffff-skip ? skip : 1 ) {
// change to [0,1] range
double val = (double)i / 65535.0;
// apply default multiplier (that is >1 if highlight recovery is on)
// val *= def_mul;
// apply base curve, thus, exposure compensation and black point with shadow and highlight protection
//val = basecurve (val, a, black, def_mul, hlcompr/100.0, shcompr/100.0);
val = basecurve->getVal (val);
outCurve1[i] = (int) (65535.0 * CLIPD(val));
// change to [0,1] range
val = (double)i / 65535.0;
// gamma correction
if (gamma_>0)
val = gamma (val, gamma_, start, slope, mul, add);
// apply brightness curve
//val = brightness (val, br/100.0);
val = brightcurve->getVal (val);
// apply custom/parametric/NURBS curve, if any
if (tcurve) {
if (outBeforeCCurveHistogram) {
double hval = val;
//if (needigamma)
// hval = igamma2 (hval);
int hi = (int)(255.0*CLIPD(hval));
outBeforeCCurveHistogram[hi]+=histogram[i] ;
}
val = tcurve->getVal (val);
}
// if inverse gamma is needed, do it (standard sRGB inverse gamma is applied)
if (needigamma)
val = igamma2 (val);
// store result in a temporary array
dcurve[i] = CLIPD(val);
}
delete tcurve;
delete basecurve; // ...when you don't need it anymore
delete brightcurve;
// if skip>1, let apply linear interpolation in the skipped points of the curve
int prev = 0;
for (int i=1; i<=0xffff-skip; i++) {
if (i%skip==0) {
prev+=skip;
continue;
}
outCurve1[i] = ( outCurve1[prev] * (skip - i%skip) + outCurve1[prev+skip] * (i%skip) ) / skip;
dcurve[i] = ( dcurve[prev] * (skip - i%skip) + dcurve[prev+skip] * (i%skip) ) / skip;
}
if (needcontrast) {
// compute mean luminance of the image with the curve applied
int sum = 0;
double avg = 0;
//double sqavg = 0;
for (int i=0; i<=0xffff; i++) {
avg += dcurve[i] * histogram[i];
//sqavg += dcurve[i]*dcurve[i] * histogram[i];
sum += histogram[i];
}
avg /= sum;
//sqavg /= sum;
//double stddev = sqrt(sqavg-avg*avg);
float contrslope = (50)/(50-0.25*contr);
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
std::vector<double> contrastcurvePoints;
contrastcurvePoints.push_back((double)((CurveType)NURBS));
contrastcurvePoints.push_back(0); //black point. Value in [0 ; 1] range
contrastcurvePoints.push_back(0); //black point. Value in [0 ; 1] range
contrastcurvePoints.push_back(avg*(1-1/contrslope)); //toe point
contrastcurvePoints.push_back(0); //value at toe point
contrastcurvePoints.push_back(avg); //mid point
contrastcurvePoints.push_back(avg); //value at mid point
contrastcurvePoints.push_back(avg+(1-avg)/contrslope); // shoulder point
contrastcurvePoints.push_back(1); // value at shoulder point
contrastcurvePoints.push_back(1); // white point
contrastcurvePoints.push_back(1); // value at white point
Curve* contrastcurve = NULL;
contrastcurve = new Curve (contrastcurvePoints, CURVES_MIN_POLY_POINTS/skip); // Actually, CURVES_MIN_POLY_POINTS = 1000,
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// apply contrast enhancement
for (int i=0; i<=0xffff; i++) {
//double val = centercontrast (dcurve[i], contr_b, avg);
double val = contrastcurve->getVal (dcurve[i]);
if (igamma && gamma_>0)
val = igamma2 (val);
outCurve2[i] = (int) (65535.0 * CLIPD(val));
}
}
else
for (int i=0; i<=0xffff; i++)
outCurve2[i] = (int) (65535.0 * dcurve[i]);
delete [] dcurve;
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
int CurveFactory::gammatab [65536];
int CurveFactory::igammatab_srgb [65536];

View File

@ -101,6 +101,7 @@ class CurveFactory {
else
return 1.0 - brightnessbase (1.0-x, -amount);
}
public:
@ -127,7 +128,8 @@ class CurveFactory {
public:
// static void updateCurve3 (int* curve, int* ohistogram, const std::vector<double>& cpoints, double defmul, double ecomp, int black, double hlcompr, double shcompr, double br, double contr, double gamma_, bool igamma, int skip=1);
static void complexCurve (double ecomp, double black, double hlcompr, double shcompr, double br, double contr, double defmul, double gamma_, bool igamma, const std::vector<double>& curvePoints, unsigned int* histogram, int* outCurve, unsigned int* outBeforeCCurveHistogram, int skip=1);
static void complexCurve (double ecomp, double black, double hlcompr, double shcompr, double br, double contr, double defmul, double gamma_, bool igamma, const std::vector<double>& curvePoints, unsigned int* histogram, int* outCurve1, int* outCurve2, unsigned int* outBeforeCCurveHistogram, int skip=1);
static void complexsgnCurve (double satclip, double satcompr, double saturation, double colormult, const std::vector<double>& curvePoints, int* outCurve, int skip=1);
};
@ -160,6 +162,6 @@ class Curve {
double getVal (double x);
void getVal (const std::vector<double>& t, std::vector<double>& res);
};
};
}
#endif

View File

@ -1,6 +1,5 @@
/*RT*/#include <glib.h>
/*RT*/#include <glib/gstdio.h>
/*RT*/int ciff_base, ciff_len, exif_base, pre_filters;
/*RT*/#undef MAX
/*RT*/#undef MIN
/*RT*/#define NO_LCMS
@ -111,60 +110,70 @@ typedef unsigned long long UINT64;
typedef unsigned char uchar;
typedef unsigned short ushort;
// RT specify thread local storage
#ifdef __GNUC__
#define THREAD_LOCAL static __thread
#define THREAD_LOCK
#else
#define THREAD_LOCAL
#define THREAD_LOCK Glib::Mutex::Lock locker(*dcrMutex);
#endif
/*
All global variables are defined here, and all functions that
access them are prefixed with "CLASS". Note that a thread-safe
C++ class cannot have non-const static local variables.
*/
/*RT*/IMFILE *ifp;
FILE * ofp;
short order;
const char *ifname;
char *meta_data;
char cdesc[5], desc[512], make[64], model[64], model2[64], artist[64];
float flash_used, canon_ev, iso_speed, shutter, aperture, focal_len;
time_t timestamp;
unsigned shot_order, kodak_cbpp, filters, exif_cfa, unique_id;
off_t strip_offset, data_offset;
off_t thumb_offset, meta_offset, profile_offset;
unsigned thumb_length, meta_length, profile_length;
unsigned thumb_misc, *oprof, fuji_layout, shot_select=0, multi_out=0;
unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress;
unsigned black, cblack[8], maximum, mix_green, raw_color, zero_is_bad;
unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error;
unsigned tile_width, tile_length, gpsdata[32], load_flags;
ushort raw_height, raw_width, height, width, top_margin, left_margin;
ushort shrink, iheight, iwidth, fuji_width, thumb_width, thumb_height;
int flip, tiff_flip, colors;
double pixel_aspect, aber[4]={1,1,1,1}, gamm[6]={ 0.45,4.5,0,0,0,0 };
ushort (*image)[4], white[8][8], curve[0x10000], cr2_slice[3], sraw_mul[4];
float bright=1, user_mul[4]={0,0,0,0}, threshold=0;
int half_size=0, four_color_rgb=0, document_mode=0, highlight=0;
int verbose=0, use_auto_wb=0, use_camera_wb=0, use_camera_matrix=-1;
int output_color=1, output_bps=8, output_tiff=0, med_passes=0;
int no_auto_bright=0;
unsigned greybox[4] = { 0, 0, UINT_MAX, UINT_MAX };
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
const double xyz_rgb[3][3] = { /* XYZ from RGB */
/*RT*/THREAD_LOCAL int ciff_base, ciff_len, exif_base, pre_filters;
/*RT*/THREAD_LOCAL IMFILE *ifp;
THREAD_LOCAL FILE * ofp;
THREAD_LOCAL short order;
THREAD_LOCAL const char *ifname;
THREAD_LOCAL char *meta_data;
THREAD_LOCAL char cdesc[5], desc[512], make[64], model[64], model2[64], artist[64];
THREAD_LOCAL float flash_used, canon_ev, iso_speed, shutter, aperture, focal_len;
THREAD_LOCAL time_t timestamp;
THREAD_LOCAL unsigned shot_order, kodak_cbpp, filters, exif_cfa, unique_id;
THREAD_LOCAL off_t strip_offset, data_offset;
THREAD_LOCAL off_t thumb_offset, meta_offset, profile_offset;
THREAD_LOCAL unsigned thumb_length, meta_length, profile_length;
THREAD_LOCAL unsigned thumb_misc, *oprof, fuji_layout, shot_select=0, multi_out=0;
THREAD_LOCAL unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress;
THREAD_LOCAL unsigned black, cblack[8], maximum, mix_green, raw_color, zero_is_bad;
THREAD_LOCAL unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error;
THREAD_LOCAL unsigned tile_width, tile_length, gpsdata[32], load_flags;
THREAD_LOCAL ushort raw_height, raw_width, height, width, top_margin, left_margin;
THREAD_LOCAL ushort shrink, iheight, iwidth, fuji_width, thumb_width, thumb_height;
THREAD_LOCAL int flip, tiff_flip, colors;
THREAD_LOCAL double pixel_aspect, aber[4]={1,1,1,1}, gamm[6]={ 0.45,4.5,0,0,0,0 };
THREAD_LOCAL ushort (*image)[4], white[8][8], curve[0x10000], cr2_slice[3], sraw_mul[4];
THREAD_LOCAL float bright=1, user_mul[4]={0,0,0,0}, threshold=0;
THREAD_LOCAL int half_size=0, four_color_rgb=0, document_mode=0, highlight=0;
THREAD_LOCAL int verbose=0, use_auto_wb=0, use_camera_wb=0, use_camera_matrix=-1;
THREAD_LOCAL int output_color=1, output_bps=8, output_tiff=0, med_passes=0;
THREAD_LOCAL int no_auto_bright=0;
THREAD_LOCAL unsigned greybox[4] = { 0, 0, UINT_MAX, UINT_MAX };
THREAD_LOCAL float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
static const double xyz_rgb[3][3] = { /* XYZ from RGB */
{ 0.412453, 0.357580, 0.180423 },
{ 0.212671, 0.715160, 0.072169 },
{ 0.019334, 0.119193, 0.950227 } };
const float d65_white[3] = { 0.950456, 1, 1.088754 };
int histogram[4][0x2000];
void (*write_thumb)(), (*write_fun)();
void (*load_raw)(), (*thumb_load_raw)();
jmp_buf failure;
static const float d65_white[3] = { 0.950456, 1, 1.088754 };
THREAD_LOCAL int histogram[4][0x2000];
THREAD_LOCAL void (*write_thumb)(), (*write_fun)();
THREAD_LOCAL void (*load_raw)(), (*thumb_load_raw)();
THREAD_LOCAL jmp_buf failure;
struct decode {
THREAD_LOCAL struct decode {
struct decode *branch[2];
int leaf;
} first_decode[2048], *second_decode, *free_decode;
struct tiff_ifd {
THREAD_LOCAL struct tiff_ifd {
int width, height, bps, comp, phint, offset, flip, samples, bytes;
} tiff_ifd[10];
struct ph1 {
THREAD_LOCAL struct ph1 {
int format, key_off, black, black_off, split_col, tag_21a;
float tag_210;
} ph1;
@ -555,8 +564,8 @@ int CLASS canon_s2is()
*/
unsigned CLASS getbithuff (int nbits, ushort *huff)
{
static unsigned bitbuf=0;
static int vbits=0, reset=0;
THREAD_LOCAL unsigned bitbuf=0;
THREAD_LOCAL int vbits=0, reset=0;
unsigned c;
if (nbits == -1)
@ -1577,8 +1586,8 @@ void CLASS phase_one_load_raw()
unsigned CLASS ph1_bithuff (int nbits, ushort *huff)
{
static UINT64 bitbuf=0;
static int vbits=0;
THREAD_LOCAL UINT64 bitbuf=0;
THREAD_LOCAL int vbits=0;
unsigned c;
if (nbits == -1)
@ -1840,8 +1849,8 @@ void CLASS nokia_load_raw()
unsigned CLASS pana_bits (int nbits)
{
static uchar buf[0x4000];
static int vbits;
THREAD_LOCAL uchar buf[0x4000];
THREAD_LOCAL int vbits;
int byte;
if (!nbits) return vbits=0;
@ -2130,7 +2139,7 @@ void CLASS kodak_jpeg_load_raw() {}
METHODDEF(boolean)
fill_input_buffer (j_decompress_ptr cinfo)
{
static uchar jpeg_buffer[4096];
THREAD_LOCAL uchar jpeg_buffer[4096];
size_t nbytes;
nbytes = fread (jpeg_buffer, 1, 4096, ifp);
@ -2408,7 +2417,7 @@ void CLASS kodak_thumb_load_raw()
void CLASS sony_decrypt (unsigned *data, int len, int start, int key)
{
static unsigned pad[128], p;
THREAD_LOCAL unsigned pad[128], p;
if (start) {
for (p=0; p < 4; p++)
@ -2655,7 +2664,7 @@ void CLASS smal_v9_load_raw()
void CLASS foveon_decoder (unsigned size, unsigned code)
{
static unsigned huff[1024];
THREAD_LOCAL unsigned huff[1024];
struct decode *cur;
int i, len;
@ -6894,6 +6903,8 @@ void CLASS identify()
if (height == 3136 && width == 4736) /* Pentax K-7 */
{ height = 3122; width = 4684;
top_margin = 2; filters = 0x16161616; }
if (height == 2868 && width == 4352) /* Pentax K-x */
width = 4308;
if (height == 3014 && width == 4096) /* Ricoh GX200 */
width = 4014;
if (dng_version) {
@ -7227,6 +7238,8 @@ canon_cr2:
} else if (!strcmp(model,"D1X")) {
width -= 4;
pixel_aspect = 0.5;
} else if (!strcmp(model,"D7000")) {
width -= 40;
} else if (!strcmp(model,"D40X") ||
!strcmp(model,"D60") ||
!strcmp(model,"D80") ||
@ -7441,7 +7454,7 @@ konica_400z:
} else if (!strcmp(model,"K20D")) {
filters = 0x16161616;
} else if (!strcmp(model,"K-x")) {
width = 4309;
width = 4308;
filters = 0x16161616;
} else if (!strcmp(model,"Optio S")) {
if (fsize == 3178560) {
@ -8930,6 +8943,7 @@ Glib::Mutex* dcrMutex=NULL;
int RawImage::loadRaw (bool loadData) {
Glib::Mutex::Lock lock(*dcrMutex); // auto unlock
THREAD_LOCK
ifname = fname.c_str();
image = NULL;
@ -9073,9 +9087,9 @@ int RawImage::loadRaw (bool loadData) {
int getRawFileBasicInfo (const Glib::ustring& fname, rtengine::RawMetaDataLocation& rml, int& rotation, int& thumbWidth, int& thumbHeight, int& thumbOffset, int& thumbType) {
int status=0;
THREAD_LOCK
dcrMutex->lock ();
int status=0;
exif_base = -1;
ciff_base = -1;
@ -9094,14 +9108,12 @@ dcrMutex->lock ();
ifname = fname.c_str();
if (!(ifp = gfopen (ifname))) {
status = 2;
dcrMutex->unlock ();
return status;
}
identify ();
if (!is_raw || colors>3) {
status = 3;
fclose (ifp);
dcrMutex->unlock ();
return status;
}
@ -9133,15 +9145,78 @@ dcrMutex->lock ();
rml.ciffLength = ciff_len;
fclose (ifp);
dcrMutex->unlock ();
return !is_raw;
}
#include <mytime.h>
rtengine::Thumbnail* rtengine::Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, rtengine::RawMetaDataLocation& rml, int &w, int &h, int fixwh) {
THREAD_LOCK
image = NULL;
ifname = fname.c_str();
exif_base = -1;
ciff_base = -1;
ciff_len = -1;
verbose = settings->verbose;
oprof = NULL;
ifp = gfopen (fname.c_str());
if (!ifp) {
printf("DCRAW: failed0\n");
return NULL;
}
if (setjmp (failure)) {
printf("DCRAW: failed1\n");
fclose (ifp);
return NULL;
}
identify ();
if (!is_raw || colors>3) {
printf("DCRAW: failed2\n");
fclose(ifp);
return NULL;
}
rml.exifBase = exif_base;
rml.ciffBase = ciff_base;
rml.ciffLength = ciff_len;
char thumb_buffer[thumb_length];
fseek(ifp,thumb_offset,SEEK_SET);
fread(thumb_buffer,1,thumb_length,ifp);
fclose(ifp);
rtengine::Thumbnail* tpp = rtengine::Thumbnail::loadFromMemory(thumb_buffer,thumb_length,w,h,fixwh);
if ( tpp == 0 )
{
printf("DCRAW: failed3\n");
return NULL;
}
int deg = 0;
if (flip==5)
deg = 270;
else if (flip==3)
deg = 180;
else if (flip==6)
deg = 90;
if (deg>0) {
Image16* rot = tpp->thumbImg->rotate (deg);
delete tpp->thumbImg;
tpp->thumbImg = rot;
}
return tpp;
}
rtengine::Thumbnail* rtengine::Thumbnail::loadFromRaw (const Glib::ustring& fname, rtengine::RawMetaDataLocation& rml, int &w, int &h, int fixwh) {
dcrMutex->lock ();
THREAD_LOCK
MyTime t0, t1, t2, t3, t4, t5, t6;
t0.set ();
@ -9154,7 +9229,6 @@ t0.set ();
oprof = NULL;
ifp = gfopen (fname.c_str());
if (!ifp) {
dcrMutex->unlock ();
return NULL;
}
@ -9164,7 +9238,6 @@ t1.set ();
if (image)
free (image);
fclose (ifp);
dcrMutex->unlock ();
return NULL;
}
@ -9176,7 +9249,6 @@ t1.set ();
use_camera_wb = 1;
if (!is_raw || colors>3) {
fclose(ifp);
dcrMutex->unlock ();
return NULL;
}
@ -9438,8 +9510,6 @@ if (settings->verbose) printf ("0: %d, 1: %d, 2: %d, 3: %d, 4: %d, 5: %d All: %d
free (image);
dcrMutex->unlock ();
return tpp;
}

View File

@ -1,9 +1,8 @@
--- dcraw.c 2010-06-30 10:40:16.000000000 -0600
+++ dcraw.cc 2010-06-30 10:36:00.000000000 -0600
@@ -1,3 +1,16 @@
--- dcraw.c 2010-10-25 09:45:14.000000000 -0400
+++ dcraw.cc 2010-10-27 11:30:33.000000000 -0400
@@ -1,3 +1,15 @@
+/*RT*/#include <glib.h>
+/*RT*/#include <glib/gstdio.h>
+/*RT*/int ciff_base, ciff_len, exif_base, pre_filters;
+/*RT*/#undef MAX
+/*RT*/#undef MIN
+/*RT*/#define NO_LCMS
@ -17,7 +16,7 @@
/*
dcraw.c -- Dave Coffin's raw photo decoder
Copyright 1997-2010 by Dave Coffin, dcoffin a cybercom o net
@@ -46,7 +59,9 @@
@@ -46,7 +58,9 @@
NO_LCMS disables the "-p" option.
*/
#ifndef NO_JPEG
@ -28,17 +27,115 @@
#endif
#ifndef NO_LCMS
#include <lcms.h>
@@ -101,7 +116,8 @@
@@ -96,59 +110,70 @@
typedef unsigned char uchar;
typedef unsigned short ushort;
+// RT specify thread local storage
+#ifdef __GNUC__
+#define THREAD_LOCAL static __thread
+#define THREAD_LOCK
+#else
+#define THREAD_LOCAL
+#define THREAD_LOCK Glib::Mutex::Lock locker(*dcrMutex);
+#endif
+
/*
All global variables are defined here, and all functions that
access them are prefixed with "CLASS". Note that a thread-safe
C++ class cannot have non-const static local variables.
*/
-FILE *ifp, *ofp;
+/*RT*/IMFILE *ifp;
+FILE * ofp;
short order;
const char *ifname;
char *meta_data;
@@ -271,6 +287,7 @@
-short order;
-const char *ifname;
-char *meta_data;
-char cdesc[5], desc[512], make[64], model[64], model2[64], artist[64];
-float flash_used, canon_ev, iso_speed, shutter, aperture, focal_len;
-time_t timestamp;
-unsigned shot_order, kodak_cbpp, filters, exif_cfa, unique_id;
-off_t strip_offset, data_offset;
-off_t thumb_offset, meta_offset, profile_offset;
-unsigned thumb_length, meta_length, profile_length;
-unsigned thumb_misc, *oprof, fuji_layout, shot_select=0, multi_out=0;
-unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress;
-unsigned black, cblack[8], maximum, mix_green, raw_color, zero_is_bad;
-unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error;
-unsigned tile_width, tile_length, gpsdata[32], load_flags;
-ushort raw_height, raw_width, height, width, top_margin, left_margin;
-ushort shrink, iheight, iwidth, fuji_width, thumb_width, thumb_height;
-int flip, tiff_flip, colors;
-double pixel_aspect, aber[4]={1,1,1,1}, gamm[6]={ 0.45,4.5,0,0,0,0 };
-ushort (*image)[4], white[8][8], curve[0x10000], cr2_slice[3], sraw_mul[4];
-float bright=1, user_mul[4]={0,0,0,0}, threshold=0;
-int half_size=0, four_color_rgb=0, document_mode=0, highlight=0;
-int verbose=0, use_auto_wb=0, use_camera_wb=0, use_camera_matrix=-1;
-int output_color=1, output_bps=8, output_tiff=0, med_passes=0;
-int no_auto_bright=0;
-unsigned greybox[4] = { 0, 0, UINT_MAX, UINT_MAX };
-float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
-const double xyz_rgb[3][3] = { /* XYZ from RGB */
+/*RT*/THREAD_LOCAL int ciff_base, ciff_len, exif_base, pre_filters;
+/*RT*/THREAD_LOCAL IMFILE *ifp;
+THREAD_LOCAL FILE * ofp;
+THREAD_LOCAL short order;
+THREAD_LOCAL const char *ifname;
+THREAD_LOCAL char *meta_data;
+THREAD_LOCAL char cdesc[5], desc[512], make[64], model[64], model2[64], artist[64];
+THREAD_LOCAL float flash_used, canon_ev, iso_speed, shutter, aperture, focal_len;
+THREAD_LOCAL time_t timestamp;
+THREAD_LOCAL unsigned shot_order, kodak_cbpp, filters, exif_cfa, unique_id;
+THREAD_LOCAL off_t strip_offset, data_offset;
+THREAD_LOCAL off_t thumb_offset, meta_offset, profile_offset;
+THREAD_LOCAL unsigned thumb_length, meta_length, profile_length;
+THREAD_LOCAL unsigned thumb_misc, *oprof, fuji_layout, shot_select=0, multi_out=0;
+THREAD_LOCAL unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress;
+THREAD_LOCAL unsigned black, cblack[8], maximum, mix_green, raw_color, zero_is_bad;
+THREAD_LOCAL unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error;
+THREAD_LOCAL unsigned tile_width, tile_length, gpsdata[32], load_flags;
+THREAD_LOCAL ushort raw_height, raw_width, height, width, top_margin, left_margin;
+THREAD_LOCAL ushort shrink, iheight, iwidth, fuji_width, thumb_width, thumb_height;
+THREAD_LOCAL int flip, tiff_flip, colors;
+THREAD_LOCAL double pixel_aspect, aber[4]={1,1,1,1}, gamm[6]={ 0.45,4.5,0,0,0,0 };
+THREAD_LOCAL ushort (*image)[4], white[8][8], curve[0x10000], cr2_slice[3], sraw_mul[4];
+THREAD_LOCAL float bright=1, user_mul[4]={0,0,0,0}, threshold=0;
+THREAD_LOCAL int half_size=0, four_color_rgb=0, document_mode=0, highlight=0;
+THREAD_LOCAL int verbose=0, use_auto_wb=0, use_camera_wb=0, use_camera_matrix=-1;
+THREAD_LOCAL int output_color=1, output_bps=8, output_tiff=0, med_passes=0;
+THREAD_LOCAL int no_auto_bright=0;
+THREAD_LOCAL unsigned greybox[4] = { 0, 0, UINT_MAX, UINT_MAX };
+THREAD_LOCAL float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
+static const double xyz_rgb[3][3] = { /* XYZ from RGB */
{ 0.412453, 0.357580, 0.180423 },
{ 0.212671, 0.715160, 0.072169 },
{ 0.019334, 0.119193, 0.950227 } };
-const float d65_white[3] = { 0.950456, 1, 1.088754 };
-int histogram[4][0x2000];
-void (*write_thumb)(), (*write_fun)();
-void (*load_raw)(), (*thumb_load_raw)();
-jmp_buf failure;
+static const float d65_white[3] = { 0.950456, 1, 1.088754 };
+THREAD_LOCAL int histogram[4][0x2000];
+THREAD_LOCAL void (*write_thumb)(), (*write_fun)();
+THREAD_LOCAL void (*load_raw)(), (*thumb_load_raw)();
+THREAD_LOCAL jmp_buf failure;
-struct decode {
+THREAD_LOCAL struct decode {
struct decode *branch[2];
int leaf;
} first_decode[2048], *second_decode, *free_decode;
-struct tiff_ifd {
+THREAD_LOCAL struct tiff_ifd {
int width, height, bps, comp, phint, offset, flip, samples, bytes;
} tiff_ifd[10];
-struct ph1 {
+THREAD_LOCAL struct ph1 {
int format, key_off, black, black_off, split_col, tag_21a;
float tag_210;
} ph1;
@@ -271,6 +296,7 @@
fprintf (stderr,_("Corrupt data near 0x%llx\n"), (INT64) ftello(ifp));
}
data_error++;
@ -46,7 +143,7 @@
}
ushort CLASS sget2 (uchar *s)
@@ -344,7 +361,7 @@
@@ -344,7 +370,7 @@
{
if (fread (pixel, 2, count, ifp) < count) derror();
if ((order == 0x4949) == (ntohs(0x1234) == 0x1234))
@ -55,7 +152,45 @@
}
void CLASS canon_600_fixed_wb (int temp)
@@ -2117,7 +2134,7 @@
@@ -538,8 +564,8 @@
*/
unsigned CLASS getbithuff (int nbits, ushort *huff)
{
- static unsigned bitbuf=0;
- static int vbits=0, reset=0;
+ THREAD_LOCAL unsigned bitbuf=0;
+ THREAD_LOCAL int vbits=0, reset=0;
unsigned c;
if (nbits == -1)
@@ -1560,8 +1586,8 @@
unsigned CLASS ph1_bithuff (int nbits, ushort *huff)
{
- static UINT64 bitbuf=0;
- static int vbits=0;
+ THREAD_LOCAL UINT64 bitbuf=0;
+ THREAD_LOCAL int vbits=0;
unsigned c;
if (nbits == -1)
@@ -1823,8 +1849,8 @@
unsigned CLASS pana_bits (int nbits)
{
- static uchar buf[0x4000];
- static int vbits;
+ THREAD_LOCAL uchar buf[0x4000];
+ THREAD_LOCAL int vbits;
int byte;
if (!nbits) return vbits=0;
@@ -2113,11 +2139,11 @@
METHODDEF(boolean)
fill_input_buffer (j_decompress_ptr cinfo)
{
- static uchar jpeg_buffer[4096];
+ THREAD_LOCAL uchar jpeg_buffer[4096];
size_t nbytes;
nbytes = fread (jpeg_buffer, 1, 4096, ifp);
@ -64,7 +199,25 @@
cinfo->src->next_input_byte = jpeg_buffer;
cinfo->src->bytes_in_buffer = nbytes;
return TRUE;
@@ -3765,6 +3782,7 @@
@@ -2391,7 +2417,7 @@
void CLASS sony_decrypt (unsigned *data, int len, int start, int key)
{
- static unsigned pad[128], p;
+ THREAD_LOCAL unsigned pad[128], p;
if (start) {
for (p=0; p < 4; p++)
@@ -2638,7 +2664,7 @@
void CLASS foveon_decoder (unsigned size, unsigned code)
{
- static unsigned huff[1024];
+ THREAD_LOCAL unsigned huff[1024];
struct decode *cur;
int i, len;
@@ -3765,6 +3791,7 @@
for (row = FC(1,0) >> 1; row < height; row+=2)
for (col = FC(row,1) & 1; col < width; col+=2)
image[row*width+col][1] = image[row*width+col][3];
@ -72,7 +225,7 @@
filters &= ~((filters & 0x55555555) << 1);
}
}
@@ -4817,7 +4835,7 @@
@@ -4817,7 +4844,7 @@
unsigned sony_curve[] = { 0,0,0,0,0,4095 };
unsigned *buf, sony_offset=0, sony_length=0, sony_key=0;
struct jhead jh;
@ -81,7 +234,7 @@
if (tiff_nifds >= sizeof tiff_ifd / sizeof tiff_ifd[0])
return 1;
@@ -5225,12 +5243,13 @@
@@ -5225,12 +5252,13 @@
fread (buf, sony_length, 1, ifp);
sony_decrypt (buf, sony_length/4, 1, sony_key);
sfp = ifp;
@ -100,7 +253,7 @@
ifp = sfp;
free (buf);
}
@@ -5256,6 +5275,8 @@
@@ -5256,6 +5284,8 @@
int doff, max_samp=0, raw=-1, thm=-1, i;
struct jhead jh;
@ -109,7 +262,7 @@
fseek (ifp, base, SEEK_SET);
order = get2();
if (order != 0x4949 && order != 0x4d4d) return;
@@ -5424,7 +5445,7 @@
@@ -5424,7 +5454,7 @@
{
const char *file, *ext;
char *jname, *jfile, *jext;
@ -118,7 +271,7 @@
ext = strrchr (ifname, '.');
file = strrchr (ifname, '/');
@@ -5452,7 +5473,8 @@
@@ -5452,7 +5482,8 @@
*jext = '0';
}
if (strcmp (jname, ifname)) {
@ -128,7 +281,7 @@
if (verbose)
fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
parse_tiff (12);
@@ -5790,7 +5812,11 @@
@@ -5790,7 +5821,11 @@
order = get2();
hlen = get4();
if (get4() == 0x48454150) /* "HEAP" */
@ -140,7 +293,7 @@
parse_tiff (save+6);
fseek (ifp, save+len, SEEK_SET);
}
@@ -6738,6 +6764,12 @@
@@ -6738,6 +6773,12 @@
fread (head, 1, 32, ifp);
fseek (ifp, 0, SEEK_END);
flen = fsize = ftell(ifp);
@ -153,7 +306,7 @@
if ((cp = (char *) memmem (head, 32, "MMMM", 4)) ||
(cp = (char *) memmem (head, 32, "IIII", 4))) {
parse_phase_one (cp-head);
@@ -6745,6 +6777,8 @@
@@ -6745,6 +6786,8 @@
} else if (order == 0x4949 || order == 0x4d4d) {
if (!memcmp (head+6,"HEAPCCDR",8)) {
data_offset = hlen;
@ -162,7 +315,25 @@
parse_ciff (hlen, flen - hlen);
} else {
parse_tiff(0);
@@ -8494,13 +8528,13 @@
@@ -6858,6 +6901,8 @@
if (height == 3136 && width == 4736) /* Pentax K-7 */
{ height = 3122; width = 4684;
top_margin = 2; filters = 0x16161616; }
+ if (height == 2868 && width == 4352) /* Pentax K-x */
+ width = 4308;
if (height == 3014 && width == 4096) /* Ricoh GX200 */
width = 4014;
if (dng_version) {
@@ -7405,7 +7450,7 @@
} else if (!strcmp(model,"K20D")) {
filters = 0x16161616;
} else if (!strcmp(model,"K-x")) {
- width = 4309;
+ width = 4308;
filters = 0x16161616;
} else if (!strcmp(model,"Optio S")) {
if (fsize == 3178560) {
@@ -8494,13 +8539,13 @@
FORCC ppm [col*colors+c] = curve[image[soff][c]] >> 8;
else FORCC ppm2[col*colors+c] = curve[image[soff][c]];
if (output_bps == 16 && !output_tiff && htons(0x55aa) != 0x55aa)
@ -178,7 +349,7 @@
{
int arg, status=0;
int timestamp_only=0, thumbnail_only=0, identify_only=0;
@@ -8613,7 +8647,7 @@
@@ -8613,7 +8658,7 @@
case 'i': identify_only = 1; break;
case 'c': write_to_stdout = 1; break;
case 'v': verbose = 1; break;
@ -187,7 +358,7 @@
case 'f': four_color_rgb = 1; break;
case 'A': FORC4 greybox[c] = atoi(argv[arg++]);
case 'a': use_auto_wb = 1; break;
@@ -8877,3 +8911,537 @@
@@ -8877,3 +8922,526 @@
}
return status;
}
@ -213,7 +384,7 @@
+ { 0.222507, 0.716888, 0.060608 },
+ { 0.013930, 0.097097, 0.714022 } };
+
+dcrMutex->lock ();
+ THREAD_LOCK
+
+ ifname = fname;//strdup (fname);
+ image = NULL;
@ -228,7 +399,6 @@
+ ri->profile_data = NULL;
+ ifp = gfopen (fname);
+ if (!ifp) {
+ dcrMutex->unlock ();
+ return 3;
+ }
+
@ -240,7 +410,6 @@
+ use_camera_wb = 1;
+ if (!is_raw) {
+ fclose(ifp);
+ dcrMutex->unlock ();
+ return 2;
+ }
+
@ -259,7 +428,6 @@
+ if (ri->data)
+ free(ri->data);
+ fclose (ifp);
+ dcrMutex->unlock ();
+ return 100;
+ }
+
@ -346,15 +514,14 @@
+ ri->coeff[a][b] = rgb_cam[a][b];
+
+ free (image);
+dcrMutex->unlock ();
+ return 0;
+}
+
+int getRawFileBasicInfo (const Glib::ustring& fname, rtengine::RawMetaDataLocation& rml, int& rotation, int& thumbWidth, int& thumbHeight, int& thumbOffset, int& thumbType) {
+
+ int status=0;
+ THREAD_LOCK
+
+dcrMutex->lock ();
+ int status=0;
+
+ exif_base = -1;
+ ciff_base = -1;
@ -373,14 +540,12 @@
+ ifname = fname.c_str();
+ if (!(ifp = gfopen (ifname))) {
+ status = 2;
+ dcrMutex->unlock ();
+ return status;
+ }
+ identify ();
+ if (!is_raw || colors>3) {
+ status = 3;
+ fclose (ifp);
+ dcrMutex->unlock ();
+ return status;
+ }
+
@ -412,7 +577,6 @@
+ rml.ciffLength = ciff_len;
+
+ fclose (ifp);
+dcrMutex->unlock ();
+ return !is_raw;
+}
+
@ -420,7 +584,8 @@
+
+rtengine::Thumbnail* rtengine::Thumbnail::loadFromRaw (const Glib::ustring& fname, rtengine::RawMetaDataLocation& rml, int &w, int &h, int fixwh) {
+
+dcrMutex->lock ();
+ THREAD_LOCK
+
+MyTime t0, t1, t2, t3, t4, t5, t6;
+t0.set ();
+
@ -433,7 +598,6 @@
+ oprof = NULL;
+ ifp = gfopen (fname.c_str());
+ if (!ifp) {
+ dcrMutex->unlock ();
+ return NULL;
+ }
+
@ -443,7 +607,6 @@
+ if (image)
+ free (image);
+ fclose (ifp);
+ dcrMutex->unlock ();
+ return NULL;
+ }
+
@ -455,7 +618,6 @@
+ use_camera_wb = 1;
+ if (!is_raw || colors>3) {
+ fclose(ifp);
+ dcrMutex->unlock ();
+ return NULL;
+ }
+
@ -610,7 +772,7 @@
+
+ // generate histogram for auto exposure
+ tpp->aeHistCompression = 3;
+ tpp->aeHistogram = new int[65536>>tpp->aeHistCompression];
+ tpp->aeHistogram = new unsigned int[65536>>tpp->aeHistCompression];
+ memset (tpp->aeHistogram, 0, (65536>>tpp->aeHistCompression)*sizeof(int));
+ int radd = 4;
+ int gadd = 2;
@ -717,8 +879,6 @@
+
+ free (image);
+
+dcrMutex->unlock ();
+
+ return tpp;
+}
+

View File

@ -167,13 +167,16 @@ void Crop::update (int todo, bool internal) {
// shadows & highlights & tone curve & convert to cielab
if (todo & M_RGBCURVE)
parent->ipf.rgbProc (baseCrop, laboCrop, parent->tonecurve, cshmap);
parent->ipf.rgbProc (baseCrop, laboCrop, parent->tonecurve1, parent->tonecurve2, cshmap);
// apply luminance operations
if (todo & (M_LUMINANCE+M_COLOR)) {
parent->ipf.luminanceCurve (laboCrop, labnCrop, parent->lumacurve, 0, croph);
parent->ipf.colorCurve (laboCrop, labnCrop);
parent->ipf.luminanceCurve (laboCrop, labnCrop, parent->lumacurve2, 0, croph);
parent->ipf.chrominanceCurve (laboCrop, labnCrop, 0, parent->chroma_acurve, 0, croph);
parent->ipf.chrominanceCurve (laboCrop, labnCrop, 1, parent->chroma_bcurve, 0, croph);
parent->ipf.colorCurve (labnCrop, labnCrop);
if (skip==1) {
parent->ipf.impulsedenoise (labnCrop);
@ -347,7 +350,9 @@ void Crop::fullUpdate () {
parent->updaterThreadStart.lock ();
if (parent->updaterRunning && parent->thread) {
parent->changeSinceLast = 0;
// Do NOT reset changes here, since in a long chain of events it will lead to chroma_scale not being updated,
// causing ImProcFunctions::lab2rgb to return a black image on some opens
//parent->changeSinceLast = 0;
parent->thread->join ();
}

View File

@ -194,7 +194,7 @@ namespace rtengine {
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
};
}
void ImProcFunctions::dirpyr_channel(unsigned short ** data_fine, unsigned short ** data_coarse, int width, int height, int * rangefn, int level, int scale, const double * mult )
{
@ -220,7 +220,7 @@ namespace rtengine {
#endif
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++)
{
{
float val=0;
float norm=0;
@ -238,14 +238,12 @@ namespace rtengine {
};
}
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
void ImProcFunctions::idirpyr_eq_channel(unsigned short ** data_coarse, unsigned short ** data_fine, int ** buffer, int width, int height, int level, const double * mult )
{
int hipass;
float noisehi = 1.33*noise*mult[4]/pow(3,level), noiselo = 0.66*noise*mult[4]/pow(3,level);
float * irangefn = new float [0x20000];
@ -265,15 +263,16 @@ namespace rtengine {
#ifdef _OPENMP
#pragma omp parallel for
#endif
for(int i = 0; i < height; i++)
for(int i = 0; i < height; i++) {
for(int j = 0; j < width; j++) {
hipass = (data_fine[i][j]-data_coarse[i][j]);
int hipass = (data_fine[i][j]-data_coarse[i][j]);
buffer[i][j] += irangefn[hipass+0x10000] * hipass ;
}
}
delete [] irangefn;
};
}
#undef DIRWT_L

View File

@ -31,13 +31,12 @@
template<class T> void gaussHorizontal3 (T** src, T** dst, T* buffer, int W, int H, const float c0, const float c1, bool multiThread) {
#pragma omp parallel for if (multiThread)
for (int i=0; i<H; i++) {
#ifdef _OPENMP
T* temp = buffer + omp_get_thread_num() * W;
#else
T* temp = buffer;
#pragma omp for
#endif
for (int i=0; i<H; i++) {
T* temp = buffer;
for (int j=1; j<W-1; j++)
temp[j] = (T)(c1 * (src[i][j-1] + src[i][j+1]) + c0 * src[i][j]);
dst[i][0] = src[i][0];
@ -48,13 +47,12 @@ template<class T> void gaussHorizontal3 (T** src, T** dst, T* buffer, int W, int
template<class T> void gaussVertical3 (T** src, T** dst, T* buffer, int W, int H, const float c0, const float c1, bool multiThread) {
#pragma omp parallel for if (multiThread)
for (int i=0; i<W; i++) {
//#pragma omp parallel for if (multiThread)
#ifdef _OPENMP
T* temp = buffer + omp_get_thread_num() * H;
#else
T* temp = buffer;
#pragma omp for
#endif
for (int i=0; i<W; i++) {
T* temp = buffer;
for (int j = 1; j<H-1; j++)
temp[j] = (T)(c1 * (src[j-1][i] + src[j+1][i]) + c0 * src[j][i]);
dst[0][i] = src[0][i];
@ -114,14 +112,10 @@ template<class T> void gaussHorizontal (T** src, T** dst, AlignedBuffer<double>*
for (int i=0; i<3; i++)
for (int j=0; j<3; j++)
M[i][j] /= (1.0+b1-b2+b3)*(1.0+b2+(b1-b3)*b3);
#pragma omp parallel for if (multiThread)
// if (multiThread)
#pragma omp for
for (int i=0; i<H; i++) {
#ifdef _OPENMP
double* temp2 = buffer->data + omp_get_thread_num() * W;
#else
double* temp2 = buffer->data;
#endif
temp2[0] = B * src[i][0] + b1*src[i][0] + b2*src[i][0] + b3*src[i][0];
temp2[1] = B * src[i][1] + b1*temp2[0] + b2*src[i][0] + b3*src[i][0];
temp2[2] = B * src[i][2] + b1*temp2[1] + b2*temp2[0] + b3*src[i][0];
@ -192,14 +186,11 @@ template<class T> void gaussVertical (T** src, T** dst, AlignedBuffer<double>* b
for (int i=0; i<3; i++)
for (int j=0; j<3; j++)
M[i][j] /= (1.0+b1-b2+b3)*(1.0+b2+(b1-b3)*b3);
#pragma omp parallel for if (multiThread)
for (int i=0; i<W; i++) {
#ifdef _OPENMP
double* temp2 = buffer->data + omp_get_thread_num() * H;
#else
double* temp2 = buffer->data;
#pragma omp for
#endif
for (int i=0; i<W; i++) {
double* temp2 = buffer->data;
temp2[0] = B * src[0][i] + b1*src[0][i] + b2*src[0][i] + b3*src[0][i];
temp2[1] = B * src[1][i] + b1*temp2[0] + b2*src[0][i] + b3*src[0][i];
temp2[2] = B * src[2][i] + b1*temp2[1] + b2*temp2[0] + b3*src[0][i];

View File

@ -27,8 +27,6 @@
namespace rtengine {
ICCStore iccStore;
const double (*wprofiles[])[3] = {sRGB_d50, adobe_d50, prophoto_d50, widegamut_d50, bruce_d50, beta_d50, best_d50};
const double (*iwprofiles[])[3] = {d50_sRGB, d50_adobe, d50_prophoto, d50_widegamut, d50_bruce, d50_beta, d50_best};
const char* wpnames[] = {"sRGB", "Adobe RGB", "ProPhoto", "WideGamut", "BruceRGB", "Beta RGB", "BestRGB"};
@ -43,11 +41,13 @@ std::vector<std::string> getWorkingProfiles () {
std::vector<std::string> getOutputProfiles () {
return iccStore.getOutputProfiles ();
return iccStore->getOutputProfiles ();
}
std::vector<std::string> ICCStore::getOutputProfiles () {
Glib::Mutex::Lock lock(mutex_);
std::vector<std::string> res;
for (std::map<std::string, cmsHPROFILE>::iterator i=fileProfiles.begin(); i!=fileProfiles.end(); i++)
res.push_back (i->first);
@ -55,14 +55,30 @@ std::vector<std::string> ICCStore::getOutputProfiles () {
}
ICCStore::ICCStore () {
ICCStore*
ICCStore::getInstance(void)
{
static ICCStore* instance_ = 0;
if ( instance_ == 0 )
{
static Glib::Mutex smutex_;
Glib::Mutex::Lock lock(smutex_);
if ( instance_ == 0 )
{
instance_ = new ICCStore();
}
}
return instance_;
}
ICCStore::ICCStore ()
{
cmsErrorAction (LCMS_ERROR_SHOW);
int N = sizeof(wpnames)/sizeof(wpnames[0]);
for (int i=0; i<N; i++) {
wProfiles[wpnames[i]] = iccStore.createFromMatrix (wprofiles[i]);
wProfilesGamma[wpnames[i]] = iccStore.createFromMatrix (wprofiles[i], true);
wProfiles[wpnames[i]] = createFromMatrix (wprofiles[i]);
wProfilesGamma[wpnames[i]] = createFromMatrix (wprofiles[i], true);
wMatrices[wpnames[i]] = wprofiles[i];
iwMatrices[wpnames[i]] = iwprofiles[i];
}
@ -115,6 +131,7 @@ cmsHPROFILE ICCStore::workingSpaceGamma (Glib::ustring name) {
cmsHPROFILE ICCStore::getProfile (Glib::ustring name) {
Glib::Mutex::Lock lock(mutex_);
std::map<std::string, cmsHPROFILE>::iterator r = fileProfiles.find (name);
if (r!=fileProfiles.end())
@ -137,11 +154,15 @@ cmsHPROFILE ICCStore::getProfile (Glib::ustring name) {
ProfileContent ICCStore::getContent (Glib::ustring name) {
Glib::Mutex::Lock lock(mutex_);
return fileProfileContents[name];
}
std::vector<std::string> ICCStore::parseDir (Glib::ustring pdir) {
Glib::Mutex::Lock lock(mutex_);
fileProfiles.clear ();
fileProfileContents.clear ();
std::vector<std::string> result;
@ -164,7 +185,7 @@ std::vector<std::string> ICCStore::parseDir (Glib::ustring pdir) {
// ignore directories
if (!Glib::file_test (fname, Glib::FILE_TEST_IS_DIR)) {
int lastdot = sname.find_last_of ('.');
if (lastdot!=Glib::ustring::npos && lastdot<=sname.size()-4 && (!sname.casefold().compare (lastdot, 4, ".icm") || !sname.casefold().compare (lastdot, 4, ".icc"))) {
if (lastdot!=Glib::ustring::npos && lastdot<=(int)sname.size()-4 && (!sname.casefold().compare (lastdot, 4, ".icm") || !sname.casefold().compare (lastdot, 4, ".icc"))) {
// printf ("processing file %s...\n", fname.c_str());
Glib::ustring name = sname.substr(0,lastdot);
ProfileContent pc (fname);
@ -309,6 +330,8 @@ cmsHPROFILE ICCStore::createFromMatrix (const double matrix[3][3], bool gamma, G
strcpy ((char *)oprof+pbody[5]+12, name.c_str());
return cmsOpenProfileFromMem (oprof, ntohl(oprof[0]));
cmsHPROFILE p = cmsOpenProfileFromMem (oprof, ntohl(oprof[0]));
delete [] oprof;
return p;
}
}

View File

@ -54,9 +54,14 @@ class ICCStore {
cmsHPROFILE xyz;
cmsHPROFILE srgb;
Glib::Mutex mutex_;
ICCStore ();
public:
ICCStore ();
static ICCStore* getInstance(void);
int numOfWProfiles ();
cmsHPROFILE createFromMatrix (const double matrix[3][3], bool gamma=false, Glib::ustring name="");
@ -74,7 +79,7 @@ class ICCStore {
std::vector<std::string> getOutputProfiles ();
};
extern ICCStore iccStore;
#define iccStore ICCStore::getInstance()
//extern const char* wpnames[];
}

View File

@ -17,6 +17,7 @@
* along with RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <image16.h>
#include <image8.h>
#include <string.h>
#include <rtengine.h>
@ -239,3 +240,19 @@ Image16* Image16::resize (int nw, int nh, TypeInterpolation interp) {
}
return NULL;
}
Image8*
Image16::to8() const
{
Image8* img8 = new Image8(width,height);
for ( int h = 0; h < height; ++h )
{
for ( int w = 0; w < width; ++w )
{
img8->r(h,w,r[h][w] >> 8);
img8->g(h,w,g[h][w] >> 8);
img8->b(h,w,b[h][w] >> 8);
}
}
return img8;
}

View File

@ -29,6 +29,8 @@ namespace rtengine {
enum TypeInterpolation { TI_Nearest, TI_Bilinear };
class Image8;
class Image16 : public ImageIO, public IImage16 {
private:
@ -54,6 +56,8 @@ class Image16 : public ImageIO, public IImage16 {
Image16* copy ();
Image8* to8() const;
Image16* rotate (int deg);
Image16* hflip ();
Image16* vflip ();

View File

@ -95,7 +95,7 @@ ImageData::ImageData (Glib::ustring fname, RawMetaDataLocation* ri) {
extractInfo ();
}
}
else if (dotpos<fname.size()-3 && !fname.casefold().compare (dotpos, 4, ".jpg")) {
else if (dotpos<(int)fname.size()-3 && !fname.casefold().compare (dotpos, 4, ".jpg")) {
FILE* f = g_fopen (fname.c_str (), "rb");
if (f) {
root = rtexif::ExifManager::parseJPEG (f);
@ -106,7 +106,7 @@ ImageData::ImageData (Glib::ustring fname, RawMetaDataLocation* ri) {
fclose (ff);
}
}
else if ((dotpos<fname.size()-3 && !fname.casefold().compare (dotpos, 4, ".tif")) || (dotpos<fname.size()-4 && !fname.casefold().compare (dotpos, 5, ".tiff"))) {
else if ((dotpos<(int)fname.size()-3 && !fname.casefold().compare (dotpos, 4, ".tif")) || (dotpos<fname.size()-4 && !fname.casefold().compare (dotpos, 5, ".tiff"))) {
FILE* f = g_fopen (fname.c_str (), "rb");
if (f) {
root = rtexif::ExifManager::parseTIFF (f);

File diff suppressed because it is too large Load Diff

View File

@ -72,6 +72,8 @@ class ImageIO {
int loadJPEG (Glib::ustring fname);
int loadTIFF (Glib::ustring fname);
int loadJPEGFromMemory (const char* buffer, int bufsize);
int savePNG (Glib::ustring fname, int compression = -1, int bps = -1);
int saveJPEG (Glib::ustring fname, int quality = 100);
int saveTIFF (Glib::ustring fname, int bps = -1, bool uncompressed = false);

View File

@ -65,7 +65,7 @@ class ImageSource : public InitialImage {
ImageSource () : references (1), embProfile(NULL), idata(NULL) {}
virtual ~ImageSource () {}
virtual int load (Glib::ustring fname) =0;
virtual int load (Glib::ustring fname, bool batch = false) =0;
virtual void preprocess (const RAWParams &raw){};
virtual void demosaic (const RAWParams &raw){};
virtual void getImage (ColorTemp ctemp, int tran, Image16* image, PreviewProps pp, HRecParams hlp, ColorManagementParams cmp, RAWParams raw) {}

View File

@ -20,6 +20,7 @@
#include <curves.h>
#include <mytime.h>
#include <refreshmap.h>
#include <simpleprocess.h>
#define CLIPTO(a,b,c) ((a)>b?((a)<c?(a):c):b)
#define CLIP(a) ((a)<65535 ? (a) : (65535));
@ -165,8 +166,8 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) {
progress ("Exposure curve & CIELAB conversion...",100*readyphase/numofphases);
if (todo & M_RGBCURVE) {
CurveFactory::complexCurve (params.toneCurve.expcomp, params.toneCurve.black/65535.0, params.toneCurve.hlcompr, params.toneCurve.shcompr, params.toneCurve.brightness, params.toneCurve.contrast, imgsrc->getDefGain(), imgsrc->getGamma(), true, params.toneCurve.curve, vhist16, tonecurve, bcrgbhist, scale==1 ? 1 : 1);
ipf.rgbProc (oprevi, oprevl, tonecurve, shmap);
CurveFactory::complexCurve (params.toneCurve.expcomp, params.toneCurve.black/65535.0, params.toneCurve.hlcompr, params.toneCurve.shcompr, params.toneCurve.brightness, params.toneCurve.contrast, imgsrc->getDefGain(), imgsrc->getGamma(), true, params.toneCurve.curve, vhist16, tonecurve1, tonecurve2, bcrgbhist, scale==1 ? 1 : 1);
ipf.rgbProc (oprevi, oprevl, tonecurve1, tonecurve2, shmap);
// recompute luminance histogram
memset (lhist16, 0, 65536*sizeof(int));
@ -176,15 +177,23 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) {
}
readyphase++;
if (todo & M_LUMACURVE)
CurveFactory::complexCurve (0.0, 0.0, 0.0, 0.0, params.lumaCurve.brightness, params.lumaCurve.contrast, 0.0, 0.0, false, params.lumaCurve.curve, lhist16, lumacurve, bcLhist, scale==1 ? 1 : 16);
if (todo & M_LUMACURVE) {
CurveFactory::complexCurve (0.0, 0.0, 0.0, 0.0, params.labCurve.brightness, params.labCurve.contrast, 0.0, 0.0, false, params.labCurve.lcurve, lhist16, lumacurve1, lumacurve2, bcLhist, scale==1 ? 1 : 16);
CurveFactory::complexsgnCurve (0.0, 100.0, params.labCurve.saturation, 1.0, params.labCurve.acurve, chroma_acurve, scale==1 ? 1 : 16);
CurveFactory::complexsgnCurve (0.0, 100.0, params.labCurve.saturation, 1.0, params.labCurve.bcurve, chroma_bcurve, scale==1 ? 1 : 16);
}
if (todo & (M_LUMINANCE+M_COLOR) ) {
progress ("Applying Luminance Curve...",100*readyphase/numofphases);
ipf.luminanceCurve (oprevl, nprevl, lumacurve, 0, pH);
ipf.luminanceCurve (oprevl, nprevl, lumacurve2, 0, pH);
readyphase++;
progress ("Applying Color Boost...",100*readyphase/numofphases);
ipf.colorCurve (oprevl, nprevl);
ipf.chrominanceCurve (oprevl, nprevl, 0, chroma_acurve, 0, pH);
ipf.chrominanceCurve (oprevl, nprevl, 1, chroma_bcurve, 0, pH);
ipf.colorCurve (nprevl, nprevl);
readyphase++;
if (scale==1) {
progress ("Denoising luminance impulse...",100*readyphase/numofphases);
@ -228,7 +237,16 @@ void ImProcCoordinator::updatePreviewImage (int todo, Crop* cropCall) {
progress ("Conversion to RGB...",100*readyphase/numofphases);
if (todo!=CROP) {
previmg->getMutex().lock();
ipf.lab2rgb (nprevl, previmg);
try
{
ipf.lab2rgb (nprevl, previmg);
}
catch(char * str)
{
progress ("Error converting file...",0);
mProcessing.unlock ();
return;
}
previmg->getMutex().unlock();
}
if (!resultValid) {
@ -538,7 +556,11 @@ void ImProcCoordinator::startProcessing () {
thread = NULL;
updaterRunning = true;
updaterThreadStart.unlock ();
thread = Glib::Thread::create(sigc::mem_fun(*this, &ImProcCoordinator::process), 0, false, true, Glib::THREAD_PRIORITY_NORMAL);
batchThread->yield(); //the running batch should wait other threads to avoid conflict
thread = Glib::Thread::create(sigc::mem_fun(*this, &ImProcCoordinator::process), 0, true, true, Glib::THREAD_PRIORITY_NORMAL);
}
else
updaterThreadStart.unlock ();

View File

@ -62,13 +62,18 @@ class ImProcCoordinator : public StagedImageProcessor {
void freeAll ();
int tonecurve [65536];
int lumacurve [65536];
int tonecurve1 [65536];
int tonecurve2 [65536];
int lumacurve1 [65536];
int lumacurve2 [65536];
int chroma_acurve [65536];
int chroma_bcurve [65536];
unsigned int vhist16[65536];
unsigned int lhist16[65536];
unsigned int rhist[256], ghist[256], bhist[256], Lhist[256], bcrgbhist[256], bcLhist[256];
unsigned int rhist[256], ghist[256], bhist[256], Lhist[256], bcrgbhist[256], bcLhist[256], bcabhist[256];
int fw, fh, tr, fullw, fullh;
int pW, pH;

View File

@ -124,7 +124,7 @@ void ImProcFunctions::setScale (double iscale) {
void ImProcFunctions::firstAnalysis_ (Image16* original, Glib::ustring wprofile, unsigned int* histogram, int* chroma_radius, int row_from, int row_to) {
TMatrix wprof = iccStore.workingSpaceMatrix (wprofile);
TMatrix wprof = iccStore->workingSpaceMatrix (wprofile);
int toxyz[3][3];
toxyz[0][0] = round(32768.0 * wprof[0][0] / 0.96422);
toxyz[1][0] = round(32768.0 * wprof[1][0] / 0.96422);
@ -184,12 +184,12 @@ void ImProcFunctions::firstAnalysis (Image16* original, const ProcParams* params
if (monitorTransform)
cmsDeleteTransform (monitorTransform);
monitorTransform = NULL;
cmsHPROFILE monitor = iccStore.getProfile ("file:"+settings->monitorProfile);
cmsHPROFILE monitor = iccStore->getProfile ("file:"+settings->monitorProfile);
if (monitor) {
cmsHPROFILE iprof = iccStore.getXYZProfile ();
cmsHPROFILE oprof = iccStore.getProfile (params->icm.output);
cmsHPROFILE iprof = iccStore->getXYZProfile ();
cmsHPROFILE oprof = iccStore->getProfile (params->icm.output);
if (!oprof)
oprof = iccStore.getsRGBProfile ();
oprof = iccStore->getsRGBProfile ();
lcmsMutex->lock ();
monitorTransform = cmsCreateTransform (iprof, TYPE_RGB_16, monitor, TYPE_RGB_8, settings->colorimetricIntent, 0);
lcmsMutex->unlock ();
@ -245,7 +245,7 @@ void ImProcFunctions::firstAnalysis (Image16* original, const ProcParams* params
delete [] hist;
}
void ImProcFunctions::rgbProc (Image16* working, LabImage* lab, int* tonecurve, SHMap* shmap) {
void ImProcFunctions::rgbProc (Image16* working, LabImage* lab, int* tonecurve1, int* tonecurve2, SHMap* shmap) {
int h_th, s_th;
if (shmap) {
@ -257,7 +257,7 @@ void ImProcFunctions::rgbProc (Image16* working, LabImage* lab, int* tonecurve,
bool processLCE = params->sh.enabled && shmap!=NULL && params->sh.localcontrast>0;
double lceamount = params->sh.localcontrast / 200.0;
TMatrix wprof = iccStore.workingSpaceMatrix (params->icm.working);
TMatrix wprof = iccStore->workingSpaceMatrix (params->icm.working);
int toxyz[3][3] = {
{
floor(32768.0 * wprof[0][0] / 0.96422),
@ -321,10 +321,43 @@ void ImProcFunctions::rgbProc (Image16* working, LabImage* lab, int* tonecurve,
b = CLIP((int)(factor*b));
}
}
r = tonecurve[r];
/*r = tonecurve[r];
g = tonecurve[g];
b = tonecurve[b];
b = tonecurve[b];*/
int Y = (0.299*r + 0.587*g + 0.114*b);
int Ynew = tonecurve1[Y];
float tonefactor = (Y>0 ? (float)Ynew/Y : 1);
r *= tonefactor;
g *= tonefactor;
b *= tonefactor;
/*float maxfactor = 1;
if (r>65535)
maxfactor = MIN(maxfactor, (float)(65535.0f-Ynew)/(r-Ynew));
if (g>65535)
maxfactor = MIN(maxfactor, (float)(65535.0f-Ynew)/(g-Ynew));
if (b>65535)
maxfactor = MIN(maxfactor, (float)(65535.0f-Ynew)/(b-Ynew));
if (r<0)
maxfactor = MIN(maxfactor, ((float)Ynew)/(Ynew-r));
if (g<0)
maxfactor = MIN(maxfactor, ((float)Ynew)/(Ynew-g));
if (b<0)
maxfactor = MIN(maxfactor, ((float)Ynew)/(Ynew-b));
float U = (float)(-0.14713*r - 0.28886*g + 0.436*b)*maxfactor;
float V = (float)(0.615*r - 0.51499*g - 0.10001*b)*maxfactor;
r = CLIP(Ynew + 1.13983*V);
g = CLIP(Ynew - 0.39465*U - 0.58060*V);
b = CLIP(Ynew + 2.03211*U);*/
r = tonecurve2[CLIP(r)];
g = tonecurve2[CLIP(g)];
b = tonecurve2[CLIP(b)];
int x = (toxyz[0][0] * r + toxyz[1][0] * g + toxyz[2][0] * b) >> 15;
int y = (toxyz[0][1] * r + toxyz[1][1] * g + toxyz[2][1] * b) >> 15;
int z = (toxyz[0][2] * r + toxyz[1][2] * g + toxyz[2][2] * b) >> 15;
@ -344,11 +377,27 @@ void ImProcFunctions::rgbProc (Image16* working, LabImage* lab, int* tonecurve,
void ImProcFunctions::luminanceCurve (LabImage* lold, LabImage* lnew, int* curve, int row_from, int row_to) {
int W = lold->W;
int H = lold->H;
//int H = lold->H;
for (int i=row_from; i<row_to; i++)
for (int j=0; j<W; j++)
lnew->L[i][j] = curve[lold->L[i][j]];
}
void ImProcFunctions::chrominanceCurve (LabImage* lold, LabImage* lnew, int channel, int* curve, int row_from, int row_to) {
int W = lold->W;
//int H = lold->H;
if (channel==0) {
for (int i=row_from; i<row_to; i++)
for (int j=0; j<W; j++)
lnew->a[i][j] = curve[lold->a[i][j]+32768]-32768;
}
if (channel==1) {
for (int i=row_from; i<row_to; i++)
for (int j=0; j<W; j++)
lnew->b[i][j] = curve[lold->b[i][j]+32768]-32768;
}
}
#include "cubic.cc"
@ -458,6 +507,9 @@ void ImProcFunctions::colorCurve (LabImage* lold, LabImage* lnew) {
void ImProcFunctions::lumadenoise (LabImage* lab, int** b2) {
if (params->lumaDenoise.enabled && lab->W>=8 && lab->H>=8)
#ifdef _OPENMP
#pragma omp parallel
#endif
bilateral<unsigned short, unsigned int> (lab->L, lab->L, (unsigned short**)b2, lab->W, lab->H, params->lumaDenoise.radius / scale, params->lumaDenoise.edgetolerance, multiThread);
}
@ -465,10 +517,10 @@ void ImProcFunctions::colordenoise (LabImage* lab, int** b2) {
if (params->colorDenoise.enabled && lab->W>=8 && lab->H>=8) {
#ifdef _OPENMP
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(lab->W,lab->H)*omp_get_max_threads());
#else
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(lab->W,lab->H));
#pragma omp parallel
#endif
{
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(lab->W,lab->H));
gaussHorizontal<short> (lab->a, lab->a, buffer, lab->W, lab->H, params->colorDenoise.amount / 10.0 / scale, multiThread);
gaussHorizontal<short> (lab->b, lab->b, buffer, lab->W, lab->H, params->colorDenoise.amount / 10.0 / scale, multiThread);
gaussVertical<short> (lab->a, lab->a, buffer, lab->W, lab->H, params->colorDenoise.amount / 10.0 / scale, multiThread);
@ -476,6 +528,7 @@ void ImProcFunctions::colordenoise (LabImage* lab, int** b2) {
delete buffer;
}
}
}
void ImProcFunctions::getAutoExp (unsigned int* histogram, int histcompr, double expcomp, double clip, double& br, int& bl) {
@ -506,7 +559,7 @@ void ImProcFunctions::getAutoExp (unsigned int* histogram, int histcompr, doubl
double corr = pow(2.0, expcomp);
// black point selection is based on the linear result (yielding better visual results)
bl = (int)(shc * corr);
bl = (int)(shc /* * corr*/);
// compute the white point of the exp. compensated gamma corrected image
double awg = (int)(CurveFactory::gamma2 (aw * corr / 65536.0) * 65536.0);

View File

@ -79,8 +79,9 @@ class ImProcFunctions {
bool needsTransform ();
void firstAnalysis (Image16* working, const ProcParams* params, unsigned int* vhist16, double gamma);
void rgbProc (Image16* working, LabImage* lab, int* tonecurve, SHMap* shmap);
void rgbProc (Image16* working, LabImage* lab, int* tonecurve1, int* tonecurve2, SHMap* shmap);
void luminanceCurve (LabImage* lold, LabImage* lnew, int* curve, int row_from, int row_to);
void chrominanceCurve (LabImage* lold, LabImage* lnew, int channel, int* curve, int row_from, int row_to);
void colorCurve (LabImage* lold, LabImage* lnew);
void sharpening (LabImage* lab, unsigned short** buffer);
void lumadenoise (LabImage* lab, int** buffer);

View File

@ -24,15 +24,17 @@
#include <algorithm>
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// Gabor's implementation of bilateral filtering, without input pixel
// modified version of Gabor's implementation of bilateral filtering, without input pixel
#define NBRWT(a,b) (src[i - a][j - b] * ec[src[i - a][j - b]-src[i][j]+0x10000])
#define NORM(a,b) (1 + ec[src[i - a][j - b]-src[i][j]+0x10000])
#define NORM(a,b) (ec[src[i - a][j - b]-src[i][j]+0x10000])
//ec[i] = (int)(exp(-(double)(i-0x10000)*(double)(i-0x10000) / (2.0*rangewidth*rangewidth))*scale); \
#define RB_BEGIN(a,b) double scale = (a); \
int* ec = new int [0x20000]; \
for (int i=0; i<0x20000; i++) \
ec[i] = (int)(exp(-(double)(i-0x10000)*(double)(i-0x10000) / (2.0*rangewidth*rangewidth))*scale); \
ec[i] = (int)(1 + 1024/(abs(i-0x10000) + 1)); \
int rstart = b; \
int rend = H-b; \
int cstart = b; \
@ -97,7 +99,7 @@ template<class T> void impulse_nr (T** src, T** dst, int width, int height, doub
//The cleaning algorithm starts here
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
// modified bilateral filter for lowpass image, omitting input pixel
// modified bilateral filter for lowpass image, omitting input pixel; or Gaussian blur
static float eps = 1.0;
float wtdsum, dirwt, norm;
@ -127,7 +129,7 @@ template<class T> void impulse_nr (T** src, T** dst, int width, int height, doub
hfnbrave = (hfnbrave-hpfabs)/24;
hpfabs>(hfnbrave*(5.5-thresh)) ? impish[i][j]=1 : impish[i][j]=0;
}//now impulsive values have been corrected
}//now impulsive values have been identified
for (int i=0; i < height; i++)
for (int j=0; j < width; j++) {

View File

@ -33,7 +33,7 @@ Glib::Mutex* lcmsMutex = NULL;
int init (const Settings* s) {
settings = s;
iccStore.parseDir (s->iccDirectory);
iccStore->parseDir (s->iccDirectory);
CurveFactory::init ();
ImProcFunctions::initCache ();
delete dcrMutex;

View File

@ -38,6 +38,9 @@ extern const Settings* settings;
void ImProcFunctions::lab2rgb (LabImage* lab, Image8* image) {
if (chroma_scale == 0)
return;
if (monitorTransform) {
int ix = 0;
short* buffer = new short [3*lab->W];
@ -111,10 +114,10 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch,
Image8* image = new Image8 (cw, ch);
cmsHPROFILE oprof = iccStore.getProfile (profile);
cmsHPROFILE oprof = iccStore->getProfile (profile);
if (oprof) {
cmsHPROFILE iprof = iccStore.getXYZProfile ();
cmsHPROFILE iprof = iccStore->getXYZProfile ();
lcmsMutex->lock ();
cmsHTRANSFORM hTransform = cmsCreateTransform (iprof, TYPE_RGB_16, oprof, TYPE_RGB_8, settings->colorimetricIntent, 0);
lcmsMutex->unlock ();
@ -190,7 +193,7 @@ Image16* ImProcFunctions::lab2rgb16 (LabImage* lab, int cx, int cy, int cw, int
Image16* image = new Image16 (cw, ch);
cmsHPROFILE oprof = iccStore.getProfile (profile);
cmsHPROFILE oprof = iccStore->getProfile (profile);
if (oprof) {
#pragma omp parallel for if (multiThread)
@ -219,7 +222,7 @@ Image16* ImProcFunctions::lab2rgb16 (LabImage* lab, int cx, int cy, int cw, int
za[j-cx] = CLIP(z_);
}
}
cmsHPROFILE iprof = iccStore.getXYZProfile ();
cmsHPROFILE iprof = iccStore->getXYZProfile ();
lcmsMutex->lock ();
cmsHTRANSFORM hTransform = cmsCreateTransform (iprof, TYPE_RGB_16_PLANAR, oprof, TYPE_RGB_16_PLANAR, settings->colorimetricIntent, 0);
lcmsMutex->unlock ();

View File

@ -37,7 +37,9 @@ namespace rtengine {
void ImProcFunctions::dcdamping (float** aI, unsigned short** aO, float damping, int W, int H) {
#pragma omp parallel for if (multiThread)
#ifdef _OPENMP
#pragma omp for
#endif
for (int i=0; i<H; i++)
for (int j=0; j<W; j++) {
float I = aI[i][j];
@ -69,10 +71,10 @@ void ImProcFunctions::deconvsharpening (LabImage* lab, unsigned short** b2) {
float** tmp = (float**)b2;
#ifdef _OPENMP
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H)*omp_get_max_threads());
#else
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H));
#pragma omp parallel
#endif
{
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H));
float damping = params->sharpening.deconvdamping / 5.0;
bool needdamp = params->sharpening.deconvdamping > 0;
for (int k=0; k<params->sharpening.deconviter; k++) {
@ -82,7 +84,9 @@ void ImProcFunctions::deconvsharpening (LabImage* lab, unsigned short** b2) {
gaussVertical<float> (tmp, tmp, buffer, W, H, params->sharpening.deconvradius / scale, multiThread);
if (!needdamp) {
#pragma omp parallel for if (multiThread)
#ifdef _OPENMP
#pragma omp for
#endif
for (int i=0; i<H; i++)
for (int j=0; j<W; j++)
if (tmp[i][j]>0)
@ -94,17 +98,25 @@ void ImProcFunctions::deconvsharpening (LabImage* lab, unsigned short** b2) {
gaussHorizontal<float> (tmp, tmp, buffer, W, H, params->sharpening.deconvradius / scale, multiThread);
gaussVertical<float> (tmp, tmp, buffer, W, H, params->sharpening.deconvradius / scale, multiThread);
#pragma omp parallel for if (multiThread)
#ifdef _OPENMP
#pragma omp for
#endif
for (int i=0; i<H; i++)
for (int j=0; j<W; j++)
tmpI[i][j] = tmpI[i][j] * tmp[i][j];
}
} // end for
delete buffer;
} // end parallel
#pragma omp parallel for if (multiThread)
#ifdef _OPENMP
#pragma omp for
#endif
for (int i=0; i<H; i++)
for (int j=0; j<W; j++)
lab->L[i][j] = lab->L[i][j]*(100-params->sharpening.deconvamount) / 100 + (int)CLIP(tmpI[i][j])*params->sharpening.deconvamount / 100;
for (int i=0; i<H; i++)
delete [] tmpI[i];
delete [] tmpI;
@ -121,12 +133,13 @@ void ImProcFunctions::sharpening (LabImage* lab, unsigned short** b2) {
return;
int W = lab->W, H = lab->H;
unsigned short** b3;
#ifdef _OPENMP
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H)*omp_get_max_threads());
#else
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H));
#pragma omp parallel
#endif
{
unsigned short** b3;
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H));
if (params->sharpening.edgesonly==false) {
gaussHorizontal<unsigned short> (lab->L, b2, buffer, W, H, params->sharpening.radius / scale, multiThread);
@ -148,7 +161,7 @@ void ImProcFunctions::sharpening (LabImage* lab, unsigned short** b2) {
base = b3;
if (params->sharpening.halocontrol==false) {
#pragma omp parallel for if (multiThread)
#pragma omp for
for (int i=0; i<H; i++)
for (int j=0; j<W; j++) {
int diff = base[i][j] - b2[i][j];
@ -166,6 +179,7 @@ void ImProcFunctions::sharpening (LabImage* lab, unsigned short** b2) {
delete [] b3[i];
delete [] b3;
}
}
}
void ImProcFunctions::sharpenHaloCtrl (LabImage* lab, unsigned short** blurmap, unsigned short** base, int W, int H) {

View File

@ -223,25 +223,42 @@ void ImProcFunctions::transform (Image16* original, Image16* transformed, int cx
transformSep (original, transformed, cx, cy, sx, sy, oW, oH);
}
void calcVignettingParams(int oW, int oH, const VignettingParams& vignetting, double &w2, double &h2, double& maxRadius, double &v, double &b, double &mul)
{
// vignette center is a point with coordinates between -1 and +1
double x = vignetting.centerX / 100.0;
double y = vignetting.centerY / 100.0;
// calculate vignette center in pixels
w2 = (double) oW / 2.0 - 0.5 + x * oW;
h2 = (double) oH / 2.0 - 0.5 + y * oH;
// max vignette radius in pixels
maxRadius = sqrt( (double)( oW*oW + oH*oH ) ) / 2.;
// vignette variables with applied strength
v = 1.0 - vignetting.strength * vignetting.amount * 3.0 / 400.0;
b = 1.0 + vignetting.radius * 7.0 / 100.0;
mul = (1.0-v) / tanh(b);
}
void ImProcFunctions::vignetting (Image16* original, Image16* transformed, int cx, int cy, int oW, int oH) {
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double maxRadius = sqrt( (double)( oW*oW + oH*oH ) ) / 2;
double v = 1.0 - params->vignetting.amount * 3.0 / 400.0;
double b = 1.0 + params->vignetting.radius * 7.0 / 100.0;
double mul = (1.0-v) / tanh(b);
double vig_w2;
double vig_h2;
double maxRadius;
double v;
double b;
double mul;
calcVignettingParams(oW, oH, params->vignetting, vig_w2, vig_h2, maxRadius, v, b, mul);
#pragma omp parallel for if (multiThread)
for (int y=0; y<transformed->height; y++) {
double y_d = (double) (y + cy) - h2 ;
double vig_y_d = (double) (y + cy) - vig_h2 ;
int val;
for (int x=0; x<transformed->width; x++) {
double x_d = (double) (x + cx) - w2 ;
double r = sqrt(x_d*x_d + y_d*y_d);
double vig_x_d = (double) (x + cx) - vig_w2 ;
double r = sqrt(vig_x_d*vig_x_d + vig_y_d*vig_y_d);
double vign = v + mul * tanh (b*(maxRadius-r) / maxRadius);
val = original->r[y][x] / vign;
transformed->r[y][x] = CLIP(val);
@ -255,9 +272,16 @@ void ImProcFunctions::vignetting (Image16* original, Image16* transformed, int c
#include "cubint.cc"
void ImProcFunctions::transformNonSep (Image16* original, Image16* transformed, int cx, int cy, int sx, int sy, int oW, int oH) {
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double vig_w2;
double vig_h2;
double maxRadius;
double v;
double b;
double mul;
calcVignettingParams(oW, oH, params->vignetting, vig_w2, vig_h2, maxRadius, v, b, mul);
// auxiliary variables for distortion correction
double a = params->distortion.amount;
@ -266,11 +290,6 @@ void ImProcFunctions::transformNonSep (Image16* original, Image16* transformed,
double cost = cos(params->rotate.degree * 3.14/180.0);
double sint = sin(params->rotate.degree * 3.14/180.0);
// auxiliary variables for vignetting
double maxRadius = sqrt( (double)( oW*oW + oH*oH ) ) / 2;
double v = 1.0 - params->vignetting.amount * 3.0 / 400.0;
double b = 1.0 + params->vignetting.radius * 7.0 / 100.0;
double mul = (1.0-v) / tanh(b);
bool dovign = params->vignetting.amount != 0;
// auxiliary variables for vertical perspective correction
@ -293,6 +312,8 @@ void ImProcFunctions::transformNonSep (Image16* original, Image16* transformed,
for (int x=0; x<transformed->width; x++) {
double x_d = ascale * (x + cx - w2); // centering x coord & scale
double y_d = ascale * (y + cy - h2); // centering y coord & scale
double vig_x_d = ascale * (x + cx - vig_w2); // centering x coord & scale
double vig_y_d = ascale * (y + cy - vig_h2); // centering y coord & scale
// horizontal perspective transformation
y_d = y_d * maxRadius / (maxRadius + x_d*hptanpt);
@ -312,6 +333,10 @@ void ImProcFunctions::transformNonSep (Image16* original, Image16* transformed,
Dx *= s;
Dy *= s;
double vig_Dx = vig_x_d * cost - vig_y_d * sint;
double vig_Dy = vig_x_d * sint + vig_y_d * cost;
double r2 = sqrt(vig_Dx*vig_Dx + vig_Dy*vig_Dy);
// de-center
Dx += w2;
Dy += h2;
@ -326,7 +351,7 @@ void ImProcFunctions::transformNonSep (Image16* original, Image16* transformed,
// multiplier for vignetting correction
double vignmul = 1.0;
if (dovign)
vignmul /= (v + mul * tanh (b*(maxRadius-s*r) / maxRadius));
vignmul /= (v + mul * tanh (b*(maxRadius-s*r2) / maxRadius));
if (yc > 0 && yc < original->height-2 && xc > 0 && xc < original->width-2) // all interpolation pixels inside image
cubint (original, xc-1, yc-1, Dx, Dy, &(transformed->r[y][x]), &(transformed->g[y][x]), &(transformed->b[y][x]), vignmul);
@ -356,8 +381,16 @@ void ImProcFunctions::transformNonSep (Image16* original, Image16* transformed,
#include "cubintch.cc"
void ImProcFunctions::transformSep (Image16* original, Image16* transformed, int cx, int cy, int sx, int sy, int oW, int oH) {
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double vig_w2;
double vig_h2;
double maxRadius;
double v;
double b;
double mul;
calcVignettingParams(oW, oH, params->vignetting, vig_w2, vig_h2, maxRadius, v, b, mul);
// auxiliary variables for c/a correction
double cdist[3];
@ -380,11 +413,6 @@ void ImProcFunctions::transformSep (Image16* original, Image16* transformed, int
double cost = cos(params->rotate.degree * 3.14/180.0);
double sint = sin(params->rotate.degree * 3.14/180.0);
// auxiliary variables for vignetting
double maxRadius = sqrt( (double)( oW*oW + oH*oH ) ) / 2;
double v = 1.0 - params->vignetting.amount * 3.0 / 400.0;
double b = 1.0 + params->vignetting.radius * 7.0 / 100.0;
double mul = (1.0-v) / tanh(b);
bool dovign = params->vignetting.amount != 0;
// auxiliary variables for vertical perspective correction
@ -407,6 +435,8 @@ void ImProcFunctions::transformSep (Image16* original, Image16* transformed, int
for (int x=0; x<transformed->width; x++) {
double x_d = ascale * (x + cx - w2); // centering x coord & scale
double y_d = ascale * (y + cy - h2); // centering y coord & scale
double vig_x_d = ascale * (x + cx - vig_w2); // centering x coord & scale
double vig_y_d = ascale * (y + cy - vig_h2); // centering y coord & scale
// horizontal perspective transformation
y_d = y_d * maxRadius / (maxRadius + x_d*hptanpt);
@ -424,6 +454,10 @@ void ImProcFunctions::transformSep (Image16* original, Image16* transformed, int
double r = sqrt(Dxc*Dxc + Dyc*Dyc) / maxRadius;
double s = 1.0 - a + a * r ;
double vig_Dx = vig_x_d * cost - vig_y_d * sint;
double vig_Dy = vig_x_d * sint + vig_y_d * cost;
double r2 = sqrt(vig_Dx*vig_Dx + vig_Dy*vig_Dy);
for (int c=0; c<3; c++) {
double Dx = Dxc * (s + cdist[c]);
@ -443,7 +477,7 @@ void ImProcFunctions::transformSep (Image16* original, Image16* transformed, int
// multiplier for vignetting correction
double vignmul = 1.0;
if (dovign)
vignmul /= (v + mul * tanh (b*(maxRadius-s*r) / maxRadius));
vignmul /= (v + mul * tanh (b*(maxRadius-s*r2) / maxRadius));
if (yc > 0 && yc < original->height-2 && xc > 0 && xc < original->width-2) // all interpolation pixels inside image
cubintch (chorig[c], xc-1, yc-1, Dx, Dy, &(chtrans[c][y][x]), vignmul);
@ -466,8 +500,16 @@ void ImProcFunctions::transformSep (Image16* original, Image16* transformed, int
void ImProcFunctions::simpltransform (Image16* original, Image16* transformed, int cx, int cy, int sx, int sy, int oW, int oH) {
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double w2 = (double) oW / 2.0 - 0.5;
double h2 = (double) oH / 2.0 - 0.5;
double vig_w2;
double vig_h2;
double maxRadius;
double v;
double b;
double mul;
calcVignettingParams(oW, oH, params->vignetting, vig_w2, vig_h2, maxRadius, v, b, mul);
// auxiliary variables for distortion correction
double a = params->distortion.amount;
@ -476,11 +518,6 @@ void ImProcFunctions::simpltransform (Image16* original, Image16* transformed, i
double cost = cos(params->rotate.degree * 3.14/180.0);
double sint = sin(params->rotate.degree * 3.14/180.0);
// auxiliary variables for vignetting
double maxRadius = sqrt( (double)( oW*oW + oH*oH ) ) / 2;
double v = 1.0 - params->vignetting.amount * 3.0 / 400.0;
double b = 1.0 + params->vignetting.radius * 7.0 / 100.0;
double mul = (1.0-v) / tanh(b);
bool dovign = params->vignetting.amount != 0;
// auxiliary variables for vertical perspective correction
@ -503,6 +540,8 @@ void ImProcFunctions::simpltransform (Image16* original, Image16* transformed, i
for (int x=0; x<transformed->width; x++) {
double y_d = ascale * (y + cy - h2); // centering y coord & scale
double x_d = ascale * (x + cx - w2); // centering x coord & scale
double vig_x_d = ascale * (x + cx - vig_w2); // centering x coord & scale
double vig_y_d = ascale * (y + cy - vig_h2); // centering y coord & scale
// horizontal perspective transformation
y_d = y_d * maxRadius / (maxRadius + x_d*hptanpt);
@ -522,6 +561,10 @@ void ImProcFunctions::simpltransform (Image16* original, Image16* transformed, i
Dx *= s;
Dy *= s;
double vig_Dx = vig_x_d * cost - vig_y_d * sint;
double vig_Dy = vig_x_d * sint + vig_y_d * cost;
double r2 = sqrt(vig_Dx*vig_Dx + vig_Dy*vig_Dy);
// de-center
Dx += w2;
Dy += h2;
@ -536,7 +579,7 @@ void ImProcFunctions::simpltransform (Image16* original, Image16* transformed, i
// multiplier for vignetting correction
double vignmul = 1.0;
if (dovign)
vignmul /= (v + mul * tanh (b*(maxRadius-s*r) / maxRadius));
vignmul /= (v + mul * tanh (b*(maxRadius-s*r2) / maxRadius));
if (yc < original->height-1 && xc < original->width-1) { // all interpolation pixels inside image
int r = vignmul*(original->r[yc][xc]*(1.0-Dx)*(1.0-Dy) + original->r[yc][xc+1]*Dx*(1.0-Dy) + original->r[yc+1][xc]*(1.0-Dx)*Dy + original->r[yc+1][xc+1]*Dx*Dy);

167
rtengine/jpeg_memsrc.c Normal file
View File

@ -0,0 +1,167 @@
/*
* memsrc.c
*
* Copyright (C) 1994-1996, Thomas G. Lane.
* This file is part of the Independent JPEG Group's software.
* For conditions of distribution and use, see the accompanying README file.
*
* This file contains decompression data source routines for the case of
* reading JPEG data from a memory buffer that is preloaded with the entire
* JPEG file. This would not seem especially useful at first sight, but
* a number of people have asked for it.
* This is really just a stripped-down version of jdatasrc.c. Comparison
* of this code with jdatasrc.c may be helpful in seeing how to make
* custom source managers for other purposes.
*/
/* this is not a core library module, so it doesn't define JPEG_INTERNALS */
//#include "jinclude.h"
//#include "jmorecfg.h"
//#include "jpeglib.h"
//#include "jerror.h"
#include <stdio.h>
#include <jpeglib.h>
#include <jerror.h>
/* Expanded data source object for memory input */
typedef struct {
struct jpeg_source_mgr pub; /* public fields */
JOCTET eoi_buffer[2]; /* a place to put a dummy EOI */
} my_source_mgr;
typedef my_source_mgr * my_src_ptr;
/*
* Initialize source --- called by jpeg_read_header
* before any data is actually read.
*/
static void
init_source (j_decompress_ptr cinfo)
{
/* No work, since jpeg_memory_src set up the buffer pointer and count.
* Indeed, if we want to read multiple JPEG images from one buffer,
* this *must* not do anything to the pointer.
*/
}
/*
* Fill the input buffer --- called whenever buffer is emptied.
*
* In this application, this routine should never be called; if it is called,
* the decompressor has overrun the end of the input buffer, implying we
* supplied an incomplete or corrupt JPEG datastream. A simple error exit
* might be the most appropriate response.
*
* But what we choose to do in this code is to supply dummy EOI markers
* in order to force the decompressor to finish processing and supply
* some sort of output image, no matter how corrupted.
*/
static int
fill_input_buffer(j_decompress_ptr cinfo)
{
my_src_ptr src = (my_src_ptr) cinfo->src;
WARNMS(cinfo, JWRN_JPEG_EOF);
/* Create a fake EOI marker */
src->eoi_buffer[0] = (JOCTET) 0xFF;
src->eoi_buffer[1] = (JOCTET) JPEG_EOI;
src->pub.next_input_byte = src->eoi_buffer;
src->pub.bytes_in_buffer = 2;
return TRUE;
}
/*
* Skip data --- used to skip over a potentially large amount of
* uninteresting data (such as an APPn marker).
*
* If we overrun the end of the buffer, we let fill_input_buffer deal with
* it. An extremely large skip could cause some time-wasting here, but
* it really isn't supposed to happen ... and the decompressor will never
* skip more than 64K anyway.
*/
static void
skip_input_data (j_decompress_ptr cinfo, long num_bytes)
{
my_src_ptr src = (my_src_ptr) cinfo->src;
if (num_bytes > 0) {
while (num_bytes > (long) src->pub.bytes_in_buffer) {
num_bytes -= (long) src->pub.bytes_in_buffer;
(void) fill_input_buffer(cinfo);
/* note we assume that fill_input_buffer will never return FALSE,
* so suspension need not be handled.
*/
}
src->pub.next_input_byte += (size_t) num_bytes;
src->pub.bytes_in_buffer -= (size_t) num_bytes;
}
}
/*
* An additional method that can be provided by data source modules is the
* resync_to_restart method for error recovery in the presence of RST markers.
* For the moment, this source module just uses the default resync method
* provided by the JPEG library. That method assumes that no backtracking
* is possible.
*/
/*
* Terminate source --- called by jpeg_finish_decompress
* after all data has been read. Often a no-op.
*
* NB: *not* called by jpeg_abort or jpeg_destroy; surrounding
* application must deal with any cleanup that should happen even
* for error exit.
*/
static void
term_source (j_decompress_ptr cinfo)
{
/* no work necessary here */
}
/*
* Prepare for input from a memory buffer.
*/
GLOBAL(void)
jpeg_memory_src (j_decompress_ptr cinfo, const JOCTET * buffer, size_t bufsize)
{
my_src_ptr src;
/* The source object is made permanent so that a series of JPEG images
* can be read from a single buffer by calling jpeg_memory_src
* only before the first one.
* This makes it unsafe to use this manager and a different source
* manager serially with the same JPEG object. Caveat programmer.
*/
if (cinfo->src == NULL) { /* first time for this JPEG object? */
cinfo->src = (struct jpeg_source_mgr *)
(*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
sizeof(my_source_mgr));
}
src = (my_src_ptr) cinfo->src;
src->pub.init_source = init_source;
src->pub.fill_input_buffer = fill_input_buffer;
src->pub.skip_input_data = skip_input_data;
src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */
src->pub.term_source = term_source;
src->pub.next_input_byte = buffer;
src->pub.bytes_in_buffer = bufsize;
}

View File

@ -32,7 +32,11 @@ InitialImage* InitialImage::load (const Glib::ustring& fname, bool isRaw, int* e
isrc = new RawImageSource ();
isrc->setProgressListener (pl);
*errorCode = isrc->load (fname);
if(isRaw && pl == NULL)
*errorCode = isrc->load (fname, true);
else
*errorCode = isrc->load (fname);
if (*errorCode) {
delete isrc;
return NULL;

View File

@ -1,124 +1,127 @@
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee 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 3 of the License, or
* (at your option) any later version.
*
* RawTherapee 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 RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __PROCEVENT__
#define __PROCEVENT__
namespace rtengine {
enum ProcEvent {
EvPhotoLoaded=0,
EvProfileLoaded=1,
EvProfileChanged=2,
EvHistoryBrowsed=3,
EvBrightness=4,
EvContrast=5,
EvBlack=6,
EvExpComp=7,
EvHLCompr=8,
EvSHCompr=9,
EvToneCurve=10,
EvAutoExp=11,
EvClip=12,
EvLBrightness=13,
EvLContrast=14,
EvLBlack=15,
EvLHLCompr=16,
EvLSHCompr=17,
EvLCurve=18,
EvShrEnabled=19,
EvShrRadius=20,
EvShrAmount=21,
EvShrThresh=22,
EvShrEdgeOnly=23,
EvShrEdgeRadius=24,
EvShrEdgeTolerance=25,
EvShrHaloControl=26,
EvShrHaloAmount=27,
EvShrMethod=28,
EvShrDRadius=29,
EvShrDAmount=30,
EvShrDDamping=31,
EvShrDIterations=32,
EvCBAvoidClip=33,
EvCBSatLimiter=34,
EvCBSatLimit=35,
EvCBBoost=36,
EvWBMethod=37,
EvWBTemp=38,
EvWBGreen=39,
EvCShiftA=40,
EvCShiftB=41,
EvLDNEnabled=42,
EvLDNRadius=43,
EvLDNEdgeTolerance=44,
EvCDNEnabled=45,
EvCDNRadius=46,
EvCDNEdgeTolerance=47,
EvCDNEdgeSensitive=48,
EvSHEnabled=49,
EvSHHighlights=50,
EvSHShadows=51,
EvSHHLTonalW=52,
EvSHSHTonalW=53,
EvSHLContrast=54,
EvSHRadius=55,
EvCTRotate=56,
EvCTHFlip=57,
EvCTVFlip=58,
EvROTDegree=59,
EvTransAutoFill=60,
EvDISTAmount=61,
EvBookmarkSelected=62,
EvCrop=63,
EvCACorr=64,
EvHREnabled=65,
EvHRAmount=66,
EvHRMethod=67,
EvWProfile=68,
EvOProfile=69,
EvIProfile=70,
EvVignetting=71,
EvChMixer=72,
EvResizeScale=73,
EvResizeMethod=74,
EvExif=75,
EvIPTC=76,
EvResizeSpec=77,
EvResizeWidth=78,
EvResizeHeight=79,
EvResizeEnabled=80,
EvProfileChangeNotification=81,
EvSHHighQuality=82,
EvPerspCorr=83,
EvEqualizer=84,
EvEqlEnabled=85,
EvDemosaic=86,
EvPreProcess=87,
EvIDNEnabled=88,
EvIDNThresh=89,
EvDPDNEnabled=90,
EvDPDNLuma=91,
EvDPDNChroma=92,
EvDPDNGamma=93,
EvDirPyrEqualizer=94,
EvDirPyrEqlEnabled=95,
NUMOFEVENTS=96
};
}
#endif
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee 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 3 of the License, or
* (at your option) any later version.
*
* RawTherapee 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 RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __PROCEVENT__
#define __PROCEVENT__
namespace rtengine {
enum ProcEvent {
EvPhotoLoaded=0,
EvProfileLoaded=1,
EvProfileChanged=2,
EvHistoryBrowsed=3,
EvBrightness=4,
EvContrast=5,
EvBlack=6,
EvExpComp=7,
EvHLCompr=8,
EvSHCompr=9,
EvToneCurve=10,
EvAutoExp=11,
EvClip=12,
EvLBrightness=13,
EvLContrast=14,
EvLBlack=15,
EvLHLCompr=16,
EvLSHCompr=17,
EvLLCurve=18,
EvShrEnabled=19,
EvShrRadius=20,
EvShrAmount=21,
EvShrThresh=22,
EvShrEdgeOnly=23,
EvShrEdgeRadius=24,
EvShrEdgeTolerance=25,
EvShrHaloControl=26,
EvShrHaloAmount=27,
EvShrMethod=28,
EvShrDRadius=29,
EvShrDAmount=30,
EvShrDDamping=31,
EvShrDIterations=32,
EvCBAvoidClip=33,
EvCBSatLimiter=34,
EvCBSatLimit=35,
EvCBBoost=36,
EvWBMethod=37,
EvWBTemp=38,
EvWBGreen=39,
EvCShiftA=40,
EvCShiftB=41,
EvLDNEnabled=42,
EvLDNRadius=43,
EvLDNEdgeTolerance=44,
EvCDNEnabled=45,
EvCDNRadius=46,
EvCDNEdgeTolerance=47,
EvCDNEdgeSensitive=48,
EvSHEnabled=49,
EvSHHighlights=50,
EvSHShadows=51,
EvSHHLTonalW=52,
EvSHSHTonalW=53,
EvSHLContrast=54,
EvSHRadius=55,
EvCTRotate=56,
EvCTHFlip=57,
EvCTVFlip=58,
EvROTDegree=59,
EvTransAutoFill=60,
EvDISTAmount=61,
EvBookmarkSelected=62,
EvCrop=63,
EvCACorr=64,
EvHREnabled=65,
EvHRAmount=66,
EvHRMethod=67,
EvWProfile=68,
EvOProfile=69,
EvIProfile=70,
EvVignetting=71,
EvChMixer=72,
EvResizeScale=73,
EvResizeMethod=74,
EvExif=75,
EvIPTC=76,
EvResizeSpec=77,
EvResizeWidth=78,
EvResizeHeight=79,
EvResizeEnabled=80,
EvProfileChangeNotification=81,
EvSHHighQuality=82,
EvPerspCorr=83,
EvEqualizer=84,
EvEqlEnabled=85,
EvDemosaic=86,
EvPreProcess=87,
EvIDNEnabled=88,
EvIDNThresh=89,
EvDPDNEnabled=90,
EvDPDNLuma=91,
EvDPDNChroma=92,
EvDPDNGamma=93,
EvDirPyrEqualizer=94,
EvDirPyrEqlEnabled=95,
EvLSaturation=96,
EvLaCurve=97,
EvLbCurve=98,
NUMOFEVENTS=99
};
}
#endif

View File

@ -48,18 +48,21 @@ void ProcParams::destroy (ProcParams* pp) {
void ProcParams::setDefaults () {
toneCurve.autoexp = false;
toneCurve.clip = 0.002;
toneCurve.clip = 0.001;
toneCurve.expcomp = 0;
toneCurve.brightness = 0;
toneCurve.contrast = 0;
toneCurve.black = 0;
toneCurve.hlcompr = 85;
toneCurve.shcompr = 85;
toneCurve.hlcompr = 70;
toneCurve.shcompr = 25;
toneCurve.curve.clear ();
lumaCurve.brightness = 0;
lumaCurve.contrast = 0;
lumaCurve.curve.clear ();
labCurve.brightness = 0;
labCurve.contrast = 0;
labCurve.saturation = 0;
labCurve.lcurve.clear ();
labCurve.acurve.clear ();
labCurve.bcurve.clear ();
sharpening.enabled = true;
sharpening.radius = 1.0;
@ -107,11 +110,11 @@ void ProcParams::setDefaults () {
sh.enabled = false;
sh.hq = false;
sh.highlights = 10;
sh.highlights = 0;
sh.htonalwidth = 80;
sh.shadows = 10;
sh.shadows = 0;
sh.stonalwidth = 80;
sh.localcontrast = 15;
sh.localcontrast = 0;
sh.radius = 40;
crop.enabled = false;
@ -146,6 +149,9 @@ void ProcParams::setDefaults () {
vignetting.amount = 0;
vignetting.radius = 50;
vignetting.strength = 1;
vignetting.centerX = 0;
vignetting.centerY = 0;
chmixer.red[0] = 100;
chmixer.red[1] = 0;
@ -200,7 +206,7 @@ int ProcParams::save (Glib::ustring fname) const {
SafeKeyFile keyFile;
keyFile.set_integer ("Version", "Version", 231);
keyFile.set_integer ("Version", "Version", 20101019);
// save tonecurve:
keyFile.set_boolean ("Exposure", "Auto", toneCurve.autoexp);
@ -223,10 +229,15 @@ int ProcParams::save (Glib::ustring fname) const {
keyFile.set_integer_list("Channel Mixer", "Blue", bmix);
// save luma curve
keyFile.set_integer ("Luminance Curve", "Brightness", lumaCurve.brightness);
keyFile.set_integer ("Luminance Curve", "Contrast", lumaCurve.contrast);
Glib::ArrayHandle<double> lcurve = lumaCurve.curve;
keyFile.set_double_list("Luminance Curve", "Curve", lcurve);
keyFile.set_integer ("Luminance Curve", "Brightness", labCurve.brightness);
keyFile.set_integer ("Luminance Curve", "Contrast", labCurve.contrast);
keyFile.set_integer ("Luminance Curve", "Saturation", labCurve.saturation);
Glib::ArrayHandle<double> lcurve = labCurve.lcurve;
Glib::ArrayHandle<double> acurve = labCurve.acurve;
Glib::ArrayHandle<double> bcurve = labCurve.bcurve;
keyFile.set_double_list("Luminance Curve", "LCurve", lcurve);
keyFile.set_double_list("Luminance Curve", "aCurve", acurve);
keyFile.set_double_list("Luminance Curve", "bCurve", bcurve);
// save sharpening
keyFile.set_boolean ("Sharpening", "Enabled", sharpening.enabled);
@ -329,6 +340,9 @@ int ProcParams::save (Glib::ustring fname) const {
// save vignetting correction
keyFile.set_integer ("Vignetting Correction", "Amount", vignetting.amount);
keyFile.set_integer ("Vignetting Correction", "Radius", vignetting.radius);
keyFile.set_integer ("Vignetting Correction", "Strength", vignetting.strength);
keyFile.set_integer ("Vignetting Correction", "CenterX", vignetting.centerX);
keyFile.set_integer ("Vignetting Correction", "CenterY", vignetting.centerY);
// save highlight recovery settings
keyFile.set_boolean ("HLRecovery", "Enabled", hlrecovery.enabled);
@ -450,10 +464,13 @@ if (keyFile.has_group ("Channel Mixer")) {
// load luma curve
if (keyFile.has_group ("Luminance Curve")) {
if (keyFile.has_key ("Luminance Curve", "Brightness")) lumaCurve.brightness = keyFile.get_integer ("Luminance Curve", "Brightness");
if (keyFile.has_key ("Luminance Curve", "Contrast")) lumaCurve.contrast = keyFile.get_integer ("Luminance Curve", "Contrast");
if (keyFile.has_key ("Luminance Curve", "Brightness")) labCurve.brightness = keyFile.get_integer ("Luminance Curve", "Brightness");
if (keyFile.has_key ("Luminance Curve", "Contrast")) labCurve.contrast = keyFile.get_integer ("Luminance Curve", "Contrast");
if (keyFile.has_key ("Luminance Curve", "Saturation")) labCurve.saturation = keyFile.get_integer ("Luminance Curve", "Saturation");
if (version>200)
if (keyFile.has_key ("Luminance Curve", "Curve")) lumaCurve.curve = keyFile.get_double_list ("Luminance Curve", "Curve");
if (keyFile.has_key ("Luminance Curve", "LCurve")) labCurve.lcurve = keyFile.get_double_list ("Luminance Curve", "LCurve");
if (keyFile.has_key ("Luminance Curve", "aCurve")) labCurve.acurve = keyFile.get_double_list ("Luminance Curve", "aCurve");
if (keyFile.has_key ("Luminance Curve", "bCurve")) labCurve.bcurve = keyFile.get_double_list ("Luminance Curve", "bCurve");
}
// load sharpening
@ -592,6 +609,9 @@ if (keyFile.has_group ("CACorrection")) {
if (keyFile.has_group ("Vignetting Correction")) {
if (keyFile.has_key ("Vignetting Correction", "Amount")) vignetting.amount = keyFile.get_integer ("Vignetting Correction", "Amount");
if (keyFile.has_key ("Vignetting Correction", "Radius")) vignetting.radius = keyFile.get_integer ("Vignetting Correction", "Radius");
if (keyFile.has_key ("Vignetting Correction", "Strength")) vignetting.strength = keyFile.get_integer ("Vignetting Correction", "Strength");
if (keyFile.has_key ("Vignetting Correction", "CenterX")) vignetting.centerX = keyFile.get_integer ("Vignetting Correction", "CenterX");
if (keyFile.has_key ("Vignetting Correction", "CenterY")) vignetting.centerY = keyFile.get_integer ("Vignetting Correction", "CenterY");
}
// load highlight recovery settings
@ -729,9 +749,12 @@ bool ProcParams::operator== (const ProcParams& other) {
&& toneCurve.autoexp == other.toneCurve.autoexp
&& toneCurve.clip == other.toneCurve.clip
&& toneCurve.expcomp == other.toneCurve.expcomp
&& lumaCurve.curve == other.lumaCurve.curve
&& lumaCurve.brightness == other.lumaCurve.brightness
&& lumaCurve.contrast == other.lumaCurve.contrast
&& labCurve.lcurve == other.labCurve.lcurve
&& labCurve.acurve == other.labCurve.acurve
&& labCurve.bcurve == other.labCurve.bcurve
&& labCurve.brightness == other.labCurve.brightness
&& labCurve.contrast == other.labCurve.contrast
&& labCurve.saturation == other.labCurve.saturation
&& sharpening.enabled == other.sharpening.enabled
&& sharpening.radius == other.sharpening.radius
&& sharpening.amount == other.sharpening.amount
@ -798,6 +821,9 @@ bool ProcParams::operator== (const ProcParams& other) {
&& cacorrection.blue == other.cacorrection.blue
&& vignetting.amount == other.vignetting.amount
&& vignetting.radius == other.vignetting.radius
&& vignetting.strength == other.vignetting.strength
&& vignetting.centerX == other.vignetting.centerX
&& vignetting.centerY == other.vignetting.centerY
&& !memcmp (&chmixer.red, &other.chmixer.red, 3*sizeof(int))
&& !memcmp (&chmixer.green, &other.chmixer.green, 3*sizeof(int))
&& !memcmp (&chmixer.blue, &other.chmixer.blue, 3*sizeof(int))

View File

@ -48,9 +48,12 @@ class ToneCurveParams {
class LCurveParams {
public:
std::vector<double> curve;
std::vector<double> lcurve;
std::vector<double> acurve;
std::vector<double> bcurve;
int brightness;
int contrast;
int saturation;
};
/**
@ -246,6 +249,9 @@ class VignettingParams {
public:
int amount;
int radius;
int strength;
int centerX;
int centerY;
};
/**
@ -376,7 +382,7 @@ class ProcParams {
public:
ToneCurveParams toneCurve; ///< Tone curve parameters
LCurveParams lumaCurve; ///< CIELAB luminance curve parameters
LCurveParams labCurve; ///< CIELAB luminance curve parameters
SharpeningParams sharpening; ///< Sharpening parameters
ColorBoostParams colorBoost; ///< Color boost parameters
WBParams wb; ///< White balance parameters

View File

@ -717,7 +717,7 @@ void RawImageSource::inverse33 (double (*coeff)[3], double (*icoeff)[3]) {
icoeff[2][2] = (coeff[0][1]*coeff[1][0]-coeff[0][0]*coeff[1][1]) / nom;
}
int RawImageSource::load (Glib::ustring fname) {
int RawImageSource::load (Glib::ustring fname, bool batch) {
MyTime t1,t2;
t1.set();
@ -757,7 +757,7 @@ int RawImageSource::load (Glib::ustring fname) {
for (int j=0; j<3; j++)
for (int k=0; k<3; k++)
cam[i][j] += coeff[k][i] * sRGB_d50[k][j];
camProfile = iccStore.createFromMatrix (cam, false, "Camera");
camProfile = iccStore->createFromMatrix (cam, false, "Camera");
inverse33 (cam, icam);
@ -943,9 +943,11 @@ void RawImageSource::preprocess (const RAWParams &raw)
// check if it is an olympus E camera, if yes, compute G channel pre-compensation factors
if ( raw.greenthresh || (((idata->getMake().size()>=7 && idata->getMake().substr(0,7)=="OLYMPUS" && idata->getModel()[0]=='E') || (idata->getMake().size()>=9 && idata->getMake().substr(0,7)=="Panasonic")) && raw.dmethod != RAWParams::methodstring[ RAWParams::vng4] && ri->filters) ) {
// global correction
int ng1=0, ng2=0;
double avgg1=0, avgg2=0;
for (int i=border; i<H-border; i++)
int ng1=0, ng2=0, i=0;
double avgg1=0., avgg2=0.;
#pragma omp parallel for default(shared) private(i) reduction(+: ng1, ng2, avgg1, avgg2)
for (i=border; i<H-border; i++)
for (int j=border; j<W-border; j++)
if (ISGREEN(ri,i,j)) {
if (i%2==0) {
@ -959,12 +961,17 @@ void RawImageSource::preprocess (const RAWParams &raw)
}
double corrg1 = ((double)avgg1/ng1 + (double)avgg2/ng2) / 2.0 / ((double)avgg1/ng1);
double corrg2 = ((double)avgg1/ng1 + (double)avgg2/ng2) / 2.0 / ((double)avgg2/ng2);
#pragma omp parallel for default(shared)
for (int i=border; i<H-border; i++)
for (int j=border; j<W-border; j++)
if (ISGREEN(ri,i,j))
rawData[i][j] = CLIP(rawData[i][j] * (i%2 ? corrg2 : corrg1));
if (ISGREEN(ri,i,j)) {
unsigned short currData;
currData = (unsigned short)(rawData[i][j] * (i%2 ? corrg2 : corrg1));
rawData[i][j] = CLIP(currData);
}
}
if ( raw.greenthresh >0) {
if (plistener) {
plistener->setProgressStr ("Green equilibrate...");
@ -1002,7 +1009,7 @@ void RawImageSource::demosaic(const RAWParams &raw)
MyTime t1,t2;
t1.set();
if ( raw.dmethod == RAWParams::methodstring[RAWParams::hphd] )
hphd_demosaic ();
hphd_demosaic ();
else if (raw.dmethod == RAWParams::methodstring[RAWParams::vng4] )
vng4_demosaic ();
else if (raw.dmethod == RAWParams::methodstring[RAWParams::ahd] )
@ -1017,7 +1024,7 @@ void RawImageSource::demosaic(const RAWParams &raw)
fast_demo (0,0,W,H);
else if (raw.dmethod == RAWParams::methodstring[RAWParams::bilinear] )
bilinear_demosaic();
else
else
nodemosaic();
t2.set();
if( settings->verbose )
@ -1300,7 +1307,7 @@ void RawImageSource::colorSpaceConversion (Image16* im, ColorManagementParams cm
else if (inProfile=="(camera)" || inProfile=="")
in = camprofile;
else {
in = iccStore.getProfile (inProfile);
in = iccStore->getProfile (inProfile);
if (in==NULL)
inProfile = "(camera)";
}
@ -1309,17 +1316,18 @@ void RawImageSource::colorSpaceConversion (Image16* im, ColorManagementParams cm
if (inProfile=="(camera)" || inProfile=="" || (inProfile=="(embedded)" && !embedded)) {
// in this case we avoid using the slllllooooooowwww lcms
// out = iccStore.workingSpace (wProfile);
// out = iccStore->workingSpace (wProfile);
// hTransform = cmsCreateTransform (in, TYPE_RGB_16_PLANAR, out, TYPE_RGB_16_PLANAR, settings->colorimetricIntent, cmsFLAGS_MATRIXINPUT | cmsFLAGS_MATRIXOUTPUT);//cmsFLAGS_MATRIXINPUT | cmsFLAGS_MATRIXOUTPUT);
// cmsDoTransform (hTransform, im->data, im->data, im->planestride/2);
// cmsDeleteTransform(hTransform);
TMatrix work = iccStore.workingSpaceInverseMatrix (cmp.working);
TMatrix work = iccStore->workingSpaceInverseMatrix (cmp.working);
double mat[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
for (int i=0; i<3; i++)
for (int j=0; j<3; j++)
for (int k=0; k<3; k++)
mat[i][j] += camMatrix[i][k] * work[k][j];
#pragma omp parallel for
for (int i=0; i<im->height; i++)
for (int j=0; j<im->width; j++) {
@ -1333,15 +1341,16 @@ void RawImageSource::colorSpaceConversion (Image16* im, ColorManagementParams cm
}
}
else {
out = iccStore.workingSpace (cmp.working);
// out = iccStore.workingSpaceGamma (wProfile);
out = iccStore->workingSpace (cmp.working);
// out = iccStore->workingSpaceGamma (wProfile);
lcmsMutex->lock ();
cmsHTRANSFORM hTransform = cmsCreateTransform (in, TYPE_RGB_16_PLANAR, out, TYPE_RGB_16_PLANAR, settings->colorimetricIntent, 0);
lcmsMutex->unlock ();
if (hTransform) {
if (cmp.gammaOnInput) {
double gd = pow (2.0, defgain);
defgain = 0.0;
defgain = 0.0;
#pragma omp parallel for
for (int i=0; i<im->height; i++)
for (int j=0; j<im->width; j++) {
im->r[i][j] = CurveFactory::gamma (CLIP(defgain*im->r[i][j]));
@ -1982,14 +1991,14 @@ int RawImageSource::getAEHistogram (unsigned int* histogram, int& histcompr) {
}
if (ri->filters)
for (int j=start; j<end; j++)
if (ISGREEN(ri,i,j))
/*if (ISGREEN(ri,i,j))
histogram[rawData[i][j]>>histcompr]+=2;
else
else*/
histogram[rawData[i][j]>>histcompr]+=4;
else
for (int j=start; j<3*end; j++) {
histogram[rawData[i][j+0]>>histcompr]++;
histogram[rawData[i][j+1]>>histcompr]++;
histogram[rawData[i][j+1]>>histcompr]+=2;
histogram[rawData[i][j+2]>>histcompr]++;
}
}

View File

@ -111,7 +111,7 @@ class RawImageSource : public ImageSource {
RawImageSource ();
~RawImageSource ();
int load (Glib::ustring fname);
int load (Glib::ustring fname, bool batch = false);
void preprocess (const RAWParams &raw);
void demosaic (const RAWParams &raw);
void copyOriginalPixels( RawImage *ri, RawImage *riDark );
@ -149,14 +149,14 @@ class RawImageSource : public ImageSource {
inline void interpolate_row_rb_mul_pp (unsigned short* ar, unsigned short* ab, unsigned short* pg, unsigned short* cg, unsigned short* ng, int i, double r_mul, double g_mul, double b_mul, int x1, int width, int skip);
int LinEqSolve( int nDim, float* pfMatr, float* pfVect, float* pfSolution);//Emil's CA auto correction
void CA_correct_RT (); //Emil's pre-demosaic CA correction
void CA_correct_RT ();
int cfaCleanFromMap( BYTE* bitmapBads );
int findHotDeadPixel( BYTE *bpMap, float thresh);
void ddct8x8s(int isgn, float **a);
void ddct8x8s(int isgn, float **a);
void cfa_linedn (float linenoiselevel); //Emil's line denoise
void cfa_linedn (float linenoiselevel);//Emil's line denoise
void green_equilibrate (float greenthresh);//Emil's green equilibration
void green_equilibrate (float greenthresh);//Emil's green equilibration
void nodemosaic();
void eahd_demosaic();

View File

@ -38,7 +38,7 @@ LUMINANCECURVE, // EvLContrast,
LUMINANCECURVE, // EvLBlack,
LUMINANCECURVE, // EvLHLCompr,
LUMINANCECURVE, // EvLSHCompr,
LUMINANCECURVE, // EvLCurve,
LUMINANCECURVE, // EvLLCurve,
SHARPENING, // EvShrEnabled,
SHARPENING, // EvShrRadius,
SHARPENING, // EvShrAmount,
@ -114,7 +114,10 @@ DIRPYRDENOISE, // EvDPDNEnabled,
DIRPYRDENOISE, // EvDPDNLuma,
DIRPYRDENOISE, // EvDPDNChroma,
DIRPYRDENOISE, // EvDPDNGamma,
DIRPYREQUALIZER, // EvDirPyrEqualizer
DIRPYREQUALIZER // EvDirPyrEqlEnabled
DIRPYREQUALIZER, // EvDirPyrEqualizer,
DIRPYREQUALIZER, // EvDirPyrEqlEnabled,
LUMINANCECURVE, // EvLSaturation,
LUMINANCECURVE, // EvLaCurve,
LUMINANCECURVE, // EvLbCurve
};

View File

@ -48,6 +48,62 @@ my_jpeg_stdio_src (j_decompress_ptr cinfo, FILE * infile);
namespace rtengine {
Thumbnail* Thumbnail::loadFromMemory (const char* image, int length, int &w, int &h, int fixwh) {
Image16* img = new Image16 ();
int err = img->loadJPEGFromMemory(image,length);
if (err) {
printf("loadfromMemory: error\n");
delete img;
return NULL;
}
Thumbnail* tpp = new Thumbnail ();
tpp->camwbRed = 1.0;
tpp->camwbGreen = 1.0;
tpp->camwbBlue = 1.0;
tpp->embProfileLength = 0;
unsigned char* data;
img->getEmbeddedProfileData (tpp->embProfileLength, data);
if (data && tpp->embProfileLength) {
tpp->embProfileData = new unsigned char [tpp->embProfileLength];
memcpy (tpp->embProfileData, data, tpp->embProfileLength);
}
else {
tpp->embProfileLength = 0;
tpp->embProfileData = NULL;
}
tpp->redMultiplier = 1.0;
tpp->greenMultiplier = 1.0;
tpp->blueMultiplier = 1.0;
tpp->scaleForSave = 8192;
tpp->defGain = 1.0;
tpp->gammaCorrected = false;
tpp->isRaw = 1;
memset (tpp->colorMatrix, 0, sizeof(tpp->colorMatrix));
tpp->colorMatrix[0][0] = 1.0;
tpp->colorMatrix[1][1] = 1.0;
tpp->colorMatrix[2][2] = 1.0;
if (fixwh==1) {
w = h * img->width / img->height;
tpp->scale = (double)img->height / h;
}
else {
h = w * img->height / img->width;
tpp->scale = (double)img->width / w;
}
tpp->thumbImg = img->resize (w, h, TI_Nearest);
delete img;
tpp->init ();
return tpp;
}
Thumbnail* Thumbnail::loadFromImage (const Glib::ustring& fname, int &w, int &h, int fixwh) {
Image16* img = new Image16 ();
@ -143,7 +199,7 @@ void Thumbnail::init () {
for (int j=0; j<3; j++)
for (int k=0; k<3; k++)
camToD50[i][j] += colorMatrix[k][i] * sRGB_d50[k][j];
camProfile = iccStore.createFromMatrix (camToD50, false, "Camera");
camProfile = iccStore->createFromMatrix (camToD50, false, "Camera");
}
bool Thumbnail::igammacomputed = false;
@ -173,6 +229,39 @@ Thumbnail::~Thumbnail () {
cmsCloseProfile(camProfile);
}
IImage8* Thumbnail::quickProcessImage (const procparams::ProcParams& params, int rheight, TypeInterpolation interp, double& myscale) {
int rwidth;
if (params.coarse.rotate==90 || params.coarse.rotate==270) {
rwidth = rheight;
rheight = thumbImg->height * rwidth / thumbImg->width;
}
else
rwidth = thumbImg->width * rheight / thumbImg->height;
Image16* baseImg = thumbImg->resize (rwidth, rheight, interp);
if (params.coarse.rotate) {
Image16* tmp = baseImg->rotate (params.coarse.rotate);
rwidth = tmp->width;
rheight = tmp->height;
delete baseImg;
baseImg = tmp;
}
if (params.coarse.hflip) {
Image16* tmp = baseImg->hflip ();
delete baseImg;
baseImg = tmp;
}
if (params.coarse.vflip) {
Image16* tmp = baseImg->vflip ();
delete baseImg;
baseImg = tmp;
}
Image8* img8 = baseImg->to8();
delete baseImg;
return img8;
}
IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rheight, TypeInterpolation interp, double& myscale) {
// compute WB multipliers
@ -311,11 +400,12 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei
if (params.toneCurve.autoexp && aeHistogram)
ipf.getAutoExp (aeHistogram, aeHistCompression, logDefGain, params.toneCurve.clip, br, bl);
int* curve = new int [65536];
CurveFactory::complexCurve (br, bl/65535.0, params.toneCurve.hlcompr, params.toneCurve.shcompr, params.toneCurve.brightness, params.toneCurve.contrast, logDefGain, isRaw ? 2.2 : 0, true, params.toneCurve.curve, hist16, curve, NULL, 16);
int* curve1 = new int [65536];
int* curve2 = new int [65536];
CurveFactory::complexCurve (br, bl/65535.0, params.toneCurve.hlcompr, params.toneCurve.shcompr, params.toneCurve.brightness, params.toneCurve.contrast, logDefGain, isRaw ? 2.2 : 0, true, params.toneCurve.curve, hist16, curve1, curve2, NULL, 16);
LabImage* labView = new LabImage (baseImg);
ipf.rgbProc (baseImg, labView, curve, shmap);
ipf.rgbProc (baseImg, labView, curve1, curve2, shmap);
if (shmap)
delete shmap;
@ -327,11 +417,15 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei
hist16[labView->L[i][j]]++;
// luminance processing
CurveFactory::complexCurve (0.0, 0.0, 0.0, 0.0, params.lumaCurve.brightness, params.lumaCurve.contrast, 0.0, 0.0, false, params.lumaCurve.curve, hist16, curve, NULL, 16);
CurveFactory::complexCurve (0.0, 0.0, 0.0, 0.0, params.labCurve.brightness, params.labCurve.contrast, 0.0, 0.0, false, params.labCurve.lcurve, hist16, curve1, curve2, NULL, 16);
ipf.luminanceCurve (labView, labView, curve2, 0, fh);
CurveFactory::complexsgnCurve (0.0, 100.0, params.labCurve.saturation, 1.0, params.labCurve.acurve, curve1, 16);
ipf.chrominanceCurve (labView, labView, 0, curve1, 0, fh);
CurveFactory::complexsgnCurve (0.0, 100.0, params.labCurve.saturation, 1.0, params.labCurve.bcurve, curve1, 16);
ipf.chrominanceCurve (labView, labView, 1, curve1, 0, fh);
ipf.luminanceCurve (labView, labView, curve, 0, fh);
delete [] curve;
delete [] curve1;
delete [] curve2;
delete [] hist16;
// color processing

View File

@ -70,9 +70,12 @@ namespace rtengine {
void init ();
IImage8* processImage (const procparams::ProcParams& pparams, int rheight, TypeInterpolation interp, double& scale);
IImage8* quickProcessImage (const procparams::ProcParams& pparams, int rheight, TypeInterpolation interp, double& scale);
int getImageWidth (const procparams::ProcParams& pparams, int rheight);
void getFinalSize (const rtengine::procparams::ProcParams& pparams, int& w, int& h);
static Thumbnail* loadQuickFromRaw (const Glib::ustring& fname, rtengine::RawMetaDataLocation& rml, int &w, int &h, int fixwh);
static Thumbnail* loadFromMemory (const char* image, int length, int &w, int &h, int fixwh);
static Thumbnail* loadFromRaw (const Glib::ustring& fname, RawMetaDataLocation& rml, int &w, int &h, int fixwh);
static Thumbnail* loadFromImage (const Glib::ustring& fname, int &w, int &h, int fixwh);

View File

@ -1,44 +1,45 @@
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee 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 3 of the License, or
* (at your option) any later version.
*
* RawTherapee 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 RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _RTSETTINGS_
#define _RTSETTINGS_
namespace rtengine {
/** This structure holds the global parameters used by the RT engine. */
class Settings {
public:
bool dualThreadEnabled; ///< If true, the image processing operations with utilize two processor cores (if possible)
Glib::ustring iccDirectory; ///< The directory containing the possible output icc profiles
int colorimetricIntent; ///< Colorimetric intent used at color space conversions
Glib::ustring monitorProfile; ///< ICC profile of the monitor (full path recommended)
bool verbose;
Glib::ustring darkFramesPath; ///< The default directory for dark frames
/** Creates a new instance of Settings.
* @return a pointer to the new Settings instance. */
static Settings* create ();
/** Destroys an instance of Settings.
* @param s a pointer to the Settings instance to destroy. */
static void destroy (Settings* s);
};
}
#endif
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee 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 3 of the License, or
* (at your option) any later version.
*
* RawTherapee 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 RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _RTSETTINGS_
#define _RTSETTINGS_
namespace rtengine {
/** This structure holds the global parameters used by the RT engine. */
class Settings {
public:
bool dualThreadEnabled; ///< If true, the image processing operations with utilize two processor cores (if possible)
std::string demosaicMethodBatch; ///< The algorithm used for demosaicing. Can be "eahd", "hphd", "ahd", "vng4", "amaze", "bilinear".
Glib::ustring iccDirectory; ///< The directory containing the possible output icc profiles
int colorimetricIntent; ///< Colorimetric intent used at color space conversions
Glib::ustring monitorProfile; ///< ICC profile of the monitor (full path recommended)
bool verbose;
Glib::ustring darkFramesPath; ///< The default directory for dark frames
/** Creates a new instance of Settings.
* @return a pointer to the new Settings instance. */
static Settings* create ();
/** Destroys an instance of Settings.
* @param s a pointer to the Settings instance to destroy. */
static void destroy (Settings* s);
};
}
#endif

View File

@ -51,20 +51,21 @@ void SHMap::update (Image16* img, unsigned short** buffer, double radius, double
int val = lumi[0]*img->r[i][j] + lumi[1]*img->g[i][j] + lumi[2]*img->b[i][j];
map[i][j] = CLIP(val);
}
if (!hq) {
#ifdef _OPENMP
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H)*omp_get_max_threads());
#else
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H));
#pragma omp parallel
#endif
{
if (!hq) {
AlignedBuffer<double>* buffer = new AlignedBuffer<double> (MAX(W,H));
gaussHorizontal<unsigned short> (map, map, buffer, W, H, radius, multiThread);
gaussVertical<unsigned short> (map, map, buffer, W, H, radius, multiThread);
delete buffer;
}
else {
#ifdef _OPENMP
#if 0
// the new OpenMP method does not need thread number specific code.
// #ifdef _OPENMP
#pragma omp parallel if (multiThread)
{
int tid = omp_get_thread_num();
@ -80,6 +81,9 @@ void SHMap::update (Image16* img, unsigned short** buffer, double radius, double
bilateral<unsigned short> (map, buffer, W, H, 8000, radius, 0, H);
#endif
// anti-alias filtering the result
#ifdef _OPENMP
#pragma omp for
#endif
for (int i=0; i<H; i++)
for (int j=0; j<W; j++)
if (i>0 && j>0 && i<H-1 && j<W-1)
@ -87,7 +91,7 @@ void SHMap::update (Image16* img, unsigned short** buffer, double radius, double
else
map[i][j] = buffer[i][j];
}
} // end parallel enclosure
// update average, minimum, maximum
double _avg = 0;
int n = 1;

View File

@ -128,12 +128,13 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p
ipf.getAutoExp (aehist, aehistcompr, imgsrc->getDefGain(), params.toneCurve.clip, br, bl);
}
int* curve = new int [65536];
int* curve1 = new int [65536];
int* curve2 = new int [65536];
CurveFactory::complexCurve (br, bl/65535.0, params.toneCurve.hlcompr, params.toneCurve.shcompr, params.toneCurve.brightness, params.toneCurve.contrast, imgsrc->getDefGain(), imgsrc->getGamma(), true, params.toneCurve.curve, hist16, curve, NULL);
CurveFactory::complexCurve (br, bl/65535.0, params.toneCurve.hlcompr, params.toneCurve.shcompr, params.toneCurve.brightness, params.toneCurve.contrast, imgsrc->getDefGain(), imgsrc->getGamma(), true, params.toneCurve.curve, hist16, curve1, curve2, NULL);
LabImage* labView = new LabImage (baseImg);
ipf.rgbProc (baseImg, labView, curve, shmap);
ipf.rgbProc (baseImg, labView, curve1, curve2, shmap);
if (shmap)
delete shmap;
@ -149,13 +150,19 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p
hist16[labView->L[i][j]]++;
// luminance processing
CurveFactory::complexCurve (0.0, 0.0, 0.0, 0.0, params.lumaCurve.brightness, params.lumaCurve.contrast, 0.0, 0.0, false, params.lumaCurve.curve, hist16, curve, NULL);
ipf.luminanceCurve (labView, labView, curve, 0, fh);
CurveFactory::complexCurve (0.0, 0.0, 0.0, 0.0, params.labCurve.brightness, params.labCurve.contrast, 0.0, 0.0, false, params.labCurve.lcurve, hist16, curve1, curve2, NULL);
ipf.luminanceCurve (labView, labView, curve2, 0, fh);
CurveFactory::complexsgnCurve (0.0, 100.0, params.labCurve.saturation, 1.0, params.labCurve.acurve, curve1, 1);
ipf.chrominanceCurve (labView, labView, 0, curve1, 0, fh);
CurveFactory::complexsgnCurve (0.0, 100.0, params.labCurve.saturation, 1.0, params.labCurve.bcurve, curve1, 1);
ipf.chrominanceCurve (labView, labView, 1, curve1, 0, fh);
ipf.impulsedenoise (labView);
ipf.lumadenoise (labView, buffer);
ipf.sharpening (labView, (unsigned short**)buffer);
delete [] curve;
delete [] curve1;
delete [] curve2;
delete [] hist16;
// color processing
@ -194,7 +201,7 @@ IImage16* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* p
ProfileContent pc;
if (params.icm.output.compare (0, 6, "No ICM") && params.icm.output!="")
pc = iccStore.getContent (params.icm.output);
pc = iccStore->getContent (params.icm.output);
readyImg->setOutputProfile (pc.data, pc.length);
@ -229,7 +236,8 @@ void batchProcessingThread (ProcessingJob* job, BatchProcessingListener* bpl) {
void startBatchProcessing (ProcessingJob* job, BatchProcessingListener* bpl) {
if (bpl)
Glib::Thread::create(sigc::bind(sigc::ptr_fun(batchProcessingThread), job, bpl), 0, false, true, Glib::THREAD_PRIORITY_NORMAL);
Glib::Thread::create(sigc::bind(sigc::ptr_fun(batchProcessingThread), job, bpl), 0, true, true, Glib::THREAD_PRIORITY_LOW);
}
}

26
rtengine/simpleprocess.h Normal file
View File

@ -0,0 +1,26 @@
/*
* File: simpleprocess.h
* Author: askv
*
* Created on September 18, 2010, 8:31 PM
*/
#ifndef SIMPLEPROCESS_H
#define SIMPLEPROCESS_H
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
namespace rtengine {
extern Glib::Thread *batchThread;
}
#endif /* SIMPLEPROCESS_H */

View File

@ -70,7 +70,7 @@ StdImageSource::~StdImageSource () {
freeArray<char>(needhr, img->height);
}
int StdImageSource::load (Glib::ustring fname) {
int StdImageSource::load (Glib::ustring fname, bool batch) {
fileName = fname;
@ -256,19 +256,19 @@ void StdImageSource::getImage (ColorTemp ctemp, int tran, Image16* image, Previe
void StdImageSource::colorSpaceConversion (Image16* im, ColorManagementParams cmp, cmsHPROFILE embedded) {
cmsHPROFILE in;
cmsHPROFILE out = iccStore.workingSpace (cmp.working);
cmsHPROFILE out = iccStore->workingSpace (cmp.working);
if (cmp.input=="(embedded)" || cmp.input=="" || cmp.input=="(camera)") {
if (embedded)
in = embedded;
else
in = iccStore.getsRGBProfile ();
in = iccStore->getsRGBProfile ();
}
else if (cmp.input!="(none)") {
in = iccStore.getProfile (cmp.input);
in = iccStore->getProfile (cmp.input);
if (in==NULL && embedded)
in = embedded;
else if (in==NULL)
in = iccStore.getsRGBProfile ();
in = iccStore->getsRGBProfile ();
else if (cmp.gammaOnInput)
for (int i=0; i<im->height; i++)
for (int j=0; j<im->width; j++) {

View File

@ -43,7 +43,7 @@ class StdImageSource : public ImageSource {
StdImageSource ();
~StdImageSource ();
int load (Glib::ustring fname);
int load (Glib::ustring fname, bool batch = false);
void getImage (ColorTemp ctemp, int tran, Image16* image, PreviewProps pp, HRecParams hrp, ColorManagementParams cmp, RAWParams raw);
ColorTemp getWB () { return wb; }
ColorTemp getAutoWB ();

View File

@ -54,13 +54,13 @@ ProcParams* Updater::getParams () {
void Updater::startProcessing () {
#undef THREAD_PRIORITY_NORMAL
#undef THREAD_PRIORITY_LOW
tstart.lock ();
if (ipc && !running) {
running = true;
tstart.unlock ();
Glib::Thread::create(sigc::mem_fun(*this, &Updater::process), 0, false, true, Glib::THREAD_PRIORITY_NORMAL);
Glib::Thread::create(sigc::mem_fun(*this, &Updater::process), 0, false, true, Glib::THREAD_PRIORITY_LOW);
}
else
tstart.unlock ();

View File

@ -964,7 +964,9 @@ public:
case 2: return "Depth";
case 3: return "MTF";
}
return"Normal";
}
};
PAAFModeInterpreter paAFModeInterpreter;

View File

@ -14,8 +14,9 @@ set (BASESOURCEFILES
whitebalance.cc vignetting.cc rotate.cc distortion.cc
crophandler.cc curveeditor.cc dirbrowser.cc
filecatalog.cc
previewloader.cc
histogrampanel.cc history.cc imagearea.cc
imageareapanel.cc iptcpanel.cc lcurve.cc lumadenoise.cc main.cc
imageareapanel.cc iptcpanel.cc labcurve.cc lumadenoise.cc main.cc
multilangmgr.cc mycurve.cc options.cc
preferences.cc profilepanel.cc safegtk.cc saveasdlg.cc
saveformatpanel.cc splash.cc

View File

@ -22,7 +22,10 @@
#define ADDSET_PERSPECTIVE 18
#define ADDSET_CA 19
#define ADDSET_VIGN_AMOUNT 20
#define ADDSET_LC_SATURATION 21
// When adding items, make sure to update ADDSET_PARAM_NUM
#define ADDSET_PARAM_NUM 22 // THIS IS USED AS A DELIMITER!!
#define ADDSET_PARAM_NUM 21
#endif

View File

@ -18,10 +18,12 @@
*/
#include <batchqueue.h>
#include <glibmm.h>
#include <glib/gstdio.h>
#include <multilangmgr.h>
#include <filecatalog.h>
#include <batchqueuebuttonset.h>
#include <guiutils.h>
#include <safegtk.h>
using namespace rtengine;
@ -335,6 +337,10 @@ Glib::ustring BatchQueue::autoCompleteFileName (const Glib::ustring& fileName, c
// create directory, if does not exist
if (g_mkdir_with_parents (dstdir.c_str(), 0755) )
return "";
// In overwrite mode we TRY to delete the old file first.
// if that's not possible (e.g. locked by viewer, R/O), we revert to the standard naming scheme
bool inOverwriteMode=options.overwriteOutputFile;
for (int tries=0; tries<100; tries++) {
Glib::ustring fname;
@ -343,7 +349,17 @@ Glib::ustring BatchQueue::autoCompleteFileName (const Glib::ustring& fileName, c
else
fname = Glib::ustring::compose ("%1-%2.%3", Glib::build_filename (dstdir, dstfname), tries, format);
if (!Glib::file_test (fname, Glib::FILE_TEST_EXISTS)) {
int fileExists=Glib::file_test (fname, Glib::FILE_TEST_EXISTS);
if (inOverwriteMode && fileExists) {
// do NOT use g_remove as it has compiler problems on Unix and OSX (GTK namespace problem)
if (::remove(safe_locale_from_utf8(fname).c_str ()) == -1)
inOverwriteMode = false; // failed to delete- revert to old naming scheme
else
fileExists = false; // deleted now
}
if (!fileExists) {
return fname;
}
}

View File

@ -1,269 +1,269 @@
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee 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 3 of the License, or
* (at your option) any later version.
*
* RawTherapee 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 RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <batchqueuepanel.h>
#include <options.h>
#include <preferences.h>
#include <multilangmgr.h>
#include <rtwindow.h>
BatchQueuePanel::BatchQueuePanel () {
batchQueue = new BatchQueue();
// construct batch queue panel with the extra "start" and "stop" button
Gtk::VBox* batchQueueButtonBox = Gtk::manage (new Gtk::VBox);
start = Gtk::manage (new Gtk::ToggleButton (M("FILEBROWSER_STARTPROCESSING")));
stop = Gtk::manage (new Gtk::ToggleButton (M("FILEBROWSER_STOPPROCESSING")));
autoStart = Gtk::manage (new Gtk::CheckButton (M("BATCHQUEUE_AUTOSTART")));
start->set_tooltip_text (M("FILEBROWSER_STARTPROCESSINGHINT"));
stop->set_tooltip_text (M("FILEBROWSER_STOPPROCESSINGHINT"));
autoStart->set_tooltip_text (M("FILEBROWSER_TOOLTIP_STOPPROCESSING"));
start->set_active (false);
stop->set_active (true);
autoStart->set_active (options.procQueueEnabled);
start->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-media-play"), Gtk::ICON_SIZE_BUTTON)));
startConnection = start->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::startBatchProc));
stop->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-media-stop"), Gtk::ICON_SIZE_BUTTON)));
stopConnection = stop->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::stopBatchProc));
batchQueueButtonBox->pack_start (*start, Gtk::PACK_SHRINK, 4);
batchQueueButtonBox->pack_start (*stop, Gtk::PACK_SHRINK, 4);
batchQueueButtonBox->pack_start (*autoStart, Gtk::PACK_SHRINK, 4);
// Output directory selection
fdir = Gtk::manage (new Gtk::Frame (M("PREFERENCES_OUTDIR")));
Gtk::VBox* odvb = Gtk::manage (new Gtk::VBox ());
odvb->set_border_width (4);
Gtk::HBox* hb2 = Gtk::manage (new Gtk::HBox ());
useTemplate = Gtk::manage (new Gtk::RadioButton (M("PREFERENCES_OUTDIRTEMPLATE")+":"));
hb2->pack_start (*useTemplate, Gtk::PACK_SHRINK,4);
outdirTemplate = Gtk::manage (new Gtk::Entry ());
hb2->pack_start (*outdirTemplate);
odvb->pack_start (*hb2, Gtk::PACK_SHRINK, 4);
outdirTemplate->set_tooltip_markup (M("PREFERENCES_OUTDIRTEMPLATEHINT"));
useTemplate->set_tooltip_markup (M("PREFERENCES_OUTDIRTEMPLATEHINT"));
Gtk::HBox* hb3 = Gtk::manage (new Gtk::HBox ());
useFolder = Gtk::manage (new Gtk::RadioButton (M("PREFERENCES_OUTDIRFOLDER")+":"));
hb3->pack_start (*useFolder, Gtk::PACK_SHRINK,4);
outdirFolder = Gtk::manage (new Gtk::FileChooserButton (M("PREFERENCES_OUTDIRFOLDER"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER));
hb3->pack_start (*outdirFolder);
odvb->pack_start (*hb3, Gtk::PACK_SHRINK, 4);
outdirFolder->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT"));
useFolder->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT"));
Gtk::RadioButton::Group g = useTemplate->get_group();
useFolder->set_group (g);
fdir->add (*odvb);
// Output file format selection
fformat = Gtk::manage (new Gtk::Frame (M("PREFERENCES_FILEFORMAT")));
saveFormatPanel = Gtk::manage (new SaveFormatPanel ());
fformat->add (*saveFormatPanel);
saveFormatPanel->init (options.saveFormat);
outdirTemplate->set_text (options.savePathTemplate);
if (Glib::file_test (options.savePathFolder, Glib::FILE_TEST_IS_DIR))
outdirFolder->set_filename (options.savePathFolder);
useTemplate->set_active (options.saveUsePathTemplate);
useFolder->set_active (!options.saveUsePathTemplate);
// setup signal handlers
outdirTemplate->signal_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::saveOptions));
outdirFolder->signal_current_folder_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::pathFolderChanged));
useTemplate->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::saveOptions));
useFolder->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::saveOptions));
saveFormatPanel->setListener (this);
// setup button bar
topBox = Gtk::manage (new Gtk::HBox ());
pack_start (*topBox, Gtk::PACK_SHRINK);
topBox->pack_start (*batchQueueButtonBox, Gtk::PACK_SHRINK, 4);
topBox->pack_start (*fdir);
topBox->pack_start (*fformat, Gtk::PACK_SHRINK, 4);
// add middle browser area
Gtk::HBox* hBox = Gtk::manage (new Gtk::HBox ());
pack_start (*batchQueue);
// lower box with thumbnail zoom
bottomBox = Gtk::manage (new Gtk::HBox ());
pack_start (*bottomBox, Gtk::PACK_SHRINK);
// change thumbnail arrangement button
hAlignIcon = new Gtk::Image (argv0+"/images/horizontals.png");
vAlignIcon = new Gtk::Image (argv0+"/images/verticals.png");
hAlignIcon->show ();
vAlignIcon->show ();
chAlign = Gtk::manage (new Gtk::Button ());
chAlign->show ();
bottomBox->pack_end (*chAlign, Gtk::PACK_SHRINK);
chAlign->set_image (*hAlignIcon);
chAlign->set_relief (Gtk::RELIEF_NONE);
chAlign->signal_pressed().connect (sigc::mem_fun(*this, &BatchQueuePanel::arrangementButtonPressed));
chAlign->set_tooltip_text (M("FILEBROWSER_ARRANGEMENTHINT"));
bottomBox->pack_end (*Gtk::manage (new Gtk::VSeparator), Gtk::PACK_SHRINK, 4);
if (options.fbArrangement==1)
chAlign->set_image (*vAlignIcon);
else
chAlign->set_image (*hAlignIcon);
arrangementButtonPressed ();
// thumbnail zoom
Gtk::HBox* zoomBox = Gtk::manage (new Gtk::HBox ());
zoomBox->pack_start (*Gtk::manage (new Gtk::VSeparator), Gtk::PACK_SHRINK, 4);
Gtk::Label* zoomLabel = Gtk::manage (new Gtk::Label (Glib::ustring("<b>")+M("FILEBROWSER_THUMBSIZE")+":</b>"));
zoomLabel->set_use_markup (true);
zoomBox->pack_start (*zoomLabel, Gtk::PACK_SHRINK, 4);
zoomInButton = Gtk::manage (new Gtk::Button ());
zoomInButton->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomInButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomIn));
zoomInButton->set_relief (Gtk::RELIEF_NONE);
zoomInButton->set_tooltip_text (M("FILEBROWSER_ZOOMINHINT"));
zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK);
zoomOutButton = Gtk::manage (new Gtk::Button ());
zoomOutButton->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomOutButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomOut));
zoomOutButton->set_relief (Gtk::RELIEF_NONE);
zoomOutButton->set_tooltip_text (M("FILEBROWSER_ZOOMOUTHINT"));
zoomBox->pack_end (*zoomOutButton, Gtk::PACK_SHRINK);
bottomBox->pack_end (*zoomBox, Gtk::PACK_SHRINK);
batchQueue->setBatchQueueListener (this);
show_all ();
}
void BatchQueuePanel::arrangementButtonPressed () {
if (chAlign->get_image()==hAlignIcon) {
chAlign->set_image (*vAlignIcon);
batchQueue->setArrangement (BatchQueue::TB_Vertical);
}
else {
chAlign->set_image (*hAlignIcon);
batchQueue->setArrangement (BatchQueue::TB_Horizontal);
}
}
void BatchQueuePanel::updateTab (int qsize)
{
Gtk::Notebook *nb =(Gtk::Notebook *)(this->get_parent());
Gtk::HBox* hbb = Gtk::manage (new Gtk::HBox ());
if(!qsize ){
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )));
}else if( start->get_active () ){
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
}else{
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
}
hbb->set_spacing (2);
hbb->show_all ();
nb->set_tab_label(*this,*hbb);
}
void BatchQueuePanel::queueSizeChanged (int qsize)
{
updateTab ( qsize);
}
void BatchQueuePanel::imageProcessingReady (Glib::ustring fname) {
parent->imageDeveloped (fname);
}
void BatchQueuePanel::startBatchProc () {
stopConnection.block (true);
startConnection.block (true);
stop->set_active (false);
start->set_active (true);
stopConnection.block (false);
startConnection.block (false);
if (batchQueue->hasJobs()) {
fdir->set_sensitive (false);
fformat->set_sensitive (false);
saveOptions();
batchQueue->startProcessing ();
}
else
stopBatchProc ();
updateTab (batchQueue->getEntries().size());
}
void BatchQueuePanel::stopBatchProc () {
stopConnection.block (true);
startConnection.block (true);
stop->set_active (true);
start->set_active (false);
stopConnection.block (false);
startConnection.block (false);
updateTab (batchQueue->getEntries().size());
}
void BatchQueuePanel::addBatchQueueJob (BatchQueueEntry* bqe, bool head) {
batchQueue->addEntry (bqe, head);
if (stop->get_active () && autoStart->get_active ())
startBatchProc ();
}
void BatchQueuePanel::queueEmpty () {
stopBatchProc ();
fdir->set_sensitive (true);
fformat->set_sensitive (true);
}
bool BatchQueuePanel::canStartNext () {
if (start->get_active ())
return true;
else {
fdir->set_sensitive (true);
fformat->set_sensitive (true);
return false;
}
}
void BatchQueuePanel::saveOptions () {
options.savePathTemplate = outdirTemplate->get_text();
options.saveUsePathTemplate = useTemplate->get_active();
options.procQueueEnabled = autoStart->get_active ();
}
// We only want to save the following when it changes, \
// since these settings are shared with editorpanel :
void BatchQueuePanel::pathFolderChanged () {
options.savePathFolder = outdirFolder->get_filename();
}
void BatchQueuePanel::formatChanged (Glib::ustring f) {
options.saveFormat = saveFormatPanel->getFormat ();
}
/*
* This file is part of RawTherapee.
*
* Copyright (c) 2004-2010 Gabor Horvath <hgabor@rawtherapee.com>
*
* RawTherapee 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 3 of the License, or
* (at your option) any later version.
*
* RawTherapee 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 RawTherapee. If not, see <http://www.gnu.org/licenses/>.
*/
#include <batchqueuepanel.h>
#include <options.h>
#include <preferences.h>
#include <multilangmgr.h>
#include <rtwindow.h>
BatchQueuePanel::BatchQueuePanel () {
batchQueue = new BatchQueue();
// construct batch queue panel with the extra "start" and "stop" button
Gtk::VBox* batchQueueButtonBox = Gtk::manage (new Gtk::VBox);
start = Gtk::manage (new Gtk::ToggleButton (M("FILEBROWSER_STARTPROCESSING")));
stop = Gtk::manage (new Gtk::ToggleButton (M("FILEBROWSER_STOPPROCESSING")));
autoStart = Gtk::manage (new Gtk::CheckButton (M("BATCHQUEUE_AUTOSTART")));
start->set_tooltip_text (M("FILEBROWSER_STARTPROCESSINGHINT"));
stop->set_tooltip_text (M("FILEBROWSER_STOPPROCESSINGHINT"));
autoStart->set_tooltip_text (M("FILEBROWSER_TOOLTIP_STOPPROCESSING"));
start->set_active (false);
stop->set_active (true);
autoStart->set_active (options.procQueueEnabled);
start->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-media-play"), Gtk::ICON_SIZE_BUTTON)));
startConnection = start->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::startBatchProc));
stop->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-media-stop"), Gtk::ICON_SIZE_BUTTON)));
stopConnection = stop->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::stopBatchProc));
batchQueueButtonBox->pack_start (*start, Gtk::PACK_SHRINK, 4);
batchQueueButtonBox->pack_start (*stop, Gtk::PACK_SHRINK, 4);
batchQueueButtonBox->pack_start (*autoStart, Gtk::PACK_SHRINK, 4);
// Output directory selection
fdir = Gtk::manage (new Gtk::Frame (M("PREFERENCES_OUTDIR")));
Gtk::VBox* odvb = Gtk::manage (new Gtk::VBox ());
odvb->set_border_width (4);
Gtk::HBox* hb2 = Gtk::manage (new Gtk::HBox ());
useTemplate = Gtk::manage (new Gtk::RadioButton (M("PREFERENCES_OUTDIRTEMPLATE")+":"));
hb2->pack_start (*useTemplate, Gtk::PACK_SHRINK,4);
outdirTemplate = Gtk::manage (new Gtk::Entry ());
hb2->pack_start (*outdirTemplate);
odvb->pack_start (*hb2, Gtk::PACK_SHRINK, 4);
outdirTemplate->set_tooltip_markup (M("PREFERENCES_OUTDIRTEMPLATEHINT"));
useTemplate->set_tooltip_markup (M("PREFERENCES_OUTDIRTEMPLATEHINT"));
Gtk::HBox* hb3 = Gtk::manage (new Gtk::HBox ());
useFolder = Gtk::manage (new Gtk::RadioButton (M("PREFERENCES_OUTDIRFOLDER")+":"));
hb3->pack_start (*useFolder, Gtk::PACK_SHRINK,4);
outdirFolder = Gtk::manage (new Gtk::FileChooserButton (M("PREFERENCES_OUTDIRFOLDER"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER));
hb3->pack_start (*outdirFolder);
odvb->pack_start (*hb3, Gtk::PACK_SHRINK, 4);
outdirFolder->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT"));
useFolder->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT"));
Gtk::RadioButton::Group g = useTemplate->get_group();
useFolder->set_group (g);
fdir->add (*odvb);
// Output file format selection
fformat = Gtk::manage (new Gtk::Frame (M("PREFERENCES_FILEFORMAT")));
saveFormatPanel = Gtk::manage (new SaveFormatPanel ());
fformat->add (*saveFormatPanel);
saveFormatPanel->init (options.saveFormat);
outdirTemplate->set_text (options.savePathTemplate);
if (Glib::file_test (options.savePathFolder, Glib::FILE_TEST_IS_DIR))
outdirFolder->set_current_folder (options.savePathFolder);
useTemplate->set_active (options.saveUsePathTemplate);
useFolder->set_active (!options.saveUsePathTemplate);
// setup signal handlers
outdirTemplate->signal_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::saveOptions));
outdirFolder->signal_current_folder_changed().connect (sigc::mem_fun(*this, &BatchQueuePanel::pathFolderChanged));
useTemplate->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::saveOptions));
useFolder->signal_toggled().connect (sigc::mem_fun(*this, &BatchQueuePanel::saveOptions));
saveFormatPanel->setListener (this);
// setup button bar
topBox = Gtk::manage (new Gtk::HBox ());
pack_start (*topBox, Gtk::PACK_SHRINK);
topBox->pack_start (*batchQueueButtonBox, Gtk::PACK_SHRINK, 4);
topBox->pack_start (*fdir);
topBox->pack_start (*fformat, Gtk::PACK_SHRINK, 4);
// add middle browser area
Gtk::HBox* hBox = Gtk::manage (new Gtk::HBox ());
pack_start (*batchQueue);
// lower box with thumbnail zoom
bottomBox = Gtk::manage (new Gtk::HBox ());
pack_start (*bottomBox, Gtk::PACK_SHRINK);
// change thumbnail arrangement button
hAlignIcon = new Gtk::Image (argv0+"/images/horizontals.png");
vAlignIcon = new Gtk::Image (argv0+"/images/verticals.png");
hAlignIcon->show ();
vAlignIcon->show ();
chAlign = Gtk::manage (new Gtk::Button ());
chAlign->show ();
bottomBox->pack_end (*chAlign, Gtk::PACK_SHRINK);
chAlign->set_image (*hAlignIcon);
chAlign->set_relief (Gtk::RELIEF_NONE);
chAlign->signal_pressed().connect (sigc::mem_fun(*this, &BatchQueuePanel::arrangementButtonPressed));
chAlign->set_tooltip_text (M("FILEBROWSER_ARRANGEMENTHINT"));
bottomBox->pack_end (*Gtk::manage (new Gtk::VSeparator), Gtk::PACK_SHRINK, 4);
if (options.fbArrangement==1)
chAlign->set_image (*vAlignIcon);
else
chAlign->set_image (*hAlignIcon);
arrangementButtonPressed ();
// thumbnail zoom
Gtk::HBox* zoomBox = Gtk::manage (new Gtk::HBox ());
zoomBox->pack_start (*Gtk::manage (new Gtk::VSeparator), Gtk::PACK_SHRINK, 4);
Gtk::Label* zoomLabel = Gtk::manage (new Gtk::Label (Glib::ustring("<b>")+M("FILEBROWSER_THUMBSIZE")+":</b>"));
zoomLabel->set_use_markup (true);
zoomBox->pack_start (*zoomLabel, Gtk::PACK_SHRINK, 4);
zoomInButton = Gtk::manage (new Gtk::Button ());
zoomInButton->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-zoom-in"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomInButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomIn));
zoomInButton->set_relief (Gtk::RELIEF_NONE);
zoomInButton->set_tooltip_text (M("FILEBROWSER_ZOOMINHINT"));
zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK);
zoomOutButton = Gtk::manage (new Gtk::Button ());
zoomOutButton->set_image (*Gtk::manage (new Gtk::Image (Gtk::StockID("gtk-zoom-out"), Gtk::ICON_SIZE_SMALL_TOOLBAR)));
zoomOutButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomOut));
zoomOutButton->set_relief (Gtk::RELIEF_NONE);
zoomOutButton->set_tooltip_text (M("FILEBROWSER_ZOOMOUTHINT"));
zoomBox->pack_end (*zoomOutButton, Gtk::PACK_SHRINK);
bottomBox->pack_end (*zoomBox, Gtk::PACK_SHRINK);
batchQueue->setBatchQueueListener (this);
show_all ();
}
void BatchQueuePanel::arrangementButtonPressed () {
if (chAlign->get_image()==hAlignIcon) {
chAlign->set_image (*vAlignIcon);
batchQueue->setArrangement (BatchQueue::TB_Vertical);
}
else {
chAlign->set_image (*hAlignIcon);
batchQueue->setArrangement (BatchQueue::TB_Horizontal);
}
}
void BatchQueuePanel::updateTab (int qsize)
{
Gtk::Notebook *nb =(Gtk::Notebook *)(this->get_parent());
Gtk::HBox* hbb = Gtk::manage (new Gtk::HBox ());
if(!qsize ){
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )));
}else if( start->get_active () ){
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-play.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
}else{
hbb->pack_start (*Gtk::manage (new Gtk::Image (argv0+"/images/processing-pause.png")));
hbb->pack_start (*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE")+" [" +Glib::ustring::format( qsize )+"]" )));
}
hbb->set_spacing (2);
hbb->show_all ();
nb->set_tab_label(*this,*hbb);
}
void BatchQueuePanel::queueSizeChanged (int qsize)
{
updateTab ( qsize);
}
void BatchQueuePanel::imageProcessingReady (Glib::ustring fname) {
parent->imageDeveloped (fname);
}
void BatchQueuePanel::startBatchProc () {
stopConnection.block (true);
startConnection.block (true);
stop->set_active (false);
start->set_active (true);
stopConnection.block (false);
startConnection.block (false);
if (batchQueue->hasJobs()) {
fdir->set_sensitive (false);
fformat->set_sensitive (false);
saveOptions();
batchQueue->startProcessing ();
}
else
stopBatchProc ();
updateTab (batchQueue->getEntries().size());
}
void BatchQueuePanel::stopBatchProc () {
stopConnection.block (true);
startConnection.block (true);
stop->set_active (true);
start->set_active (false);
stopConnection.block (false);
startConnection.block (false);
updateTab (batchQueue->getEntries().size());
}
void BatchQueuePanel::addBatchQueueJob (BatchQueueEntry* bqe, bool head) {
batchQueue->addEntry (bqe, head);
if (stop->get_active () && autoStart->get_active ())
startBatchProc ();
}
void BatchQueuePanel::queueEmpty () {
stopBatchProc ();
fdir->set_sensitive (true);
fformat->set_sensitive (true);
}
bool BatchQueuePanel::canStartNext () {
if (start->get_active ())
return true;
else {
fdir->set_sensitive (true);
fformat->set_sensitive (true);
return false;
}
}
void BatchQueuePanel::saveOptions () {
options.savePathTemplate = outdirTemplate->get_text();
options.saveUsePathTemplate = useTemplate->get_active();
options.procQueueEnabled = autoStart->get_active ();
}
// We only want to save the following when it changes, \
// since these settings are shared with editorpanel :
void BatchQueuePanel::pathFolderChanged () {
options.savePathFolder = outdirFolder->get_current_folder();
}
void BatchQueuePanel::formatChanged (Glib::ustring f) {
options.saveFormat = saveFormatPanel->getFormat ();
}

View File

@ -121,7 +121,7 @@ void BatchToolPanelCoordinator::initSession () {
coarse->initBatchBehavior ();
curve->setAdjusterBehavior (options.baBehav[ADDSET_TC_EXPCOMP], options.baBehav[ADDSET_TC_BRIGHTNESS], options.baBehav[ADDSET_TC_BLACKLEVEL], options.baBehav[ADDSET_TC_CONTRAST]);
lcurve->setAdjusterBehavior (options.baBehav[ADDSET_LC_BRIGHTNESS], options.baBehav[ADDSET_LC_CONTRAST]);
lcurve->setAdjusterBehavior (options.baBehav[ADDSET_LC_BRIGHTNESS], options.baBehav[ADDSET_LC_CONTRAST], options.baBehav[ADDSET_LC_SATURATION]);
whitebalance->setAdjusterBehavior (options.baBehav[ADDSET_WB_TEMPERATURE], options.baBehav[ADDSET_WB_GREEN]);
vignetting->setAdjusterBehavior (options.baBehav[ADDSET_VIGN_AMOUNT]);
rotate->setAdjusterBehavior (options.baBehav[ADDSET_ROTATE_DEGREE]);
@ -143,9 +143,10 @@ void BatchToolPanelCoordinator::initSession () {
if (options.baBehav[ADDSET_SH_SHADOWS]) pparams.sh.shadows = 0;
if (options.baBehav[ADDSET_SH_LOCALCONTRAST]) pparams.sh.localcontrast = 0;
if (options.baBehav[ADDSET_LC_BRIGHTNESS]) pparams.lumaCurve.brightness = 0;
if (options.baBehav[ADDSET_LC_CONTRAST]) pparams.lumaCurve.contrast = 0;
if (options.baBehav[ADDSET_LC_BRIGHTNESS]) pparams.labCurve.brightness = 0;
if (options.baBehav[ADDSET_LC_CONTRAST]) pparams.labCurve.contrast = 0;
if (options.baBehav[ADDSET_LC_SATURATION]) pparams.labCurve.saturation = 0;
if (options.baBehav[ADDSET_SHARP_AMOUNT]) pparams.sharpening.amount = 0;
if (options.baBehav[ADDSET_LD_EDGETOLERANCE]) pparams.lumaDenoise.edgetolerance = 0;

View File

@ -57,9 +57,10 @@ void BatchQueueEntryUpdater::add (guint8* oimg, int ow, int oh, int newh, BQEntr
void BatchQueueEntryUpdater::process () {
if (stopped)
#undef THREAD_PRIORITY_NORMAL
thread = Glib::Thread::create(sigc::mem_fun(*this, &BatchQueueEntryUpdater::process_), (unsigned long int)0, true, true, Glib::THREAD_PRIORITY_NORMAL);
if (stopped){
#undef THREAD_PRIORITY_LOW
thread = Glib::Thread::create(sigc::mem_fun(*this, &BatchQueueEntryUpdater::process_), (unsigned long int)0, true, true, Glib::THREAD_PRIORITY_LOW);
}
}
void BatchQueueEntryUpdater::process_ () {
@ -93,7 +94,7 @@ void BatchQueueEntryUpdater::stop () {
tostop = true;
Glib::Thread::self()->yield();
if (!stopped)
thread->join ();
thread->join ();
gdk_threads_enter();
}

View File

@ -24,10 +24,26 @@
#include <procparamchangers.h>
#include <safegtk.h>
CacheManager cacheMgr;
CacheManager*
CacheManager::getInstance(void)
{
static CacheManager* instance_ = 0;
if ( instance_ == 0 )
{
static Glib::Mutex smutex_;
Glib::Mutex::Lock lock(smutex_);
if ( instance_ == 0 )
{
instance_ = new CacheManager();
}
}
return instance_;
}
void CacheManager::init () {
Glib::Mutex::Lock lock(mutex_);
openEntries.clear ();
baseDir = options.cacheBaseDir;
@ -49,12 +65,18 @@ Thumbnail* CacheManager::getEntry (const Glib::ustring& fname) {
Thumbnail* res = NULL;
std::map<std::string, Thumbnail*>::iterator r = openEntries.find (fname);
// if it is open, return it
if (r!=openEntries.end()) {
r->second->increaseRef ();
return r->second;
}
// take manager lock and search for entry, if found return it else release
// lock and create it
{
Glib::Mutex::Lock lock(mutex_);
string_thumb_map::iterator r = openEntries.find (fname);
// if it is open, return it
if (r!=openEntries.end()) {
r->second->increaseRef ();
return r->second;
}
}
// compute the md5
std::string md5 = getMD5 (fname);
@ -78,6 +100,7 @@ Thumbnail* CacheManager::getEntry (const Glib::ustring& fname) {
}
// if not, create a new one
if (!res) {
res = new Thumbnail (this, fname, md5);
if (!res->isSupported ()) {
delete res;
@ -85,20 +108,45 @@ Thumbnail* CacheManager::getEntry (const Glib::ustring& fname) {
}
}
// retake the lock and see if it was added while we we're unlocked, if it
// was use it over our version. if not added we create the cache entry
if (res)
openEntries[fname] = res;
{
Glib::Mutex::Lock lock(mutex_);
string_thumb_map::iterator r = openEntries.find (fname);
if (r!=openEntries.end()) {
delete res;
r->second->increaseRef ();
return r->second;
}
// it wasn't, create a new entry
openEntries[fname] = res;
}
return res;
}
void CacheManager::deleteEntry (const Glib::ustring& fname) {
Glib::Mutex::Lock lock(mutex_);
// check if it is opened
std::map<std::string, Thumbnail*>::iterator r = openEntries.find (fname);
string_thumb_map::iterator r = openEntries.find (fname);
// if it is open, dont delete it
if (r!=openEntries.end()) {
std::string md5 = r->second->getMD5 ();
r->second->decreaseRef ();
// decrease reference count; this will call back into CacheManager so
// we release the lock for it.
{
lock.release();
r->second->decreaseRef ();
lock.acquire();
}
// if in the editor, the thumbnail still exists. If not, delete it:
r = openEntries.find (fname);
if (r==openEntries.end() && md5!="") {
@ -126,6 +174,8 @@ void CacheManager::deleteEntry (const Glib::ustring& fname) {
void CacheManager::renameEntry (const std::string& oldfilename, const std::string& oldmd5, const std::string& newfilename) {
Glib::Mutex::Lock lock(mutex_);
std::string newmd5 = getMD5 (newfilename);
::g_rename ((getCacheFileName ("profiles", oldfilename, oldmd5) + paramFileExtension).c_str(), (getCacheFileName ("profiles", newfilename, newmd5) + paramFileExtension).c_str());
@ -136,7 +186,7 @@ void CacheManager::renameEntry (const std::string& oldfilename, const std::strin
::g_rename ((getCacheFileName ("data", oldfilename, oldmd5) + ".txt").c_str(), (getCacheFileName ("data", newfilename, newmd5) + ".txt").c_str());
// check if it is opened
std::map<std::string, Thumbnail*>::iterator r = openEntries.find (oldfilename);
string_thumb_map::iterator r = openEntries.find (oldfilename);
// if it is open, update md5
if (r!=openEntries.end()) {
Thumbnail* t = r->second;
@ -144,14 +194,16 @@ void CacheManager::renameEntry (const std::string& oldfilename, const std::strin
t->setFileName (newfilename);
openEntries[newfilename] = t;
t->updateCache ();
t->reSaveThumbnail ();
t->saveThumbnail ();
}
}
void CacheManager::closeThumbnail (Thumbnail* t) {
Glib::Mutex::Lock lock(mutex_);
t->updateCache ();
std::map<std::string, Thumbnail*>::iterator r = openEntries.find (t->getFileName());
string_thumb_map::iterator r = openEntries.find (t->getFileName());
if (r!=openEntries.end())
openEntries.erase (r);
delete t;
@ -159,11 +211,15 @@ void CacheManager::closeThumbnail (Thumbnail* t) {
void CacheManager::closeCache () {
Glib::Mutex::Lock lock(mutex_);
applyCacheSizeLimitation ();
}
void CacheManager::clearAll () {
Glib::Mutex::Lock lock(mutex_);
deleteDir ("images");
deleteDir ("aehistograms");
deleteDir ("embprofiles");
@ -171,30 +227,34 @@ void CacheManager::clearAll () {
deleteDir ("data");
// re-generate thumbnail images and clear profiles of open thumbnails
std::map<std::string, Thumbnail*>::iterator i;
for (i=openEntries.begin(); i!=openEntries.end(); i++) {
i->second->clearProcParams (CACHEMGR);
i->second->generateThumbnailImage ();
i->second->updateCache ();
}
//string_thumb_map::iterator i;
//for (i=openEntries.begin(); i!=openEntries.end(); i++) {
// i->second->clearProcParams (CACHEMGR);
// i->second->generateThumbnailImage ();
// i->second->updateCache ();
//}
}
void CacheManager::clearThumbImages () {
Glib::Mutex::Lock lock(mutex_);
deleteDir ("images");
deleteDir ("aehistograms");
deleteDir ("embprofiles");
// re-generate thumbnail images of open thumbnails
std::map<std::string, Thumbnail*>::iterator i;
for (i=openEntries.begin(); i!=openEntries.end(); i++)
i->second->generateThumbnailImage ();
//string_thumb_map::iterator i;
//for (i=openEntries.begin(); i!=openEntries.end(); i++)
// i->second->generateThumbnailImage ();
}
void CacheManager::clearProfiles () {
Glib::Mutex::Lock lock(mutex_);
deleteDir ("profiles");
// clear profiles of open thumbnails
std::map<std::string, Thumbnail*>::iterator i;
string_thumb_map::iterator i;
for (i=openEntries.begin(); i!=openEntries.end(); i++)
i->second->clearProcParams (CACHEMGR);
}
@ -234,9 +294,9 @@ void CacheManager::applyCacheSizeLimitation () {
std::vector<FileMTimeInfo> flist;
Glib::ustring dataDir = Glib::build_filename (baseDir, "data");
Glib::RefPtr<Gio::File> dir = Gio::File::create_for_path (dataDir);
safe_build_file_list (dir, flist);
safe_build_file_list (dir, flist);
if (flist.size() > options.maxCacheEntries) {
std::sort (flist.begin(), flist.end());
while (flist.size() > options.maxCacheEntries) {
@ -245,7 +305,7 @@ void CacheManager::applyCacheSizeLimitation () {
::g_remove ((Glib::build_filename (Glib::build_filename (baseDir, "images"), flist.front().fname) + ".jpg").c_str());
::g_remove ((Glib::build_filename (Glib::build_filename (baseDir, "aehistograms"), flist.front().fname)).c_str());
::g_remove ((Glib::build_filename (Glib::build_filename (baseDir, "embprofiles"), flist.front().fname) + ".icc").c_str());
// ::g_remove ((Glib::build_filename (Glib::build_filename (baseDir, "profiles"), flist.front().fname) + paramFileExtension).c_str());
// ::g_remove ((Glib::build_filename (Glib::build_filename (baseDir, "profiles"), flist.front().fname) + paramFileExtension).c_str());
flist.erase (flist.begin());
}
}

View File

@ -29,14 +29,21 @@ class Thumbnail;
class CacheManager {
std::map<std::string, Thumbnail*> openEntries;
Glib::ustring baseDir;
typedef std::pair<std::string, Thumbnail*> string_thumb_pair;
typedef std::map<std::string, Thumbnail*> string_thumb_map;
string_thumb_map openEntries;
Glib::ustring baseDir;
Glib::Mutex mutex_;
void deleteDir (const Glib::ustring& dirName);
public:
CacheManager () {}
public:
static CacheManager* getInstance(void);
void init ();
Thumbnail* getEntry (const Glib::ustring& fname);
void deleteEntry (const Glib::ustring& fname);
@ -44,7 +51,7 @@ class CacheManager {
void closeThumbnail (Thumbnail* t);
const Glib::ustring& getBaseDir () { return baseDir; }
const Glib::ustring& getBaseDir () { Glib::Mutex::Lock lock(mutex_); return baseDir; }
void closeCache ();
static std::string getMD5 (const Glib::ustring& fname);
@ -58,7 +65,7 @@ class CacheManager {
Glib::ustring getCacheFileName (const Glib::ustring& subdir, const Glib::ustring& fname, const Glib::ustring& md5);
};
extern CacheManager cacheMgr;
#define cacheMgr CacheManager::getInstance()
#endif

View File

@ -268,7 +268,7 @@ void CropHandler::update () {
// crop->setWindow (cropX, cropY, cropW, cropH, zoom>=1000 ? 1 : zoom); --> we use the "getWindow" hook instead of setting the size before
crop->setListener (this);
cropPixbuf.clear ();
Glib::Thread::create(sigc::mem_fun(*crop, &DetailedCrop::fullUpdate), 0, false, true, Glib::THREAD_PRIORITY_NORMAL);
Glib::Thread::create(sigc::mem_fun(*crop, &DetailedCrop::fullUpdate), 0, false, true, Glib::THREAD_PRIORITY_LOW);
}
}

Some files were not shown because too many files have changed in this diff Show More