merge with dev - I hope no error

This commit is contained in:
Desmis 2018-11-24 14:18:37 +01:00
commit 86c03e61d4
208 changed files with 2982 additions and 2150 deletions

View File

@ -658,7 +658,6 @@ TP_CROP_GUIDETYPE;Tipus de guia:
TP_CROP_H;Alt
TP_CROP_LABEL;Cropa
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecc. cropar
TP_CROP_W;Ample
TP_CROP_X;x
TP_CROP_Y;y
@ -1317,13 +1316,18 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1438,7 +1442,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!NAVIGATOR_B;B:
!NAVIGATOR_G;G:
@ -1752,16 +1756,25 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1790,6 +1803,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: <b>-</b>
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -496,10 +496,6 @@ PREFERENCES_BLACKBODY;钨丝灯
PREFERENCES_CACHEMAXENTRIES;最大缓存数量
PREFERENCES_CACHEOPTS;缓存选项
PREFERENCES_CACHETHUMBHEIGHT;最大缩略图高度
PREFERENCES_CIEART;CIECAM02 优化
PREFERENCES_CIEART_FRAME;CIECAM02-特定选项
PREFERENCES_CIEART_LABEL;使用单浮点精度而不是双精度
PREFERENCES_CIEART_TOOLTIP;如果启用, CIECAM02 将使用单精度浮点计算, 结果是品质轻微下降, 速度则可以提高一些
PREFERENCES_CLIPPINGIND;高光溢出提示
PREFERENCES_CLUTSCACHE;HaldCLUT 缓存
PREFERENCES_CLUTSCACHE_LABEL;CLUTs 最大缓存数
@ -765,7 +761,6 @@ TP_CROP_GUIDETYPE;辅助方式:
TP_CROP_H;高
TP_CROP_LABEL;剪裁
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;选择预设
TP_CROP_W;宽
TP_CROP_X;x
TP_CROP_Y;y
@ -1392,13 +1387,18 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1518,7 +1518,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the <b>focus mask</b>.\nShortcut: <b>Shift-f</b>\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\nZoom out to 10-30% to improve detection accuracy on noisy images.
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
!OPTIONS_DEFIMG_MISSING;The default profile for <b>non-raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
@ -1704,16 +1704,25 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1739,6 +1748,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: <b>-</b>
!TP_COLORTONING_TWOBY;Special a* and b*
!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable.
!TP_COLORTONING_TWOSTD;Standard chroma
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEFRINGE_THRESHOLD;Threshold
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal

View File

@ -339,7 +339,6 @@ TP_CROP_GTRULETHIRDS;1/3法則
TP_CROP_GUIDETYPE;輔助方式:
TP_CROP_H;高
TP_CROP_LABEL;剪裁
TP_CROP_SELECTCROP; 選擇預設
TP_CROP_W;寬
TP_CROP_X;x
TP_CROP_Y;y
@ -985,13 +984,18 @@ TP_WBALANCE_TEMPERATURE;色溫
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1134,7 +1138,7 @@ TP_WBALANCE_TEMPERATURE;色溫
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1555,16 +1559,25 @@ TP_WBALANCE_TEMPERATURE;色溫
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1597,6 +1610,8 @@ TP_WBALANCE_TEMPERATURE;色溫
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -1425,7 +1425,6 @@ TP_CROP_GUIDETYPE;Druh vodítek:
TP_CROP_H;Výška
TP_CROP_LABEL;Ořez
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Vyznačit výřez
TP_CROP_W;Šířka
TP_CROP_X;X
TP_CROP_Y;Y
@ -2180,13 +2179,18 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!HISTORY_MSG_489;DRC - Detail
!HISTORY_MSG_490;DRC - Amount
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -2253,7 +2257,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!ICCPROFCREATOR_SLOPE;Slope
!ICCPROFCREATOR_TRC_PRESET;Tone response curve:
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!PARTIALPASTE_DEHAZE;Haze removal
!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter
!PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift
@ -2283,16 +2287,27 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: <b>-</b>
!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance
!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended.
!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%)
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Reglen om tredjedele
TP_CROP_GUIDETYPE;Hjælpelinjer:
TP_CROP_H;H
TP_CROP_LABEL;Beskær
TP_CROP_SELECTCROP; Vælg beskæring
TP_CROP_W;B
TP_CROP_X;x
TP_CROP_Y;y
@ -980,13 +979,18 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1130,7 +1134,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1552,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1594,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -71,6 +71,8 @@
#70 25.07.2018 Korrekturen (TooWaBoo) RT 5.4
#71 28.09.2018 Korrekturen (TooWaBoo) RT 5.5
#72 05.10.2018 Korrekturen (TooWaBoo) RT 5.5
#73 21.11.2018 Erweiterung (TooWaBoo) RT 5.5
#74 24.11.2018 Erweiterung (TooWaBoo) RT 5.5
ABOUT_TAB_BUILD;Version
ABOUT_TAB_CREDITS;Danksagungen
@ -113,6 +115,10 @@ DYNPROFILEEDITOR_DELETE;Löschen
DYNPROFILEEDITOR_EDIT;Ändern
DYNPROFILEEDITOR_EDIT_RULE;Profilregel ändern
DYNPROFILEEDITOR_ENTRY_TOOLTIP;Groß-/Kleinschreibung wird NICHT berücksichtigt.\nFür einen regulären Ausdruck benutzen Sie bitte\n"re:" als Prefix.
DYNPROFILEEDITOR_IMGTYPE_ANY;Alle
DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
DYNPROFILEEDITOR_IMGTYPE_PS;Pixel-Shift
DYNPROFILEEDITOR_IMGTYPE_STD;Standard
DYNPROFILEEDITOR_MOVE_DOWN;Runter
DYNPROFILEEDITOR_MOVE_UP;Hoch
DYNPROFILEEDITOR_NEW;Neu
@ -152,15 +158,15 @@ EXPORT_BYPASS_DEFRINGE;Farbsaum entfernen überspringen
EXPORT_BYPASS_DIRPYRDENOISE;Rauschreduzierung überspringen
EXPORT_BYPASS_DIRPYREQUALIZER;Detailebenenkontrast überspringen
EXPORT_BYPASS_EQUALIZER;Waveletebenen überspringen
EXPORT_BYPASS_RAW_CA;CA-Korrektur überspringen [RAW]
EXPORT_BYPASS_RAW_CCSTEPS;Falschfarbenreduzierung überspringen\n[RAW]
EXPORT_BYPASS_RAW_DCB_ENHANCE;DCB-Verbesserungsstufen überspringen\n[RAW]
EXPORT_BYPASS_RAW_DCB_ITERATIONS;DCB-Interationen überspringen [RAW]
EXPORT_BYPASS_RAW_DF;Dunkelbild überspringen [RAW]
EXPORT_BYPASS_RAW_FF;Weißbild überspringen [RAW]
EXPORT_BYPASS_RAW_GREENTHRESH;Grün-Ausgleich überspringen [RAW]
EXPORT_BYPASS_RAW_LINENOISE;Zeilenrauschfilter überspringen [RAW]
EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;LMMSE-Verbesserungsstufen überspringen [RAW]
EXPORT_BYPASS_RAW_CA;CA-Korrektur überspringen
EXPORT_BYPASS_RAW_CCSTEPS;Falschfarbenreduzierung überspringen
EXPORT_BYPASS_RAW_DCB_ENHANCE;DCB-Verbesserungsstufen überspringen
EXPORT_BYPASS_RAW_DCB_ITERATIONS;DCB-Interationen überspringen
EXPORT_BYPASS_RAW_DF;Dunkelbild überspringen
EXPORT_BYPASS_RAW_FF;Weißbild überspringen
EXPORT_BYPASS_RAW_GREENTHRESH;Grün-Ausgleich überspringen
EXPORT_BYPASS_RAW_LINENOISE;Zeilenrauschfilter überspringen
EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;LMMSE-Verbesserungsstufen überspringen
EXPORT_BYPASS_SHARPENEDGE;Kantenschärfung überspringen
EXPORT_BYPASS_SHARPENING;Schärfung überspringen
EXPORT_BYPASS_SHARPENMICRO;Mikrokontrast überspringen
@ -173,7 +179,7 @@ EXPORT_PIPELINE;Verarbeitungspipeline
EXPORT_PUTTOQUEUEFAST; Zur Warteschlange “Schneller Export“ hinzufügen
EXPORT_RAW_DMETHOD;Demosaikmethode
EXPORT_USE_FAST_PIPELINE;Priorität Geschwindigkeit
EXPORT_USE_FAST_PIPELINE_TIP;Wendet alle Bearbeitungsschritte, im Gegensatz\nzu „Standard“ , auf das bereits skalierte Bild an.\nDadurch steigt die Verarbeitungsgeschwindigkeit\nauf Kosten der Qualität.
EXPORT_USE_FAST_PIPELINE_TIP;Wendet alle Bearbeitungsschritte, im Gegensatz\nzu „Standard“, auf das bereits skalierte Bild an.\nDadurch steigt die Verarbeitungsgeschwindigkeit\nauf Kosten der Qualität.
EXPORT_USE_NORMAL_PIPELINE;Standard
EXTPROGTARGET_1;RAW
EXTPROGTARGET_2;Stapelverarbeitung beendet
@ -185,6 +191,8 @@ FILEBROWSER_AUTOFLATFIELD;Automatisches Weißbild
FILEBROWSER_BROWSEPATHBUTTONHINT;Ausgewählten Pfad öffnen.
FILEBROWSER_BROWSEPATHHINT;Einen Pfad eingeben:\nTaste:\n<b>Strg</b> + <b>o</b> Setzt den Cursor in das Eingabefeld\n<b>Enter</b> Öffnet den Pfad\n<b>Esc</b> Änderungen verwerfen\n<b>Umschalt</b> + <b>Esc</b> Eingabefeld verlassen\n\nSchnellnavigation:\nTaste:\n<b>~</b> “Home“-Verzeichnis des Benutzers\n<b>!</b> Bilder-Verzeichnis des Benutzers
FILEBROWSER_CACHE;Festplatten-Cache
FILEBROWSER_CACHECLEARFROMFULL;Alle zwischengespeicherte Profile löschen
FILEBROWSER_CACHECLEARFROMPARTIAL;Alle NICHT zwischengespeicherte Profile löschen
FILEBROWSER_CLEARPROFILE;Profil löschen
FILEBROWSER_COLORLABEL_TOOLTIP;<b>Farbmarkierung</b>\n\nTaste: <b>Strg</b> + <b>Umschalt</b> + <b>0</b> Ohne\nTaste: <b>Strg</b> + <b>Umschalt</b> + <b>1</b> Rot\nTaste: <b>Strg</b> + <b>Umschalt</b> + <b>2</b> Gelb\nTaste: <b>Strg</b> + <b>Umschalt</b> + <b>3</b> Grün\nTaste: <b>Strg</b> + <b>Umschalt</b> + <b>4</b> Blau\nTaste: <b>Strg</b> + <b>Umschalt</b> + <b>5</b> Violett
FILEBROWSER_COPYPROFILE;Profil kopieren
@ -354,7 +362,7 @@ HISTORY_MSG_32;(Schärfung) - RLD\nDämpfung
HISTORY_MSG_33;(Schärfung) - RLD\nIterationen
HISTORY_MSG_34;(Objektivkorrektur)\nProfil - Verzeichnung
HISTORY_MSG_35;(Objektivkorrektur)\nProfil - Vignettierung
HISTORY_MSG_36;(Objektivkorrektur)\nProfil - CA-Korrektur
HISTORY_MSG_36;(Objektivkorrektur)\nProfil - CA
HISTORY_MSG_37;(Belichtung) - Auto
HISTORY_MSG_38;(Weißabgleich) - Methode
HISTORY_MSG_39;(Weißabgleich)\nFarbtemperatur
@ -790,12 +798,31 @@ HISTORY_MSG_485;(Objektivkorrektur)\nProfil
HISTORY_MSG_486;(Objektivkorrektur)\nProfil - Kamera
HISTORY_MSG_487;(Objektivkorrektur)\nProfil - Objektiv
HISTORY_MSG_488;(Dynamikkompression)
HISTORY_MSG_489;(Dynamikkompression)\nDetails
HISTORY_MSG_490;(Dynamikkompression)\nIntensität
HISTORY_MSG_491;(Weißabgleich)
HISTORY_MSG_492;(RGB-Kurven)
HISTORY_MSG_493;(L*a*b*)
HISTORY_MSG_CLAMPOOG;(Belichtung) - Farben\nauf Farbraum beschränken
HISTORY_MSG_COLORTONING_LABGRID_VALUE;(Farbanpassungen)\nL*a*b* - Farbkorrektur
HISTORY_MSG_COLORTONING_LABGRID_VALUE;(Farbanpassungen)\nL*a*b*-Farbkorrektur
HISTORY_MSG_COLORTONING_LABREGION_AB;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich
HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Kanal
HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - C-Maske
HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - H-Maske
HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Helligkeit
HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - L-Maske
HISTORY_MSG_COLORTONING_LABREGION_LIST;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Liste
HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maskenunschärfe
HISTORY_MSG_COLORTONING_LABREGION_OFFSET;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Versatz
HISTORY_MSG_COLORTONING_LABREGION_POWER;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Verstärkung
HISTORY_MSG_COLORTONING_LABREGION_SATURATION;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Sättigung
HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Maske anzeigen
HISTORY_MSG_COLORTONING_LABREGION_SLOPE;(Farbanpassungen)\nL*a*b*-Farbkorrektur\nBereich - Steigung
HISTORY_MSG_DEHAZE_DEPTH;(Bildschleier entfernen)\nTiefe
HISTORY_MSG_DEHAZE_ENABLED;(Bildschleier entfernen)
HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;(Bildschleier entfernen)\nMaske anzeigen
HISTORY_MSG_DEHAZE_STRENGTH;(Bildschleier entfernen)\nIntensität
HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;(Sensor—Matrix)\nFarbinterpolation\nAuto-Kontrastschwelle
HISTORY_MSG_DUALDEMOSAIC_CONTRAST;(Sensor-Matrix)\nFarbinterpolation\nKontrastschwelle
HISTORY_MSG_HISTMATCHING;(Belichtung)\nAuto-Tonwertkurve
HISTORY_MSG_ICM_OUTPUT_PRIMARIES;(Farbmanagement)\nAusgabeprofil\nVorlagen
@ -820,6 +847,7 @@ HISTORY_MSG_RAWCACORR_COLORSHIFT;(Sensor-Matrix)\nChromatische Aberration\nFarbv
HISTORY_MSG_RAW_BORDER;(Sensor-Matrix)\nFarbinterpolation\nBildrand
HISTORY_MSG_RESIZE_ALLOWUPSCALING;(Skalieren)\nHochskalieren zulassen
HISTORY_MSG_SHARPENING_CONTRAST;(Schärfung)\nKontrastschwelle
HISTORY_MSG_SH_COLORSPACE;Farbraum
HISTORY_MSG_SOFTLIGHT_ENABLED;(Weiches Licht)
HISTORY_MSG_SOFTLIGHT_STRENGTH;(Weiches Licht)\nIntensität
HISTORY_MSG_TM_FATTAL_ANCHOR;(Dynamikkompression)\nHelligkeitsverschiebung
@ -982,7 +1010,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Vorschau Fokusmaske\nTaste: <b>Umschalt</b> + <b>f
MAIN_TOOLTIP_PREVIEWG;Vorschau Grün-Kanal\nTaste: <b>g</b>
MAIN_TOOLTIP_PREVIEWL;Vorschau Helligkeit\nTaste: <b>v</b>\n\n0.299·R + 0.587·G + 0.114·B
MAIN_TOOLTIP_PREVIEWR;Vorschau Rot-Kanal\nTaste: <b>r</b>
MAIN_TOOLTIP_PREVIEWSHARPMASK;Schärfungs-Kontroll-Maske ein-/ausschalten.\n\nFunktioniert nur bei aktivierter Schärfung\nund Zoom >= 100%.
MAIN_TOOLTIP_PREVIEWSHARPMASK;Schärfungs-Kontroll-Maske ein-/ausschalten.\n\nFunktioniert nur bei aktivierter Schärfung\nund Zoom >= 100%.\nTaste: <b>p</b>
MAIN_TOOLTIP_QINFO;Bildinformationen ein-/ausblenden.\nTaste: <b>i</b>
MAIN_TOOLTIP_SHOWHIDELP1;Linkes Bedienfeld ein-/ausblenden.\nTaste: <b>l</b>
MAIN_TOOLTIP_SHOWHIDERP1;Rechtes Bedienfeld ein-/ausblenden.\nTaste: <b>Alt</b> + <b>l</b>
@ -1020,6 +1048,7 @@ PARTIALPASTE_CROP;Ausschnitt
PARTIALPASTE_DARKFRAMEAUTOSELECT;Dunkelbild: Automatische Auswahl
PARTIALPASTE_DARKFRAMEFILE;Dunkelbild: Datei
PARTIALPASTE_DEFRINGE;Farbsaum entfernen (Defringe)
PARTIALPASTE_DEHAZE;Bildschleier entfernen
PARTIALPASTE_DETAILGROUP;Detailparameter
PARTIALPASTE_DIALOGLABEL;Selektives Einfügen des Bearbeitungsprofils
PARTIALPASTE_DIRPYRDENOISE;Rauschreduzierung
@ -1085,9 +1114,15 @@ PARTIALPASTE_VIGNETTING;Vignettierungskorrektur
PARTIALPASTE_WAVELETGROUP;Wavelet
PARTIALPASTE_WHITEBALANCE;Weißabgleich
PREFERENCES_ADD;HINZU
PREFERENCES_APPEARANCE;Oberflächendesign (erfordert Neustart)
PREFERENCES_APPEARANCE_COLORPICKERFONT;Schriftart Farbwähler
PREFERENCES_APPEARANCE_CROPMASKCOLOR;Farbe/Transparenz für Schnittmaske
PREFERENCES_APPEARANCE_MAINFONT;Schriftart:
PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Farbe der Navigationshilfe
PREFERENCES_APPEARANCE_THEME;Oberflächendesign
PREFERENCES_APPLNEXTSTARTUP;erfordert Neustart
PREFERENCES_AUTOMONPROFILE;Automatisch das für den aktuellen Monitor festgelegte Profil verwenden
PREFERENCES_AUTOSAVE_TP_OPEN;Werkzeugstatus vor dem Beenden automatisch speichern
PREFERENCES_BATCH_PROCESSING;Stapelverarbeitung
PREFERENCES_BEHADDALL;Alle hinzufügen
PREFERENCES_BEHADDALLHINT;Setzt alle Parameter auf <b>Hinzufügen</b>.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als <b>Deltas</b> zu den gespeicherten Werten interpretiert.
@ -1095,13 +1130,14 @@ PREFERENCES_BEHAVIOR;Verhalten
PREFERENCES_BEHSETALL;Alle setzen
PREFERENCES_BEHSETALLHINT;Setzt alle Parameter auf <b>Setzen</b>.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als <b>Absolut</b> zu den gespeicherten Werten interpretiert.
PREFERENCES_BLACKBODY;Wolfram
PREFERENCES_CACHECLEAR;Löschen
PREFERENCES_CACHECLEAR_ALL;Alle Dateien im Zwischenspeicher löschen:
PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Alle Dateien im Zwischenspeicher löschen mit Ausnahme der Bearbeitungsprofile:
PREFERENCES_CACHECLEAR_ONLYPROFILES;Alle Bearbeitungsprofile im Zwischenspeicher löschen:
PREFERENCES_CACHECLEAR_SAFETY;Nur Dateien im Zwischenspeicher werden gelöscht. Bearbeitungsprofile im Bildordner bleiben unberührt.
PREFERENCES_CACHEMAXENTRIES;Maximale Anzahl der Miniaturbilder im Festplatten-Cache
PREFERENCES_CACHEOPTS;Einstellungen des Festplatten-Cache für Miniaturbilder
PREFERENCES_CACHETHUMBHEIGHT;Maximale Höhe der Miniaturbilder
PREFERENCES_CIEART;CIECAM02-Optimierung
PREFERENCES_CIEART_FRAME;CIECAM02-spezifische Einstellungen
PREFERENCES_CIEART_LABEL;Einfache statt doppelte Genauigkeit
PREFERENCES_CIEART_TOOLTIP;Wenn aktiviert, werden CIECAM02-Berechnungen mit einfacher Genauigkeit statt doppelter durchgeführt. Dadurch wird der Vorgang etwas beschleunigt. Die Qualität nimmt jedoch geringfügig ab.
PREFERENCES_CLIPPINGIND;Anzeige zu heller/dunkler Bereiche
PREFERENCES_CLUTSCACHE;HaldCLUT-Zwischenspeicher
PREFERENCES_CLUTSCACHE_LABEL;Maximale Anzahl CLUTs im Zwischenspeicher
@ -1145,6 +1181,7 @@ PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile
PREFERENCES_EDITORLAYOUT;Editor-Layout
PREFERENCES_EXTERNALEDITOR;Externer Editor
PREFERENCES_FBROWSEROPTS;Bildinformationen und Miniaturbilder
PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar
PREFERENCES_FILEFORMAT;Dateiformat
PREFERENCES_FLATFIELDFOUND;Gefunden
PREFERENCES_FLATFIELDSDIR;Weißbild-Verzeichnis
@ -1176,7 +1213,7 @@ PREFERENCES_HISTOGRAM_TOOLTIP;Wenn aktiviert, wird das Arbeitsprofil für die Da
PREFERENCES_HLTHRESHOLD;Lichter - Schwelle
PREFERENCES_ICCDIR;ICC-Profile-Verzeichnis
PREFERENCES_IMG_RELOAD_NEEDED;Änderungen werden nur auf neu geöffnete Bilder angewendet
PREFERENCES_IMPROCPARAMS;Standard-Bildverarbeitungsparameter
PREFERENCES_IMPROCPARAMS;Standard-Bearbeitungsprofile
PREFERENCES_INSPECT_LABEL;Bildzwischenspeicher
PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximale Anzahl Bilder im Zwischenspeicher
PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Legt die maximale Anzahl Bilder fest, die im Zwischenspeicher gehalten werden, wenn man in der Dateiverwaltung mit der Maus über ein Bild fährt.\n\nAuf Systemen mit nicht mehr als 2GB RAM, sollte der Wert nicht größer als 2 gewählt werden.
@ -1228,9 +1265,9 @@ PREFERENCES_PROFILEHANDLING;Behandlung der Bearbeitungsprofile
PREFERENCES_PROFILELOADPR;Priorität der Profile beim Laden
PREFERENCES_PROFILEPRCACHE;Bearbeitungsprofil im Festplatten-Cache
PREFERENCES_PROFILEPRFILE;Bearbeitungsprofil welches dem geladenen Bild beiliegt (Sidecar)
PREFERENCES_PROFILESAVEBOTH;Verarbeitungsparameter im Festplatten-Cache und zusammen mit dem Bild speichern
PREFERENCES_PROFILESAVECACHE;Verarbeitungsparameter im Festplatten-Cache speichern
PREFERENCES_PROFILESAVEINPUT;Verarbeitungsparameter zusammen mit dem Bild speichern (Sidecar)
PREFERENCES_PROFILESAVEBOTH;Bearbeitungsprofile im Festplatten-Cache und zusammen mit dem Bild speichern
PREFERENCES_PROFILESAVECACHE;Bearbeitungsprofile im Festplatten-Cache speichern
PREFERENCES_PROFILESAVEINPUT;Bearbeitungsprofile zusammen mit dem Bild speichern (Sidecar)
PREFERENCES_PROFILESAVELOCATION;Speicherort der Profile
PREFERENCES_PROFILE_NONE;Kein Farbprofil
PREFERENCES_PROPERTY;Eigenschaft
@ -1330,7 +1367,7 @@ SAVEDLG_PUTTOQUEUE;Zur Warteschlange hinzufügen
SAVEDLG_PUTTOQUEUEHEAD;An den Anfang der Warteschlange hinzufügen
SAVEDLG_PUTTOQUEUETAIL;An das Ende der Warteschlange hinzufügen
SAVEDLG_SAVEIMMEDIATELY;Sofort speichern
SAVEDLG_SAVESPP;Verarbeitungsparameter mit dem Bild speichern
SAVEDLG_SAVESPP;Bearbeitungsprofile mit dem Bild speichern
SAVEDLG_SUBSAMP;Komprimierung
SAVEDLG_SUBSAMP_1;Beste Kompression
SAVEDLG_SUBSAMP_2;Ausgeglichen
@ -1427,6 +1464,7 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Horizontal spiegeln.
TP_COARSETRAF_TOOLTIP_ROTLEFT;Nach links drehen.\nTaste: <b>[</b>
TP_COARSETRAF_TOOLTIP_ROTRIGHT;Nach rechts drehen.\nTaste: <b>]</b>
TP_COARSETRAF_TOOLTIP_VFLIP;Vertikal spiegeln.
TP_COLORAPP_ABSOLUTELUMINANCE;Absolute Luminanz
TP_COLORAPP_ALGO;Algorithmus
TP_COLORAPP_ALGO_ALL;Alle
TP_COLORAPP_ALGO_JC;Helligkeit + Buntheit (JH)
@ -1437,6 +1475,7 @@ TP_COLORAPP_BADPIXSL;Hot / Bad-Pixelfilter
TP_COLORAPP_BADPIXSL_TOOLTIP;Unterdrückt “Hot / Bad“-Pixel\n\n0 = keine Auswirkung\n1 = Mittel\n2 = Gaussian
TP_COLORAPP_BRIGHT;Helligkeit (Q)
TP_COLORAPP_BRIGHT_TOOLTIP;Helligkeit in CIECAM02 berücksichtigt die Weißintensität und unterscheidet sich von L*a*b* und RGB-Helligkeit.
TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;Bei manueller Einstellung werden Werte über 65 empfohlen.
TP_COLORAPP_CHROMA;Buntheit (H)
TP_COLORAPP_CHROMA_M;Farbigkeit (M)
TP_COLORAPP_CHROMA_M_TOOLTIP;Die Farbigkeit in CIECAM02 unterscheidet sich\nvon L*a*b*- und RGB-Farbigkeit.
@ -1467,6 +1506,7 @@ TP_COLORAPP_LABEL_SCENE;Umgebungsbedingungen (Szene)
TP_COLORAPP_LABEL_VIEWING;Betrachtungsbedingungen
TP_COLORAPP_LIGHT;Helligkeit (J)
TP_COLORAPP_LIGHT_TOOLTIP;Helligkeit in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB Helligkeit.
TP_COLORAPP_MEANLUMINANCE;Mittlere Luminanz (Yb%)
TP_COLORAPP_MODEL;Weißpunktmodell
TP_COLORAPP_MODEL_TOOLTIP;<b>Weißabgleich [RT] + [Ausgabe]:</b>\nRT's Weißabgleich wird für die Szene verwendet,\nCIECAM02 auf D50 gesetzt und der Weißabgleich\ndes Ausgabegerätes kann unter:\n<i>Einstellungen > Farb-Management</i>\neingestellt werden.\n\n<b>Weißabgleich [RT+CAT02] + [Ausgabe]:</b>\nRT's Weißabgleich wird für CAT02 verwendet und\nder Weißabgleich des Ausgabegerätes kann unter\n<i>Einstellungen > Farb-Management</i>\neingestellt werden.
TP_COLORAPP_NEUTRAL;Zurücksetzen
@ -1506,8 +1546,27 @@ TP_COLORTONING_HIGHLIGHT;Lichter
TP_COLORTONING_HUE;Farbton
TP_COLORTONING_LAB;L*a*b*-Überlagerung
TP_COLORTONING_LABEL;Farbanpassungen
TP_COLORTONING_LABGRID;L*a*b* - Farbkorrektur
TP_COLORTONING_LABGRID;L*a*b*-Farbkorrektur
TP_COLORTONING_LABGRID_VALUES;HL: a=%1, b=%2\nS: a=%3, b=%4
TP_COLORTONING_LABREGIONS;L*a*b*-Farbkorrektur Bereiche
TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
TP_COLORTONING_LABREGION_CHANNEL;Kanal
TP_COLORTONING_LABREGION_CHANNEL_ALL;Alle
TP_COLORTONING_LABREGION_CHANNEL_B;Blau
TP_COLORTONING_LABREGION_CHANNEL_G;Grün
TP_COLORTONING_LABREGION_CHANNEL_R;Rot
TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
TP_COLORTONING_LABREGION_HUEMASK;H
TP_COLORTONING_LABREGION_LIGHTNESS;Helligkeit
TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
TP_COLORTONING_LABREGION_LIST_TITLE;Farbkorrektur
TP_COLORTONING_LABREGION_MASK;Maske
TP_COLORTONING_LABREGION_MASKBLUR;Maskenunschärfe
TP_COLORTONING_LABREGION_OFFSET;Versatz
TP_COLORTONING_LABREGION_POWER;Verstärkung
TP_COLORTONING_LABREGION_SATURATION;Sättigung
TP_COLORTONING_LABREGION_SHOWMASK;Maske anzeigen
TP_COLORTONING_LABREGION_SLOPE;Steigung
TP_COLORTONING_LUMA;Luminanz
TP_COLORTONING_LUMAMODE;Luminanz schützen
TP_COLORTONING_LUMAMODE_TOOLTIP;Wenn aktiviert, wird die Luminanz der Farben Rot, Grün, Cyan, Blau... geschützt.
@ -1546,16 +1605,21 @@ TP_CROP_GTTRIANGLE2;Goldenes Dreieck 2
TP_CROP_GUIDETYPE;Hilfslinien:
TP_CROP_H;Höhe
TP_CROP_LABEL;Ausschnitt
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Ausschnitt wählen
TP_CROP_PPI;PPI =
TP_CROP_RESETCROP;Zurücksetzen
TP_CROP_SELECTCROP;Ausschnitt
TP_CROP_W;Breite
TP_CROP_X;x
TP_CROP_Y;y
TP_CROP_X;Links
TP_CROP_Y;Oben
TP_DARKFRAME_AUTOSELECT;Automatische Auswahl
TP_DARKFRAME_LABEL;Dunkelbild
TP_DEFRINGE_LABEL;Farbsaum entfernen (Defringe)
TP_DEFRINGE_RADIUS;Radius
TP_DEFRINGE_THRESHOLD;Schwelle
TP_DEHAZE_DEPTH;Tiefe
TP_DEHAZE_LABEL;Bildschleier entfernen
TP_DEHAZE_SHOW_DEPTH_MAP;Maske anzeigen
TP_DEHAZE_STRENGTH;Intensität
TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto-Multizonen
TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatisch Global
TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Bewertung des Farbrauschens.\nDie Bewertung ist ungenau und sehr subjektiv!
@ -1794,7 +1858,16 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Kann mit dem Chromatizitätsregler und\nder CC-Kurve
TP_LENSGEOM_AUTOCROP;Auto-Schneiden
TP_LENSGEOM_FILL;Auto-Füllen
TP_LENSGEOM_LABEL;Objektivkorrekturen
TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatisch (Lensfun)
TP_LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei
TP_LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun)
TP_LENSPROFILE_LABEL;Objektivkorrekturprofil
TP_LENSPROFILE_LENS_WARNING;Achtung: Der Crop-Faktor des Profils entspricht\nnicht dem der Kamera.\nDie Ergebnisse sind möglicherweise falsch.
TP_LENSPROFILE_MODE_HEADER;Profil auswählen
TP_LENSPROFILE_USE_CA;CA
TP_LENSPROFILE_USE_GEOMETRIC;Verzeichnung
TP_LENSPROFILE_USE_HEADER;Korrektur auswählen
TP_LENSPROFILE_USE_VIGNETTING;Vignettierung
TP_LOCALCONTRAST_AMOUNT;Intensität
TP_LOCALCONTRAST_DARKNESS;Dunkle Bereiche
TP_LOCALCONTRAST_LABEL;Lokaler Kontrast
@ -1835,8 +1908,9 @@ TP_PREPROCESS_PDAFLINESFILTER;PDAF-Zeilenfilter
TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Minimiert Streifenrauschen, das bei Gegenlichtaufnahmen mit\nsichtbaren Flares einiger spiegellosen Sony-Kameras entsteht.
TP_PRSHARPENING_LABEL;Nach Skalierung schärfen
TP_PRSHARPENING_TOOLTIP;Schärft das Bild nach der Größenänderung.\nFunktioniert nur mit der Methode “Lanczos“.\nDas Ergebnis wird nicht in RawTherapee\nangezeigt.\n\nWeitere Informationen finden Sie auf “RawPedia“.
TP_RAWCACORR_AUTO;Automatische Korrektur
TP_RAWCACORR_AUTO;Autokorrektur
TP_RAWCACORR_AUTOIT;Iterationen
TP_RAWCACORR_AUTOIT_TOOLTIP;Diese Einstellung ist verfügbar, wenn "Autokorrektur" aktiviert ist.\nDie Autokorrektur ist konservativ, d.h. sie korrigiert häufig nicht alle\nchromatischen Aberrationen. Um die verbleibenden chromatischen\nAberrationen zu korrigieren, können Sie bis zu fünf Iterationen\nverwenden. Jede Iteration verringert die verbleibende chromatische\nAberration auf Kosten zusätzlicher Verarbeitungszeit.
TP_RAWCACORR_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden
TP_RAWCACORR_CABLUE;Blau
TP_RAWCACORR_CARED;Rot
@ -1869,6 +1943,8 @@ TP_RAW_DMETHOD;Methode
TP_RAW_DMETHOD_PROGRESSBAR;%1 verarbeitet
TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaikoptimierung
TP_RAW_DMETHOD_TOOLTIP;<b>IGV</b> und <b>LMMSE</b> sind speziel für High-ISO-Aufnahmen um die\nRauschreduzierung zu unterstützen ohne zu Maze-Mustern,\nPosterisierung oder einem ausgewaschenen Look zu führen.\n\n<b>Pixel-Shift</b> ist für “Pentax Pixel-Shift“-Dateien. Für "Nicht-Pixel-\nShift"-Dateien wird automatisch AMaZE verwendet.
TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto-Kontrastschwelle
TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;Wenn das Kontrollkästchen aktiviert ist (empfohlen), berechnet\nRawTherapee einen optimalen Wert auf der Grundlage homogener\nBereiche im Bild. Wenn kein homogener Bereich vorhanden ist oder\ndas Bild zu sehr rauscht, wird der Wert auf 0 gesetzt.
TP_RAW_DUALDEMOSAICCONTRAST;Kontrastschwelle
TP_RAW_EAHD;EAHD
TP_RAW_FALSECOLOR;Falschfarbenreduzierung
@ -2084,6 +2160,7 @@ TP_SOFTLIGHT_STRENGTH;Intensität
TP_TM_FATTAL_AMOUNT;Intensität
TP_TM_FATTAL_ANCHOR;Helligkeitsverschiebung
TP_TM_FATTAL_LABEL;Dynamikkompression
TP_TM_FATTAL_THRESHOLD;Details
TP_VIBRANCE_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden
TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH
TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Hautfarbtöne
@ -2305,6 +2382,7 @@ TP_WBALANCE_LED_CRS;CRS SP12 WWMR16
TP_WBALANCE_LED_HEADER;LED
TP_WBALANCE_LED_LSI;LSI Lumelex 2040
TP_WBALANCE_METHOD;Methode
TP_WBALANCE_PICKER;Farbwähler
TP_WBALANCE_SHADE;Schatten
TP_WBALANCE_SIZE;Größe:
TP_WBALANCE_SOLUX35;Solux 3500K
@ -2327,72 +2405,3 @@ ZOOMPANEL_ZOOMFITSCREEN;An Bildschirm anpassen.\nTaste: <b>Alt</b> + <b>f</b>
ZOOMPANEL_ZOOMIN;Hineinzoomen\nTaste: <b>+</b>
ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: <b>-</b>
!!!!!!!!!!!!!!!!!!!!!!!!!
! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!!
!DYNPROFILEEDITOR_IMGTYPE_ANY;Any
!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR
!DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift
!DYNPROFILEEDITOR_IMGTYPE_STD;Standard
!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles
!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles
!HISTORY_MSG_489;DRC - Detail
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
!HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength
!HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold
!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace
!PARTIALPASTE_DEHAZE;Haze removal
!PREFERENCES_APPEARANCE;Appearance
!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font
!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color
!PREFERENCES_APPEARANCE_MAINFONT;Main font
!PREFERENCES_APPEARANCE_THEME;Theme
!PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit
!PREFERENCES_CACHECLEAR;Clear
!PREFERENCES_CACHECLEAR_ALL;Clear all cached files:
!PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles:
!PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles:
!PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched.
!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser
!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance
!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended.
!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%)
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map
!TP_DEHAZE_STRENGTH;Strength
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually
!TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong.
!TP_LENSPROFILE_MODE_HEADER;Select the lens profile:
!TP_LENSPROFILE_USE_CA;Chromatic aberration
!TP_LENSPROFILE_USE_GEOMETRIC;Geometric
!TP_LENSPROFILE_USE_HEADER;Select distortions to correct:
!TP_LENSPROFILE_USE_VIGNETTING;Vignetting
!TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time.
!TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold
!TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image).
!TP_TM_FATTAL_THRESHOLD;Detail
!TP_WBALANCE_PICKER;Pick

View File

@ -73,6 +73,7 @@ TP_COLORAPP_TCMODE_COLORF;Colourfulness
TP_COLORTONING_COLOR;Colour
TP_COLORTONING_LABEL;Colour Toning
TP_COLORTONING_LABGRID;L*a*b* colour correction grid
TP_COLORTONING_LABREGIONS;Colour correction regions
TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change colour (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated colour blending.\n"Colour balance (Shadows/Midtones/Highlights)" and "Saturation 2 colours" use direct colours.\n\nThe Black-and-White tool can be enabled when using any colour toning method, which allows for colour toning.
TP_COLORTONING_SPLITCOCO;Colour Balance Shadows/Midtones/Highlights
@ -824,13 +825,18 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!HISTORY_MSG_491;White Balance
!HISTORY_MSG_492;RGB Curves
!HISTORY_MSG_493;L*a*b* Adjustments
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1013,7 +1019,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: <b>i</b>
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
@ -1510,16 +1516,24 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_COLORTONING_HUE;Hue
!TP_COLORTONING_LAB;L*a*b* blending
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_METHOD;Method
@ -1553,10 +1567,11 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_CROP_H;Height
!TP_CROP_LABEL;Crop
!TP_CROP_PPI;PPI=
!TP_CROP_SELECTCROP;Select Crop
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_CROP_W;Width
!TP_CROP_X;X
!TP_CROP_Y;Y
!TP_CROP_X;Left
!TP_CROP_Y;Top
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -734,13 +734,18 @@
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -930,7 +935,7 @@
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: <b>i</b>
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
@ -1466,16 +1471,25 @@
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1515,10 +1529,11 @@
!TP_CROP_H;Height
!TP_CROP_LABEL;Crop
!TP_CROP_PPI;PPI=
!TP_CROP_SELECTCROP;Select Crop
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_CROP_W;Width
!TP_CROP_X;X
!TP_CROP_Y;Y
!TP_CROP_X;Left
!TP_CROP_Y;Top
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -725,9 +725,6 @@ PREFERENCES_BLACKBODY;Tungsteno
PREFERENCES_CACHEMAXENTRIES;Cantidad máxima de entradas en la memoria intermedia
PREFERENCES_CACHEOPTS;Opciones de memoria intermedia
PREFERENCES_CACHETHUMBHEIGHT;Altura máxima de las miniaturas
PREFERENCES_CIEART;Optimización CIECAM02
PREFERENCES_CIEART_LABEL;Usar precisión flotante simple en lugar de doble.
PREFERENCES_CIEART_TOOLTIP;Si se habilita, los cálculos CIECAM02 se realizan con precisión flotante simple en lugar de doble. Esto provee un pequeño aumento en la velocidad de cálculo a expensas de una casi imperceptible pérdida de calidad
PREFERENCES_CLIPPINGIND;Indicación de recortes
PREFERENCES_CLUTSDIR;Directorio HaldCLUT
PREFERENCES_CUSTPROFBUILD;Programa generador de perfiles de procesamiento de imagen del usuario
@ -1078,7 +1075,6 @@ TP_CROP_GUIDETYPE;Clase de guía:
TP_CROP_H;Al
TP_CROP_LABEL;Recortar
TP_CROP_PPI;Ptos/Pulgada=
TP_CROP_SELECTCROP;Seleccionar recorte
TP_CROP_W;Ancho
TP_CROP_X;x
TP_CROP_Y;y
@ -1693,13 +1689,18 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1805,7 +1806,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!NAVIGATOR_B;B:
!NAVIGATOR_G;G:
@ -1942,19 +1943,30 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: <b>-</b>
!TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Herenen erregela
TP_CROP_GUIDETYPE;Gida mota:
TP_CROP_H;H
TP_CROP_LABEL;Moztu
TP_CROP_SELECTCROP; Mozketa hautatu
TP_CROP_W;W
TP_CROP_X;x
TP_CROP_Y;y
@ -981,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1131,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1553,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1595,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -932,7 +932,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Affichage du <b>Masque du focus</b>\nRaccourci: <b
MAIN_TOOLTIP_PREVIEWG;Affichage du <b>canal Vert</b>\nRaccourci: <b>g</b>
MAIN_TOOLTIP_PREVIEWL;Affichage de la <b>Luminosité</b>\nRaccourci: <b>v</b>\n\n0.299*R + 0.587*V + 0.114*B
MAIN_TOOLTIP_PREVIEWR;Affichage du <b>canal Rouge</b>\nRaccourci: <b>r</b>
MAIN_TOOLTIP_PREVIEWSHARPMASK;Prévisualiser le <b>masque de contraste de netteté</b>.\nRaccourci: <b>Aucun</b>\n\nNe fonctionne que si l'outil Netteté est activé et pour un zomm >= 100%.
MAIN_TOOLTIP_PREVIEWSHARPMASK;Prévisualiser le <b>masque de contraste de netteté</b>.\nRaccourci: <b>p</b>\n\nNe fonctionne que si l'outil Netteté est activé et pour un zomm >= 100%.
MAIN_TOOLTIP_QINFO;Informations rapide sur l'image\nRaccourci: <b>i</b>
MAIN_TOOLTIP_SHOWHIDELP1;Montrer/Cacher le panneau gauche\nRaccourci: <b>l</b>
MAIN_TOOLTIP_SHOWHIDERP1;Afficher/Cacher le panneau droit\nRaccourci: <b>Alt-l</b>
@ -1054,10 +1054,6 @@ PREFERENCES_CACHECLEAR_SAFETY;Seuls les fichiers mis en cache sont effacés. Les
PREFERENCES_CACHEMAXENTRIES;Nombre maximal d'éléments dans le Cache
PREFERENCES_CACHEOPTS;Options du Cache
PREFERENCES_CACHETHUMBHEIGHT;Hauteur maximale des vignettes
PREFERENCES_CIEART;CIECAM02 optimisation
PREFERENCES_CIEART_FRAME;Réglages spécifiques à CIECAM02
PREFERENCES_CIEART_LABEL;Utilise la précision float au lieu de double pour CIECAM02
PREFERENCES_CIEART_TOOLTIP;Si activé, les calculs CIECAM sont réalisés en précision float au lieu de précision double. Cela amène un léger accroissement de vitesse, et une légère réduction de qualité
PREFERENCES_CLIPPINGIND;Indication du dépassement de plage dynamique
PREFERENCES_CLUTSCACHE;Cache HaldCLUT
PREFERENCES_CLUTSCACHE_LABEL;Nombre maximum de chache CLUT
@ -1513,7 +1509,6 @@ TP_CROP_GUIDETYPE;Type de guide:
TP_CROP_H;H
TP_CROP_LABEL;Recadrage
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Sélection du recadrage
TP_CROP_W;L
TP_CROP_X;X
TP_CROP_Y;Y
@ -2303,6 +2298,11 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!!
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!PREFERENCES_APPEARANCE;Appearance
!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font
!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color
@ -2313,6 +2313,17 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: <b>-</b>
!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance
!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended.
!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%)
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Κανόνας τρίτων
TP_CROP_GUIDETYPE;Είδος βοηθών:
TP_CROP_H;H
TP_CROP_LABEL;Αποκοπή
TP_CROP_SELECTCROP; Επιλογή αποκοπής
TP_CROP_W;W
TP_CROP_X;x
TP_CROP_Y;y
@ -980,13 +979,18 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1130,7 +1134,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1552,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1594,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;כלל השליש
TP_CROP_GUIDETYPE;סוג מדריך
TP_CROP_H;גובה
TP_CROP_LABEL;גזור
TP_CROP_SELECTCROP;בחור גזירה
TP_CROP_W;רוחב
TP_CROP_X;x
TP_CROP_Y;y
@ -981,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1131,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1553,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1595,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -631,9 +631,6 @@ PREFERENCES_BLACKBODY;Tungsteno
PREFERENCES_CACHEMAXENTRIES;Numero massimo di voci in memoria
PREFERENCES_CACHEOPTS;Opzioni della memoria
PREFERENCES_CACHETHUMBHEIGHT;Massima altezza delle miniature
PREFERENCES_CIEART;Ottimizzazione CIECAM02
PREFERENCES_CIEART_LABEL;Utilizza precisione singola anziché doppia
PREFERENCES_CIEART_TOOLTIP;Se abilitata, i calcoli CIECAM02 sono effettuati in formato a virgola mobile a precisione singola anziché doppia. Questo permette un piccolo incremento di velocità al costo di una trascurabile perdita di qualità.
PREFERENCES_CLIPPINGIND;Indicazione di tosaggio
PREFERENCES_CUSTPROFBUILD;Generatore profili personalizzati
PREFERENCES_CUSTPROFBUILDHINT;File eseguibile (o script) richiamato quando è necessario generare un nuovo profilo per un'immagine.\nIl percorso del file di comunicazione (del tipo *.ini, detto "Keyfile") è aggiunto come parametro da linea di comando. Contiene diversi paramentri necessari agli script e ai dati Exif per generare un profilo di elaborazione.\n\n<b>ATTENZIONE:</b>: Devi utilizzare le virgolette doppie quando necessario se utilizzi percorsi contenenti spazi.
@ -947,7 +944,6 @@ TP_CROP_GUIDETYPE;Tipo di guida:
TP_CROP_H;A
TP_CROP_LABEL;Ritaglio
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Seleziona Area
TP_CROP_W;L
TP_CROP_X;X
TP_CROP_Y;Y
@ -1568,13 +1564,18 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1681,7 +1682,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
!OPTIONS_DEFIMG_MISSING;The default profile for <b>non-raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
@ -1825,16 +1826,25 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1863,6 +1873,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: <b>-</b>
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -962,7 +962,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;<b>フォーカス・マスク</b>表示\nショ
MAIN_TOOLTIP_PREVIEWG;<b>グリーン チャンネル</b>表示\nショートカット: <b>g</b>
MAIN_TOOLTIP_PREVIEWL;<b>輝度</b>表示\nショートカット: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
MAIN_TOOLTIP_PREVIEWR;<b>レッド チャンネル</b>表示\nショートカット: <b>r</b>
MAIN_TOOLTIP_PREVIEWSHARPMASK;プレビューで見る<b>シャープ化機能のコントラストマスク</b>\nショートカット <b>なし</b>\n\nこの機能が使えるのはシャープ化機能が有効で、画像が100以上に拡大されている場合だけ
MAIN_TOOLTIP_PREVIEWSHARPMASK;プレビューで見る<b>シャープ化機能のコントラストマスク</b>\nショートカット <b>p</b>\n\nこの機能が使えるのはシャープ化機能が有効で、画像が100以上に拡大されている場合だけ
MAIN_TOOLTIP_QINFO;画像の情報\nショートカット: <b>i</b>
MAIN_TOOLTIP_SHOWHIDELP1;表示/非表示 左パネル\nショートカット: <b>l</b>
MAIN_TOOLTIP_SHOWHIDERP1;表示/非表示 右パネル\nショートカット: <b>Alt-l</b>
@ -1537,7 +1537,6 @@ TP_CROP_GUIDETYPE;ガイドタイプ:
TP_CROP_H;高さ
TP_CROP_LABEL;切り抜き
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; 選択範囲切り抜き
TP_CROP_W;W 幅
TP_CROP_X;X
TP_CROP_Y;Y
@ -2302,6 +2301,11 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
! Untranslated keys follow; remove the ! prefix after an entry is translated.
!!!!!!!!!!!!!!!!!!!!!!!!!
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!PREFERENCES_APPEARANCE;Appearance
!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font
!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color
@ -2312,6 +2316,17 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: <b>-</b>
!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance
!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended.
!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%)
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically
!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file
!TP_LENSPROFILE_CORRECTION_MANUAL;Manually

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Trešdaļas
TP_CROP_GUIDETYPE;Vadlīnijas:
TP_CROP_H;A
TP_CROP_LABEL;Kadrējums
TP_CROP_SELECTCROP; Norādīt kadrējumu
TP_CROP_W;P
TP_CROP_X;x
TP_CROP_Y;y
@ -981,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1131,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1553,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1595,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -626,7 +626,6 @@ TP_CROP_GUIDETYPE;Segédvonal típusa:
TP_CROP_H;M
TP_CROP_LABEL;Kivágás
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Kijelölés egérrel
TP_CROP_W;Sz
TP_CROP_X;x
TP_CROP_Y;y
@ -1250,13 +1249,18 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1374,7 +1378,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: <b>black</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: <b>white</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!NAVIGATOR_B;B:
!NAVIGATOR_G;G:
@ -1705,16 +1709,25 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1744,6 +1757,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés <b>-</b>
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -916,10 +916,6 @@ PREFERENCES_BLACKBODY;Tungsten(wolfraam)
PREFERENCES_CACHEMAXENTRIES;Maximaal aantal elementen in cache
PREFERENCES_CACHEOPTS;Cache-opties
PREFERENCES_CACHETHUMBHEIGHT;Maximale hoogte miniaturen
PREFERENCES_CIEART;CIECAM02 optimalisatie
PREFERENCES_CIEART_FRAME;CIECAM02-Specifieke instellingen
PREFERENCES_CIEART_LABEL;Gebruik float precisie in plaats van double
PREFERENCES_CIEART_TOOLTIP;Indien aangezet worden CIECAM02 berekening uitgevoerd in het single-precision floating-point formaat in plaats van double-precision. Dit levert een iets hogere verwerkingssnelheid ten koste van een verwaarloosbaar verlies aan kwaliteit
PREFERENCES_CLIPPINGIND;Indicatie over-/onderbelichting
PREFERENCES_CLUTSCACHE;HaldCLUT cache
PREFERENCES_CLUTSCACHE_LABEL;Maximum aantal cached Cluts
@ -1323,7 +1319,6 @@ TP_CROP_GUIDETYPE;Hulplijnen:
TP_CROP_H;Hoogte
TP_CROP_LABEL;Bijsnijden
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecteer gebied
TP_CROP_W;Breedte
TP_CROP_X;X
TP_CROP_Y;Y
@ -2099,13 +2094,18 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -2185,7 +2185,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!MAIN_TAB_ADVANCED;Advanced
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
!OPTIONS_DEFIMG_MISSING;The default profile for <b>non-raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
!OPTIONS_DEFRAW_MISSING;The default profile for <b>raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
@ -2256,16 +2256,27 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: <b>-</b>
!TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Tredjedelsreglen
TP_CROP_GUIDETYPE;Guidetype:
TP_CROP_H;H
TP_CROP_LABEL;Beskjæring
TP_CROP_SELECTCROP;Velg beskjæringsområde
TP_CROP_W;B
TP_CROP_X;x
TP_CROP_Y;y
@ -980,13 +979,18 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1130,7 +1134,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1552,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1594,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -680,9 +680,6 @@ PREFERENCES_BLACKBODY;Wolfram
PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej
PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej
PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury
PREFERENCES_CIEART;CIECAM02 optymalizacja
PREFERENCES_CIEART_LABEL;Użyj precyzję zmiennoprzecinkową zamiast podwójną.
PREFERENCES_CIEART_TOOLTIP;Gdy umożliwione, kalkulacje CIECAM02 są wykonywane w notacji zmiennoprzecinkowej o pojedyńczej precyzji zamiast podwójnej. Skraca to czas egzekucji kosztem nieistotnej zmiany w jakości.
PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni
PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT
PREFERENCES_CUSTPROFBUILD;Zewnętrzny kreator profilów przetwarzania
@ -1033,7 +1030,6 @@ TP_CROP_GUIDETYPE;Typ pomocy:
TP_CROP_H;Wysokość
TP_CROP_LABEL;Kadrowanie
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Wybierz kadr
TP_CROP_W;Szerokość
TP_CROP_X;X
TP_CROP_Y;Y
@ -1650,13 +1646,18 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1763,7 +1764,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
!OPTIONS_DEFIMG_MISSING;The default profile for <b>non-raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
@ -1890,19 +1891,30 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: <b>-</b>
!TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -680,9 +680,6 @@ PREFERENCES_BLACKBODY;Wolfram
PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisow w pamieci podrecznej
PREFERENCES_CACHEOPTS;Opcje pamieci podrecznej
PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokosc miniatury
PREFERENCES_CIEART;CIECAM02 optymalizacja
PREFERENCES_CIEART_LABEL;Uzyj precyzje zmiennoprzecinkowa zamiast podwojna.
PREFERENCES_CIEART_TOOLTIP;Gdy umozliwione, kalkulacje CIECAM02 sa wykonywane w notacji zmiennoprzecinkowej o pojedynczej precyzji zamiast podwojnej. Skraca to czas egzekucji kosztem nieistotnej zmiany w jakosci.
PREFERENCES_CLIPPINGIND;Pokazywanie obcietych przeswietlen/cieni
PREFERENCES_CLUTSDIR;Folder obrazow HaldCLUT
PREFERENCES_CUSTPROFBUILD;Zewnetrzny kreator profilow przetwarzania
@ -1033,7 +1030,6 @@ TP_CROP_GUIDETYPE;Typ pomocy:
TP_CROP_H;Wysokosc
TP_CROP_LABEL;Kadrowanie
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Wybierz kadr
TP_CROP_W;Szerokosc
TP_CROP_X;X
TP_CROP_Y;Y
@ -1650,13 +1646,18 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1763,7 +1764,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
!OPTIONS_DEFIMG_MISSING;The default profile for <b>non-raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
@ -1890,19 +1891,30 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: <b>-</b>
!TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -905,7 +905,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Pré-visualize a <b>Máscara de Foco</b>.\nAtalho:
MAIN_TOOLTIP_PREVIEWG;Pré-visualize o <b>Canal verde</b>.\nAtalho: <b>g</b>
MAIN_TOOLTIP_PREVIEWL;Pré-visualize a <b>Luminosidade</b>.\nAtalho: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
MAIN_TOOLTIP_PREVIEWR;Pré-visualize o <b>Canal vermelho</b>.\nAtalho: <b>r</b>
MAIN_TOOLTIP_PREVIEWSHARPMASK;Pré-visualize a <b>Máscara de Contraste de Nitidez</b>.\nAtalho: <b>Nenhum</b>\n\nSó funciona quando a nitidez e o zoom estão ativados >= 100%.
MAIN_TOOLTIP_PREVIEWSHARPMASK;Pré-visualize a <b>Máscara de Contraste de Nitidez</b>.\nAtalho: <b>p</b>\n\nSó funciona quando a nitidez e o zoom estão ativados >= 100%.
MAIN_TOOLTIP_QINFO;Informação rápida na imagem.\nAtalho: <b>i</b>
MAIN_TOOLTIP_SHOWHIDELP1;Mostrar/Ocultar o painel esquerdo.\nShortcut: <b>l</b>
MAIN_TOOLTIP_SHOWHIDERP1;Mostrar/Ocultar o painel direito.\nAtalho: <b>Alt-l</b>
@ -1461,7 +1461,6 @@ TP_CROP_GUIDETYPE;Tipo de guia:
TP_CROP_H;Altura
TP_CROP_LABEL;Cortar
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecione para Cortar
TP_CROP_W;Largura
TP_CROP_X;X
TP_CROP_Y;Y
@ -2229,13 +2228,18 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram.
!HISTORY_MSG_489;DRC - Detail
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -2267,16 +2271,27 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: <b>-</b>
!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance
!TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended.
!TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%)
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -705,9 +705,6 @@ PREFERENCES_BLACKBODY;Лампа накаливания
PREFERENCES_CACHEMAXENTRIES;Максимальное число элементов в кэше
PREFERENCES_CACHEOPTS;Параметры кэширования
PREFERENCES_CACHETHUMBHEIGHT;Максимальная высота эскиза
PREFERENCES_CIEART;Оптимизация CIECAM02
PREFERENCES_CIEART_LABEL;Использовать числа с плавающей запятой вместо двойной точности
PREFERENCES_CIEART_TOOLTIP;Если включено, вычисления CIECAM02 будут выполняться в формате плавающей запятой с одинарной точностью вместо использования двойной точности. Это обеспечит небольшое увеличение скорости с несущественной потерей качества.
PREFERENCES_CLIPPINGIND;Индикация пересветов/затемнений
PREFERENCES_CURVEBBOXPOS;Позиция кнопок для копирования и вставки кривых
PREFERENCES_CURVEBBOXPOS_ABOVE;Выше
@ -1007,7 +1004,6 @@ TP_CROP_GUIDETYPE;Тип направляющей:
TP_CROP_H;Высота
TP_CROP_LABEL;Кадрирование
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Включить режим обрезки
TP_CROP_W;Ширина
TP_CROP_X;x
TP_CROP_Y;y
@ -1672,13 +1668,18 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!HISTORY_MSG_489;DRC - Detail
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold
!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold
!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries
@ -1767,7 +1768,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator
!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue.
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!PARTIALPASTE_COLORTONING;Color toning
!PARTIALPASTE_DEHAZE;Haze removal
@ -1919,16 +1920,25 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1954,6 +1964,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: <b>-</b>
!TP_COLORTONING_TWOBY;Special a* and b*
!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable.
!TP_COLORTONING_TWOSTD;Standard chroma
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones
!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;Try to evaluate chroma noise\nBe careful, this calculation is average, and is quite subjective !
!TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation.

View File

@ -600,9 +600,6 @@ PREFERENCES_BLACKBODY;Обична сијалица
PREFERENCES_CACHEMAXENTRIES;Највећи број мест у остави
PREFERENCES_CACHEOPTS;Подешавање оставе
PREFERENCES_CACHETHUMBHEIGHT;Највећа висина приказа
PREFERENCES_CIEART;CIECAM02 оптимизација
PREFERENCES_CIEART_LABEL;Једнострука тачност уместо двоструке
PREFERENCES_CIEART_TOOLTIP;Уколико је омогућено, ради CIECAM02 рачунања са једноструком тачношћу уместо са двоструком. Ово даје мало повећање брзине уз неизоставан губитак на квалитету.
PREFERENCES_CLIPPINGIND;Показивачи одсечених делова
PREFERENCES_CUSTPROFBUILD;Изградња произвољног почетног профила слике
PREFERENCES_CUSTPROFBUILDHINT;Извршна датотека (или скрипта) која се позива када изграђујете нови почетни профил за слику.nПрихвата параметре из командне линије ради прављења .pp3 датотеке на основу неких правила:n[Путања до RAW/JPG] [Путања подразумеваног профила] [Бленда] [Експозиција у s] [Жижна дужина mm] [ИСО] [Објектив] [Фото-апарат]
@ -912,7 +909,6 @@ TP_CROP_GUIDETYPE;Вођицe:
TP_CROP_H;В
TP_CROP_LABEL;Исецање
TP_CROP_PPI;ППИ=
TP_CROP_SELECTCROP; Изабери област
TP_CROP_W;Ш
TP_CROP_X;x
TP_CROP_Y;y
@ -1544,13 +1540,18 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1656,7 +1657,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!NAVIGATOR_B;B:
!NAVIGATOR_G;G:
@ -1817,16 +1818,25 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1855,6 +1865,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике <b>-</b>
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -600,9 +600,6 @@ PREFERENCES_BLACKBODY;Obična sijalica
PREFERENCES_CACHEMAXENTRIES;Najveći broj mest u ostavi
PREFERENCES_CACHEOPTS;Podešavanje ostave
PREFERENCES_CACHETHUMBHEIGHT;Najveća visina prikaza
PREFERENCES_CIEART;CIECAM02 optimizacija
PREFERENCES_CIEART_LABEL;Jednostruka tačnost umesto dvostruke
PREFERENCES_CIEART_TOOLTIP;Ukoliko je omogućeno, radi CIECAM02 računanja sa jednostrukom tačnošću umesto sa dvostrukom. Ovo daje malo povećanje brzine uz neizostavan gubitak na kvalitetu.
PREFERENCES_CLIPPINGIND;Pokazivači odsečenih delova
PREFERENCES_CUSTPROFBUILD;Izgradnja proizvoljnog početnog profila slike
PREFERENCES_CUSTPROFBUILDHINT;Izvršna datoteka (ili skripta) koja se poziva kada izgrađujete novi početni profil za sliku.nPrihvata parametre iz komandne linije radi pravljenja .pp3 datoteke na osnovu nekih pravila:n[Putanja do RAW/JPG] [Putanja podrazumevanog profila] [Blenda] [Ekspozicija u s] [Žižna dužina mm] [ISO] [Objektiv] [Foto-aparat]
@ -912,7 +909,6 @@ TP_CROP_GUIDETYPE;Vođice:
TP_CROP_H;V
TP_CROP_LABEL;Isecanje
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Izaberi oblast
TP_CROP_W;Š
TP_CROP_X;x
TP_CROP_Y;y
@ -1544,13 +1540,18 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1656,7 +1657,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TAB_INSPECT; Inspect
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MONITOR_PROFILE_SYSTEM;System default
!NAVIGATOR_B;B:
!NAVIGATOR_G;G:
@ -1817,16 +1818,25 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1855,6 +1865,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike <b>-</b>
!TP_CROP_GTHARMMEANS;Harmonic Means
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -384,7 +384,6 @@ TP_CROP_GTRULETHIRDS;Pravidlo tretín
TP_CROP_GUIDETYPE;Type vodidiel:
TP_CROP_H;V
TP_CROP_LABEL;Orezanie
TP_CROP_SELECTCROP; Vyberte Orez
TP_CROP_W;Š
TP_CROP_X;x
TP_CROP_Y;y
@ -1042,13 +1041,18 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1186,7 +1190,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1592,16 +1596,25 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1634,6 +1647,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť <b>-</b>
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -331,7 +331,6 @@ TP_CROP_GTRULETHIRDS;Kolmijako
TP_CROP_GUIDETYPE;Sommittelumalli:
TP_CROP_H;Kork.
TP_CROP_LABEL;Rajaus
TP_CROP_SELECTCROP;Valitse alue
TP_CROP_W;Lev.
TP_CROP_X; x
TP_CROP_Y; y
@ -982,13 +981,18 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1132,7 +1136,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1553,16 +1557,25 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1595,6 +1608,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K]
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -821,10 +821,6 @@ PREFERENCES_BLACKBODY;Glödlampa
PREFERENCES_CACHEMAXENTRIES;Maximalt antal cachefiler
PREFERENCES_CACHEOPTS;Cacheinställningar
PREFERENCES_CACHETHUMBHEIGHT;Maximal höjd på miniatyrbilderna
PREFERENCES_CIEART;CIECAM02-optimering
PREFERENCES_CIEART_FRAME;CIECAM02-Specifika inställningar
PREFERENCES_CIEART_LABEL;Använd flyttalsprecision istället för dubbel
PREFERENCES_CIEART_TOOLTIP;Om aktiverat, så kommer alla CIECAM02-beräkningar att utföras med enkel precision i flyttalsformatet istället för med dubbel precision. Detta ger en liten sänkning av beräkningstiden, till ett pris av en försumbar kvalitetsförsämring.
PREFERENCES_CLIPPINGIND;Klippindikering
PREFERENCES_CLUTSCACHE;HaldCLUT cache
PREFERENCES_CLUTSCACHE_LABEL;Maximalt antal cachade CLUTs
@ -1210,7 +1206,6 @@ TP_CROP_GUIDETYPE;Guidetyp:
TP_CROP_H;Höjd
TP_CROP_LABEL;Beskär
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Välj beskärningsområde
TP_CROP_W;Bredd
TP_CROP_X;x
TP_CROP_Y;y
@ -1904,13 +1899,18 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -2015,7 +2015,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!MAIN_TAB_ADVANCED;Advanced
!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: <b>Alt-w</b>
!MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: <b>middle grey</b>\nShortcut: <b>9</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!OPTIONS_BUNDLED_MISSING;The bundled profile "<b>%1</b>" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead.
!OPTIONS_DEFIMG_MISSING;The default profile for <b>non-raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
!OPTIONS_DEFRAW_MISSING;The default profile for <b>raw photos</b> could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"<b>%1</b>" will be used instead.
@ -2106,18 +2106,29 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: <b>-</b>
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* blending", "RGB sliders" and "RGB curves" use interpolated color blending.\n"Color balance (Shadows/Midtones/Highlights)" and "Saturation 2 colors" use direct colors.\n\nThe Black-and-White tool can be enabled when using any color toning method, which allows for color toning.
!TP_COLORTONING_TWOCOLOR_TOOLTIP;Standard chroma:\nLinear response, a* = b*.\n\nSpecial chroma:\nLinear response, a* = b*, but unbound - try under the diagonal.\n\nSpecial a* and b*:\nLinear response unbound with separate curves for a* and b*. Intended for special effects.\n\nSpecial chroma 2 colors:\nMore predictable.
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DEHAZE_DEPTH;Depth
!TP_DEHAZE_LABEL;Haze Removal
!TP_DEHAZE_SHOW_DEPTH_MAP;Show Depth Map

View File

@ -331,7 +331,6 @@ TP_CROP_GTRULETHIRDS;Üçler kuralı
TP_CROP_GUIDETYPE;Kılavuz türü:
TP_CROP_H;Y
TP_CROP_LABEL;Kırp
TP_CROP_SELECTCROP; Kırpma alanı seç
TP_CROP_W;G
TP_CROP_X;x
TP_CROP_Y;y
@ -981,13 +980,18 @@ TP_WBALANCE_TEMPERATURE;Isı
!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
!HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
!HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
!HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
!HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
!HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
!HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
!HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
!HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
!HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1131,7 +1135,7 @@ TP_WBALANCE_TEMPERATURE;Isı
!MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
!MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
!MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
!MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
!MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
!MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: <b>Shift-l</b>
@ -1552,16 +1556,25 @@ TP_WBALANCE_TEMPERATURE;Isı
!TP_COLORTONING_LABEL;Color Toning
!TP_COLORTONING_LABGRID;L*a*b* color correction grid
!TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
!TP_COLORTONING_LABREGIONS;L*a*b* correction regions
!TP_COLORTONING_LABREGIONS;Color correction regions
!TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
!TP_COLORTONING_LABREGION_CHANNEL;Channel
!TP_COLORTONING_LABREGION_CHANNEL_ALL;All
!TP_COLORTONING_LABREGION_CHANNEL_B;Blue
!TP_COLORTONING_LABREGION_CHANNEL_G;Green
!TP_COLORTONING_LABREGION_CHANNEL_R;Red
!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
!TP_COLORTONING_LABREGION_HUEMASK;H
!TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
!TP_COLORTONING_LABREGION_LIST_TITLE;Correction
!TP_COLORTONING_LABREGION_MASK;Mask
!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
!TP_COLORTONING_LABREGION_OFFSET;Offset
!TP_COLORTONING_LABREGION_POWER;Power
!TP_COLORTONING_LABREGION_SATURATION;Saturation
!TP_COLORTONING_LABREGION_SHOWMASK;Show mask
!TP_COLORTONING_LABREGION_SLOPE;Slope
!TP_COLORTONING_LUMA;Luminance
!TP_COLORTONING_LUMAMODE;Preserve luminance
!TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1594,6 +1607,8 @@ TP_WBALANCE_TEMPERATURE;Isı
!TP_CROP_GTTRIANGLE1;Golden Triangles 1
!TP_CROP_GTTRIANGLE2;Golden Triangles 2
!TP_CROP_PPI;PPI=
!TP_CROP_RESETCROP;Reset
!TP_CROP_SELECTCROP;Select
!TP_DARKFRAME_AUTOSELECT;Auto-selection
!TP_DARKFRAME_LABEL;Dark-Frame
!TP_DEFRINGE_LABEL;Defringe

View File

@ -847,13 +847,18 @@ HISTORY_MSG_591;Local - Avoid color shift
HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors
HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction
HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction
HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - C mask
HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel
HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask
HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask
HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness
HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESSMASK;CT - L mask
HISTORY_MSG_COLORTONING_LABREGION_LIST;CT - List
HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur
HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset
HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power
HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation
HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - Show mask
HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask
HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope
HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth
HISTORY_MSG_DEHAZE_ENABLED;Haze Removal
HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map
@ -1045,7 +1050,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the <b>focus mask</b>.\nShortcut: <b>Shift
MAIN_TOOLTIP_PREVIEWG;Preview the <b>green channel</b>.\nShortcut: <b>g</b>
MAIN_TOOLTIP_PREVIEWL;Preview the <b>luminosity</b>.\nShortcut: <b>v</b>\n\n0.299*R + 0.587*G + 0.114*B
MAIN_TOOLTIP_PREVIEWR;Preview the <b>red channel</b>.\nShortcut: <b>r</b>
MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>None</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the <b>sharpening contrast mask</b>.\nShortcut: <b>p</b>\n\nOnly works when sharpening is enabled and zoom >= 100%.
MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: <b>i</b>
MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: <b>l</b>
MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: <b>Alt-l</b>
@ -1583,16 +1588,25 @@ TP_COLORTONING_LAB;L*a*b* blending
TP_COLORTONING_LABEL;Color Toning
TP_COLORTONING_LABGRID;L*a*b* color correction grid
TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4
TP_COLORTONING_LABREGIONS;L*a*b* correction regions
TP_COLORTONING_LABREGIONS;Color correction regions
TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2
TP_COLORTONING_LABREGION_CHANNEL;Channel
TP_COLORTONING_LABREGION_CHANNEL_ALL;All
TP_COLORTONING_LABREGION_CHANNEL_B;Blue
TP_COLORTONING_LABREGION_CHANNEL_G;Green
TP_COLORTONING_LABREGION_CHANNEL_R;Red
TP_COLORTONING_LABREGION_CHROMATICITYMASK;C
TP_COLORTONING_LABREGION_HUEMASK;H
TP_COLORTONING_LABREGION_LIGHTNESS;Lightness
TP_COLORTONING_LABREGION_LIGHTNESSMASK;L
TP_COLORTONING_LABREGION_LIST_TITLE;Correction
TP_COLORTONING_LABREGION_MASK;Mask
TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur
TP_COLORTONING_LABREGION_OFFSET;Offset
TP_COLORTONING_LABREGION_POWER;Power
TP_COLORTONING_LABREGION_SATURATION;Saturation
TP_COLORTONING_LABREGION_SHOWMASK;Show mask
TP_COLORTONING_LABREGION_SLOPE;Slope
TP_COLORTONING_LUMA;Luminance
TP_COLORTONING_LUMAMODE;Preserve luminance
TP_COLORTONING_LUMAMODE_TOOLTIP;If enabled, when you change color (red, green, cyan, blue, etc.) the luminance of each pixel is preserved.
@ -1632,10 +1646,11 @@ TP_CROP_GUIDETYPE;Guide type:
TP_CROP_H;Height
TP_CROP_LABEL;Crop
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Select Crop
TP_CROP_RESETCROP;Reset
TP_CROP_SELECTCROP;Select
TP_CROP_W;Width
TP_CROP_X;X
TP_CROP_Y;Y
TP_CROP_X;Left
TP_CROP_Y;Top
TP_DARKFRAME_AUTOSELECT;Auto-selection
TP_DARKFRAME_LABEL;Dark-Frame
TP_DEFRINGE_LABEL;Defringe

View File

@ -807,8 +807,8 @@ BENCHFUN
#endif
const std::size_t blox_array_size = denoiseNestedLevels * numthreads;
float *LbloxArray[blox_array_size] = {};
float *fLbloxArray[blox_array_size] = {};
float *LbloxArray[blox_array_size];
float *fLbloxArray[blox_array_size];
for (std::size_t i = 0; i < blox_array_size; ++i) {
LbloxArray[i] = nullptr;
@ -1749,7 +1749,7 @@ BENCHFUN
}
for (int i = 0; i < denoiseNestedLevels * numthreads; ++i) {
for (size_t i = 0; i < blox_array_size; ++i) {
if (LbloxArray[i]) {
fftwf_free(LbloxArray[i]);
}

View File

@ -191,26 +191,26 @@ float Ciecam02::calculate_fl_from_la_ciecam02float ( float la )
return (0.2f * k * la5) + (0.1f * (1.0f - k) * (1.0f - k) * std::cbrt (la5));
}
float Ciecam02::achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb, int gamu )
float Ciecam02::achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb )
{
float r, g, b;
float rc, gc, bc;
float rp, gp, bp;
float rpa, gpa, bpa;
gamu = 1;
xyz_to_cat02float ( r, g, b, x, y, z, gamu );
// gamu = 1;
xyz_to_cat02float ( r, g, b, x, y, z);
rc = r * (((y * d) / r) + (1.0f - d));
gc = g * (((y * d) / g) + (1.0f - d));
bc = b * (((y * d) / b) + (1.0f - d));
cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc, gamu );
cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc);
if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
rp = MAXR (rp, 0.0f);
gp = MAXR (gp, 0.0f);
bp = MAXR (bp, 0.0f);
}
// if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
rp = MAXR (rp, 0.0f);
gp = MAXR (gp, 0.0f);
bp = MAXR (bp, 0.0f);
// }
rpa = nonlinear_adaptationfloat ( rp, fl );
gpa = nonlinear_adaptationfloat ( gp, fl );
@ -219,22 +219,22 @@ float Ciecam02::achromatic_response_to_whitefloat ( float x, float y, float z, f
return ((2.0f * rpa) + gpa + ((1.0f / 20.0f) * bpa) - 0.305f) * nbb;
}
void Ciecam02::xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z, int gamu )
void Ciecam02::xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z)
{
gamu = 1;
if (gamu == 0) {
r = ( 0.7328f * x) + (0.4296f * y) - (0.1624f * z);
g = (-0.7036f * x) + (1.6975f * y) + (0.0061f * z);
b = ( 0.0030f * x) + (0.0136f * y) + (0.9834f * z);
} else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
//r = ( 0.7328 * x) + (0.4296 * y) - (0.1624 * z);
//g = (-0.7036 * x) + (1.6975 * y) + (0.0061 * z);
//b = ( 0.0000 * x) + (0.0000 * y) + (1.0000 * z);
r = ( 1.007245f * x) + (0.011136f * y) - (0.018381f * z); //Changjun Li
g = (-0.318061f * x) + (1.314589f * y) + (0.003471f * z);
b = ( 0.0000f * x) + (0.0000f * y) + (1.0000f * z);
}
// gamu = 1;
//
// if (gamu == 0) {
// r = ( 0.7328f * x) + (0.4296f * y) - (0.1624f * z);
// g = (-0.7036f * x) + (1.6975f * y) + (0.0061f * z);
// b = ( 0.0030f * x) + (0.0136f * y) + (0.9834f * z);
// } else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
//r = ( 0.7328 * x) + (0.4296 * y) - (0.1624 * z);
//g = (-0.7036 * x) + (1.6975 * y) + (0.0061 * z);
//b = ( 0.0000 * x) + (0.0000 * y) + (1.0000 * z);
r = ( 1.007245f * x) + (0.011136f * y) - (0.018381f * z); //Changjun Li
g = (-0.318061f * x) + (1.314589f * y) + (0.003471f * z);
b = ( 0.0000f * x) + (0.0000f * y) + (1.0000f * z);
// }
}
#ifdef __SSE2__
void Ciecam02::xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z )
@ -246,22 +246,22 @@ void Ciecam02::xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vf
}
#endif
void Ciecam02::cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b, int gamu )
void Ciecam02::cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b)
{
gamu = 1;
if (gamu == 0) {
x = ( 1.096124f * r) - (0.278869f * g) + (0.182745f * b);
y = ( 0.454369f * r) + (0.473533f * g) + (0.072098f * b);
z = (-0.009628f * r) - (0.005698f * g) + (1.015326f * b);
} else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
//x = ( 1.0978566 * r) - (0.277843 * g) + (0.179987 * b);
//y = ( 0.455053 * r) + (0.473938 * g) + (0.0710096* b);
//z = ( 0.000000 * r) - (0.000000 * g) + (1.000000 * b);
x = ( 0.99015849f * r) - (0.00838772f * g) + (0.018229217f * b); //Changjun Li
y = ( 0.239565979f * r) + (0.758664642f * g) + (0.001770137f * b);
z = ( 0.000000f * r) - (0.000000f * g) + (1.000000f * b);
}
// gamu = 1;
//
// if (gamu == 0) {
// x = ( 1.096124f * r) - (0.278869f * g) + (0.182745f * b);
// y = ( 0.454369f * r) + (0.473533f * g) + (0.072098f * b);
// z = (-0.009628f * r) - (0.005698f * g) + (1.015326f * b);
// } else if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
//x = ( 1.0978566 * r) - (0.277843 * g) + (0.179987 * b);
//y = ( 0.455053 * r) + (0.473938 * g) + (0.0710096* b);
//z = ( 0.000000 * r) - (0.000000 * g) + (1.000000 * b);
x = ( 0.99015849f * r) - (0.00838772f * g) + (0.018229217f * b); //Changjun Li
y = ( 0.239565979f * r) + (0.758664642f * g) + (0.001770137f * b);
z = ( 0.000000f * r) - (0.000000f * g) + (1.000000f * b);
// }
}
#ifdef __SSE2__
void Ciecam02::cat02_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vfloat g, vfloat b )
@ -288,19 +288,19 @@ void Ciecam02::hpe_to_xyzfloat ( vfloat &x, vfloat &y, vfloat &z, vfloat r, vflo
}
#endif
void Ciecam02::cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b, int gamu )
void Ciecam02::cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b)
{
gamu = 1;
if (gamu == 0) {
rh = ( 0.7409792f * r) + (0.2180250f * g) + (0.0410058f * b);
gh = ( 0.2853532f * r) + (0.6242014f * g) + (0.0904454f * b);
bh = (-0.0096280f * r) - (0.0056980f * g) + (1.0153260f * b);
} else if (gamu == 1) { //Changjun Li
rh = ( 0.550930835f * r) + (0.519435987f * g) - ( 0.070356303f * b);
gh = ( 0.055954056f * r) + (0.89973132f * g) + (0.044315524f * b);
bh = (0.0f * r) - (0.0f * g) + (1.0f * b);
}
// gamu = 1;
//
// if (gamu == 0) {
// rh = ( 0.7409792f * r) + (0.2180250f * g) + (0.0410058f * b);
// gh = ( 0.2853532f * r) + (0.6242014f * g) + (0.0904454f * b);
// bh = (-0.0096280f * r) - (0.0056980f * g) + (1.0153260f * b);
// } else if (gamu == 1) { //Changjun Li
rh = ( 0.550930835f * r) + (0.519435987f * g) - ( 0.070356303f * b);
gh = ( 0.055954056f * r) + (0.89973132f * g) + (0.044315524f * b);
bh = (0.0f * r) - (0.0f * g) + (1.0f * b);
// }
}
#ifdef __SSE2__
@ -407,7 +407,7 @@ void Ciecam02::calculate_abfloat ( vfloat &aa, vfloat &bb, vfloat h, vfloat e, v
#endif
void Ciecam02::initcam1float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
void Ciecam02::initcam1float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
float &cz, float &aw, float &wh, float &pfl, float &fl, float &c)
{
n = yb / yw;
@ -421,7 +421,7 @@ void Ciecam02::initcam1float (float gamu, float yb, float pilotd, float f, float
fl = calculate_fl_from_la_ciecam02float ( la );
nbb = ncb = 0.725f * pow_F ( 1.0f / n, 0.2f );
cz = 1.48f + sqrt ( n );
aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb, gamu );
aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb);
wh = ( 4.0f / c ) * ( aw + 4.0f ) * pow_F ( fl, 0.25f );
pfl = pow_F ( fl, 0.25f );
#ifdef _DEBUG
@ -433,7 +433,7 @@ void Ciecam02::initcam1float (float gamu, float yb, float pilotd, float f, float
#endif
}
void Ciecam02::initcam2float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
void Ciecam02::initcam2float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
float &cz, float &aw, float &fl)
{
n = yb / yw;
@ -448,7 +448,7 @@ void Ciecam02::initcam2float (float gamu, float yb, float pilotd, float f, float
fl = calculate_fl_from_la_ciecam02float ( la );
nbb = ncb = 0.725f * pow_F ( 1.0f / n, 0.2f );
cz = 1.48f + sqrt ( n );
aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb, gamu );
aw = achromatic_response_to_whitefloat ( xw, yw, zw, d, fl, nbb);
#ifdef _DEBUG
if (settings->verbose) {
@ -460,7 +460,7 @@ void Ciecam02::initcam2float (float gamu, float yb, float pilotd, float f, float
void Ciecam02::xyz2jchqms_ciecam02float ( float &J, float &C, float &h, float &Q, float &M, float &s, float aw, float fl, float wh,
float x, float y, float z, float xw, float yw, float zw,
float c, float nc, int gamu, float pow1, float nbb, float ncb, float pfl, float cz, float d)
float c, float nc, float pow1, float nbb, float ncb, float pfl, float cz, float d)
{
float r, g, b;
@ -471,20 +471,20 @@ void Ciecam02::xyz2jchqms_ciecam02float ( float &J, float &C, float &h, float &Q
float a, ca, cb;
float e, t;
float myh;
gamu = 1;
xyz_to_cat02float ( r, g, b, x, y, z, gamu );
xyz_to_cat02float ( rw, gw, bw, xw, yw, zw, gamu );
// gamu = 1;
xyz_to_cat02float ( r, g, b, x, y, z);
xyz_to_cat02float ( rw, gw, bw, xw, yw, zw);
rc = r * (((yw * d) / rw) + (1.f - d));
gc = g * (((yw * d) / gw) + (1.f - d));
bc = b * (((yw * d) / bw) + (1.f - d));
cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc, gamu );
cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc);
if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
rp = MAXR (rp, 0.0f);
gp = MAXR (gp, 0.0f);
bp = MAXR (bp, 0.0f);
}
// if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
rp = MAXR (rp, 0.0f);
gp = MAXR (gp, 0.0f);
bp = MAXR (bp, 0.0f);
// }
rpa = nonlinear_adaptationfloat ( rp, fl );
gpa = nonlinear_adaptationfloat ( gp, fl );
@ -501,9 +501,9 @@ void Ciecam02::xyz2jchqms_ciecam02float ( float &J, float &C, float &h, float &Q
a = ((2.0f * rpa) + gpa + (0.05f * bpa) - 0.305f) * nbb;
if (gamu == 1) {
a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk
}
// if (gamu == 1) {
a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk
// }
J = pow_F ( a / aw, c * cz * 0.5f);
@ -590,20 +590,20 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f
float a, ca, cb;
float e, t;
float myh;
int gamu = 1;
xyz_to_cat02float ( r, g, b, x, y, z, gamu );
xyz_to_cat02float ( rw, gw, bw, xw, yw, zw, gamu );
// int gamu = 1;
xyz_to_cat02float ( r, g, b, x, y, z);
xyz_to_cat02float ( rw, gw, bw, xw, yw, zw);
rc = r * (((yw * d) / rw) + (1.f - d));
gc = g * (((yw * d) / gw) + (1.f - d));
bc = b * (((yw * d) / bw) + (1.f - d));
cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc, gamu );
cat02_to_hpefloat ( rp, gp, bp, rc, gc, bc);
if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
rp = MAXR (rp, 0.0f);
gp = MAXR (gp, 0.0f);
bp = MAXR (bp, 0.0f);
}
// if (gamu == 1) { //gamut correction M.H.Brill S.Susstrunk
rp = MAXR (rp, 0.0f);
gp = MAXR (gp, 0.0f);
bp = MAXR (bp, 0.0f);
// }
#ifdef __SSE2__
vfloat pv = _mm_setr_ps(rp, gp, bp, 1.f);
@ -629,9 +629,9 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f
a = ((2.0f * rpa) + gpa + (0.05f * bpa) - 0.305f) * nbb;
if (gamu == 1) {
a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk
}
// if (gamu == 1) {
a = MAXR (a, 0.0f); //gamut correction M.H.Brill S.Susstrunk
// }
J = pow_F ( a / aw, c * cz * 0.5f);
@ -646,7 +646,7 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f
void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, float C, float h,
float xw, float yw, float zw,
float c, float nc, int gamu, float pow1, float nbb, float ncb, float fl, float cz, float d, float aw)
float c, float nc, float pow1, float nbb, float ncb, float fl, float cz, float d, float aw)
{
float r, g, b;
float rc, gc, bc;
@ -655,8 +655,8 @@ void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, fl
float rw, gw, bw;
float a, ca, cb;
float e, t;
gamu = 1;
xyz_to_cat02float(rw, gw, bw, xw, yw, zw, gamu);
// gamu = 1;
xyz_to_cat02float(rw, gw, bw, xw, yw, zw);
e = ((961.53846f) * nc * ncb) * (xcosf(h * rtengine::RT_PI_F_180 + 2.0f) + 3.8f);
#ifdef __SSE2__
@ -686,13 +686,13 @@ void Ciecam02::jch2xyz_ciecam02float ( float &x, float &y, float &z, float J, fl
bp = inverse_nonlinear_adaptationfloat(bpa, fl);
#endif
hpe_to_xyzfloat(x, y, z, rp, gp, bp);
xyz_to_cat02float(rc, gc, bc, x, y, z, gamu);
xyz_to_cat02float(rc, gc, bc, x, y, z);
r = rc / (((yw * d) / rw) + (1.0f - d));
g = gc / (((yw * d) / gw) + (1.0f - d));
b = bc / (((yw * d) / bw) + (1.0f - d));
cat02_to_xyzfloat(x, y, z, r, g, b, gamu);
cat02_to_xyzfloat(x, y, z, r, g, b);
}
#ifdef __SSE2__

View File

@ -30,9 +30,9 @@ class Ciecam02
private:
static float d_factorfloat ( float f, float la );
static float calculate_fl_from_la_ciecam02float ( float la );
static float achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb, int gamu );
static void xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z, int gamu );
static void cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b, int gamu );
static float achromatic_response_to_whitefloat ( float x, float y, float z, float d, float fl, float nbb);
static void xyz_to_cat02float ( float &r, float &g, float &b, float x, float y, float z);
static void cat02_to_hpefloat ( float &rh, float &gh, float &bh, float r, float g, float b);
#ifdef __SSE2__
static void xyz_to_cat02float ( vfloat &r, vfloat &g, vfloat &b, vfloat x, vfloat y, vfloat z );
@ -46,7 +46,7 @@ private:
static void calculate_abfloat ( float &aa, float &bb, float h, float e, float t, float nbb, float a );
static void Aab_to_rgbfloat ( float &r, float &g, float &b, float A, float aa, float bb, float nbb );
static void hpe_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b );
static void cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b, int gamu );
static void cat02_to_xyzfloat ( float &x, float &y, float &z, float r, float g, float b);
#ifdef __SSE2__
static vfloat inverse_nonlinear_adaptationfloat ( vfloat c, vfloat fl );
static void calculate_abfloat ( vfloat &aa, vfloat &bb, vfloat h, vfloat e, vfloat t, vfloat nbb, vfloat a );
@ -66,7 +66,7 @@ public:
static void jch2xyz_ciecam02float ( float &x, float &y, float &z,
float J, float C, float h,
float xw, float yw, float zw,
float c, float nc, int gamu, float n, float nbb, float ncb, float fl, float cz, float d, float aw );
float c, float nc, float n, float nbb, float ncb, float fl, float cz, float d, float aw );
#ifdef __SSE2__
static void jch2xyz_ciecam02float ( vfloat &x, vfloat &y, vfloat &z,
vfloat J, vfloat C, vfloat h,
@ -76,10 +76,10 @@ public:
/**
* Forward transform from XYZ to CIECAM02 JCh.
*/
static void initcam1float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
static void initcam1float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
float &cz, float &aw, float &wh, float &pfl, float &fl, float &c);
static void initcam2float (float gamu, float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
static void initcam2float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb,
float &cz, float &aw, float &fl);
static void xyz2jch_ciecam02float ( float &J, float &C, float &h,
@ -92,7 +92,7 @@ public:
float &Q, float &M, float &s, float aw, float fl, float wh,
float x, float y, float z,
float xw, float yw, float zw,
float c, float nc, int gamu, float n, float nbb, float ncb, float pfl, float cz, float d );
float c, float nc, float n, float nbb, float ncb, float pfl, float cz, float d );
#ifdef __SSE2__
static void xyz2jchqms_ciecam02float ( vfloat &J, vfloat &C, vfloat &h,

View File

@ -39,5 +39,5 @@ wavelet_decomposition::~wavelet_decomposition()
}
}
};
}

View File

@ -266,6 +266,6 @@ void wavelet_decomposition::reconstruct(E * dst, const float blend)
coeff0 = nullptr;
}
};
}
#endif

View File

@ -50,5 +50,5 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14
};
// if necessary ?? we can add D20 !!
};
}

View File

@ -758,6 +758,6 @@ template<typename T> template<typename E> void wavelet_level<T>::reconstruct_lev
}
}
#endif
};
}
#endif

View File

@ -1669,7 +1669,7 @@ void ColorAppearance::Set(const Curve &pCurve)
}
//
RetinextransmissionCurve::RetinextransmissionCurve() {};
RetinextransmissionCurve::RetinextransmissionCurve() {}
void RetinextransmissionCurve::Reset()
{
@ -1702,7 +1702,7 @@ void RetinextransmissionCurve::Set(const std::vector<double> &curvePoints)
}
RetinexgaintransmissionCurve::RetinexgaintransmissionCurve() {};
RetinexgaintransmissionCurve::RetinexgaintransmissionCurve() {}
void RetinexgaintransmissionCurve::Reset()
{
@ -1812,7 +1812,7 @@ void OpacityCurve::Set(const std::vector<double> &curvePoints, bool &opautili)
}
WavCurve::WavCurve() : sum(0.f) {};
WavCurve::WavCurve() : sum(0.f) {}
void WavCurve::Reset()
{
@ -1855,7 +1855,7 @@ void WavCurve::Set(const std::vector<double> &curvePoints)
}
WavOpacityCurveRG::WavOpacityCurveRG() {};
WavOpacityCurveRG::WavOpacityCurveRG() {}
void WavOpacityCurveRG::Reset()
{
@ -1888,7 +1888,7 @@ void WavOpacityCurveRG::Set(const std::vector<double> &curvePoints)
}
WavOpacityCurveBY::WavOpacityCurveBY() {};
WavOpacityCurveBY::WavOpacityCurveBY() {}
void WavOpacityCurveBY::Reset()
{
@ -1920,7 +1920,7 @@ void WavOpacityCurveBY::Set(const std::vector<double> &curvePoints)
}
}
WavOpacityCurveW::WavOpacityCurveW() {};
WavOpacityCurveW::WavOpacityCurveW() {}
void WavOpacityCurveW::Reset()
{
@ -1952,7 +1952,7 @@ void WavOpacityCurveW::Set(const std::vector<double> &curvePoints)
}
}
WavOpacityCurveWL::WavOpacityCurveWL() {};
WavOpacityCurveWL::WavOpacityCurveWL() {}
void WavOpacityCurveWL::Reset()
{
@ -1985,7 +1985,7 @@ void WavOpacityCurveWL::Set(const std::vector<double> &curvePoints)
}
NoiseCurve::NoiseCurve() : sum(0.f) {};
NoiseCurve::NoiseCurve() : sum(0.f) {}
void NoiseCurve::Reset()
{
@ -2684,7 +2684,7 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float
Ciecam02::jch2xyz_ciecam02float(x, y, z,
J, C, h,
xw, yw, zw,
c, nc, 1, pow1, nbb, ncb, fl, cz, d, aw);
c, nc, pow1, nbb, ncb, fl, cz, d, aw );
if (!isfinite(x) || !isfinite(y) || !isfinite(z)) {
// can happen for colours on the rim of being outside gamut, that worked without chroma scaling but not with. Then we return only the curve's result.
@ -2767,7 +2767,7 @@ void PerceptualToneCurve::BatchApply(const size_t start, const size_t end, float
}
float PerceptualToneCurve::cf_range[2];
float PerceptualToneCurve::cf[1000];
float PerceptualToneCurve::f, PerceptualToneCurve::c, PerceptualToneCurve::nc, PerceptualToneCurve::yb, PerceptualToneCurve::la, PerceptualToneCurve::xw, PerceptualToneCurve::yw, PerceptualToneCurve::zw, PerceptualToneCurve::gamut;
float PerceptualToneCurve::f, PerceptualToneCurve::c, PerceptualToneCurve::nc, PerceptualToneCurve::yb, PerceptualToneCurve::la, PerceptualToneCurve::xw, PerceptualToneCurve::yw, PerceptualToneCurve::zw;
float PerceptualToneCurve::n, PerceptualToneCurve::d, PerceptualToneCurve::nbb, PerceptualToneCurve::ncb, PerceptualToneCurve::cz, PerceptualToneCurve::aw, PerceptualToneCurve::wh, PerceptualToneCurve::pfl, PerceptualToneCurve::fl, PerceptualToneCurve::pow1;
void PerceptualToneCurve::init()
@ -2783,7 +2783,7 @@ void PerceptualToneCurve::init()
c = 0.69f;
nc = 1.00f;
Ciecam02::initcam1float(gamut, yb, 1.f, f, la, xw, yw, zw, n, d, nbb, ncb,
Ciecam02::initcam1float(yb, 1.f, f, la, xw, yw, zw, n, d, nbb, ncb,
cz, aw, wh, pfl, fl, c);
pow1 = pow_F(1.64f - pow_F(0.29f, n), 0.73f);

View File

@ -473,11 +473,11 @@ protected:
public:
DiagonalCurve(const std::vector<double>& points, int ppn = CURVES_MIN_POLY_POINTS);
virtual ~DiagonalCurve();
~DiagonalCurve () override;
double getVal(double t) const;
void getVal(const std::vector<double>& t, std::vector<double>& res) const;
bool isIdentity() const
double getVal (double t) const override;
void getVal (const std::vector<double>& t, std::vector<double>& res) const override;
bool isIdentity () const override
{
return kind == DCT_Empty;
};
@ -498,12 +498,12 @@ private:
public:
FlatCurve(const std::vector<double>& points, bool isPeriodic = true, int ppn = CURVES_MIN_POLY_POINTS);
virtual ~FlatCurve();
~FlatCurve () override;
double getVal(double t) const;
void getVal(const std::vector<double>& t, std::vector<double>& res) const;
double getVal (double t) const override;
void getVal (const std::vector<double>& t, std::vector<double>& res) const override;
bool setIdentityValue(double iVal);
bool isIdentity() const
bool isIdentity () const override
{
return kind == FCT_Empty;
};
@ -1051,7 +1051,7 @@ private:
static float cf_range[2];
static float cf[1000];
// for ciecam02
static float f, c, nc, yb, la, xw, yw, zw, gamut;
static float f, c, nc, yb, la, xw, yw, zw;
static float n, d, nbb, ncb, cz, aw, wh, pfl, fl, pow1;
static void cubic_spline(const float x[], const float y[], const int len, const float out_x[], float out_y[], const int out_len);

View File

@ -34,6 +34,10 @@
//#define BENCHMARK
#include "StopWatch.h"
#include <zlib.h>
#include <stdint.h>
/*
dcraw.c -- Dave Coffin's raw photo decoder
Copyright 1997-2018 by Dave Coffin, dcoffin a cybercom o net
@ -1229,23 +1233,46 @@ void CLASS lossless_dng_load_raw()
}
}
static uint32_t DNG_HalfToFloat(uint16_t halfValue);
void CLASS packed_dng_load_raw()
{
ushort *pixel, *rp;
int row, col;
int isfloat = (tiff_nifds == 1 && tiff_ifd[0].sample_format == 3 && (tiff_bps == 16 || tiff_bps == 32));
if (isfloat) {
float_raw_image = new float[raw_width * raw_height];
}
pixel = (ushort *) calloc (raw_width, tiff_samples*sizeof *pixel);
merror (pixel, "packed_dng_load_raw()");
for (row=0; row < raw_height; row++) {
if (tiff_bps == 16)
if (tiff_bps == 16) {
read_shorts (pixel, raw_width * tiff_samples);
else {
if (isfloat) {
uint32_t *dst = reinterpret_cast<uint32_t *>(&float_raw_image[row*raw_width]);
for (col = 0; col < raw_width; col++) {
uint32_t f = DNG_HalfToFloat(pixel[col]);
dst[col] = f;
}
}
} else if (isfloat) {
if (fread(&float_raw_image[row*raw_width], sizeof(float), raw_width, ifp) != raw_width) {
derror();
}
if ((order == 0x4949) == (ntohs(0x1234) == 0x1234)) {
char *d = reinterpret_cast<char *>(float_raw_image);
rtengine::swab(d, d, sizeof(float)*raw_width);
}
} else {
getbits(-1);
for (col=0; col < raw_width * tiff_samples; col++)
pixel[col] = getbits(tiff_bps);
}
for (rp=pixel, col=0; col < raw_width; col++)
adobe_copy_pixel (row, col, &rp);
if (!isfloat) {
for (rp=pixel, col=0; col < raw_width; col++)
adobe_copy_pixel (row, col, &rp);
}
}
free (pixel);
}
@ -6041,7 +6068,7 @@ int CLASS parse_tiff_ifd (int base)
char software[64], *cbuf, *cp;
uchar cfa_pat[16], cfa_pc[] = { 0,1,2,3 }, tab[256];
double cc[2][4][4];
double cm[2][4][3] = {NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN,NAN};
double cm[2][4][3] = {{{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN}},{{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN},{NAN,NAN,NAN}}};
double cam_xyz[4][3], num;
double ab[]={ 1,1,1,1 }, asn[] = { 0,0,0,0 }, xyz[] = { 1,1,1 };
unsigned sony_curve[] = { 0,0,0,0,0,4095 };
@ -6173,6 +6200,7 @@ int CLASS parse_tiff_ifd (int base)
break;
case 305: case 11: /* Software */
fgets (software, 64, ifp);
RT_software = software;
if (!strncmp(software,"Adobe",5) ||
!strncmp(software,"dcraw",5) ||
!strncmp(software,"UFRaw",5) ||
@ -6441,6 +6469,7 @@ guess_cfa_pc:
case 61450:
cblack[4] = cblack[5] = MIN(sqrt(len),64);
case 50714: /* BlackLevel */
RT_blacklevel_from_constant = ThreeValBool::F;
if(cblack[4] * cblack[5] == 0) {
int dblack[] = { 0,0,0,0 };
black = getreal(type);
@ -6461,9 +6490,11 @@ guess_cfa_pc:
for (num=i=0; i < (len & 0xffff); i++)
num += getreal(type);
black += num/len + 0.5;
RT_blacklevel_from_constant = ThreeValBool::F;
break;
case 50717: /* WhiteLevel */
maximum = getint(type);
RT_whitelevel_from_constant = ThreeValBool::F;
break;
case 50718: /* DefaultScale */
pixel_aspect = getreal(type);
@ -6492,6 +6523,14 @@ guess_cfa_pc:
xyz[2] = 1 - xyz[0] - xyz[1];
FORC3 xyz[c] /= d65_white[c];
break;
case 50730: /* BaselineExposure */
if (dng_version) {
double be = getreal(type);
if (!std::isnan(be)) {
RT_baseline_exposure = be;
}
}
break;
case 50740: /* DNGPrivateData */
if (dng_version) break;
parse_minolta (j = get4()+base);
@ -6601,8 +6640,6 @@ guess_cfa_pc:
if (!use_cm)
FORCC pre_mul[c] /= cc[cm_D65][c][c];
RT_from_adobe_dng_converter = !strncmp(software, "Adobe DNG Converter", 19);
return 0;
}
@ -8665,11 +8702,31 @@ void CLASS adobe_coeff (const char *make, const char *model)
int i, j;
sprintf (name, "%s %s", make, model);
// -- RT --------------------------------------------------------------------
const bool is_pentax_dng = dng_version && !strncmp(RT_software.c_str(), "PENTAX", 6);
// indicate that DCRAW wants these from constants (rather than having loaded these from RAW file
// note: this is simplified so far, in some cases dcraw calls this when it has say the black level
// from file, but then we will not provide any black level in the tables. This case is mainly just
// to avoid loading table values if we have loaded a DNG conversion of a raw file (which already
// have constants stored in the file).
if (RT_whitelevel_from_constant == ThreeValBool::X || is_pentax_dng) {
RT_whitelevel_from_constant = ThreeValBool::T;
}
if (RT_blacklevel_from_constant == ThreeValBool::X || is_pentax_dng) {
RT_blacklevel_from_constant = ThreeValBool::T;
}
if (RT_matrix_from_constant == ThreeValBool::X) {
RT_matrix_from_constant = ThreeValBool::T;
}
// -- RT --------------------------------------------------------------------
for (i=0; i < sizeof table / sizeof *table; i++)
if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) {
if (table[i].black) black = (ushort) table[i].black;
if (table[i].maximum) maximum = (ushort) table[i].maximum;
if (table[i].trans[0]) {
if (RT_blacklevel_from_constant == ThreeValBool::T && table[i].black) black = (ushort) table[i].black;
if (RT_whitelevel_from_constant == ThreeValBool::T && table[i].maximum) maximum = (ushort) table[i].maximum;
if (RT_matrix_from_constant == ThreeValBool::T && table[i].trans[0]) {
for (raw_color = j=0; j < 12; j++)
((double *)cam_xyz)[j] = table[i].trans[j] / 10000.0;
cam_xyz_coeff (rgb_cam, cam_xyz);
@ -10107,14 +10164,16 @@ bw: colors = 1;
dng_skip:
if ((use_camera_matrix & (use_camera_wb || dng_version))
&& cmatrix[0][0] > 0.125
&& !RT_from_adobe_dng_converter /* RT -- do not use the embedded
* matrices for DNGs coming from the
* Adobe DNG Converter, to ensure
* consistency of WB values between
* DNG-converted and original raw
* files. See #4129 */) {
&& strncmp(RT_software.c_str(), "Adobe DNG Converter", 19) != 0
/* RT -- do not use the embedded
* matrices for DNGs coming from the
* Adobe DNG Converter, to ensure
* consistency of WB values between
* DNG-converted and original raw
* files. See #4129 */) {
memcpy (rgb_cam, cmatrix, sizeof cmatrix);
raw_color = 0;
// raw_color = 0;
RT_matrix_from_constant = ThreeValBool::F;
}
if(!strncmp(make, "Panasonic", 9) && !strncmp(model, "DMC-LX100",9))
adobe_coeff (make, model);
@ -10148,7 +10207,14 @@ dng_skip:
if (raw_width < width ) raw_width = width;
}
if (!tiff_bps) tiff_bps = 12;
if (!maximum) maximum = ((uint64_t)1 << tiff_bps) - 1; // use uint64_t to avoid overflow if tiff_bps == 32
if (!maximum) {
if (tiff_nifds == 1 && tiff_ifd[0].sample_format == 3) {
// float DNG, default white level is 1.0
maximum = 1;
} else {
maximum = ((uint64_t)1 << tiff_bps) - 1; // use uint64_t to avoid overflow if tiff_bps == 32
}
}
if (!load_raw || height < 22 || width < 22 ||
tiff_samples > 6 || colors > 4)
is_raw = 0;
@ -10231,8 +10297,8 @@ notraw:
/* RT: DNG Float */
#include <zlib.h>
#include <stdint.h>
// #include <zlib.h>
// #include <stdint.h>
static void decodeFPDeltaRow(Bytef * src, Bytef * dst, size_t tileWidth, size_t realTileWidth, int bytesps, int factor) {
// DecodeDeltaBytes
@ -10264,9 +10330,10 @@ static void decodeFPDeltaRow(Bytef * src, Bytef * dst, size_t tileWidth, size_t
}
#ifndef __F16C__
#if 1 //ndef __F16C__
// From DNG SDK dng_utils.h
static inline uint32_t DNG_HalfToFloat(uint16_t halfValue) {
static //inline
uint32_t DNG_HalfToFloat(uint16_t halfValue) {
int32_t sign = (halfValue >> 15) & 0x00000001;
int32_t exponent = (halfValue >> 10) & 0x0000001f;
int32_t mantissa = halfValue & 0x000003ff;

View File

@ -57,10 +57,10 @@ public:
,verbose(0)
,use_auto_wb(0),use_camera_wb(0),use_camera_matrix(1)
,output_color(1),output_bps(8),output_tiff(0),med_passes(0),no_auto_bright(0)
,RT_whitelevel_from_constant(0)
,RT_blacklevel_from_constant(0)
,RT_matrix_from_constant(0)
,RT_from_adobe_dng_converter(false)
,RT_whitelevel_from_constant(ThreeValBool::X)
,RT_blacklevel_from_constant(ThreeValBool::X)
,RT_matrix_from_constant(ThreeValBool::X)
,RT_baseline_exposure(0)
,getbithuff(this,ifp,zero_after_ff)
,nikbithuff(ifp)
{
@ -152,10 +152,12 @@ protected:
int output_color, output_bps, output_tiff, med_passes;
int no_auto_bright;
unsigned greybox[4] ;
int RT_whitelevel_from_constant;
int RT_blacklevel_from_constant;
int RT_matrix_from_constant;
bool RT_from_adobe_dng_converter;
enum class ThreeValBool { X = -1, F, T };
ThreeValBool RT_whitelevel_from_constant;
ThreeValBool RT_blacklevel_from_constant;
ThreeValBool RT_matrix_from_constant;
std::string RT_software;
double RT_baseline_exposure;
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
@ -259,7 +261,7 @@ getbithuff_t getbithuff;
class nikbithuff_t
{
public:
nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
explicit nikbithuff_t(IMFILE *&i):bitbuf(0),errors(0),vbits(0),ifp(i){}
void operator()() {bitbuf = vbits = 0;};
unsigned operator()(int nbits, ushort *huff);
unsigned errorCount() { return errors; }
@ -426,6 +428,7 @@ void kodak_thumb_load_raw();
// sony_decrypt(unsigned *data, int len, int start, int key);
class sony_decrypt_t{
public:
explicit sony_decrypt_t() : p(0) {}
void operator()(unsigned *data, int len, int start, int key);
private:
unsigned pad[128], p;

View File

@ -817,59 +817,58 @@ void Crop::update(int todo)
}
if (todo & (M_AUTOEXP | M_RGBCURVE)) {
if (todo & M_RGBCURVE) {
Imagefloat *workingCrop = baseCrop;
if (params.icm.workingTRC == "Custom") { //exec TRC IN free
Glib::ustring profile;
profile = params.icm.workingProfile;
const Glib::ustring profile = params.icm.workingProfile;
if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") {
int cw = baseCrop->getWidth();
int ch = baseCrop->getHeight();
workingCrop = new Imagefloat(cw, ch);
baseCrop->copyData(workingCrop);
//first put gamma TRC to 1
int cw = baseCrop->getWidth();
int ch = baseCrop->getHeight();
Imagefloat* readyImg0 = NULL;
readyImg0 = parent->ipf.workingtrc(baseCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310);
Imagefloat* readyImg0 = parent->ipf.workingtrc(workingCrop, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310);
#pragma omp parallel for
for (int row = 0; row < ch; row++) {
for (int col = 0; col < cw; col++) {
baseCrop->r(row, col) = (float)readyImg0->r(row, col);
baseCrop->g(row, col) = (float)readyImg0->g(row, col);
baseCrop->b(row, col) = (float)readyImg0->b(row, col);
workingCrop->r(row, col) = (float)readyImg0->r(row, col);
workingCrop->g(row, col) = (float)readyImg0->g(row, col);
workingCrop->b(row, col) = (float)readyImg0->b(row, col);
}
}
delete readyImg0;
//adjust gamma TRC
Imagefloat* readyImg = NULL;
readyImg = parent->ipf.workingtrc(baseCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope);
Imagefloat* readyImg = parent->ipf.workingtrc(workingCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope);
#pragma omp parallel for
for (int row = 0; row < ch; row++) {
for (int col = 0; col < cw; col++) {
baseCrop->r(row, col) = (float)readyImg->r(row, col);
baseCrop->g(row, col) = (float)readyImg->g(row, col);
baseCrop->b(row, col) = (float)readyImg->b(row, col);
workingCrop->r(row, col) = (float)readyImg->r(row, col);
workingCrop->g(row, col) = (float)readyImg->g(row, col);
workingCrop->b(row, col) = (float)readyImg->b(row, col);
}
}
delete readyImg;
}
}
}
if (todo & M_RGBCURVE) {
double rrm, ggm, bbm;
DCPProfile::ApplyState as;
DCPProfile *dcpProf = parent->imgsrc->getDCP(params.icm, as);
LUTu histToneCurve;
parent->ipf.rgbProc(baseCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve,
parent->ipf.rgbProc (workingCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve,
params.toneCurve.saturation, parent->rCurve, parent->gCurve, parent->bCurve, parent->colourToningSatLimit, parent->colourToningSatLimitOpacity, parent->ctColorCurve, parent->ctOpacityCurve, parent->opautili, parent->clToningcurve, parent->cl2Toningcurve,
parent->customToneCurve1, parent->customToneCurve2, parent->beforeToneCurveBW, parent->afterToneCurveBW, rrm, ggm, bbm,
parent->bwAutoR, parent->bwAutoG, parent->bwAutoB, dcpProf, as, histToneCurve);
if (workingCrop != baseCrop) {
delete workingCrop;
}
}
/*xref=000;yref=000;

View File

@ -74,12 +74,12 @@ protected:
public:
Crop(ImProcCoordinator* parent, EditDataProvider *editDataProvider, bool isDetailWindow);
virtual ~Crop();
~Crop () override;
// MyMutex* locMutex;
void setEditSubscriber(EditSubscriber* newSubscriber);
bool hasListener();
void update(int todo);
void setWindow(int cropX, int cropY, int cropW, int cropH, int skip)
void setWindow (int cropX, int cropY, int cropW, int cropH, int skip) override
{
setCropSizes(cropX, cropY, cropW, cropH, skip, false);
}
@ -87,12 +87,12 @@ public:
/** @brief Synchronously look out if a full update is necessary
* First try, only make fullUpdate if this returns false
*/
bool tryUpdate();
bool tryUpdate () override;
/** @brief Asynchronously reprocess the detailed crop */
void fullUpdate(); // called via thread
void fullUpdate () override; // called via thread
void setListener(DetailedCropListener* il);
void destroy();
void setListener (DetailedCropListener* il) override;
void destroy () override;
int get_skip();
int getLeftBorder();
int getUpperBorder();

View File

@ -163,7 +163,7 @@ inline void RawImageSource::interpolate_row_rb (float* ar, float* ab, float* pg,
n++;
}
nonGreen2[j] = cg[j] + nonGreen / n;
nonGreen2[j] = cg[j] + nonGreen / std::max(n, 1);
// linear R-G interp. horizontally
float val1;

View File

@ -114,7 +114,7 @@ public:
spline_cubic_set();
}
double getVal(double t) const
double getVal(double t) const override
{
// values under and over the first and last point
if (t > x[N - 1]) {

View File

@ -623,7 +623,7 @@ private:
struct PMatrix {
double matrix[3][3];
PMatrix(): matrix{} {}
PMatrix(const CMatrix &m)
explicit PMatrix(const CMatrix &m)
{
set(m);
}

View File

@ -257,7 +257,7 @@ public:
/* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image */
void allocate (int W, int H)
void allocate (int W, int H) override
{
if (W == width && H == height) {
@ -327,7 +327,7 @@ public:
}
}
void rotate (int deg)
void rotate (int deg) override
{
if (deg == 90) {
@ -446,7 +446,7 @@ public:
}
}
void hflip ()
void hflip () override
{
int width2 = width / 2;
@ -470,7 +470,7 @@ public:
#endif
}
void vflip ()
void vflip () override
{
int height2 = height / 2;
@ -648,7 +648,7 @@ public:
/* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image */
void allocate (int W, int H)
void allocate (int W, int H) override
{
if (W == width && H == height) {
@ -736,7 +736,7 @@ public:
}
}
void rotate (int deg)
void rotate (int deg) override
{
if (deg == 90) {
@ -863,7 +863,7 @@ public:
}
}
void hflip ()
void hflip () override
{
int width2 = width / 2;
@ -895,7 +895,7 @@ public:
#endif
}
void vflip ()
void vflip () override
{
int height2 = height / 2;
@ -961,7 +961,7 @@ public:
}
}
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override
{
histogram.clear();
avg_r = avg_g = avg_b = 0.;
@ -993,7 +993,7 @@ public:
}
}
void getAutoWBMultipliers (double &rm, double &gm, double &bm) const
void getAutoWBMultipliers (double &rm, double &gm, double &bm) const override
{
double avg_r = 0.;
@ -1067,9 +1067,9 @@ public:
}
}
virtual void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn,
void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn,
std::vector<Coord2D> &red, std::vector<Coord2D> &green, std::vector<Coord2D> &blue,
int tran) const
int tran) const override
{
int x;
int y;
@ -1297,7 +1297,7 @@ public:
* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);"
*/
void allocate (int W, int H)
void allocate (int W, int H) override
{
if (W == width && H == height) {
@ -1351,7 +1351,7 @@ public:
memcpy (dest->data, data, 3 * width * height * sizeof(T));
}
void rotate (int deg)
void rotate (int deg) override
{
if (deg == 90) {
@ -1485,7 +1485,7 @@ public:
}
}
void hflip ()
void hflip () override
{
int width2 = width / 2;
@ -1521,7 +1521,7 @@ public:
}
}
void vflip ()
void vflip () override
{
AlignedBuffer<T> lBuffer(3 * width);
@ -1570,7 +1570,7 @@ public:
}
}
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override
{
histogram.clear();
avg_r = avg_g = avg_b = 0.;
@ -1602,7 +1602,7 @@ public:
}
}
void getAutoWBMultipliers (double &rm, double &gm, double &bm) const
void getAutoWBMultipliers (double &rm, double &gm, double &bm) const override
{
double avg_r = 0.;
@ -1676,9 +1676,9 @@ public:
}
}
virtual void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn,
void getSpotWBData (double &reds, double &greens, double &blues, int &rn, int &gn, int &bn,
std::vector<Coord2D> &red, std::vector<Coord2D> &green, std::vector<Coord2D> &blue,
int tran) const
int tran) const override
{
int x;
int y;
@ -1782,14 +1782,14 @@ public:
class IImagefloat : public IImage, public PlanarRGBData<float>
{
public:
virtual ~IImagefloat() {}
~IImagefloat() override {}
};
/** @brief This class represents an image having a classical 8 bits/pixel representation */
class IImage8 : public IImage, public ChunkyRGBData<unsigned char>
{
public:
virtual ~IImage8() {}
~IImage8() override {}
};
/** @brief This class represents an image having a 16 bits/pixel planar representation.
@ -1797,7 +1797,7 @@ public:
class IImage16 : public IImage, public PlanarRGBData<unsigned short>
{
public:
virtual ~IImage16() {}
~IImage16() override {}
};
}

View File

@ -38,7 +38,7 @@ public:
Image16();
Image16(int width, int height);
~Image16();
~Image16() override;
Image16* copy() const;

View File

@ -36,7 +36,7 @@ public:
Image8 ();
Image8 (int width, int height);
~Image8 ();
~Image8 () override;
Image8* copy () const;

View File

@ -98,35 +98,35 @@ private:
public:
FramesData (const Glib::ustring& fname, std::unique_ptr<RawMetaDataLocation> rml = nullptr, bool firstFrameOnly = false);
~FramesData ();
~FramesData () override;
void setDCRawFrameCount (unsigned int frameCount);
unsigned int getRootCount () const;
unsigned int getFrameCount () const;
bool getPixelShift () const;
bool getHDR (unsigned int frame = 0) const;
std::string getImageType (unsigned int frame) const;
IIOSampleFormat getSampleFormat (unsigned int frame = 0) const;
rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const;
rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const;
rtexif::TagDirectory* getBestExifData (ImageSource *imgSource, procparams::RAWParams *rawParams) const;
procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const;
bool hasExif (unsigned int frame = 0) const;
bool hasIPTC (unsigned int frame = 0) const;
tm getDateTime (unsigned int frame = 0) const;
time_t getDateTimeAsTS (unsigned int frame = 0) const;
int getISOSpeed (unsigned int frame = 0) const;
double getFNumber (unsigned int frame = 0) const;
double getFocalLen (unsigned int frame = 0) const;
double getFocalLen35mm (unsigned int frame = 0) const;
float getFocusDist (unsigned int frame = 0) const;
double getShutterSpeed (unsigned int frame = 0) const;
double getExpComp (unsigned int frame = 0) const;
std::string getMake (unsigned int frame = 0) const;
std::string getModel (unsigned int frame = 0) const;
std::string getLens (unsigned int frame = 0) const;
unsigned int getRootCount () const override;
unsigned int getFrameCount () const override;
bool getPixelShift () const override;
bool getHDR (unsigned int frame = 0) const override;
std::string getImageType (unsigned int frame) const override;
IIOSampleFormat getSampleFormat (unsigned int frame = 0) const override;
rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const override;
rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const override;
rtexif::TagDirectory* getBestExifData (ImageSource *imgSource, procparams::RAWParams *rawParams) const override;
procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const override;
bool hasExif (unsigned int frame = 0) const override;
bool hasIPTC (unsigned int frame = 0) const override;
tm getDateTime (unsigned int frame = 0) const override;
time_t getDateTimeAsTS (unsigned int frame = 0) const override;
int getISOSpeed (unsigned int frame = 0) const override;
double getFNumber (unsigned int frame = 0) const override;
double getFocalLen (unsigned int frame = 0) const override;
double getFocalLen35mm (unsigned int frame = 0) const override;
float getFocusDist (unsigned int frame = 0) const override;
double getShutterSpeed (unsigned int frame = 0) const override;
double getExpComp (unsigned int frame = 0) const override;
std::string getMake (unsigned int frame = 0) const override;
std::string getModel (unsigned int frame = 0) const override;
std::string getLens (unsigned int frame = 0) const override;
std::string getSerialNumber (unsigned int frame = 0) const;
std::string getOrientation (unsigned int frame = 0) const;
std::string getOrientation (unsigned int frame = 0) const override;
};

View File

@ -42,7 +42,7 @@ public:
Imagefloat ();
Imagefloat (int width, int height);
~Imagefloat ();
~Imagefloat () override;
Imagefloat* copy () const;
@ -218,7 +218,7 @@ public:
return (uint32_t) ((sign << 31) | (exponent << 23) | mantissa);
}
virtual void normalizeFloat(float srcMinVal, float srcMaxVal);
void normalizeFloat(float srcMinVal, float srcMaxVal) override;
void normalizeFloatTo1();
void normalizeFloatTo65535();
void calcCroppedHistogram(const ProcParams &params, float scale, LUTu & hist);

View File

@ -72,7 +72,7 @@ public:
loadedProfileLength(0), iptc(nullptr), exifRoot (nullptr), sampleFormat(IIOSF_UNKNOWN),
sampleArrangement(IIOSA_UNKNOWN) {}
virtual ~ImageIO ();
~ImageIO () override;
void setProgressListener (ProgressListener* l);
void setSampleFormat(IIOSampleFormat sFormat);

View File

@ -65,7 +65,7 @@ public:
ImageSource () : references (1), redAWBMul(-1.), greenAWBMul(-1.), blueAWBMul(-1.),
embProfile(nullptr), idata(nullptr), dirpyrdenoiseExpComp(INFINITY) {}
virtual ~ImageSource () {}
~ImageSource () override {}
virtual int load (const Glib::ustring &fname) = 0;
virtual void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) {};
virtual void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold) {};
@ -119,11 +119,11 @@ public:
virtual void setProgressListener (ProgressListener* pl) {}
void increaseRef ()
void increaseRef () override
{
references++;
}
void decreaseRef ()
void decreaseRef () override
{
references--;
@ -151,19 +151,19 @@ public:
return dirpyrdenoiseExpComp;
}
// functions inherited from the InitialImage interface
virtual Glib::ustring getFileName ()
Glib::ustring getFileName () override
{
return fileName;
}
virtual cmsHPROFILE getEmbeddedProfile ()
cmsHPROFILE getEmbeddedProfile () override
{
return embProfile;
}
virtual const FramesMetaData* getMetaData ()
const FramesMetaData* getMetaData () override
{
return idata;
}
virtual ImageSource* getImageSource ()
ImageSource* getImageSource () override
{
return this;
}

View File

@ -202,13 +202,13 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
if (!highDetailNeeded) {
// if below 100% magnification, take a fast path
if (rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) && rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE)) {
if (rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) && rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)) {
rp.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST);
}
//bayerrp.all_enhance = false;
if (rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE) && rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE)) {
if (rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE) && rp.xtranssensor.method != RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) {
rp.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST);
}
@ -535,15 +535,18 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
if (todo & (M_AUTOEXP | M_RGBCURVE)) {
if (params.icm.workingTRC == "Custom") { //exec TRC IN free
Glib::ustring profile;
profile = params.icm.workingProfile;
if (oprevi == orig_prev) {
oprevi = new Imagefloat(pW, pH);
orig_prev->copyData(oprevi);
}
Glib::ustring profile = params.icm.workingProfile;
if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") {
int cw = oprevi->getWidth();
int ch = oprevi->getHeight();
// put gamma TRC to 1
Imagefloat* readyImg0 = NULL;
readyImg0 = ipf.workingtrc(oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310);
Imagefloat* readyImg0 = ipf.workingtrc(oprevi, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310);
#pragma omp parallel for
for (int row = 0; row < ch; row++) {
@ -556,8 +559,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
delete readyImg0;
//adjust TRC
Imagefloat* readyImg = NULL;
readyImg = ipf.workingtrc(oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope);
Imagefloat* readyImg = ipf.workingtrc(oprevi, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope);
#pragma omp parallel for
for (int row = 0; row < ch; row++) {

View File

@ -262,104 +262,87 @@ protected:
public:
ImProcCoordinator();
~ImProcCoordinator();
void assign(ImageSource* imgsrc);
ImProcCoordinator ();
~ImProcCoordinator () override;
void assign (ImageSource* imgsrc);
void getParams(procparams::ProcParams* dst)
void getParams (procparams::ProcParams* dst) override
{
*dst = params;
}
void startProcessing(int changeCode);
ProcParams* beginUpdateParams();
void endUpdateParams(ProcEvent change); // must be called after beginUpdateParams, triggers update
void endUpdateParams(int changeFlags);
void stopProcessing();
// void updatePreviewImage (int todo, Crop* cropCall = NULL);
// Glib::ustring datal;
void startProcessing (int changeCode) override;
ProcParams* beginUpdateParams () override;
void endUpdateParams (ProcEvent change) override; // must be called after beginUpdateParams, triggers update
void endUpdateParams (int changeFlags) override;
void stopProcessing () override;
std::string *retistrsav;
void setPreviewScale(int scale)
void setPreviewScale (int scale) override
{
setScale(scale);
}
int getPreviewScale()
int getPreviewScale () override
{
return scale;
}
//void fullUpdatePreviewImage ();
int getFullWidth()
int getFullWidth () override
{
return fullw;
}
int getFullHeight()
int getFullHeight () override
{
return fullh;
}
int getPreviewWidth()
int getPreviewWidth () override
{
return pW;
}
int getPreviewHeight()
int getPreviewHeight () override
{
return pH;
}
DetailedCrop* createCrop(::EditDataProvider *editDataProvider, bool isDetailWindow);
/*
<<<<<<< HEAD
bool getAutoWB(double& temp, double& green, double equal, double tempBias);
void getCamWB(double& temp, double& green);
void getSpotWB(int x, int y, int rectSize, double& temp, double& green);
void getAutoCrop(double ratio, int &x, int &y, int &w, int &h);
DetailedCrop* createCrop (::EditDataProvider *editDataProvider, bool isDetailWindow) override;
void setMonitorProfile(const Glib::ustring& profile, RenderingIntent intent);
void getMonitorProfile(Glib::ustring& profile, RenderingIntent& intent) const;
void setSoftProofing(bool softProof, bool gamutCheck);
void getSoftProofing(bool &softProof, bool &gamutCheck);
=======
*/
bool getAutoWB(double& temp, double& green, double equal, double tempBias);
void getCamWB(double& temp, double& green);
void getSpotWB(int x, int y, int rectSize, double& temp, double& green);
void getAutoCrop(double ratio, int &x, int &y, int &w, int &h);
bool getHighQualComputed();
void setHighQualComputed();
void setMonitorProfile(const Glib::ustring& profile, RenderingIntent intent);
void getMonitorProfile(Glib::ustring& profile, RenderingIntent& intent) const;
void setSoftProofing(bool softProof, bool gamutCheck);
void getSoftProofing(bool &softProof, bool &gamutCheck);
void setSharpMask(bool sharpMask);
bool updateTryLock()
bool getAutoWB (double& temp, double& green, double equal, double tempBias) override;
void getCamWB (double& temp, double& green) override;
void getSpotWB (int x, int y, int rectSize, double& temp, double& green) override;
void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) override;
bool getHighQualComputed() override;
void setHighQualComputed() override;
void setMonitorProfile (const Glib::ustring& profile, RenderingIntent intent) override;
void getMonitorProfile (Glib::ustring& profile, RenderingIntent& intent) const override;
void setSoftProofing (bool softProof, bool gamutCheck) override;
void getSoftProofing (bool &softProof, bool &gamutCheck) override;
void setSharpMask (bool sharpMask) override;
bool updateTryLock () override
{
return updaterThreadStart.trylock();
}
void updateUnLock()
void updateUnLock () override
{
updaterThreadStart.unlock();
}
void setProgressListener(ProgressListener* pl)
void setProgressListener (ProgressListener* pl) override
{
plistener = pl;
}
void setPreviewImageListener(PreviewImageListener* il)
void setPreviewImageListener (PreviewImageListener* il) override
{
imageListener = il;
}
void setSizeListener(SizeListener* il)
void setSizeListener (SizeListener* il) override
{
sizeListeners.push_back(il);
}
void delSizeListener(SizeListener* il)
void delSizeListener (SizeListener* il) override
{
std::vector<SizeListener*>::iterator it = std::find(sizeListeners.begin(), sizeListeners.end(), il);
@ -367,71 +350,70 @@ public:
sizeListeners.erase(it);
}
}
void setAutoExpListener(AutoExpListener* ael)
void setAutoExpListener (AutoExpListener* ael) override
{
aeListener = ael;
}
void setHistogramListener(HistogramListener *h)
void setHistogramListener (HistogramListener *h) override
{
hListener = h;
}
void setAutoCamListener(AutoCamListener* acl)
void setAutoCamListener (AutoCamListener* acl) override
{
acListener = acl;
}
void setAutoBWListener(AutoBWListener* abw)
void setAutoBWListener (AutoBWListener* abw) override
{
abwListener = abw;
}
void setAutoWBListener(AutoWBListener* awb)
void setAutoWBListener (AutoWBListener* awb) override
{
awbListener = awb;
}
void setAutoColorTonListener(AutoColorTonListener* bwct)
void setAutoColorTonListener (AutoColorTonListener* bwct) override
{
actListener = bwct;
}
void setAutoChromaListener(AutoChromaListener* adn)
void setAutoChromaListener (AutoChromaListener* adn) override
{
adnListener = adn;
}
void setRetinexListener(RetinexListener* adh)
void setRetinexListener (RetinexListener* adh) override
{
dehaListener = adh;
}
void setWaveletListener(WaveletListener* awa)
void setWaveletListener (WaveletListener* awa) override
{
awavListener = awa;
}
void setFrameCountListener(FrameCountListener* fcl)
void setFrameCountListener (FrameCountListener* fcl) override
{
frameCountListener = fcl;
}
void setFlatFieldAutoClipListener (FlatFieldAutoClipListener* ffacl)
void setFlatFieldAutoClipListener (FlatFieldAutoClipListener* ffacl) override
{
flatFieldAutoClipListener = ffacl;
}
void setBayerAutoContrastListener (AutoContrastListener* acl)
void setBayerAutoContrastListener (AutoContrastListener* acl) override
{
bayerAutoContrastListener = acl;
}
void setXtransAutoContrastListener (AutoContrastListener* acl)
void setXtransAutoContrastListener (AutoContrastListener* acl) override
{
xtransAutoContrastListener = acl;
}
void setImageTypeListener(ImageTypeListener* itl)
void setImageTypeListener (ImageTypeListener* itl) override
{
imageTypeListener = itl;
}
void saveInputICCReference(const Glib::ustring& fname, bool apply_wb);
void saveInputICCReference (const Glib::ustring& fname, bool apply_wb) override;
InitialImage* getInitialImage()
InitialImage* getInitialImage () override
{
return imgsrc;
}

View File

@ -936,12 +936,12 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
float cz, wh, pfl;
Ciecam02::initcam1float(gamu, yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c);
Ciecam02::initcam1float (yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c);
//printf ("wh=%f \n", wh);
const float pow1 = pow_F(1.64f - pow_F(0.29f, n), 0.73f);
float nj, nbbj, ncbj, czj, awj, flj;
Ciecam02::initcam2float(gamu, yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj);
Ciecam02::initcam2float (yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj);
#ifdef __SSE2__
const float reccmcz = 1.f / (c2 * czj);
#endif
@ -1056,7 +1056,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
Q, M, s, aw, fl, wh,
x, y, z,
xw1, yw1, zw1,
c, nc, gamu, pow1, nbb, ncb, pfl, cz, d);
c, nc, pow1, nbb, ncb, pfl, cz, d);
Jbuffer[k] = J;
Cbuffer[k] = C;
hbuffer[k] = h;
@ -1094,7 +1094,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
Q, M, s, aw, fl, wh,
x, y, z,
xw1, yw1, zw1,
c, nc, gamu, pow1, nbb, ncb, pfl, cz, d);
c, nc, pow1, nbb, ncb, pfl, cz, d);
#endif
float Jpro, Cpro, hpro, Qpro, Mpro, spro;
Jpro = J;
@ -1509,7 +1509,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
Ciecam02::jch2xyz_ciecam02float(xx, yy, zz,
J, C, h,
xw2, yw2, zw2,
c2, nc2, gamu, pow1n, nbbj, ncbj, flj, czj, dj, awj);
c2, nc2, pow1n, nbbj, ncbj, flj, czj, dj, awj);
float x, y, z;
x = xx * 655.35f;
y = yy * 655.35f;
@ -1664,7 +1664,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
if (params->defringe.enabled)
if (execsharp) {
lab->deleteLab();
ImProcFunctions::defringecam(ncie); //defringe adapted to CIECAM
defringecam (ncie);//defringe adapted to CIECAM
lab->reallocLab();
}
@ -1675,7 +1675,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
const bool hotbad = params->dirpyrequalizer.skinprotect != 0.0;
lab->deleteLab();
ImProcFunctions::badpixcam(ncie, artifact / scale, 5, 2, chrom, hotbad); //enabled remove artifacts for cbDL
badpixcam (ncie, artifact / scale, 5, 2, chrom, hotbad); //enabled remove artifacts for cbDL
lab->reallocLab();
}
@ -1683,7 +1683,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
if (params->colorappearance.badpixsl > 0 && execsharp) {
int mode = params->colorappearance.badpixsl;
lab->deleteLab();
ImProcFunctions::badpixcam(ncie, 3.0, 10, mode, 0, true); //for bad pixels CIECAM
badpixcam (ncie, 3.0, 10, mode, 0, true);//for bad pixels CIECAM
lab->reallocLab();
}
@ -1692,17 +1692,17 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
buffers[0] = lab->L;
buffers[1] = lab->a;
buffers[2] = lab->b;
ImProcFunctions::impulsedenoisecam(ncie, buffers); //impulse adapted to CIECAM
impulsedenoisecam (ncie, buffers); //impulse adapted to CIECAM
}
if (params->sharpenMicro.enabled)if (execsharp) {
ImProcFunctions::MLmicrocontrastcam(ncie);
MLmicrocontrastcam (ncie);
}
if (params->sharpening.enabled)
if (execsharp) {
float **buffer = lab->L; // We can use the L-buffer from lab as buffer to save some memory
ImProcFunctions::sharpeningcam(ncie, buffer, showSharpMask); // sharpening adapted to CIECAM
sharpeningcam (ncie, buffer, showSharpMask); // sharpening adapted to CIECAM
}
//if(params->dirpyrequalizer.enabled) if(execsharp) {
@ -1758,7 +1758,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
if (epdEnabled && params->colorappearance.tonecie && algepd) {
lab->deleteLab();
ImProcFunctions::EPDToneMapCIE(ncie, a_w, c_, width, height, minQ, maxQ, Iterates, scale);
EPDToneMapCIE (ncie, a_w, c_, width, height, minQ, maxQ, Iterates, scale );
lab->reallocLab();
}
@ -1842,7 +1842,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb
Ciecam02::jch2xyz_ciecam02float(xx, yy, zz,
ncie->J_p[i][j], ncie_C_p, ncie->h_p[i][j],
xw2, yw2, zw2,
c2, nc2, gamu, pow1n, nbbj, ncbj, flj, czj, dj, awj);
c2, nc2, pow1n, nbbj, ncbj, flj, czj, dj, awj);
float x = (float)xx * 655.35f;
float y = (float)yy * 655.35f;
float z = (float)zz * 655.35f;

View File

@ -143,8 +143,12 @@ BENCHFUN
}
for (int i = begin_idx; i < end_idx; ++i) {
rtengine::guidedFilter(guide, abmask[i], abmask[i], max(int(4 / scale + 0.5), 1), 0.001, multiThread);
rtengine::guidedFilter(guide, Lmask[i], Lmask[i], max(int(25 / scale + 0.5), 1), 0.0001, multiThread);
float blur = params->colorToning.labregions[i].maskBlur;
blur = blur < 0.f ? -1.f/blur : 1.f + blur;
int r1 = max(int(4 / scale * blur + 0.5), 1);
int r2 = max(int(25 / scale * blur + 0.5), 1);
rtengine::guidedFilter(guide, abmask[i], abmask[i], r1, 0.001, multiThread);
rtengine::guidedFilter(guide, Lmask[i], Lmask[i], r2, 0.0001, multiThread);
}
if (show_mask_idx >= 0) {
@ -166,21 +170,115 @@ BENCHFUN
const auto abcoord =
[](float x) -> float
{
return 12000.f * SGN(x) * xlog2lin(std::abs(x), 4.f);
return /*12000.f **/ SGN(x) * xlog2lin(std::abs(x), 4.f);
};
float abca[n];
float abcb[n];
float rs[n];
float rl[n];
float slope[n];
float offset[n];
float power[n];
int channel[n];
for (int i = 0; i < n; ++i) {
auto &r = params->colorToning.labregions[i];
abca[i] = abcoord(r.a);
abcb[i] = abcoord(r.b);
rs[i] = 1.f + r.saturation / 100.f;
rl[i] = 1.f + r.lightness / 500.f;
rs[i] = 1.f + r.saturation / (SGN(r.saturation) > 0 ? 50.f : 100.f);
slope[i] = r.slope;
offset[i] = r.offset;
power[i] = r.power;
channel[i] = r.channel;
}
TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile);
TMatrix iws = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.workingProfile);
const auto CDL =
[=](float &l, float &a, float &b, float slope, float offset, float power, float saturation) -> void
{
if (slope != 1.f || offset != 0.f || power != 1.f || saturation != 1.f) {
float rgb[3];
float x, y, z;
Color::Lab2XYZ(l, a, b, x, y, z);
Color::xyz2rgb(x, y, z, rgb[0], rgb[1], rgb[2], iws);
for (int i = 0; i < 3; ++i) {
rgb[i] = (pow_F(max((rgb[i] / 65535.f) * slope + offset, 0.f), power)) * 65535.f;
}
if (saturation != 1.f) {
float Y = Color::rgbLuminance(rgb[0], rgb[1], rgb[2], ws);
for (int i = 0; i < 3; ++i) {
rgb[i] = max(Y + saturation * (rgb[i] - Y), 0.f);
}
}
Color::rgbxyz(rgb[0], rgb[1], rgb[2], x, y, z, ws);
Color::XYZ2Lab(x, y, z, l, a, b);
}
};
const auto chan =
[=](float prev_l, float prev_a, float prev_b, float &l, float &a, float &b, int channel) -> void
{
if (channel >= 0) {
float prev_rgb[3];
float rgb[3];
float x, y, z;
Color::Lab2XYZ(l, a, b, x, y, z);
Color::xyz2rgb(x, y, z, rgb[0], rgb[1], rgb[2], iws);
Color::Lab2XYZ(prev_l, prev_a, prev_b, x, y, z);
Color::xyz2rgb(x, y, z, prev_rgb[0], prev_rgb[1], prev_rgb[2], iws);
prev_rgb[channel] = rgb[channel];
Color::rgbxyz(prev_rgb[0], prev_rgb[1], prev_rgb[2], x, y, z, ws);
Color::XYZ2Lab(x, y, z, l, a, b);
}
};
#ifdef __SSE2__
const auto CDL_v =
[=](vfloat &l, vfloat &a, vfloat &b, float slope, float offset, float power, float saturation) -> void
{
if (slope != 1.f || offset != 0.f || power != 1.f || saturation != 1.f) {
float ll[4];
float aa[4];
float bb[4];
STVFU(ll[0], l);
STVFU(aa[0], a);
STVFU(bb[0], b);
for (int i = 0; i < 4; ++i) {
CDL(ll[i], aa[i], bb[i], slope, offset, power, saturation);
}
l = LVFU(ll[0]);
a = LVFU(aa[0]);
b = LVFU(bb[0]);
}
};
const auto chan_v =
[=](vfloat prev_l, vfloat prev_a, vfloat prev_b, vfloat &l, vfloat &a, vfloat &b, int channel) -> void
{
if (channel >= 0) {
float ll[4];
float aa[4];
float bb[4];
STVFU(ll[0], l);
STVFU(aa[0], a);
STVFU(bb[0], b);
float prev_ll[4];
float prev_aa[4];
float prev_bb[4];
STVFU(prev_ll[0], prev_l);
STVFU(prev_aa[0], prev_a);
STVFU(prev_bb[0], prev_b);
for (int i = 0; i < 4; ++i) {
chan(prev_ll[i], prev_aa[i], prev_bb[i], ll[i], aa[i], bb[i], channel);
}
l = LVFU(ll[0]);
a = LVFU(aa[0]);
b = LVFU(bb[0]);
}
};
#endif
#ifdef _OPENMP
#pragma omp parallel if (multiThread)
#endif
@ -188,7 +286,6 @@ BENCHFUN
#ifdef __SSE2__
vfloat c42000v = F2V(42000.f);
vfloat cm42000v = F2V(-42000.f);
vfloat c32768v = F2V(32768.f);
#endif
#ifdef _OPENMP
#pragma omp for
@ -203,10 +300,12 @@ BENCHFUN
for (int i = 0; i < n; ++i) {
vfloat blendv = LVFU(abmask[i][y][x]);
vfloat sv = F2V(rs[i]);
vfloat a_newv = vclampf(sv * (av + F2V(abca[i])), cm42000v, c42000v);
vfloat b_newv = vclampf(sv * (bv + F2V(abcb[i])), cm42000v, c42000v);
vfloat l_newv = vclampf(lv * F2V(rl[i]), ZEROV, c32768v);
vfloat l_newv = lv;
vfloat a_newv = vclampf(av + lv * F2V(abca[i]), cm42000v, c42000v);
vfloat b_newv = vclampf(bv + lv * F2V(abcb[i]), cm42000v, c42000v);
CDL_v(l_newv, a_newv, b_newv, slope[i], offset[i], power[i], rs[i]);
l_newv = vmaxf(l_newv, ZEROV);
chan_v(lv, av, bv, l_newv, a_newv, b_newv, channel[i]);
lv = vintpf(LVFU(Lmask[i][y][x]), l_newv, lv);
av = vintpf(blendv, a_newv, av);
bv = vintpf(blendv, b_newv, bv);
@ -223,10 +322,12 @@ BENCHFUN
for (int i = 0; i < n; ++i) {
float blend = abmask[i][y][x];
float s = rs[i];
float a_new = LIM(s * (a + abca[i]), -42000.f, 42000.f);
float b_new = LIM(s * (b + abcb[i]), -42000.f, 42000.f);
float l_new = LIM(l * rl[i], 0.f, 32768.f);
float l_new = l;
float a_new = LIM(a + l * abca[i], -42000.f, 42000.f);
float b_new = LIM(b + l * abcb[i], -42000.f, 42000.f);
CDL(l_new, a_new, b_new, slope[i], offset[i], power[i], rs[i]);
l_new = max(l_new, 0.f);
chan(l, a, b, l_new, a_new, b_new, channel[i]);
l = intp(Lmask[i][y][x], l_new, l);
a = intp(blend, a_new, a);
b = intp(blend, b_new, b);

View File

@ -824,11 +824,11 @@ void ImProcFunctions::ciecamloc_02float(int sp, LabImage* lab, LabImage* dest)
zw2 = zwd;
float cz, wh, pfl;
Ciecam02::initcam1float(gamu, yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c);
Ciecam02::initcam1float(yb, pilot, f, la, xw, yw, zw, n, d, nbb, ncb, cz, aw, wh, pfl, fl, c);
// const float chr = 0.f;
const float pow1 = pow_F(1.64f - pow_F(0.29f, n), 0.73f);
float nj, nbbj, ncbj, czj, awj, flj;
Ciecam02::initcam2float(gamu, yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj);
Ciecam02::initcam2float(yb2, pilotout, f2, la2, xw2, yw2, zw2, nj, dj, nbbj, ncbj, czj, awj, flj);
const float reccmcz = 1.f / (c2 * czj);
const float pow1n = pow_F(1.64f - pow_F(0.29f, nj), 0.73f);
// const float QproFactor = (0.4f / c) * (aw + 4.0f) ;
@ -896,7 +896,7 @@ void ImProcFunctions::ciecamloc_02float(int sp, LabImage* lab, LabImage* dest)
Q, M, s, aw, fl, wh,
x, y, z,
xw1, yw1, zw1,
c, nc, gamu, pow1, nbb, ncb, pfl, cz, d);
c, nc, pow1, nbb, ncb, pfl, cz, d);
Jbuffer[k] = J;
Cbuffer[k] = C;
hbuffer[k] = h;
@ -934,7 +934,7 @@ void ImProcFunctions::ciecamloc_02float(int sp, LabImage* lab, LabImage* dest)
Q, M, s, aw, fl, wh,
x, y, z,
xw1, yw1, zw1,
c, nc, gamu, pow1, nbb, ncb, pfl, cz, d);
c, nc, pow1, nbb, ncb, pfl, cz, d);
#endif
float Jpro, Cpro, hpro, Qpro, Mpro, spro;
Jpro = J;
@ -968,7 +968,7 @@ void ImProcFunctions::ciecamloc_02float(int sp, LabImage* lab, LabImage* dest)
Ciecam02::jch2xyz_ciecam02float(xx, yy, zz,
J, C, h,
xw2, yw2, zw2,
f2, c2, nc2, gamu, pow1n, nbbj, ncbj, flj, czj, dj, awj);
f2, c2, nc2, pow1n, nbbj, ncbj, flj, czj, dj, awj);
float x, y, z;
x = xx * 655.35f;
y = yy * 655.35f;

View File

@ -231,7 +231,8 @@ void ImProcFunctions::Lanczos (const LabImage* src, LabImage* dst, float scale)
float* const la = aligned_buffer_la.data;
float* const lb = aligned_buffer_lb.data;
// weights for interpolation in y direction
float w[support] ALIGNED64 = {};
float w[support] ALIGNED64;
memset(w, 0, sizeof(w));
// Phase 2: do actual interpolation
#ifdef _OPENMP

View File

@ -2772,8 +2772,8 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit
}
} else if (cp.EDmet == 1) { //threshold adjuster
float MaxPCompare = MaxP[level] * SQR (cp.edg_max / 100.f); //100 instead of b_r...case if b_r < 100
float MaxNCompare = MaxN[level] * SQR (cp.edg_max / 100.f); //always rduce a little edge for near max values
float edgeSdCompare = (mean[level] + 1.5f * sigma[level]) * SQR (cp.edg_sd / t_r); // 1.5 standard deviation #80% range between mean 50% and 80%
float MaxNCompare = MaxN[level] * SQR(cp.edg_max / 100.f); //always reduce a little edge for near max values
float edgeSdCompare = (mean[level] + 1.5f * sigma[level]) * SQR(cp.edg_sd / t_r); // 1.5 standard deviation #80% range between mean 50% and 80%
float edgeMeanCompare = mean[level] * SQR (cp.edg_mean / t_l);
float edgeLowCompare = (5.f + SQR (cp.edg_low));
float edgeMeanFactor = cbrt (cp.edg_mean / t_l);
@ -2817,7 +2817,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit
edge = edgePrecalc;
}
//algorithm that take into account local contrast
//algorithm that takes into account local contrast
// I use a thresholdadjuster with
// Bottom left ==> minimal low value for local contrast (not 0, but 5...we can change)
// 0 10*10 35*35 100*100 substantially correspond to the true distribution of low value, mean, standard-deviation and max (ed 5, 50, 400, 4000
@ -2865,7 +2865,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit
if (edge < 1.f) {
edge = 1.f;
}
}//mofify effect if sd change
}//modify effect if sd change
if (fabs (WavCoeffs_L[dir][k]) < edgeMeanCompare) {
edge *= edgeMeanFactor;

View File

@ -23,14 +23,14 @@ typedef float *_FloatWindow;
/*********************************************************************
* _interpolate
*
* Given a point (x,y) in an image, computes the bilinear interpolated
* gray-level value of the point in the image.
*
* Given a point (x,y) in an image, computes the bilinear interpolated
* gray-level value of the point in the image.
*/
static float _interpolate(
float x,
float y,
float x,
float y,
_KLT_FloatImage img)
{
int xt = (int) x; /* coordinates of top-left corner */
@ -61,7 +61,7 @@ static float _interpolate(
* _computeIntensityDifference
*
* Given two images and the window center in both images,
* aligns the images wrt the window and computes the difference
* aligns the images wrt the window and computes the difference
* between the two overlaid images.
*/
@ -91,7 +91,7 @@ static void _computeIntensityDifference(
* _computeGradientSum
*
* Given two gradients and the window center in both images,
* aligns the gradients wrt the window and computes the sum of the two
* aligns the gradients wrt the window and computes the sum of the two
* overlaid gradients.
*/
@ -126,7 +126,7 @@ static void _computeGradientSum(
* _computeIntensityDifferenceLightingInsensitive
*
* Given two images and the window center in both images,
* aligns the images wrt the window and computes the difference
* aligns the images wrt the window and computes the difference
* between the two overlaid images; normalizes for overall gain and bias.
*/
@ -141,7 +141,7 @@ static void _computeIntensityDifferenceLightingInsensitive(
int hw = width/2, hh = height/2;
float g1, g2, sum1_squared = 0, sum2_squared = 0;
int i, j;
float sum1 = 0, sum2 = 0;
float mean1, mean2,alpha,belta;
/* Compute values */
@ -165,7 +165,7 @@ static void _computeIntensityDifferenceLightingInsensitive(
g1 = _interpolate(x1+i, y1+j, img1);
g2 = _interpolate(x2+i, y2+j, img2);
*imgdiff++ = g1- g2*alpha-belta;
}
}
}
@ -173,7 +173,7 @@ static void _computeIntensityDifferenceLightingInsensitive(
* _computeGradientSumLightingInsensitive
*
* Given two gradients and the window center in both images,
* aligns the gradients wrt the window and computes the sum of the two
* aligns the gradients wrt the window and computes the sum of the two
* overlaid gradients; normalizes for overall gain and bias.
*/
@ -184,7 +184,7 @@ static void _computeGradientSumLightingInsensitive(
_KLT_FloatImage grady2,
_KLT_FloatImage img1, /* images */
_KLT_FloatImage img2,
float x1, float y1, /* center of window in 1st img */
float x2, float y2, /* center of window in 2nd img */
int width, int height, /* size of window */
@ -194,7 +194,7 @@ static void _computeGradientSumLightingInsensitive(
int hw = width/2, hh = height/2;
float g1, g2, sum1_squared = 0, sum2_squared = 0;
int i, j;
float mean1, mean2, alpha;
for (j = -hh ; j <= hh ; j++)
for (i = -hw ; i <= hw ; i++) {
@ -205,7 +205,7 @@ static void _computeGradientSumLightingInsensitive(
mean1 = sum1_squared/(width*height);
mean2 = sum2_squared/(width*height);
alpha = (float) sqrt(mean1/mean2);
/* Compute values */
for (j = -hh ; j <= hh ; j++)
for (i = -hw ; i <= hw ; i++) {
@ -215,7 +215,7 @@ static void _computeGradientSumLightingInsensitive(
g1 = _interpolate(x1+i, y1+j, grady1);
g2 = _interpolate(x2+i, y2+j, grady2);
*grady++ = g1+ g2*alpha;
}
}
}
/*********************************************************************
@ -229,8 +229,8 @@ static void _compute2by2GradientMatrix(
int width, /* size of window */
int height,
float *gxx, /* return values */
float *gxy,
float *gyy)
float *gxy,
float *gyy)
{
float gx, gy;
@ -246,8 +246,8 @@ static void _compute2by2GradientMatrix(
*gyy += gy*gy;
}
}
/*********************************************************************
* _compute2by1ErrorVector
*
@ -267,7 +267,7 @@ static void _compute2by1ErrorVector(
int i;
/* Compute values */
*ex = 0; *ey = 0;
*ex = 0; *ey = 0;
for (i = 0 ; i < width * height ; i++) {
diff = *imgdiff++;
*ex += diff * (*gradx++);
@ -297,7 +297,7 @@ static int _solveEquation(
{
float det = gxx*gyy - gxy*gxy;
if (det < small) return KLT_SMALL_DET;
*dx = (gyy*ex - gxy*ey)/det;
@ -309,7 +309,7 @@ static int _solveEquation(
/*********************************************************************
* _allocateFloatWindow
*/
static _FloatWindow _allocateFloatWindow(
int width,
int height)
@ -347,7 +347,7 @@ static void _printFloatWindow(
}
}
*/
/*********************************************************************
* _sumAbsFloatWindow
@ -385,10 +385,10 @@ static int _trackFeature(
float y1,
float *x2, /* starting location of search in second image */
float *y2,
_KLT_FloatImage img1,
_KLT_FloatImage img1,
_KLT_FloatImage gradx1,
_KLT_FloatImage grady1,
_KLT_FloatImage img2,
_KLT_FloatImage img2,
_KLT_FloatImage gradx2,
_KLT_FloatImage grady2,
int width, /* size of window */
@ -410,7 +410,7 @@ static int _trackFeature(
int nr = img1->nrows;
float one_plus_eps = 1.001f; /* To prevent rounding errors */
/* Allocate memory for windows */
imgdiff = _allocateFloatWindow(width, height);
gradx = _allocateFloatWindow(width, height);
@ -430,24 +430,24 @@ static int _trackFeature(
/* Compute gradient and difference windows */
if (lighting_insensitive) {
_computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
_computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2,
_computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2,
img1, img2, x1, y1, *x2, *y2, width, height, gradx, grady);
} else {
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
_computeGradientSum(gradx1, grady1, gradx2, grady2,
_computeGradientSum(gradx1, grady1, gradx2, grady2,
x1, y1, *x2, *y2, width, height, gradx, grady);
}
/* Use these windows to construct matrices */
_compute2by2GradientMatrix(gradx, grady, width, height,
_compute2by2GradientMatrix(gradx, grady, width, height,
&gxx, &gxy, &gyy);
_compute2by1ErrorVector(imgdiff, gradx, grady, width, height, step_factor,
&ex, &ey);
/* Using matrices, solve equation for new displacement */
status = _solveEquation(gxx, gxy, gyy, ex, ey, small, &dx, &dy);
if (status == KLT_SMALL_DET) break;
@ -459,19 +459,19 @@ static int _trackFeature(
} while ((fabs(dx)>=th || fabs(dy)>=th) && iteration < max_iterations);
/* Check whether window is out of bounds */
if (*x2-hw < 0.0f || nc-(*x2+hw) < one_plus_eps ||
if (*x2-hw < 0.0f || nc-(*x2+hw) < one_plus_eps ||
*y2-hh < 0.0f || nr-(*y2+hh) < one_plus_eps)
status = KLT_OOB;
/* Check whether residue is too large */
if (status == KLT_TRACKED) {
if (lighting_insensitive)
_computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
else
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue)
if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue)
status = KLT_LARGE_RESIDUE;
}
@ -505,25 +505,25 @@ static KLT_BOOL _outOfBounds(
/**********************************************************************
/**********************************************************************
* CONSISTENCY CHECK OF FEATURES BY AFFINE MAPPING (BEGIN)
*
* Created by: Thorsten Thormaehlen (University of Hannover) June 2004
*
* Created by: Thorsten Thormaehlen (University of Hannover) June 2004
* thormae@tnt.uni-hannover.de
*
*
* Permission is granted to any individual or institution to use, copy, modify,
* and distribute this part of the software, provided that this complete authorship
* and permission notice is maintained, intact, in all copies.
* and distribute this part of the software, provided that this complete authorship
* and permission notice is maintained, intact, in all copies.
*
* This software is provided "as is" without express or implied warranty.
*
*
* The following static functions are helpers for the affine mapping.
* They all start with "_am".
* They all start with "_am".
* There are also small changes in other files for the
* affine mapping these are all marked by "for affine mapping"
*
* Thanks to Kevin Koeser (koeser@mip.informatik.uni-kiel.de) for fixing a bug
*
* Thanks to Kevin Koeser (koeser@mip.informatik.uni-kiel.de) for fixing a bug
*/
#define SWAP_ME(X,Y) {temp=(X);(X)=(Y);(Y)=temp;}
@ -613,7 +613,7 @@ static int _am_gauss_jordan_elimination(float **a, int n, float **b, int m)
/*********************************************************************
* _am_getGradientWinAffine
*
* aligns the gradients with the affine transformed window
* aligns the gradients with the affine transformed window
*/
static void _am_getGradientWinAffine(
@ -628,7 +628,7 @@ static void _am_getGradientWinAffine(
int hw = width/2, hh = height/2;
int i, j;
float mi, mj;
/* Compute values */
for (j = -hh ; j <= hh ; j++)
for (i = -hw ; i <= hw ; i++) {
@ -637,19 +637,19 @@ static void _am_getGradientWinAffine(
*out_gradx++ = _interpolate(x+mi, y+mj, in_gradx);
*out_grady++ = _interpolate(x+mi, y+mj, in_grady);
}
}
///*********************************************************************
// * _computeAffineMappedImage
// * used only for DEBUG output
// *
// *
//*/
//
//static void _am_computeAffineMappedImage(
// _KLT_FloatImage img, /* images */
// float x, float y, /* center of window */
// float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */
// float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */
// int width, int height, /* size of window */
// _FloatWindow imgdiff) /* output */
//{
@ -679,14 +679,14 @@ static void _am_getSubFloatImage(
int hw = window->ncols/2, hh = window->nrows/2;
int x0 = (int) x;
int y0 = (int) y;
float * windata = window->data;
float * windata = window->data;
int offset;
int i, j;
assert(x0 - hw >= 0);
assert(y0 - hh >= 0);
assert(x0 + hw <= img->ncols);
assert(y0 + hh <= img->nrows);
assert(y0 + hh <= img->nrows);
/* copy values */
for (j = -hh ; j <= hh ; j++)
@ -700,10 +700,10 @@ static void _am_getSubFloatImage(
* _am_computeIntensityDifferenceAffine
*
* Given two images and the window center in both images,
* aligns the images with the window and computes the difference
* aligns the images with the window and computes the difference
* between the two overlaid images using the affine mapping.
* A = [ Axx Axy]
* [ Ayx Ayy]
* [ Ayx Ayy]
*/
static void _am_computeIntensityDifferenceAffine(
@ -711,7 +711,7 @@ static void _am_computeIntensityDifferenceAffine(
_KLT_FloatImage img2,
float x1, float y1, /* center of window in 1st img */
float x2, float y2, /* center of window in 2nd img */
float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */
float Axx, float Ayx , float Axy, float Ayy, /* affine mapping */
int width, int height, /* size of window */
_FloatWindow imgdiff) /* output */
{
@ -746,15 +746,15 @@ static void _am_compute6by6GradientMatrix(
int hw = width/2, hh = height/2;
int i, j;
float gx, gy, gxx, gxy, gyy, x, y, xx, xy, yy;
/* Set values to zero */
/* Set values to zero */
for (j = 0 ; j < 6 ; j++) {
for (i = j ; i < 6 ; i++) {
T[j][i] = 0.0;
}
}
for (j = -hh ; j <= hh ; j++) {
for (i = -hw ; i <= hw ; i++) {
gx = *gradx++;
@ -762,41 +762,41 @@ static void _am_compute6by6GradientMatrix(
gxx = gx * gx;
gxy = gx * gy;
gyy = gy * gy;
x = (float) i;
y = (float) j;
x = (float) i;
y = (float) j;
xx = x * x;
xy = x * y;
yy = y * y;
T[0][0] += xx * gxx;
T[0][0] += xx * gxx;
T[0][1] += xx * gxy;
T[0][2] += xy * gxx;
T[0][3] += xy * gxy;
T[0][4] += x * gxx;
T[0][5] += x * gxy;
T[1][1] += xx * gyy;
T[1][2] += xy * gxy;
T[1][3] += xy * gyy;
T[1][4] += x * gxy;
T[1][5] += x * gyy;
T[2][2] += yy * gxx;
T[2][3] += yy * gxy;
T[2][4] += y * gxx;
T[2][5] += y * gxy;
T[3][3] += yy * gyy;
T[3][4] += y * gxy;
T[3][5] += y * gyy;
T[3][5] += y * gyy;
T[4][4] += gxx;
T[4][4] += gxx;
T[4][5] += gxy;
T[5][5] += gyy;
T[5][5] += gyy;
}
}
for (j = 0 ; j < 5 ; j++) {
for (i = j+1 ; i < 6 ; i++) {
T[i][j] = T[j][i];
@ -824,9 +824,9 @@ static void _am_compute6by1ErrorVector(
int i, j;
float diff, diffgradx, diffgrady;
/* Set values to zero */
for(i = 0; i < 6; i++) e[i][0] = 0.0;
/* Set values to zero */
for(i = 0; i < 6; i++) e[i][0] = 0.0;
/* Compute values */
for (j = -hh ; j <= hh ; j++) {
for (i = -hw ; i <= hw ; i++) {
@ -835,15 +835,15 @@ static void _am_compute6by1ErrorVector(
diffgrady = diff * (*grady++);
e[0][0] += diffgradx * i;
e[1][0] += diffgrady * i;
e[2][0] += diffgradx * j;
e[3][0] += diffgrady * j;
e[2][0] += diffgradx * j;
e[3][0] += diffgrady * j;
e[4][0] += diffgradx;
e[5][0] += diffgrady;
e[5][0] += diffgrady;
}
}
for(i = 0; i < 6; i++) e[i][0] *= 0.5;
}
@ -862,37 +862,37 @@ static void _am_compute4by4GradientMatrix(
int hw = width/2, hh = height/2;
int i, j;
float gx, gy, x, y;
/* Set values to zero */
/* Set values to zero */
for (j = 0 ; j < 4 ; j++) {
for (i = 0 ; i < 4 ; i++) {
T[j][i] = 0.0;
}
}
for (j = -hh ; j <= hh ; j++) {
for (i = -hw ; i <= hw ; i++) {
gx = *gradx++;
gy = *grady++;
x = (float) i;
y = (float) j;
x = (float) i;
y = (float) j;
T[0][0] += (x*gx+y*gy) * (x*gx+y*gy);
T[0][1] += (x*gx+y*gy)*(x*gy-y*gx);
T[0][2] += (x*gx+y*gy)*gx;
T[0][3] += (x*gx+y*gy)*gy;
T[1][1] += (x*gy-y*gx) * (x*gy-y*gx);
T[1][2] += (x*gy-y*gx)*gx;
T[1][3] += (x*gy-y*gx)*gy;
T[2][2] += gx*gx;
T[2][3] += gx*gy;
T[3][3] += gy*gy;
}
}
for (j = 0 ; j < 3 ; j++) {
for (i = j+1 ; i < 4 ; i++) {
T[i][j] = T[j][i];
@ -918,9 +918,9 @@ static void _am_compute4by1ErrorVector(
int i, j;
float diff, diffgradx, diffgrady;
/* Set values to zero */
for(i = 0; i < 4; i++) e[i][0] = 0.0;
/* Set values to zero */
for(i = 0; i < 4; i++) e[i][0] = 0.0;
/* Compute values */
for (j = -hh ; j <= hh ; j++) {
for (i = -hw ; i <= hw ; i++) {
@ -933,9 +933,9 @@ static void _am_compute4by1ErrorVector(
e[3][0] += diffgrady;
}
}
for(i = 0; i < 4; i++) e[i][0] *= 0.5;
}
@ -950,7 +950,7 @@ static void _am_compute4by1ErrorVector(
* KLT_TRACKED otherwise.
*/
/* if you enalbe the DEBUG_AFFINE_MAPPING make sure you have created a directory "./debug" */
/* if you enable the DEBUG_AFFINE_MAPPING make sure you have created a directory "./debug" */
/* #define DEBUG_AFFINE_MAPPING */
#ifdef DEBUG_AFFINE_MAPPING
@ -963,10 +963,10 @@ static int _am_trackFeatureAffine(
float y1,
float *x2, /* starting location of search in second image */
float *y2,
_KLT_FloatImage img1,
_KLT_FloatImage img1,
_KLT_FloatImage gradx1,
_KLT_FloatImage grady1,
_KLT_FloatImage img2,
_KLT_FloatImage img2,
_KLT_FloatImage gradx2,
_KLT_FloatImage grady2,
int width, /* size of window */
@ -980,7 +980,7 @@ static int _am_trackFeatureAffine(
int lighting_insensitive, /* whether to normalize for gain and bias */
int affine_map, /* whether to evaluates the consistency of features with affine mapping */
float mdd, /* difference between the displacements */
float *Axx, float *Ayx,
float *Axx, float *Ayx,
float *Axy, float *Ayy) /* used affine mapping */
{
@ -996,7 +996,7 @@ static int _am_trackFeatureAffine(
int nc2 = img2->ncols;
int nr2 = img2->nrows;
float **a;
float **T;
float **T;
float one_plus_eps = 1.001f; /* To prevent rounding errors */
float old_x2 = *x2;
float old_y2 = *y2;
@ -1007,7 +1007,7 @@ static int _am_trackFeatureAffine(
_KLT_FloatImage aff_diff_win = _KLTCreateFloatImage(width,height);
printf("starting location x2=%f y2=%f\n", *x2, *y2);
#endif
/* Allocate memory for windows */
imgdiff = _allocateFloatWindow(width, height);
gradx = _allocateFloatWindow(width, height);
@ -1019,7 +1019,7 @@ static int _am_trackFeatureAffine(
do {
if(!affine_map) {
/* pure translation tracker */
/* If out of bounds, exit loop */
if ( x1-hw < 0.0f || nc1-( x1+hw) < one_plus_eps ||
*x2-hw < 0.0f || nc2-(*x2+hw) < one_plus_eps ||
@ -1028,47 +1028,47 @@ static int _am_trackFeatureAffine(
status = KLT_OOB;
break;
}
/* Compute gradient and difference windows */
if (lighting_insensitive) {
_computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifferenceLightingInsensitive(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
_computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2,
_computeGradientSumLightingInsensitive(gradx1, grady1, gradx2, grady2,
img1, img2, x1, y1, *x2, *y2, width, height, gradx, grady);
} else {
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
_computeGradientSum(gradx1, grady1, gradx2, grady2,
_computeGradientSum(gradx1, grady1, gradx2, grady2,
x1, y1, *x2, *y2, width, height, gradx, grady);
}
#ifdef DEBUG_AFFINE_MAPPING
#ifdef DEBUG_AFFINE_MAPPING
aff_diff_win->data = imgdiff;
sprintf(fname, "./debug/kltimg_trans_diff_win%03d.%03d.pgm", glob_index, counter);
printf("%s\n", fname);
_KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0);
printf("iter = %d translation tracker res: %f\n", iteration, _sumAbsFloatWindow(imgdiff, width, height)/(width*height));
#endif
/* Use these windows to construct matrices */
_compute2by2GradientMatrix(gradx, grady, width, height,
_compute2by2GradientMatrix(gradx, grady, width, height,
&gxx, &gxy, &gyy);
_compute2by1ErrorVector(imgdiff, gradx, grady, width, height, step_factor,
&ex, &ey);
/* Using matrices, solve equation for new displacement */
status = _solveEquation(gxx, gxy, gyy, ex, ey, small, &dx, &dy);
convergence = (fabs(dx) < th && fabs(dy) < th);
*x2 += dx;
*y2 += dy;
}else{
/* affine tracker */
float ul_x = *Axx * (-hw) + *Axy * hh + *x2; /* upper left corner */
float ul_y = *Ayx * (-hw) + *Ayy * hh + *y2;
float ul_y = *Ayx * (-hw) + *Ayy * hh + *y2;
float ll_x = *Axx * (-hw) + *Axy * (-hh) + *x2; /* lower left corner */
float ll_y = *Ayx * (-hw) + *Ayy * (-hh) + *y2;
float ur_x = *Axx * hw + *Axy * hh + *x2; /* upper right corner */
@ -1098,25 +1098,25 @@ static int _am_trackFeatureAffine(
sprintf(fname, "./debug/kltimg_aff_diff_win%03d.%03d_1.pgm", glob_index, counter);
printf("%s\n", fname);
_KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0);
_am_computeAffineMappedImage(img2, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy, width, height, imgdiff);
aff_diff_win->data = imgdiff;
sprintf(fname, "./debug/kltimg_aff_diff_win%03d.%03d_2.pgm", glob_index, counter);
printf("%s\n", fname);
_KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0);
#endif
_am_computeIntensityDifferenceAffine(img1, img2, x1, y1, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy,
width, height, imgdiff);
#ifdef DEBUG_AFFINE_MAPPING
#ifdef DEBUG_AFFINE_MAPPING
aff_diff_win->data = imgdiff;
sprintf(fname, "./debug/kltimg_aff_diff_win%03d.%03d_3.pgm", glob_index,counter);
printf("%s\n", fname);
_KLTWriteAbsFloatImageToPGM(aff_diff_win, fname,256.0);
printf("iter = %d affine tracker res: %f\n", iteration, _sumAbsFloatWindow(imgdiff, width, height)/(width*height));
#endif
#endif
_am_getGradientWinAffine(gradx2, grady2, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy,
width, height, gradx, grady);
@ -1124,24 +1124,24 @@ static int _am_trackFeatureAffine(
case 1:
_am_compute4by1ErrorVector(imgdiff, gradx, grady, width, height, a);
_am_compute4by4GradientMatrix(gradx, grady, width, height, T);
status = _am_gauss_jordan_elimination(T,4,a,1);
*Axx += a[0][0];
*Ayx += a[1][0];
*Ayy = *Axx;
*Axy = -(*Ayx);
dx = a[2][0];
dy = a[3][0];
break;
case 2:
_am_compute6by1ErrorVector(imgdiff, gradx, grady, width, height, a);
_am_compute6by6GradientMatrix(gradx, grady, width, height, T);
status = _am_gauss_jordan_elimination(T,6,a,1);
*Axx += a[0][0];
*Ayx += a[1][0];
*Axy += a[2][0];
@ -1149,30 +1149,30 @@ static int _am_trackFeatureAffine(
dx = a[4][0];
dy = a[5][0];
break;
}
*x2 += dx;
*y2 += dy;
/* old upper left corner - new upper left corner */
ul_x -= *Axx * (-hw) + *Axy * hh + *x2;
ul_y -= *Ayx * (-hw) + *Ayy * hh + *y2;
ul_x -= *Axx * (-hw) + *Axy * hh + *x2;
ul_y -= *Ayx * (-hw) + *Ayy * hh + *y2;
/* old lower left corner - new lower left corner */
ll_x -= *Axx * (-hw) + *Axy * (-hh) + *x2;
ll_x -= *Axx * (-hw) + *Axy * (-hh) + *x2;
ll_y -= *Ayx * (-hw) + *Ayy * (-hh) + *y2;
/* old upper right corner - new upper right corner */
ur_x -= *Axx * hw + *Axy * hh + *x2;
ur_x -= *Axx * hw + *Axy * hh + *x2;
ur_y -= *Ayx * hw + *Ayy * hh + *y2;
/* old lower right corner - new lower right corner */
lr_x -= *Axx * hw + *Axy * (-hh) + *x2;
lr_x -= *Axx * hw + *Axy * (-hh) + *x2;
lr_y -= *Ayx * hw + *Ayy * (-hh) + *y2;
#ifdef DEBUG_AFFINE_MAPPING
#ifdef DEBUG_AFFINE_MAPPING
printf ("iter = %d, ul_x=%f ul_y=%f ll_x=%f ll_y=%f ur_x=%f ur_y=%f lr_x=%f lr_y=%f \n",
iteration, ul_x, ul_y, ll_x, ll_y, ur_x, ur_y, lr_x, lr_y);
#endif
#endif
convergence = (fabs(dx) < th && fabs(dy) < th &&
fabs(ul_x) < th_aff && fabs(ul_y) < th_aff &&
@ -1180,19 +1180,19 @@ static int _am_trackFeatureAffine(
fabs(ur_x) < th_aff && fabs(ur_y) < th_aff &&
fabs(lr_x) < th_aff && fabs(lr_y) < th_aff);
}
if (status == KLT_SMALL_DET) break;
iteration++;
#ifdef DEBUG_AFFINE_MAPPING
#ifdef DEBUG_AFFINE_MAPPING
printf ("iter = %d, x1=%f, y1=%f, x2=%f, y2=%f, Axx=%f, Ayx=%f , Axy=%f, Ayy=%f \n",iteration, x1, y1, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy);
#endif
} while ( !convergence && iteration < max_iterations);
#endif
} while ( !convergence && iteration < max_iterations);
/*} while ( (fabs(dx)>=th || fabs(dy)>=th || (affine_map && iteration < 8) ) && iteration < max_iterations); */
_am_free_matrix(T);
_am_free_matrix(a);
/* Check whether window is out of bounds */
if (*x2-hw < 0.0f || nc2-(*x2+hw) < one_plus_eps ||
if (*x2-hw < 0.0f || nc2-(*x2+hw) < one_plus_eps ||
*y2-hh < 0.0f || nr2-(*y2+hh) < one_plus_eps)
status = KLT_OOB;
@ -1203,7 +1203,7 @@ static int _am_trackFeatureAffine(
/* Check whether residue is too large */
if (status == KLT_TRACKED) {
if(!affine_map){
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
_computeIntensityDifference(img1, img2, x1, y1, *x2, *y2,
width, height, imgdiff);
}else{
_am_computeIntensityDifferenceAffine(img1, img2, x1, y1, *x2, *y2, *Axx, *Ayx , *Axy, *Ayy,
@ -1211,8 +1211,8 @@ static int _am_trackFeatureAffine(
}
#ifdef DEBUG_AFFINE_MAPPING
printf("iter = %d final_res = %f\n", iteration, _sumAbsFloatWindow(imgdiff, width, height)/(width*height));
#endif
if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue)
#endif
if (_sumAbsFloatWindow(imgdiff, width, height)/(width*height) > max_residue)
status = KLT_LARGE_RESIDUE;
}
@ -1222,8 +1222,8 @@ static int _am_trackFeatureAffine(
#ifdef DEBUG_AFFINE_MAPPING
printf("iter = %d status=%d\n", iteration, status);
_KLTFreeFloatImage( aff_diff_win );
#endif
#endif
/* Return appropriate value */
return status;
}
@ -1313,7 +1313,7 @@ void KLTTrackFeatures(
pyramid1_gradx = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels);
pyramid1_grady = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels);
for (i = 0 ; i < tc->nPyramidLevels ; i++)
_KLTComputeGradients(pyramid1->img[i], tc->grad_sigma,
_KLTComputeGradients(pyramid1->img[i], tc->grad_sigma,
pyramid1_gradx->img[i],
pyramid1_grady->img[i]);
}
@ -1327,7 +1327,7 @@ void KLTTrackFeatures(
pyramid2_gradx = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels);
pyramid2_grady = _KLTCreatePyramid(ncols, nrows, (int) subsampling, tc->nPyramidLevels);
for (i = 0 ; i < tc->nPyramidLevels ; i++)
_KLTComputeGradients(pyramid2->img[i], tc->grad_sigma,
_KLTComputeGradients(pyramid2->img[i], tc->grad_sigma,
pyramid2_gradx->img[i],
pyramid2_grady->img[i]);
@ -1372,11 +1372,11 @@ void KLTTrackFeatures(
xloc *= subsampling; yloc *= subsampling;
xlocout *= subsampling; ylocout *= subsampling;
val = _trackFeature(xloc, yloc,
val = _trackFeature(xloc, yloc,
&xlocout, &ylocout,
pyramid1->img[r],
pyramid1_gradx->img[r], pyramid1_grady->img[r],
pyramid2->img[r],
pyramid1->img[r],
pyramid1_gradx->img[r], pyramid1_grady->img[r],
pyramid2->img[r],
pyramid2_gradx->img[r], pyramid2_grady->img[r],
tc->window_width, tc->window_height,
tc->step_factor,
@ -1449,7 +1449,7 @@ void KLTTrackFeatures(
if (tc->affineConsistencyCheck >= 0 && val == KLT_TRACKED) { /*for affine mapping*/
int border = 2; /* add border for interpolation */
#ifdef DEBUG_AFFINE_MAPPING
#ifdef DEBUG_AFFINE_MAPPING
glob_index = indx;
#endif
@ -1467,10 +1467,10 @@ void KLTTrackFeatures(
/* affine tracking */
val = _am_trackFeatureAffine(featurelist->feature[indx]->aff_x, featurelist->feature[indx]->aff_y,
&xlocout, &ylocout,
featurelist->feature[indx]->aff_img,
featurelist->feature[indx]->aff_img_gradx,
featurelist->feature[indx]->aff_img,
featurelist->feature[indx]->aff_img_gradx,
featurelist->feature[indx]->aff_img_grady,
pyramid2->img[0],
pyramid2->img[0],
pyramid2_gradx->img[0], pyramid2_grady->img[0],
tc->affine_window_width, tc->affine_window_height,
tc->step_factor,
@ -1478,14 +1478,14 @@ void KLTTrackFeatures(
tc->min_determinant,
tc->min_displacement,
tc->affine_min_displacement,
tc->affine_max_residue,
tc->affine_max_residue,
tc->lighting_insensitive,
tc->affineConsistencyCheck,
tc->affine_max_displacement_differ,
&featurelist->feature[indx]->aff_Axx,
&featurelist->feature[indx]->aff_Ayx,
&featurelist->feature[indx]->aff_Axy,
&featurelist->feature[indx]->aff_Ayy
&featurelist->feature[indx]->aff_Ayy
);
featurelist->feature[indx]->val = val;
if(val != KLT_TRACKED){
@ -1538,5 +1538,3 @@ void KLTTrackFeatures(
}
}

View File

@ -101,7 +101,7 @@ void LabImage::deleteLab()
void LabImage::reallocLab()
{
allocLab(W, H);
};
}
void LabImage::clear(bool multiThread) {
#ifdef _OPENMP

View File

@ -153,7 +153,7 @@ public:
Glib::ustring getDefaultCommonDirectory() const;
private:
LCPStore(unsigned int _cache_size = 32);
explicit LCPStore(unsigned int _cache_size = 32);
// Maps file name to profile as cache
mutable Cache<Glib::ustring, std::shared_ptr<LCPProfile>> cache;
@ -190,11 +190,11 @@ public:
);
void correctDistortion(double &x, double &y, int cx, int cy, double scale) const; // MUST be the first stage
bool isCACorrectionAvailable() const;
void correctCA(double& x, double& y, int cx, int cy, int channel) const;
void processVignetteLine(int width, int y, float* line) const;
void processVignetteLine3Channels(int width, int y, float* line) const;
void correctDistortion(double &x, double &y, int cx, int cy, double scale) const override; // MUST be the first stage
bool isCACorrectionAvailable() const override;
void correctCA(double& x, double& y, int cx, int cy, int channel) const override;
void processVignetteLine(int width, int y, float* line) const override;
void processVignetteLine3Channels(int width, int y, float* line) const override;
private:
bool enableCA; // is the mapper capable if CA correction?

View File

@ -62,7 +62,7 @@ public:
++r[col / TILE_SIZE];
}
float operator()(int row, int col) const
float operator()(int row, int col) const override
{
int y = row / TILE_SIZE;
int x = col / TILE_SIZE;
@ -136,7 +136,7 @@ public:
offset_(offset)
{}
float operator()(int row) const
float operator()(int row) const override
{
static constexpr float BORDER[] = { 1.f, 1.f, 0.8f, 0.5f, 0.2f };
static constexpr int BORDER_WIDTH = sizeof(BORDER)/sizeof(float) - 1;

View File

@ -27,7 +27,7 @@ namespace rtengine {
class PDAFLinesFilter {
public:
PDAFLinesFilter(RawImage *ri);
explicit PDAFLinesFilter(RawImage *ri);
~PDAFLinesFilter();
int mark(array2D<float> &rawData, PixelsMap &bpMap);

View File

@ -43,14 +43,14 @@ public:
iImage->increaseRef();
}
~ProcessingJobImpl ()
~ProcessingJobImpl () override
{
if (initialImage) {
initialImage->decreaseRef();
}
}
bool fastPipeline() const { return fast; }
bool fastPipeline() const override { return fast; }
};
}

View File

@ -611,7 +611,9 @@ ColorToningParams::LabCorrectionRegion::LabCorrectionRegion():
a(0),
b(0),
saturation(0),
lightness(0),
slope(1),
offset(0),
power(1),
hueMask{
FCT_MinMaxCPoints,
0.166666667,
@ -644,7 +646,9 @@ ColorToningParams::LabCorrectionRegion::LabCorrectionRegion():
1.,
0.35,
0.35
}
},
maskBlur(0),
channel(ColorToningParams::LabCorrectionRegion::CHAN_ALL)
{
}
@ -654,10 +658,14 @@ bool ColorToningParams::LabCorrectionRegion::operator==(const LabCorrectionRegio
return a == other.a
&& b == other.b
&& saturation == other.saturation
&& lightness == other.lightness
&& slope == other.slope
&& offset == other.offset
&& power == other.power
&& hueMask == other.hueMask
&& chromaticityMask == other.chromaticityMask
&& lightnessMask == other.lightnessMask;
&& lightnessMask == other.lightnessMask
&& maskBlur == other.maskBlur
&& channel == other.channel;
}
@ -3843,10 +3851,14 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo
putToKeyfile("ColorToning", Glib::ustring("LabRegionA_") + n, l.a, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionB_") + n, l.b, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionSaturation_") + n, l.saturation, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionLightness_") + n, l.lightness, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionSlope_") + n, l.slope, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionOffset_") + n, l.offset, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionPower_") + n, l.power, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionHueMask_") + n, l.hueMask, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionChromaticityMask_") + n, l.chromaticityMask, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionLightnessMask_") + n, l.lightnessMask, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionMaskBlur_") + n, l.maskBlur, keyFile);
putToKeyfile("ColorToning", Glib::ustring("LabRegionChannel_") + n, l.channel, keyFile);
}
}
saveToKeyfile(!pedited || pedited->colorToning.labregionsShowMask, "ColorToning", "LabRegionsShowMask", colorToning.labregionsShowMask, keyFile);
@ -5483,7 +5495,15 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
found = true;
done = false;
}
if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionLightness_") + n, pedited, cur.lightness, pedited->colorToning.labregions)) {
if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionSlope_") + n, pedited, cur.slope, pedited->colorToning.labregions)) {
found = true;
done = false;
}
if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionOffset_") + n, pedited, cur.offset, pedited->colorToning.labregions)) {
found = true;
done = false;
}
if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionPower_") + n, pedited, cur.power, pedited->colorToning.labregions)) {
found = true;
done = false;
}
@ -5499,6 +5519,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
found = true;
done = false;
}
if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionMaskBlur_") + n, pedited, cur.maskBlur, pedited->colorToning.labregions)) {
found = true;
done = false;
}
if (assignFromKeyfile(keyFile, "ColorToning", Glib::ustring("LabRegionChannel_") + n, pedited, cur.channel, pedited->colorToning.labregions)) {
found = true;
done = false;
}
if (!done) {
lg.emplace_back(cur);
}
@ -5699,8 +5727,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited)
}
if (keyFile.has_group("Exif")) {
std::vector<Glib::ustring> keys = keyFile.get_keys("Exif");
for (const auto& key : keyFile.get_keys("Exif")) {
exif[key] = keyFile.get_string("Exif", key);

View File

@ -26,8 +26,6 @@
#include <glibmm.h>
#include <lcms2.h>
#include "coord.h"
#include "LUT.h"
#include "noncopyable.h"
class ParamsEdited;
@ -460,13 +458,18 @@ struct ColorToningParams {
static const double LABGRID_CORR_SCALE;
struct LabCorrectionRegion {
enum { CHAN_ALL = -1, CHAN_R, CHAN_G, CHAN_B };
double a;
double b;
double saturation;
double lightness;
double slope;
double offset;
double power;
std::vector<double> hueMask;
std::vector<double> chromaticityMask;
std::vector<double> lightnessMask;
double maskBlur;
int channel;
LabCorrectionRegion();
bool operator==(const LabCorrectionRegion &other) const;

View File

@ -30,9 +30,9 @@ RawImage::RawImage(const Glib::ustring &name)
, allocation(nullptr)
{
memset(maximum_c4, 0, sizeof(maximum_c4));
RT_matrix_from_constant = 0;
RT_blacklevel_from_constant = 0;
RT_whitelevel_from_constant = 0;
RT_matrix_from_constant = ThreeValBool::X;
RT_blacklevel_from_constant = ThreeValBool::X;
RT_whitelevel_from_constant = ThreeValBool::X;
}
RawImage::~RawImage()
@ -504,6 +504,10 @@ int RawImage::loadRaw(bool loadData, unsigned int imageNum, bool closeFile, Prog
fseek(ifp, data_offset, SEEK_SET);
(this->*load_raw)();
if (!float_raw_image) { // apply baseline exposure only for float DNGs
RT_baseline_exposure = 0;
}
if (plistener) {
plistener->setProgress(0.9 * progressRange);
}
@ -602,14 +606,14 @@ int RawImage::loadRaw(bool loadData, unsigned int imageNum, bool closeFile, Prog
if (cc) {
for (int i = 0; i < 4; i++) {
if (RT_blacklevel_from_constant) {
if (RT_blacklevel_from_constant == ThreeValBool::T) {
int blackFromCc = cc->get_BlackLevel(i, iso_speed);
// if black level from camconst > 0xffff it is an absolute value.
black_c4[i] = blackFromCc > 0xffff ? (blackFromCc & 0xffff) : blackFromCc + cblack[i];
}
// load 4 channel white level here, will be used if available
if (RT_whitelevel_from_constant) {
if (RT_whitelevel_from_constant == ThreeValBool::T) {
maximum_c4[i] = cc->get_WhiteLevel(i, iso_speed, aperture);
if (tiff_bps > 0 && maximum_c4[i] > 0 && !isFoveon()) {
@ -1053,16 +1057,31 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is
*black_level = -1;
*white_level = -1;
const bool is_pentax_dng = dng_version && !strncmp(RT_software.c_str(), "PENTAX", 6);
if (RT_blacklevel_from_constant == ThreeValBool::F && !is_pentax_dng) {
*black_level = black;
}
if (RT_whitelevel_from_constant == ThreeValBool::F && !is_pentax_dng) {
*white_level = maximum;
}
memset(trans, 0, sizeof(*trans) * 12);
// indicate that DCRAW wants these from constants (rather than having loaded these from RAW file
// note: this is simplified so far, in some cases dcraw calls this when it has say the black level
// from file, but then we will not provide any black level in the tables. This case is mainly just
// to avoid loading table values if we have loaded a DNG conversion of a raw file (which already
// have constants stored in the file).
RT_whitelevel_from_constant = 1;
RT_blacklevel_from_constant = 1;
RT_matrix_from_constant = 1;
// // indicate that DCRAW wants these from constants (rather than having loaded these from RAW file
// // note: this is simplified so far, in some cases dcraw calls this when it has say the black level
// // from file, but then we will not provide any black level in the tables. This case is mainly just
// // to avoid loading table values if we have loaded a DNG conversion of a raw file (which already
// // have constants stored in the file).
// if (RT_whitelevel_from_constant == ThreeValBool::X || is_pentax_dng) {
// RT_whitelevel_from_constant = ThreeValBool::T;
// }
// if (RT_blacklevel_from_constant == ThreeValBool::X || is_pentax_dng) {
// RT_blacklevel_from_constant = ThreeValBool::T;
// }
// if (RT_matrix_from_constant == ThreeValBool::X) {
// RT_matrix_from_constant = ThreeValBool::T;
// }
{
// test if we have any information in the camera constants store, if so we take that.
@ -1070,10 +1089,14 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is
rtengine::CameraConst *cc = ccs->get(make, model);
if (cc) {
*black_level = cc->get_BlackLevel(0, iso_speed);
*white_level = cc->get_WhiteLevel(0, iso_speed, aperture);
if (RT_blacklevel_from_constant == ThreeValBool::T) {
*black_level = cc->get_BlackLevel(0, iso_speed);
}
if (RT_whitelevel_from_constant == ThreeValBool::T) {
*white_level = cc->get_WhiteLevel(0, iso_speed, aperture);
}
if (cc->has_dcrawMatrix()) {
if (RT_matrix_from_constant == ThreeValBool::T && cc->has_dcrawMatrix()) {
const short *mx = cc->get_dcrawMatrix();
for (int j = 0; j < 12; j++) {
@ -1090,8 +1113,12 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is
for (size_t i = 0; i < sizeof table / sizeof(table[0]); i++) {
if (strcasecmp(name, table[i].prefix) == 0) {
*black_level = table[i].black_level;
*white_level = table[i].white_level;
if (RT_blacklevel_from_constant == ThreeValBool::T) {
*black_level = table[i].black_level;
}
if (RT_whitelevel_from_constant == ThreeValBool::T) {
*white_level = table[i].white_level;
}
for (int j = 0; j < 12; j++) {
trans[j] = table[i].trans[j];

View File

@ -124,10 +124,10 @@ public:
float** compress_image(unsigned int frameNum, bool freeImage = true); // revert to compressed pixels format and release image data
float** data; // holds pixel values, data[i][j] corresponds to the ith row and jth column
unsigned prefilters; // original filters saved ( used for 4 color processing )
unsigned int getFrameCount() const
{
return is_raw;
}
unsigned int getFrameCount() const { return is_raw; }
double getBaselineExposure() const { return RT_baseline_exposure; }
protected:
Glib::ustring filename; // complete filename
int rotate_deg; // 0,90,180,270 degree of rotation: info taken by dcraw from exif

View File

@ -717,6 +717,11 @@ void RawImageSource::getImage(const ColorTemp &ctemp, int tran, Imagefloat* imag
gm /= area;
bm /= area;
bool doHr = (hrp.hrenabled && hrp.method != "Color");
const float expcomp = std::pow(2, ri->getBaselineExposure());
rm *= expcomp;
gm *= expcomp;
bm *= expcomp;
#ifdef _OPENMP
#pragma omp parallel if(!d1x) // omp disabled for D1x to avoid race conditions (see Issue 1088 http://code.google.com/p/rawtherapee/issues/detail?id=1088)
{
@ -4402,17 +4407,11 @@ bool RawImageSource::findInputProfile(Glib::ustring inProfile, cmsHPROFILE embed
// very effective to reduce (or remove) the magenta, but with levels of grey !
void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int width, float maxval, float* hlmax)
{
const int ColorCount = 3;
constexpr int ColorCount = 3;
// Transform matrixes rgb>lab and back
static const float trans[2][ColorCount][ColorCount] = {
{ { 1, 1, 1 }, { 1.7320508, -1.7320508, 0 }, { -1, -1, 2 } },
{ { 1, 1, 1 }, { 1, -1, 1 }, { 1, 1, -1 } }
};
static const float itrans[2][ColorCount][ColorCount] = {
{ { 1, 0.8660254, -0.5 }, { 1, -0.8660254, -0.5 }, { 1, 0, 1 } },
{ { 1, 1, 1 }, { 1, -1, 1 }, { 1, 1, -1 } }
};
constexpr float trans[ColorCount][ColorCount] = { { 1, 1, 1 }, { 1.7320508, -1.7320508, 0 }, { -1, -1, 2 } };
constexpr float itrans[ColorCount][ColorCount] = { { 1, 0.8660254, -0.5 }, { 1, -0.8660254, -0.5 }, { 1, 0, 1 } };
#define FOREACHCOLOR for (int c=0; c < ColorCount; c++)
@ -4469,7 +4468,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi
for (int j = 0; j < ColorCount; j++)
{
lab[i][c] += trans[ColorCount - 3][c][j] * cam[i][j];
lab[i][c] += trans[c][j] * cam[i][j];
}
}
@ -4493,7 +4492,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi
for (int j = 0; j < ColorCount; j++)
{
cam[0][c] += itrans[ColorCount - 3][c][j] * lab[0][j];
cam[0][c] += itrans[c][j] * lab[0][j];
}
}
FOREACHCOLOR rgb[c] = cam[0][c] / ColorCount;

View File

@ -110,23 +110,23 @@ protected:
public:
RawImageSource();
~RawImageSource();
RawImageSource ();
~RawImageSource () override;
int load(const Glib::ustring &fname) { return load(fname, false); }
int load(const Glib::ustring &fname) override { return load(fname, false); }
int load(const Glib::ustring &fname, bool firstFrameOnly);
void preprocess(const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true);
void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold);
void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI);
void retinexPrepareCurves(const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI);
void retinexPrepareBuffers(const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI);
void flushRawData();
void flushRGB();
void HLRecovery_Global (const ToneCurveParams &hrp);
void refinement_lassus(int PassCount);
void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) override;
void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold) override;
void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) override;
void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) override;
void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI) override;
void flushRawData () override;
void flushRGB () override;
void HLRecovery_Global (const ToneCurveParams &hrp) override;
void refinement_lassus (int PassCount);
void refinement(int PassCount);
void setBorder(unsigned int rawBorder) {border = rawBorder;}
bool isRGBSourceModified() const
void setBorder(unsigned int rawBorder) override {border = rawBorder;}
bool isRGBSourceModified() const override
{
return rgbSourceModified; // tracks whether cached rgb output of demosaic has been modified
}
@ -136,57 +136,57 @@ public:
void cfaboxblur(RawImage *riFlatFile, float* cfablur, int boxH, int boxW);
void scaleColors(int winx, int winy, int winw, int winh, const RAWParams &raw, array2D<float> &rawData); // raw for cblack
void getImage(const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw);
eSensorType getSensorType() const
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw) override;
eSensorType getSensorType () const override
{
return ri != nullptr ? ri->getSensorType() : ST_NONE;
}
bool isMono () const
bool isMono () const override
{
return ri->get_colors() == 1;
}
ColorTemp getWB() const
ColorTemp getWB () const override
{
return camera_wb;
}
void getAutoWBMultipliers(double &rm, double &gm, double &bm);
ColorTemp getSpotWB(std::vector<Coord2D> &red, std::vector<Coord2D> &green, std::vector<Coord2D> &blue, int tran, double equal);
bool isWBProviderReady()
void getAutoWBMultipliers (double &rm, double &gm, double &bm) override;
ColorTemp getSpotWB (std::vector<Coord2D> &red, std::vector<Coord2D> &green, std::vector<Coord2D> &blue, int tran, double equal) override;
bool isWBProviderReady () override
{
return rawData;
}
double getDefGain() const
double getDefGain () const override
{
return defGain;
}
void getFullSize(int& w, int& h, int tr = TR_NONE);
void getSize(const PreviewProps &pp, int& w, int& h);
int getRotateDegree() const
void getFullSize (int& w, int& h, int tr = TR_NONE) override;
void getSize (const PreviewProps &pp, int& w, int& h) override;
int getRotateDegree() const override
{
return ri->get_rotateDegree();
}
ImageMatrices* getImageMatrices()
ImageMatrices* getImageMatrices () override
{
return &imatrices;
}
bool isRAW() const
bool isRAW() const override
{
return true;
}
void setProgressListener(ProgressListener* pl)
void setProgressListener (ProgressListener* pl) override
{
plistener = pl;
}
void getAutoExpHistogram(LUTu & histogram, int& histcompr);
void getRAWHistogram(LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw);
void getAutoMatchedToneCurve(const ColorManagementParams &cp, std::vector<double> &outCurve);
DCPProfile *getDCP(const ColorManagementParams &cmp, DCPProfile::ApplyState &as);
void getAutoExpHistogram (LUTu & histogram, int& histcompr) override;
void getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LUTu & histBlueRaw) override;
void getAutoMatchedToneCurve(const ColorManagementParams &cp, std::vector<double> &outCurve) override;
DCPProfile *getDCP(const ColorManagementParams &cmp, DCPProfile::ApplyState &as) override;
void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb);
void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) override;
static bool findInputProfile(Glib::ustring inProfile, cmsHPROFILE embedded, std::string camName, DCPProfile **dcpProf, cmsHPROFILE& in);
static void colorSpaceConversion(Imagefloat* im, const ColorManagementParams& cmp, const ColorTemp &wb, double pre_mul[3], cmsHPROFILE embedded, cmsHPROFILE camprofile, double cam[3][3], const std::string &camName)
{
@ -197,20 +197,18 @@ public:
void boxblur2(float** src, float** dst, float** temp, int H, int W, int box);
void boxblur_resamp(float **src, float **dst, float** temp, int H, int W, int box, int samp);
void MSR(float** luminance, float **originalLuminance, float **exLuminance, LUTf & mapcurve, bool &mapcontlutili, int width, int height, const RetinexParams &deh, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax);
void HLRecovery_inpaint(float** red, float** green, float** blue);
static void HLRecovery_Luminance(float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval);
static void HLRecovery_CIELab(float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval, double cam[3][3], double icam[3][3]);
static void HLRecovery_blend(float* rin, float* gin, float* bin, int width, float maxval, float* hlmax);
static void init();
static void cleanup();
void setCurrentFrame(unsigned int frameNum)
{
void HLRecovery_inpaint (float** red, float** green, float** blue) override;
static void HLRecovery_Luminance (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval);
static void HLRecovery_CIELab (float* rin, float* gin, float* bin, float* rout, float* gout, float* bout, int width, float maxval, double cam[3][3], double icam[3][3]);
static void HLRecovery_blend (float* rin, float* gin, float* bin, int width, float maxval, float* hlmax);
static void init ();
static void cleanup ();
void setCurrentFrame(unsigned int frameNum) override {
currFrame = std::min(numFrames - 1, frameNum);
ri = riFrames[currFrame];
}
int getFrameCount(){return numFrames;}
int getFlatFieldAutoClipValue() {return flatFieldAutoClipValue;}
int getFrameCount() override {return numFrames;}
int getFlatFieldAutoClipValue() override {return flatFieldAutoClipValue;}
class GreenEqulibrateThreshold {
public:
@ -299,9 +297,9 @@ protected:
void xtrans_interpolate(const int passes, const bool useCieLab);
void fast_xtrans_interpolate (const array2D<float> &rawData, array2D<float> &red, array2D<float> &green, array2D<float> &blue);
void pixelshift(int winx, int winy, int winw, int winh, const RAWParams &rawParams, unsigned int frame, const std::string &make, const std::string &model, float rawWpCorrection);
void hflip(Imagefloat* im);
void vflip(Imagefloat* im);
void getRawValues(int x, int y, int rotate, int &R, int &G, int &B);
void hflip (Imagefloat* im);
void vflip (Imagefloat* im);
void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override;
};
}

View File

@ -30,7 +30,7 @@ public:
int ciffLength;
RawMetaDataLocation () : exifBase(-1), ciffBase(-1), ciffLength(-1) {}
RawMetaDataLocation (int exifBase) : exifBase(exifBase), ciffBase(-1), ciffLength(-1) {}
explicit RawMetaDataLocation (int exifBase) : exifBase(exifBase), ciffBase(-1), ciffLength(-1) {}
RawMetaDataLocation (int ciffBase, int ciffLength) : exifBase(-1), ciffBase(ciffBase), ciffLength(ciffLength) {}
RawMetaDataLocation (int exifBase, int ciffBase, int ciffLength) : exifBase(exifBase), ciffBase(ciffBase), ciffLength(ciffLength) {}
};

View File

@ -38,7 +38,7 @@ class LFModifier final :
public NonCopyable
{
public:
~LFModifier();
~LFModifier() override;
explicit operator bool() const;

View File

@ -62,15 +62,15 @@ bool checkRawImageThumb (const rtengine::RawImage& raw_image)
void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], bool multiThread)
{
DCraw::dcrawImage_t image = ri->get_image();
const int height = ri->get_iheight();
const int width = ri->get_iwidth();
const int top_margin = ri->get_topmargin();
const int left_margin = ri->get_leftmargin();
const int raw_width = ri->get_rawwidth();
const bool isFloat = ri->isFloat();
const float * const float_raw_image = ri->get_FloatRawImage();
if (ri->isBayer()) {
const int height = ri->get_iheight();
const int width = ri->get_iwidth();
const bool isFloat = ri->isFloat();
const int top_margin = ri->get_topmargin();
const int left_margin = ri->get_leftmargin();
const int raw_width = ri->get_rawwidth();
const float * const float_raw_image = ri->get_FloatRawImage();
#ifdef _OPENMP
#pragma omp parallel for if(multiThread)
#endif
@ -110,14 +110,6 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4],
}
}
} else if (ri->isXtrans()) {
const int height = ri->get_iheight();
const int width = ri->get_iwidth();
const bool isFloat = ri->isFloat();
const int top_margin = ri->get_topmargin();
const int left_margin = ri->get_leftmargin();
const int raw_width = ri->get_rawwidth();
const float * const float_raw_image = ri->get_FloatRawImage();
#ifdef _OPENMP
#pragma omp parallel for if(multiThread)
#endif
@ -157,6 +149,20 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4],
image[row * width + col][ccol] = rtengine::CLIP (val);
}
}
} else if (isFloat) {
#ifdef _OPENMP
#pragma omp parallel for if(multiThread)
#endif
for (int row = 0; row < height; ++row) {
for (int col = 0; col < width; ++col) {
for (int i = 0; i < ri->get_colors(); ++i) {
float val = float_raw_image[(row + top_margin) * raw_width + col + left_margin + i];
val -= cblack[i];
val *= scale_mul[i];
image[row * width + col][i] = val;
}
}
}
} else {
const int size = ri->get_iheight() * ri->get_iwidth();
@ -574,6 +580,7 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati
tpp->camwbBlue = tpp->blueMultiplier / pre_mul[2]; //ri->get_pre_mul(2);
//tpp->defGain = 1.0 / min(ri->get_pre_mul(0), ri->get_pre_mul(1), ri->get_pre_mul(2));
tpp->defGain = max (scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min (scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]);
tpp->defGain *= std::pow(2, ri->getBaselineExposure());
tpp->gammaCorrected = true;

View File

@ -156,7 +156,7 @@ public:
}
return imgPtr;
};
}
};
}

View File

@ -909,8 +909,7 @@ private:
int cw = baseImg->getWidth();
int ch = baseImg->getHeight();
// put gamma TRC to 1
Imagefloat* readyImg0 = NULL;
readyImg0 = ipf.workingtrc(baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310);
Imagefloat* readyImg0 = ipf.workingtrc(baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310);
#pragma omp parallel for
for (int row = 0; row < ch; row++) {
@ -924,8 +923,7 @@ private:
delete readyImg0;
//adjust TRC
Imagefloat* readyImg = NULL;
readyImg = ipf.workingtrc(baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope);
Imagefloat* readyImg = ipf.workingtrc(baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope);
#pragma omp parallel for
for (int row = 0; row < ch; row++) {
@ -1376,7 +1374,6 @@ private:
}
}
Imagefloat* readyImg = nullptr;
cmsHPROFILE jprof = nullptr;
constexpr bool customGamma = false;
constexpr bool useLCMS = false;
@ -1388,7 +1385,7 @@ private:
// if Default gamma mode: we use the profile selected in the "Output profile" combobox;
// gamma come from the selected profile, otherwise it comes from "Free gamma" tool
readyImg = ipf.lab2rgbOut (labView, cx, cy, cw, ch, params.icm);
Imagefloat* readyImg = ipf.lab2rgbOut (labView, cx, cy, cw, ch, params.icm);
if (settings->verbose) {
printf ("Output profile_: \"%s\"\n", params.icm.outputProfile.c_str());

View File

@ -40,66 +40,66 @@ protected:
public:
StdImageSource ();
~StdImageSource ();
~StdImageSource () override;
int load (const Glib::ustring &fname);
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw);
ColorTemp getWB () const
int load (const Glib::ustring &fname) override;
void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw) override;
ColorTemp getWB () const override
{
return wb;
}
void getAutoWBMultipliers (double &rm, double &gm, double &bm);
ColorTemp getSpotWB (std::vector<Coord2D> &red, std::vector<Coord2D> &green, std::vector<Coord2D> &blue, int tran, double equal);
void getAutoWBMultipliers (double &rm, double &gm, double &bm) override;
ColorTemp getSpotWB (std::vector<Coord2D> &red, std::vector<Coord2D> &green, std::vector<Coord2D> &blue, int tran, double equal) override;
eSensorType getSensorType() const {return ST_NONE;}
bool isMono() const {return false;}
eSensorType getSensorType() const override {return ST_NONE;}
bool isMono() const override {return false;}
bool isWBProviderReady ()
bool isWBProviderReady () override
{
return true;
};
void getAutoExpHistogram (LUTu &histogram, int& histcompr);
void getAutoExpHistogram (LUTu &histogram, int& histcompr) override;
double getDefGain () const
double getDefGain () const override
{
return 0.0;
}
void getFullSize (int& w, int& h, int tr = TR_NONE);
void getSize (const PreviewProps &pp, int& w, int& h);
void getFullSize (int& w, int& h, int tr = TR_NONE) override;
void getSize (const PreviewProps &pp, int& w, int& h) override;
ImageIO* getImageIO ()
{
return img;
}
ImageMatrices* getImageMatrices ()
ImageMatrices* getImageMatrices () override
{
return (ImageMatrices*)nullptr;
}
bool isRAW() const
bool isRAW() const override
{
return false;
}
void setProgressListener (ProgressListener* pl)
void setProgressListener (ProgressListener* pl) override
{
plistener = pl;
}
void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb);// RAWParams raw will not be used for non-raw files (see imagesource.h)
void convertColorSpace(Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) override;// RAWParams raw will not be used for non-raw files (see imagesource.h)
static void colorSpaceConversion (Imagefloat* im, const ColorManagementParams &cmp, cmsHPROFILE embedded, IIOSampleFormat sampleFormat);
bool isRGBSourceModified() const
bool isRGBSourceModified() const override
{
return rgbSourceModified;
}
void setCurrentFrame(unsigned int frameNum) {}
int getFrameCount() {return 1;}
int getFlatFieldAutoClipValue() {return 0;}
void setCurrentFrame(unsigned int frameNum) override {}
int getFrameCount() override {return 1;}
int getFlatFieldAutoClipValue() override {return 0;}
void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) { R = G = B = 0;}
void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override { R = G = B = 0;}
};

View File

@ -32,7 +32,7 @@ namespace rtexif
class CAOnOffInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int n = t->toInt();
@ -51,7 +51,7 @@ class CAIntSerNumInterpreter : public Interpreter
{
public:
CAIntSerNumInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
return "";
}
@ -63,7 +63,7 @@ class CAApertureInterpreter : public Interpreter
{
public:
CAApertureInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double v = pow (2.0, t->toDouble() / 64.0);
@ -92,7 +92,7 @@ CAMacroModeInterpreter caMacroModeInterpreter;
class CASelfTimerInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int sec = t->toInt (0, SHORT);
@ -385,7 +385,7 @@ CAExposureModeInterpreter caExposureModeInterpreter;
class CAFlashBitsInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream s;
unsigned bits = t->toInt (0, SHORT);
@ -533,7 +533,7 @@ CARAWQualityInterpreter caRAWQualityInterpreter;
class CAFocalInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
Tag *unitTag = t->getParent()->getRoot()->findTag ("FocalUnits");
double v = unitTag ? unitTag->toDouble() : 1.;
@ -956,7 +956,7 @@ public:
};
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int lensID = t->toInt();
@ -1108,7 +1108,7 @@ CAFocalTypeInterpreter caFocalTypeInterpreter;
class CAFocalPlaneInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int val = t->toInt();
@ -1126,7 +1126,7 @@ CAFocalPlaneInterpreter caFocalPlaneInterpreter;
class CAExposureTimeInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double d = pow (2, - t->toInt() / 32.0);
@ -1138,7 +1138,7 @@ CAExposureTimeInterpreter caExposureTimeInterpreter;
class CAEVInterpreter : public Interpreter
{
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%.1f", t->toDouble() / 32.0 );
@ -1150,14 +1150,14 @@ CAEVInterpreter caEVInterpreter;
class CABaseISOInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
int a = t->toInt();
sprintf (buffer, "%d", a);
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = Interpreter::toInt (t, ofs);
@ -1168,7 +1168,7 @@ public:
return 0.;
}
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
int a = Interpreter::toInt (t, ofs, astype);
@ -1287,7 +1287,7 @@ CASlowShutterInterpreter caSlowShutterInterpreter;
class CAFlashGuideNumberInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int n = t->toInt();
@ -1348,7 +1348,7 @@ CAControModeInterpreter caControModeInterpreter;
class CAFocusDistanceInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%.2f", t->toDouble() / 100 );
@ -1360,7 +1360,7 @@ CAFocusDistanceInterpreter caFocusDistanceInterpreter;
class CAMeasuredEVInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%.1f", t->toDouble() / 8 - 6 );
@ -1495,7 +1495,7 @@ CAToningEffectInterpreter caToningEffectInterpreter;
class CAFileNumberInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
unsigned long val = t->toInt (0, LONG);
char buffer[32];

View File

@ -34,7 +34,7 @@ class NAISOInterpreter : public Interpreter
{
public:
NAISOInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%d", t->toInt (2));
@ -47,14 +47,14 @@ class NAISOInfoISOInterpreter : public Interpreter
{
public:
NAISOInfoISOInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
int a = t->toInt();
sprintf (buffer, "%d", a);
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->getValue()[ofs];
@ -65,7 +65,7 @@ public:
return 0.;
}
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
int a = t->getValue()[ofs];
@ -83,7 +83,7 @@ class NAISOExpansionInterpreter : public Interpreter
{
public:
NAISOExpansionInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt();
@ -142,7 +142,7 @@ class NALensTypeInterpreter : public Interpreter
{
public:
NALensTypeInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt();
std::ostringstream str;
@ -191,7 +191,7 @@ class NAShootingModeInterpreter : public Interpreter
{
public:
NAShootingModeInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt();
std::ostringstream str;
@ -234,7 +234,7 @@ public:
afpchoices[0x9] = "Far Left";
afpchoices[0xa] = "Far Right";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int am = t->toInt (0, BYTE);
int afp = t->toInt (1, BYTE);
@ -314,7 +314,7 @@ class NALensDataInterpreter : public Interpreter
static const std::map<std::string, std::string> lenses;
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
static const unsigned char xlat[2][256] = {

View File

@ -33,7 +33,7 @@ class OLOnOffInterpreter : public Interpreter
{
public:
OLOnOffInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
if (t->toInt() == 0) {
return "Off";
@ -48,7 +48,7 @@ class OLYesNoInterpreter : public Interpreter
{
public:
OLYesNoInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
if (t->toInt() == 0) {
return "No";
@ -63,7 +63,7 @@ class OLApertureInterpreter : public Interpreter
{
public:
OLApertureInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
str.precision (2);
@ -194,7 +194,7 @@ public:
lenses["03 02 00"] = "Leica D Summilux 25mm f/1.4 Asph.";
lenses["05 01 10"] = "Tamron 14-150mm f/3.5-5.8 Di III";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream lid;
lid.setf (std::ios_base::hex, std::ios_base::basefield);
@ -465,7 +465,7 @@ class OLNoiseFilterInterpreter : public Interpreter
{
public:
OLNoiseFilterInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0);
int b = t->toInt (2);
@ -490,7 +490,7 @@ class OLFlashModeInterpreter : public Interpreter
{
public:
OLFlashModeInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
int a = t->toInt ();
@ -509,7 +509,7 @@ class OLNoiseReductionInterpreter : public Interpreter
{
public:
OLNoiseReductionInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
int a = t->toInt ();

View File

@ -415,7 +415,7 @@ class PAFNumberInterpreter: public Interpreter
{
public:
PAFNumberInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double v = t->toDouble() / 10;
@ -610,7 +610,7 @@ public:
choices[256 * 255 + 0] = "Video (Auto Aperture)";
choices[256 * 255 + 4] = "Video (4)";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int c = 256 * t->toInt (0, BYTE) + t->toInt (1, BYTE);
std::map<int, std::string>::iterator r = choices.find (c);
@ -669,7 +669,7 @@ public:
choices3[224] = "HDR Auto";
choices3[255] = "Video";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::map<int, std::string>::iterator r = choices.find (t->toInt (0, BYTE));
std::map<int, std::string>::iterator r1 = choices1.find (t->toInt (1, BYTE));
@ -993,7 +993,7 @@ public:
choices.insert (p_t (256 * 22 + 4, "04 Toy Lens Wide 6.3mm f/7.1"));
choices.insert (p_t (256 * 22 + 5, "05 Toy Lens Telephoto 18mm f/8"));
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
double *liArray = nullptr;
double maxApertureAtFocal = 0.;
@ -1061,7 +1061,7 @@ class PASRResultInterpreter: public Interpreter
{
public:
PASRResultInterpreter() { }
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
int b = t->toInt (0, BYTE);
@ -1146,7 +1146,7 @@ public:
choices[ 2 << 8 | 4 ] = "Auto";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int idx = 0;
@ -1173,7 +1173,7 @@ public:
choices[2] = "Standard";
choices[3] = "Fast";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::map<int, std::string>::iterator r = choices.find (t->toInt (0, BYTE));
std::ostringstream s;
@ -1211,7 +1211,7 @@ public:
choices[2] = "Medium";
choices[3] = "High";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::map<int, std::string>::iterator r = choices.find (t->toInt (0, BYTE));
std::ostringstream s;
@ -1243,7 +1243,7 @@ public:
choices2[8] = "2 EV";
choices2[12] = "3 EV";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::map<int, std::string>::iterator r = choices.find (t->toInt (0, BYTE));
std::map<int, std::string>::iterator r1 = choices1.find (t->toInt (1, BYTE));
@ -1290,7 +1290,7 @@ class PALensModelQInterpreter: public Interpreter
{
public:
PALensModelQInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[31];
buffer[0] = 0; //
@ -1308,7 +1308,7 @@ class PALensInfoQInterpreter: public Interpreter
{
public:
PALensInfoQInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[21];
buffer[0] = 0;
@ -1326,7 +1326,7 @@ class PAFlashExposureCompInterpreter: public Interpreter
{
public:
PAFlashExposureCompInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a;
@ -1340,7 +1340,7 @@ public:
sprintf (buffer, "%d", a );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a;
@ -1359,7 +1359,7 @@ class PAFocalLengthInterpreter: public Interpreter
{
public:
PAFocalLengthInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
double a = double (t->toInt (0, LONG));
@ -1371,7 +1371,7 @@ public:
return "n/a";
}
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
double a = double (t->toInt (0, LONG));
@ -1388,7 +1388,7 @@ class PALensDataFocalLengthInterpreter: public Interpreter
{
public:
PALensDataFocalLengthInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, BYTE);
float b = float (10 * int (a >> 2)) * pow (4.f, float (int (a & 0x03) - 2));
@ -1401,7 +1401,7 @@ public:
return "n/a";
}
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (ofs, BYTE);
float b = float (10 * int (a >> 2)) * pow (4.f, float (int (a & 0x03) - 2));
@ -1419,7 +1419,7 @@ class PAISOfInterpreter: public Interpreter
{
public:
PAISOfInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, BYTE);
char buffer[32];
@ -1427,7 +1427,7 @@ public:
sprintf (buffer, "%.1f", v );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, BYTE);
return 100.*exp (double (a - 32) * log (2.) / 8.);
@ -1439,7 +1439,7 @@ class PAMaxApertureInterpreter: public Interpreter
{
public:
PAMaxApertureInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, BYTE);
a &= 0x7F;
@ -1458,7 +1458,7 @@ public:
return "n/a";
}
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, BYTE);
a &= 0x7F;
@ -1476,7 +1476,7 @@ class PAAEXvInterpreter: public Interpreter
{
public:
PAAEXvInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, BYTE);
char buffer[32];
@ -1484,7 +1484,7 @@ public:
sprintf (buffer, "%.1f", v );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, BYTE);
return double (a - 64) / 8.;
@ -1496,7 +1496,7 @@ class PAAEBXvInterpreter: public Interpreter
{
public:
PAAEBXvInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, SBYTE);
char buffer[32];
@ -1504,7 +1504,7 @@ public:
sprintf (buffer, "%.1f", v );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, SBYTE);
return double (a) / 8.;
@ -1516,7 +1516,7 @@ class PAApertureInterpreter: public Interpreter
{
public:
PAApertureInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, BYTE);
char buffer[32];
@ -1524,7 +1524,7 @@ public:
sprintf (buffer, "%.1f", v );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, BYTE);
return exp ((double (a) - 68.) * log (2.) / 16.);
@ -1536,7 +1536,7 @@ class PAExposureTimeInterpreter: public Interpreter
{
public:
PAExposureTimeInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt (0, BYTE);
char buffer[32];
@ -1544,7 +1544,7 @@ public:
sprintf (buffer, "%.6f", v );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, BYTE);
return 24.*exp (- (double (a) - 32.) * log (2.) / 8.);
@ -1556,7 +1556,7 @@ class PANominalMinApertureInterpreter: public Interpreter
{
public:
PANominalMinApertureInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
int a = t->toInt (0, BYTE);
@ -1564,7 +1564,7 @@ public:
sprintf (buffer, "%.1f", double (int (pow (2.0, double (mina + 10) / 4.0) + 0.2)));
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = t->toInt (0, BYTE) & 0x0F;
return double (int (pow (2.0, double (a + 10) / 4.0) + 0.2));
@ -1576,7 +1576,7 @@ class PANominalMaxApertureInterpreter: public Interpreter
{
public:
PANominalMaxApertureInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
int a = t->toInt (0, BYTE);
@ -1584,7 +1584,7 @@ public:
sprintf (buffer, "%.1f", double (int (pow (2.0, double (maxa) / 4.0) + 0.2)) );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
int a = ( t->toInt (0, BYTE) & 0xF0) >> 4;
return double (int (pow (2.0, double (a) / 4.0) + 0.2));
@ -1694,7 +1694,7 @@ class PAExternalFlashGNInterpreter: public Interpreter
{
public:
PAExternalFlashGNInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
int b = t->toInt (0, BYTE) & 0x1F;
@ -1708,7 +1708,7 @@ class PAEVStepsInterpreter: public Interpreter
{
public:
PAEVStepsInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
@ -1727,7 +1727,7 @@ class PAEDialinInterpreter: public Interpreter
{
public:
PAEDialinInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
@ -1746,7 +1746,7 @@ class PAApertureRingUseInterpreter: public Interpreter
{
public:
PAApertureRingUseInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
@ -1776,7 +1776,7 @@ public:
choices[9] = "Slow-sync, Red-eye reduction";
choices[10] = "Trailing-curtain Sync";
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::map<int, std::string>::iterator r = choices.find (t->toInt (0, BYTE) >> 4);
@ -1795,7 +1795,7 @@ class PAMeteringMode2Interpreter: public Interpreter
{
public:
PAMeteringMode2Interpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
int v = (t->toInt (0, BYTE) & 0xF);
@ -1859,7 +1859,7 @@ class PAProgramLineInterpreter: public Interpreter
{
public:
PAProgramLineInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::ostringstream str;
int c = t->toInt (0, BYTE);
@ -1899,7 +1899,7 @@ class PAAFModeInterpreter: public Interpreter
{
public:
PAAFModeInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
switch (t->toInt (0, BYTE) & 0x3) {
case 0:
@ -1925,7 +1925,7 @@ class PAAFPointSelectedInterpreter: public Interpreter
{
public:
PAAFPointSelectedInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int c = t->toInt (0, SHORT);
@ -1949,7 +1949,7 @@ class PADriveMode2Interpreter: public Interpreter
{
public:
PADriveMode2Interpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int c = t->toInt (0, BYTE);

View File

@ -362,23 +362,25 @@ Glib::ustring TagDirectory::getDumpKey (int tagID, const Glib::ustring &tagName)
return key;
}
void TagDirectory::addTag (Tag* tag)
void TagDirectory::addTag (Tag* &tag)
{
// look up if it already exists:
if (getTag (tag->getID())) {
delete tag;
tag = nullptr;
} else {
tags.push_back (tag);
}
}
void TagDirectory::addTagFront (Tag* tag)
void TagDirectory::addTagFront (Tag* &tag)
{
// look up if it already exists:
if (getTag (tag->getID())) {
delete tag;
tag = nullptr;
} else {
tags.insert (tags.begin(), tag);
}
@ -720,7 +722,7 @@ int TagDirectory::write (int start, unsigned char* buffer)
return maxPos;
}
void TagDirectory::applyChange (std::string name, Glib::ustring value)
void TagDirectory::applyChange (const std::string &name, const Glib::ustring &value)
{
std::string::size_type dp = name.find_first_of ('.');
@ -842,14 +844,15 @@ TagDirectoryTable::TagDirectoryTable (TagDirectory* p, FILE* f, int memsize, int
: TagDirectory (p, ta, border), zeroOffset (offs), valuesSize (memsize), defaultType ( type )
{
values = new unsigned char[valuesSize];
fread (values, 1, valuesSize, f);
if (fread (values, 1, valuesSize, f) == static_cast<size_t>(valuesSize)) {
// Security ; will avoid to read above the buffer limit if the RT's tagDirectoryTable is longer that what's in the file
int count = valuesSize / getTypeSize (type);
// Security ; will avoid to read above the buffer limit if the RT's tagDirectoryTable is longer that what's in the file
int count = valuesSize / getTypeSize (type);
for (const TagAttrib* tattr = ta; tattr->ignore != -1 && tattr->ID < count; ++tattr) {
Tag* newTag = new Tag (this, tattr, (values + zeroOffset + tattr->ID * getTypeSize (type)), tattr->type == AUTO ? type : tattr->type);
tags.push_back (newTag); // Here we can insert more tag in the same offset because of bitfield meaning
for (const TagAttrib* tattr = ta; tattr->ignore != -1 && tattr->ID < count; ++tattr) {
Tag* newTag = new Tag (this, tattr, (values + zeroOffset + tattr->ID * getTypeSize (type)), tattr->type == AUTO ? type : tattr->type);
tags.push_back (newTag); // Here we can insert more tag in the same offset because of bitfield meaning
}
}
}
TagDirectory* TagDirectoryTable::clone (TagDirectory* parent)
@ -1204,8 +1207,8 @@ Tag::Tag (TagDirectory* p, FILE* f, int base)
} else {
// read value
value = new unsigned char [valuesize + 1];
fread (value, 1, valuesize, f);
value[valuesize] = '\0';
auto readSize = fread (value, 1, valuesize, f);
value[readSize] = '\0';
}
// seek back to the saved position
@ -1215,32 +1218,33 @@ Tag::Tag (TagDirectory* p, FILE* f, int base)
defsubdirs:
// read value
value = new unsigned char [valuesize];
fread (value, 1, valuesize, f);
// count the number of valid subdirs
int sdcount = count;
if (sdcount > 0) {
if (parent->getAttribTable() == olympusAttribs) {
sdcount = 1;
}
// allocate space
directory = new TagDirectory*[sdcount + 1];
// load directories
for (size_t j = 0, i = 0; j < count; j++, i++) {
int newpos = base + toInt (j * 4, LONG);
fseek (f, newpos, SEEK_SET);
directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order);
}
// set the terminating NULL
directory[sdcount] = nullptr;
} else {
if (fread (value, 1, valuesize, f) != static_cast<size_t>(valuesize)) {
type = INVALID;
}
} else {
// count the number of valid subdirs
int sdcount = count;
if (sdcount > 0) {
if (parent->getAttribTable() == olympusAttribs) {
sdcount = 1;
}
// allocate space
directory = new TagDirectory*[sdcount + 1];
// load directories
for (size_t j = 0, i = 0; j < count; j++, i++) {
int newpos = base + toInt (j * 4, LONG);
fseek (f, newpos, SEEK_SET);
directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order);
}
// set the terminating NULL
directory[sdcount] = nullptr;
} else {
type = INVALID;
}
}
// seek back to the saved position
fseek (f, save, SEEK_SET);
return;
@ -2104,10 +2108,12 @@ void ExifManager::parseCIFF ()
TagDirectory* root = new TagDirectory (nullptr, ifdAttribs, INTEL);
Tag* exif = new Tag (root, lookupAttrib (ifdAttribs, "Exif"));
exif->initSubDir ();
Tag* mn = new Tag (exif->getDirectory(), lookupAttrib (exifAttribs, "MakerNote"));
mn->initMakerNote (IFD, canonAttribs);
root->addTag (exif);
exif->getDirectory()->addTag (mn);
if (exif) {
Tag* mn = new Tag (exif->getDirectory(), lookupAttrib (exifAttribs, "MakerNote"));
mn->initMakerNote (IFD, canonAttribs);
exif->getDirectory()->addTag (mn);
}
parseCIFF (rml->ciffLength, root);
root->sort ();
}
@ -2143,10 +2149,14 @@ void ExifManager::parseCIFF (int length, TagDirectory* root)
char buffer[1024];
Tag* t;
fseek (f, rml->ciffBase + length - 4, SEEK_SET);
if (fseek(f, rml->ciffBase + length - 4, SEEK_SET)) {
return;
}
int dirStart = get4 (f, INTEL) + rml->ciffBase;
fseek (f, dirStart, SEEK_SET);
if (fseek(f, dirStart, SEEK_SET)) {
return;
}
int numOfTags = get2 (f, INTEL);
@ -2508,7 +2518,7 @@ parse_leafdata (TagDirectory* root, ByteOrder order)
root->addTagFront (exif);
}
if (!exif->getDirectory()->getTag ("ISOSpeedRatings")) {
if (exif && !exif->getDirectory()->getTag ("ISOSpeedRatings")) {
Tag *t = new Tag (exif->getDirectory(), exif->getDirectory()->getAttrib ("ISOSpeedRatings"));
t->initInt (iso_speed, LONG);
exif->getDirectory()->addTagFront (t);
@ -2834,7 +2844,7 @@ void ExifManager::parse (bool isRaw, bool skipIgnored)
exif->initSubDir (exifdir);
root->addTagFront (exif);
if (!exif->getDirectory()->getTag ("ISOSpeedRatings") && exif->getDirectory()->getTag ("ExposureIndex")) {
if (exif && !exif->getDirectory()->getTag ("ISOSpeedRatings") && exif->getDirectory()->getTag ("ExposureIndex")) {
Tag* niso = new Tag (exif->getDirectory(), exif->getDirectory()->getAttrib ("ISOSpeedRatings"));
niso->initInt (exif->getDirectory()->getTag ("ExposureIndex")->toInt(), SHORT);
exif->getDirectory()->addTagFront (niso);

View File

@ -155,11 +155,11 @@ public:
virtual Tag* findTagUpward (const char* name) const;
bool getXMPTagValue (const char* name, char* value) const;
void keepTag (int ID);
virtual void addTag (Tag* a);
virtual void addTagFront (Tag* a);
virtual void replaceTag (Tag* a);
inline Tag* getTagByIndex (int ix)
void keepTag (int ID);
void addTag (Tag* &a);
void addTagFront (Tag* &a);
void replaceTag (Tag* a);
inline Tag* getTagByIndex (int ix)
{
return tags[ix];
}
@ -171,7 +171,7 @@ public:
virtual int calculateSize ();
virtual int write (int start, unsigned char* buffer);
virtual TagDirectory* clone (TagDirectory* parent);
virtual void applyChange (std::string field, Glib::ustring value);
void applyChange (const std::string &field, const Glib::ustring &value);
virtual void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call !
virtual bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams,
@ -191,10 +191,10 @@ public:
TagDirectoryTable();
TagDirectoryTable (TagDirectory* p, unsigned char *v, int memsize, int offs, TagType type, const TagAttrib* ta, ByteOrder border);
TagDirectoryTable (TagDirectory* p, FILE* f, int memsize, int offset, TagType type, const TagAttrib* ta, ByteOrder border);
virtual ~TagDirectoryTable();
virtual int calculateSize ();
virtual int write (int start, unsigned char* buffer);
virtual TagDirectory* clone (TagDirectory* parent);
~TagDirectoryTable() override;
int calculateSize () override;
int write (int start, unsigned char* buffer) override;
TagDirectory* clone (TagDirectory* parent) override;
};
// a class representing a single tag
@ -488,7 +488,7 @@ protected:
std::map<int, std::string> choices;
public:
ChoiceInterpreter () {};
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::map<int, std::string>::iterator r = choices.find (t->toInt());

View File

@ -1150,7 +1150,7 @@ public:
};
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int lensID = t->toInt();
Tag *lensInfoTag = t->getParent()->getRoot()->findTag ("LensInfo");
@ -1297,7 +1297,7 @@ public:
choices.insert (p_t (51507, "Samyang AF 35mm f/1.4"));
}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int lensID = t->toInt();
Tag *lensInfoTag = t->getParent()->getRoot()->findTag ("LensInfo");
@ -2091,7 +2091,7 @@ class SAExposureTimeInterpreter : public Interpreter
{
public:
SAExposureTimeInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
double a = t->toDouble();
@ -2103,7 +2103,7 @@ public:
return "n/a";
}
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
// Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT
TagType astype = t->getType();
@ -2122,7 +2122,7 @@ public:
return 0.;
}
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
// Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT
int a = 0;
@ -2151,7 +2151,7 @@ class SAFNumberInterpreter : public Interpreter
{
public:
SAFNumberInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
double a = double (t->toDouble());
@ -2163,7 +2163,7 @@ public:
return "n/a";
}
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
// Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT
TagType astype = t->getType();
@ -2182,7 +2182,7 @@ public:
return 0.;
}
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
// Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT
int a = 0;
@ -2211,7 +2211,7 @@ class SAISOSettingInterpreter : public Interpreter
{
public:
SAISOSettingInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->toInt();
@ -2223,7 +2223,7 @@ public:
return "Auto";
}
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
// Get the value; Depending on the camera model, this parameter can be a BYTE or a SHORT
int a = 0;
@ -2252,14 +2252,14 @@ class SAExposureCompSetInterpreter : public Interpreter
{
public:
SAExposureCompSetInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
double a = t->toDouble();
char buffer[32];
sprintf (buffer, "%.2f", a );
return buffer;
}
virtual double toDouble (const Tag* t, int ofs)
double toDouble (const Tag* t, int ofs) override
{
// Get the value
int a = t->getValue()[ofs];
@ -2273,13 +2273,13 @@ class SAAFMicroAdjValueInterpreter : public Interpreter
{
public:
SAAFMicroAdjValueInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%d", t->getValue()[0] - 20);
return buffer;
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
return t->getValue()[0] - 20;
}
@ -2290,7 +2290,7 @@ class SAAFMicroAdjModeInterpreter : public Interpreter
{
public:
SAAFMicroAdjModeInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int a = t->getValue()[0] & 0x80;
@ -2300,7 +2300,7 @@ public:
return "Off";
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
return (t->getValue()[0] & 0x80) == 0x80 ? 1 : 0;
}
@ -2312,13 +2312,13 @@ class SAAFMicroAdjRegisteredLensesInterpreter : public Interpreter
{
public:
SAAFMicroAdjRegisteredLensesInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%d", t->getValue()[0] & 0x7f);
return buffer;
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
return t->getValue()[0] & 0x7f;
}
@ -2329,7 +2329,7 @@ class SAFocusStatusInterpreter : public Interpreter
{
public:
SAFocusStatusInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
std::string retval;
int a = t->toInt();
@ -2368,13 +2368,13 @@ class SAColorTemperatureSettingInterpreter : public Interpreter
{
public:
SAColorTemperatureSettingInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
sprintf (buffer, "%d", t->toInt());
return buffer;
}
virtual int toInt (const Tag* t, int ofs, TagType astype)
int toInt (const Tag* t, int ofs, TagType astype) override
{
int a = 0;

View File

@ -327,7 +327,7 @@ class FNumberInterpreter : public Interpreter
{
public:
FNumberInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double v = t->toDouble();
@ -346,7 +346,7 @@ class ApertureInterpreter : public Interpreter
{
public:
ApertureInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double v = pow (2.0, t->toDouble() / 2.0);
@ -365,7 +365,7 @@ class ExposureBiasInterpreter : public Interpreter
{
public:
ExposureBiasInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double v = t->toDouble();
@ -384,7 +384,7 @@ class ShutterSpeedInterpreter : public Interpreter
{
public:
ShutterSpeedInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double d = pow (2.0, -t->toDouble());
@ -404,7 +404,7 @@ class ExposureTimeInterpreter : public Interpreter
{
public:
ExposureTimeInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double d = t->toDouble();
@ -424,7 +424,7 @@ class FocalLengthInterpreter : public Interpreter
{
public:
FocalLengthInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char buffer[32];
double v = t->toDouble();
@ -443,7 +443,7 @@ class UserCommentInterpreter : public Interpreter
{
public:
UserCommentInterpreter () {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int count = t->getCount();
@ -563,7 +563,7 @@ public:
delete [] buffer;
return retVal;
}
virtual void fromString (Tag* t, const std::string& value)
void fromString (Tag* t, const std::string& value) override
{
Glib::ustring tmpStr(value);
t->userCommentFromString (tmpStr);
@ -575,7 +575,7 @@ class CFAInterpreter : public Interpreter
{
public:
CFAInterpreter() {}
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
char colors[] = "RGB";
char buffer[1024];
@ -632,7 +632,7 @@ UTF8BinInterpreter utf8BinInterpreter;
class RawImageSegmentationInterpreter : public Interpreter
{
public:
virtual std::string toString (Tag* t)
std::string toString (Tag* t) override
{
int segmentNumber = t->toInt(0, SHORT);
int segmentWidth = t->toInt(2, SHORT);

View File

@ -87,7 +87,7 @@ public:
int delay;
Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep, double vdefault, Gtk::Image *imgIcon1 = nullptr, Gtk::Image *imgIcon2 = nullptr, double2double_fun slider2value = nullptr, double2double_fun value2slider = nullptr);
virtual ~Adjuster ();
~Adjuster () override;
// Add an "Automatic" checkbox next to the reset button.
void addAutoButton(Glib::ustring tooltip = "");

View File

@ -44,7 +44,7 @@ class BatchQueue final :
{
public:
explicit BatchQueue (FileCatalog* aFileCatalog);
~BatchQueue ();
~BatchQueue () override;
void addEntries (const std::vector<BatchQueueEntry*>& entries, bool head = false, bool save = true);
void cancelItems (const std::vector<ThumbBrowserEntryBase*>& items);
@ -62,17 +62,17 @@ public:
return (!fd.empty());
}
void setProgress(double p);
void setProgressStr(const Glib::ustring& str);
void setProgressState(bool inProcessing);
void error(const Glib::ustring& descr);
rtengine::ProcessingJob* imageReady(rtengine::IImagefloat* img);
void setProgress(double p) override;
void setProgressStr(const Glib::ustring& str) override;
void setProgressState(bool inProcessing) override;
void error(const Glib::ustring& descr) override;
rtengine::ProcessingJob* imageReady(rtengine::IImagefloat* img) override;
void rightClicked (ThumbBrowserEntryBase* entry);
void doubleClicked (ThumbBrowserEntryBase* entry);
bool keyPressed (GdkEventKey* event);
void buttonPressed (LWButton* button, int actionCode, void* actionData);
void redrawNeeded (LWButton* button);
void rightClicked (ThumbBrowserEntryBase* entry) override;
void doubleClicked (ThumbBrowserEntryBase* entry) override;
bool keyPressed (GdkEventKey* event) override;
void buttonPressed (LWButton* button, int actionCode, void* actionData) override;
void redrawNeeded (LWButton* button) override;
void setBatchQueueListener (BatchQueueListener* l)
{
@ -86,9 +86,9 @@ public:
static int calcMaxThumbnailHeight();
protected:
int getMaxThumbnailHeight() const;
void saveThumbnailHeight (int height);
int getThumbnailHeight ();
int getMaxThumbnailHeight() const override;
void saveThumbnailHeight (int height) override;
int getThumbnailHeight () override;
Glib::ustring autoCompleteFileName (const Glib::ustring& fileName, const Glib::ustring& format);
Glib::ustring getTempFilenameForParams( const Glib::ustring &filename );

View File

@ -56,21 +56,21 @@ public:
bool fast_pipeline;
BatchQueueEntry (rtengine::ProcessingJob* job, const rtengine::procparams::ProcParams& pparams, Glib::ustring fname, int prevw, int prevh, Thumbnail* thm = nullptr);
~BatchQueueEntry ();
~BatchQueueEntry () override;
void refreshThumbnailImage ();
void calcThumbnailSize ();
void refreshThumbnailImage () override;
void calcThumbnailSize () override;
void drawProgressBar (Glib::RefPtr<Gdk::Window> win, const Gdk::RGBA& foregr, const Gdk::RGBA& backgr, int x, int w, int y, int h);
void drawProgressBar (Glib::RefPtr<Gdk::Window> win, const Gdk::RGBA& foregr, const Gdk::RGBA& backgr, int x, int w, int y, int h) override;
void removeButtonSet ();
virtual std::vector<Glib::RefPtr<Gdk::Pixbuf> > getIconsOnImageArea ();
virtual void getIconSize (int& w, int& h);
virtual Glib::ustring getToolTip (int x, int y);
std::vector<Glib::RefPtr<Gdk::Pixbuf> > getIconsOnImageArea () override;
void getIconSize (int& w, int& h) override;
Glib::ustring getToolTip (int x, int y) override;
// bqentryupdatelistener interface
void updateImage (guint8* img, int w, int h, int origw, int origh, guint8* newOPreview);
void updateImage (guint8* img, int w, int h, int origw, int origh, guint8* newOPreview) override;
void _updateImage (guint8* img, int w, int h); // inside gtk thread
};

View File

@ -59,7 +59,7 @@ class BatchQueuePanel : public Gtk::VBox,
public:
explicit BatchQueuePanel (FileCatalog* aFileCatalog);
~BatchQueuePanel();
~BatchQueuePanel() override;
void init (RTWindow* parent);
@ -69,8 +69,8 @@ public:
bool handleShortcutKey (GdkEventKey* event);
// batchqueuelistener interface
void queueSizeChanged(int qsize, bool queueRunning, bool queueError, const Glib::ustring& queueErrorMessage);
bool canStartNext();
void queueSizeChanged(int qsize, bool queueRunning, bool queueError, const Glib::ustring& queueErrorMessage) override;
bool canStartNext() override;
private:
void startBatchProc ();

View File

@ -107,7 +107,7 @@ void BatchToolPanelCoordinator::initSession ()
// compare all the ProcParams and describe which parameters has different (i.e. inconsistent) values in pparamsEdited
pparamsEdited.initFrom (initialPP);
crop->setDimensions (100000, 100000);
//crop->setDimensions (100000, 100000);
/* if (!selected.empty()) {
pparams = selected[0]->getProcParams ();
@ -126,6 +126,10 @@ void BatchToolPanelCoordinator::initSession ()
pparams = selected[0]->getProcParams ();
coarse->initBatchBehavior ();
int w,h;
selected[0]->getOriginalSize(w,h);
crop->setDimensions (w, h);
if (selected.size() == 1) {

View File

@ -67,7 +67,7 @@ public:
// wbprovider interface
void getAutoWB (double& temp, double& green, double equal, double tempBias) override;
void getCamWB (double& temp, double& green);
void getCamWB (double& temp, double& green) override;
// thumbnaillistener interface
void procParamsChanged (Thumbnail* thm, int whoChangedIt) override;

View File

@ -41,17 +41,17 @@ public:
BayerPreProcess ();
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void setBatchMode (bool batchMode);
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setBatchMode (bool batchMode) override;
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void adjusterChanged(Adjuster* a, double newval);
void adjusterAutoToggled(Adjuster* a, bool newval);
void adjusterChanged(Adjuster* a, double newval) override;
void adjusterAutoToggled(Adjuster* a, bool newval) override;
void hotDeadPixelChanged();
void setAdjusterBehavior (bool linedenoiseadd, bool greenequiladd);
void trimValues (rtengine::procparams::ProcParams* pp);
void trimValues (rtengine::procparams::ProcParams* pp) override;
void lineDenoiseDirectionChanged();
void pdafLinesFilterChanged();
};

View File

@ -70,24 +70,24 @@ protected:
public:
BayerProcess ();
~BayerProcess ();
~BayerProcess () override;
void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setAdjusterBehavior(bool falsecoloradd, bool iteradd, bool dualdemozecontrastadd, bool pssigmaadd, bool pssmoothadd, bool pseperisoadd);
void trimValues(rtengine::procparams::ProcParams* pp);
void setBatchMode(bool batchMode);
void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
void trimValues(rtengine::procparams::ProcParams* pp) override;
void setBatchMode(bool batchMode) override;
void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void methodChanged();
void imageNumberChanged();
void adjusterChanged(Adjuster* a, double newval);
void adjusterAutoToggled (Adjuster* a, bool newval);
void checkBoxToggled(CheckBox* c, CheckValue newval);
void adjusterChanged(Adjuster* a, double newval) override;
void adjusterAutoToggled (Adjuster* a, bool newval) override;
void checkBoxToggled(CheckBox* c, CheckValue newval) override;
void pixelShiftMotionMethodChanged();
void pixelShiftDemosaicMethodChanged();
void autoContrastChanged (double autoContrast);
void FrameCountChanged(int n, int frameNum);
void autoContrastChanged (double autoContrast) override;
void FrameCountChanged(int n, int frameNum) override;
};
#endif

View File

@ -38,15 +38,15 @@ public:
BayerRAWExposure ();
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void setBatchMode (bool batchMode);
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
void adjusterChanged (Adjuster* a, double newval);
void adjusterAutoToggled (Adjuster* a, bool newval);
void checkBoxToggled (CheckBox* c, CheckValue newval);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setBatchMode (bool batchMode) override;
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void adjusterChanged (Adjuster* a, double newval) override;
void adjusterAutoToggled (Adjuster* a, bool newval) override;
void checkBoxToggled (CheckBox* c, CheckValue newval) override;
void setAdjusterBehavior (bool pexblackadd);
void trimValues (rtengine::procparams::ProcParams* pp);
void trimValues (rtengine::procparams::ProcParams* pp) override;
};
#endif

View File

@ -39,32 +39,32 @@ class BlackWhite final :
public:
BlackWhite ();
~BlackWhite ();
~BlackWhite () override;
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
void setBatchMode (bool batchMode);
void autoOpenCurve ();
void setEditProvider (EditDataProvider *provider);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void setBatchMode (bool batchMode) override;
void autoOpenCurve () override;
void setEditProvider (EditDataProvider *provider) override;
void autoch_toggled ();
void neutral_pressed ();
void updateRGBLabel ();
void adjusterChanged (Adjuster* a, double newval);
void adjusterAutoToggled (Adjuster* a, bool newval);
void adjusterChanged (Adjuster* a, double newval) override;
void adjusterAutoToggled (Adjuster* a, bool newval) override;
void setAdjusterBehavior (bool bwadd, bool bwgadd);
void trimValues (rtengine::procparams::ProcParams* pp);
void trimValues (rtengine::procparams::ProcParams* pp) override;
void enabledcc_toggled ();
void enabledChanged ();
void enabledChanged () override;
void methodChanged ();
void filterChanged ();
void settingChanged ();
virtual void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller);
void BWChanged (double redbw, double greenbw, double bluebw);
void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override;
void BWChanged (double redbw, double greenbw, double bluebw) override;
bool BWComputed_ ();
void curveChanged (CurveEditor* ce);
void curveChanged (CurveEditor* ce) override;
void curveMode1Changed ();
bool curveMode1Changed_ ();
void curveMode1Changed2 ();

View File

@ -87,30 +87,30 @@ public:
// FramesMetaData interface
//-------------------------------------------------------------------------
unsigned int getRootCount () const { return -1; }
unsigned int getFrameCount () const { return frameCount; }
bool hasExif (unsigned int frame = 0) const { return false; }
rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const { return nullptr; }
rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const { return nullptr; }
rtexif::TagDirectory* getBestExifData (rtengine::ImageSource *imgSource, rtengine::procparams::RAWParams *rawParams) const { return nullptr; }
bool hasIPTC (unsigned int frame = 0) const { return false; }
rtengine::procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const { return rtengine::procparams::IPTCPairs(); }
tm getDateTime (unsigned int frame = 0) const { return tm{}; }
time_t getDateTimeAsTS(unsigned int frame = 0) const { return time_t(-1); }
int getISOSpeed (unsigned int frame = 0) const { return iso; }
double getFNumber (unsigned int frame = 0) const { return fnumber; }
double getFocalLen (unsigned int frame = 0) const { return focalLen; }
double getFocalLen35mm (unsigned int frame = 0) const { return focalLen35mm; }
float getFocusDist (unsigned int frame = 0) const { return focusDist; }
double getShutterSpeed (unsigned int frame = 0) const { return shutter; }
double getExpComp (unsigned int frame = 0) const { return atof(expcomp.c_str()); }
std::string getMake (unsigned int frame = 0) const { return camMake; }
std::string getModel (unsigned int frame = 0) const { return camModel; }
std::string getLens (unsigned int frame = 0) const { return lens; }
std::string getOrientation (unsigned int frame = 0) const { return ""; } // TODO
bool getPixelShift () const { return isPixelShift; }
bool getHDR (unsigned int frame = 0) const { return isHDR; }
std::string getImageType (unsigned int frame) const { return isPixelShift ? "PS" : isHDR ? "HDR" : "STD"; }
rtengine::IIOSampleFormat getSampleFormat (unsigned int frame = 0) const { return sampleFormat; }
unsigned int getRootCount () const override { return -1; }
unsigned int getFrameCount () const override { return frameCount; }
bool hasExif (unsigned int frame = 0) const override { return false; }
rtexif::TagDirectory* getRootExifData (unsigned int root = 0) const override { return nullptr; }
rtexif::TagDirectory* getFrameExifData (unsigned int frame = 0) const override { return nullptr; }
rtexif::TagDirectory* getBestExifData (rtengine::ImageSource *imgSource, rtengine::procparams::RAWParams *rawParams) const override { return nullptr; }
bool hasIPTC (unsigned int frame = 0) const override { return false; }
rtengine::procparams::IPTCPairs getIPTCData (unsigned int frame = 0) const override { return rtengine::procparams::IPTCPairs(); }
tm getDateTime (unsigned int frame = 0) const override { return tm{}; }
time_t getDateTimeAsTS(unsigned int frame = 0) const override { return time_t(-1); }
int getISOSpeed (unsigned int frame = 0) const override { return iso; }
double getFNumber (unsigned int frame = 0) const override { return fnumber; }
double getFocalLen (unsigned int frame = 0) const override { return focalLen; }
double getFocalLen35mm (unsigned int frame = 0) const override { return focalLen35mm; }
float getFocusDist (unsigned int frame = 0) const override { return focusDist; }
double getShutterSpeed (unsigned int frame = 0) const override { return shutter; }
double getExpComp (unsigned int frame = 0) const override { return atof(expcomp.c_str()); }
std::string getMake (unsigned int frame = 0) const override { return camMake; }
std::string getModel (unsigned int frame = 0) const override { return camModel; }
std::string getLens (unsigned int frame = 0) const override { return lens; }
std::string getOrientation (unsigned int frame = 0) const override { return ""; } // TODO
bool getPixelShift () const override { return isPixelShift; }
bool getHDR (unsigned int frame = 0) const override { return isHDR; }
std::string getImageType (unsigned int frame) const override { return isPixelShift ? "PS" : isHDR ? "HDR" : "STD"; }
rtengine::IIOSampleFormat getSampleFormat (unsigned int frame = 0) const override { return sampleFormat; }
};
#endif

View File

@ -34,15 +34,15 @@ public:
CACorrection ();
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
void setBatchMode (bool batchMode);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void setBatchMode (bool batchMode) override;
void adjusterChanged (Adjuster* a, double newval);
void adjusterAutoToggled(Adjuster* a, bool newval);
void adjusterChanged (Adjuster* a, double newval) override;
void adjusterAutoToggled(Adjuster* a, bool newval) override;
void setAdjusterBehavior (bool badd);
void trimValues (rtengine::procparams::ProcParams* pp);
void trimValues (rtengine::procparams::ProcParams* pp) override;
};
#endif

View File

@ -36,16 +36,16 @@ public:
ChMixer ();
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr);
void setBatchMode (bool batchMode);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override;
void setBatchMode (bool batchMode) override;
void adjusterChanged (Adjuster* a, double newval);
void adjusterAutoToggled(Adjuster* a, bool newval);
void adjusterChanged (Adjuster* a, double newval) override;
void adjusterAutoToggled(Adjuster* a, bool newval) override;
void setAdjusterBehavior (bool rgbadd);
void trimValues (rtengine::procparams::ProcParams* pp);
void enabledChanged();
void trimValues (rtengine::procparams::ProcParams* pp) override;
void enabledChanged() override;
};
#endif

View File

@ -37,8 +37,8 @@ public:
CoarsePanel ();
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override;
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override;
void initBatchBehavior ();
void rotateLeft ();

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