merge with dev - I hope no error
This commit is contained in:
commit
86c03e61d4
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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]);
|
||||
}
|
||||
|
@ -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__
|
||||
|
@ -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,
|
||||
|
@ -39,5 +39,5 @@ wavelet_decomposition::~wavelet_decomposition()
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -266,6 +266,6 @@ void wavelet_decomposition::reconstruct(E * dst, const float blend)
|
||||
coeff0 = nullptr;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -50,5 +50,5 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14
|
||||
};
|
||||
|
||||
// if necessary ?? we can add D20 !!
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -758,6 +758,6 @@ template<typename T> template<typename E> void wavelet_level<T>::reconstruct_lev
|
||||
}
|
||||
}
|
||||
#endif
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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]) {
|
||||
|
@ -623,7 +623,7 @@ private:
|
||||
struct PMatrix {
|
||||
double matrix[3][3];
|
||||
PMatrix(): matrix{} {}
|
||||
PMatrix(const CMatrix &m)
|
||||
explicit PMatrix(const CMatrix &m)
|
||||
{
|
||||
set(m);
|
||||
}
|
||||
|
@ -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 {}
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
|
||||
Image16();
|
||||
Image16(int width, int height);
|
||||
~Image16();
|
||||
~Image16() override;
|
||||
|
||||
Image16* copy() const;
|
||||
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
|
||||
Image8 ();
|
||||
Image8 (int width, int height);
|
||||
~Image8 ();
|
||||
~Image8 () override;
|
||||
|
||||
Image8* copy () const;
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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 ¶ms, float scale, LUTu & hist);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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++) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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(
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -101,7 +101,7 @@ void LabImage::deleteLab()
|
||||
void LabImage::reallocLab()
|
||||
{
|
||||
allocLab(W, H);
|
||||
};
|
||||
}
|
||||
|
||||
void LabImage::clear(bool multiThread) {
|
||||
#ifdef _OPENMP
|
||||
|
@ -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?
|
||||
|
@ -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;
|
||||
|
@ -27,7 +27,7 @@ namespace rtengine {
|
||||
|
||||
class PDAFLinesFilter {
|
||||
public:
|
||||
PDAFLinesFilter(RawImage *ri);
|
||||
explicit PDAFLinesFilter(RawImage *ri);
|
||||
~PDAFLinesFilter();
|
||||
|
||||
int mark(array2D<float> &rawData, PixelsMap &bpMap);
|
||||
|
@ -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; }
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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];
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -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) {}
|
||||
};
|
||||
|
@ -38,7 +38,7 @@ class LFModifier final :
|
||||
public NonCopyable
|
||||
{
|
||||
public:
|
||||
~LFModifier();
|
||||
~LFModifier() override;
|
||||
|
||||
explicit operator bool() const;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -156,7 +156,7 @@ public:
|
||||
}
|
||||
|
||||
return imgPtr;
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
|
@ -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;}
|
||||
|
||||
|
||||
};
|
||||
|
@ -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];
|
||||
|
@ -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] = {
|
||||
|
@ -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 ();
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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 = "");
|
||||
|
@ -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 );
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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 ();
|
||||
|
@ -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) {
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 ();
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user