diff --git a/AUTHORS.txt b/AUTHORS.txt index fe3405128..a9f501919 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -5,6 +5,7 @@ Project initiator: Development contributors, in last name alphabetical order: + Roel Baars Martin Burri Javier Celaya Jacques Desmis diff --git a/CMakeLists.txt b/CMakeLists.txt index 8dcf6793d..ea95d818c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,8 @@ -if(WIN32) - cmake_minimum_required(VERSION 2.8.4) -elseif(APPLE) +if(APPLE) cmake_minimum_required(VERSION 3.3) CMAKE_POLICY(SET CMP0025 NEW) else() - cmake_minimum_required(VERSION 2.6) + cmake_minimum_required(VERSION 2.8.8) endif() # Must stay before the PROJECT() command: @@ -318,9 +316,9 @@ pkg_check_modules(LCMS REQUIRED lcms2>=2.6) pkg_check_modules(EXPAT REQUIRED expat>=2.1) pkg_check_modules(FFTW3F REQUIRED fftw3f) pkg_check_modules(IPTCDATA REQUIRED libiptcdata) +pkg_check_modules(TIFF REQUIRED libtiff-4>=4.0.4) find_package(JPEG REQUIRED) find_package(PNG REQUIRED) -find_package(TIFF REQUIRED) find_package(ZLIB REQUIRED) if(WITH_SYSTEM_KLT) find_package(KLT REQUIRED) diff --git a/rawtherapee.astylerc b/rawtherapee.astylerc new file mode 100644 index 000000000..3d49d821f --- /dev/null +++ b/rawtherapee.astylerc @@ -0,0 +1,8 @@ +style=1tbs +indent=spaces=4 +indent-switches +break-blocks +pad-oper +convert-tabs +pad-header +unpad-paren diff --git a/rtdata/CMakeLists.txt b/rtdata/CMakeLists.txt index e320969c3..f8efa1523 100644 --- a/rtdata/CMakeLists.txt +++ b/rtdata/CMakeLists.txt @@ -1,4 +1,3 @@ - file(GLOB LANGUAGEFILES "languages/*") file(GLOB SOUNDFILES "sounds/*") file(GLOB INPUTICCFILES "iccprofiles/input/*") @@ -7,11 +6,17 @@ file(GLOB DCPFILES "dcpprofiles/*") file(GLOB FONTS "fonts/*") set(PROFILESDIR "profiles") -set(IMAGESDIR "images") - -# THEMEDIR includes subfolders for image resources for some themes; doing the normal glob won't work. set(THEMEDIR "themes") +# Images, mostly icons, which are generated using the generatePngIcons script: +set(IMAGES_THEMED + "images/themed/png/dark" + "images/themed/png/light" + ) + +# Other images which are generated manually: +file(GLOB IMAGES_NONTHEMED "images/non-themed/png/*") + if(WIN32) set(OPTIONSFILE "options/options.win") elseif(APPLE) @@ -25,17 +30,15 @@ if(WIN32) endif() if(UNIX) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/icons/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR}) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi16-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi24-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi32-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi48-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi128-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi256-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) endif() -install(FILES ${IMAGEFILES} DESTINATION "${DATADIR}/images") install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages") install(FILES ${SOUNDFILES} DESTINATION "${DATADIR}/sounds") install(FILES ${INPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/input") @@ -48,8 +51,14 @@ endif() install(DIRECTORY ${PROFILESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.pp3") install(DIRECTORY ${THEMEDIR} DESTINATION "${DATADIR}") -install(DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "index.theme") -install(DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.png") + +foreach(theme ${IMAGES_THEMED}) + install(DIRECTORY ${theme} DESTINATION "${DATADIR}/images") +endforeach() + +#install(DIRECTORY ${IMAGES_NONTHEMED} DESTINATION "${DATADIR}/images" FILES_MATCHING PATTERN "*.png") +#install(DIRECTORY ${IMAGES_NONTHEMED} DESTINATION "${DATADIR}/images/") +install(FILES ${IMAGES_NONTHEMED} DESTINATION "${DATADIR}/images") if(APPLE) # CMake escapes first item quote character. Do not remove 'DUMMY_VARIABLE=' diff --git a/rtdata/iccprofiles/output/ACES.icc b/rtdata/iccprofiles/output/ACES.icc deleted file mode 100644 index cb87b8bf2..000000000 Binary files a/rtdata/iccprofiles/output/ACES.icc and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_Large_g10.icc b/rtdata/iccprofiles/output/RT_Large_g10.icc deleted file mode 100644 index 1889a5457..000000000 Binary files a/rtdata/iccprofiles/output/RT_Large_g10.icc and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_Large_gBT709.icc b/rtdata/iccprofiles/output/RT_Large_gBT709.icc deleted file mode 100644 index bd9785f14..000000000 Binary files a/rtdata/iccprofiles/output/RT_Large_gBT709.icc and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_Large_gsRGB.icc b/rtdata/iccprofiles/output/RT_Large_gsRGB.icc deleted file mode 100644 index 11be3c733..000000000 Binary files a/rtdata/iccprofiles/output/RT_Large_gsRGB.icc and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_Medium_gsRGB.icc b/rtdata/iccprofiles/output/RT_Medium_gsRGB.icc deleted file mode 100644 index 6c6233d74..000000000 Binary files a/rtdata/iccprofiles/output/RT_Medium_gsRGB.icc and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_sRGB.icm b/rtdata/iccprofiles/output/RT_sRGB.icm deleted file mode 100644 index 3d0822ef7..000000000 Binary files a/rtdata/iccprofiles/output/RT_sRGB.icm and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_sRGB_g10.icm b/rtdata/iccprofiles/output/RT_sRGB_g10.icm deleted file mode 100644 index f8afb8e17..000000000 Binary files a/rtdata/iccprofiles/output/RT_sRGB_g10.icm and /dev/null differ diff --git a/rtdata/iccprofiles/output/RT_sRGB_gBT709.icm b/rtdata/iccprofiles/output/RT_sRGB_gBT709.icm deleted file mode 100644 index c5c44b7a4..000000000 Binary files a/rtdata/iccprofiles/output/RT_sRGB_gBT709.icm and /dev/null differ diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc new file mode 100644 index 000000000..34363781f Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_ACES-AP0.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc new file mode 100644 index 000000000..413360817 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_ACES-AP1.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Best.icc b/rtdata/iccprofiles/output/RTv2_Best.icc new file mode 100644 index 000000000..3f9db89e0 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Best.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Beta.icc b/rtdata/iccprofiles/output/RTv2_Beta.icc new file mode 100644 index 000000000..ebd5005e2 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Beta.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Bruce.icc b/rtdata/iccprofiles/output/RTv2_Bruce.icc new file mode 100644 index 000000000..c795da140 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Bruce.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Large.icc b/rtdata/iccprofiles/output/RTv2_Large.icc new file mode 100644 index 000000000..40f86fcf1 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Large.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Medium.icc b/rtdata/iccprofiles/output/RTv2_Medium.icc new file mode 100644 index 000000000..59bdf6706 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Medium.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Rec2020.icc b/rtdata/iccprofiles/output/RTv2_Rec2020.icc new file mode 100644 index 000000000..b6969a6f1 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Rec2020.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_Wide.icc b/rtdata/iccprofiles/output/RTv2_Wide.icc new file mode 100644 index 000000000..32ce13c7d Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_Wide.icc differ diff --git a/rtdata/iccprofiles/output/RTv2_sRGB.icc b/rtdata/iccprofiles/output/RTv2_sRGB.icc new file mode 100644 index 000000000..5efc365f8 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv2_sRGB.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc new file mode 100644 index 000000000..30df95eac Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_ACES-AP0.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc new file mode 100644 index 000000000..5dfb4cb0d Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_ACES-AP1.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Best.icc b/rtdata/iccprofiles/output/RTv4_Best.icc new file mode 100644 index 000000000..c67688686 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Best.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Beta.icc b/rtdata/iccprofiles/output/RTv4_Beta.icc new file mode 100644 index 000000000..86825164a Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Beta.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Bruce.icc b/rtdata/iccprofiles/output/RTv4_Bruce.icc new file mode 100644 index 000000000..c3a01b116 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Bruce.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Large.icc b/rtdata/iccprofiles/output/RTv4_Large.icc new file mode 100644 index 000000000..176bff9a7 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Large.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Medium.icc b/rtdata/iccprofiles/output/RTv4_Medium.icc new file mode 100644 index 000000000..d63965fa5 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Medium.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Rec2020.icc b/rtdata/iccprofiles/output/RTv4_Rec2020.icc new file mode 100644 index 000000000..27b1f8c49 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Rec2020.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_Wide.icc b/rtdata/iccprofiles/output/RTv4_Wide.icc new file mode 100644 index 000000000..f95587797 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_Wide.icc differ diff --git a/rtdata/iccprofiles/output/RTv4_sRGB.icc b/rtdata/iccprofiles/output/RTv4_sRGB.icc new file mode 100644 index 000000000..af95e0fd4 Binary files /dev/null and b/rtdata/iccprofiles/output/RTv4_sRGB.icc differ diff --git a/rtdata/iccprofiles/output/Rec2020.icm b/rtdata/iccprofiles/output/Rec2020.icm deleted file mode 100644 index 0decaf6dc..000000000 Binary files a/rtdata/iccprofiles/output/Rec2020.icm and /dev/null differ diff --git a/rtdata/icons/hi128-app-rawtherapee.png b/rtdata/icons/hi128-app-rawtherapee.png deleted file mode 100644 index 979183116..000000000 Binary files a/rtdata/icons/hi128-app-rawtherapee.png and /dev/null differ diff --git a/rtdata/icons/hi16-app-rawtherapee.png b/rtdata/icons/hi16-app-rawtherapee.png deleted file mode 100644 index 8c4731848..000000000 Binary files a/rtdata/icons/hi16-app-rawtherapee.png and /dev/null differ diff --git a/rtdata/icons/hi24-app-rawtherapee.png b/rtdata/icons/hi24-app-rawtherapee.png deleted file mode 100644 index f6c8ef1a0..000000000 Binary files a/rtdata/icons/hi24-app-rawtherapee.png and /dev/null differ diff --git a/rtdata/icons/hi256-app-rawtherapee.png b/rtdata/icons/hi256-app-rawtherapee.png deleted file mode 100644 index 5cb7d751f..000000000 Binary files a/rtdata/icons/hi256-app-rawtherapee.png and /dev/null differ diff --git a/rtdata/icons/hi32-app-rawtherapee.png b/rtdata/icons/hi32-app-rawtherapee.png deleted file mode 100644 index 380429e13..000000000 Binary files a/rtdata/icons/hi32-app-rawtherapee.png and /dev/null differ diff --git a/rtdata/icons/hi48-app-rawtherapee.png b/rtdata/icons/hi48-app-rawtherapee.png deleted file mode 100644 index fc82d5ae3..000000000 Binary files a/rtdata/icons/hi48-app-rawtherapee.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-B.png b/rtdata/images/Chanmixer-B.png deleted file mode 100644 index 0e12209f2..000000000 Binary files a/rtdata/images/Chanmixer-B.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-BB.png b/rtdata/images/Chanmixer-BB.png deleted file mode 100644 index 6804bdf4a..000000000 Binary files a/rtdata/images/Chanmixer-BB.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-BG.png b/rtdata/images/Chanmixer-BG.png deleted file mode 100644 index 58012aa55..000000000 Binary files a/rtdata/images/Chanmixer-BG.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-BR.png b/rtdata/images/Chanmixer-BR.png deleted file mode 100644 index 1c3457e14..000000000 Binary files a/rtdata/images/Chanmixer-BR.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-BY.png b/rtdata/images/Chanmixer-BY.png deleted file mode 100644 index c630ffb29..000000000 Binary files a/rtdata/images/Chanmixer-BY.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-C.png b/rtdata/images/Chanmixer-C.png deleted file mode 100644 index 15aa0c08c..000000000 Binary files a/rtdata/images/Chanmixer-C.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-G.png b/rtdata/images/Chanmixer-G.png deleted file mode 100644 index 566babb8b..000000000 Binary files a/rtdata/images/Chanmixer-G.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-GB.png b/rtdata/images/Chanmixer-GB.png deleted file mode 100644 index cfceceaea..000000000 Binary files a/rtdata/images/Chanmixer-GB.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-GG.png b/rtdata/images/Chanmixer-GG.png deleted file mode 100644 index 00f928236..000000000 Binary files a/rtdata/images/Chanmixer-GG.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-GR.png b/rtdata/images/Chanmixer-GR.png deleted file mode 100644 index 827210e97..000000000 Binary files a/rtdata/images/Chanmixer-GR.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-M.png b/rtdata/images/Chanmixer-M.png deleted file mode 100644 index b10dc5790..000000000 Binary files a/rtdata/images/Chanmixer-M.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-O.png b/rtdata/images/Chanmixer-O.png deleted file mode 100644 index 8f90ae8bb..000000000 Binary files a/rtdata/images/Chanmixer-O.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-P.png b/rtdata/images/Chanmixer-P.png deleted file mode 100644 index c3c412807..000000000 Binary files a/rtdata/images/Chanmixer-P.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-R.png b/rtdata/images/Chanmixer-R.png deleted file mode 100644 index 5a75d9f88..000000000 Binary files a/rtdata/images/Chanmixer-R.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-RB.png b/rtdata/images/Chanmixer-RB.png deleted file mode 100644 index 42cf9bd1b..000000000 Binary files a/rtdata/images/Chanmixer-RB.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-RG.png b/rtdata/images/Chanmixer-RG.png deleted file mode 100644 index f74600517..000000000 Binary files a/rtdata/images/Chanmixer-RG.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-RR.png b/rtdata/images/Chanmixer-RR.png deleted file mode 100644 index 300b0429e..000000000 Binary files a/rtdata/images/Chanmixer-RR.png and /dev/null differ diff --git a/rtdata/images/Chanmixer-Y.png b/rtdata/images/Chanmixer-Y.png deleted file mode 100644 index 98d9b6f83..000000000 Binary files a/rtdata/images/Chanmixer-Y.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/Chanmixer-Bgamma.png b/rtdata/images/Dark/actions/Chanmixer-Bgamma.png deleted file mode 100644 index 8698988a9..000000000 Binary files a/rtdata/images/Dark/actions/Chanmixer-Bgamma.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/Chanmixer-Ggamma.png b/rtdata/images/Dark/actions/Chanmixer-Ggamma.png deleted file mode 100644 index d0539758c..000000000 Binary files a/rtdata/images/Dark/actions/Chanmixer-Ggamma.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/Chanmixer-Rgamma.png b/rtdata/images/Dark/actions/Chanmixer-Rgamma.png deleted file mode 100644 index b1b7fb604..000000000 Binary files a/rtdata/images/Dark/actions/Chanmixer-Rgamma.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/HDR-thumbnail.png b/rtdata/images/Dark/actions/HDR-thumbnail.png deleted file mode 100644 index 182e603e8..000000000 Binary files a/rtdata/images/Dark/actions/HDR-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/PanelEnding.png b/rtdata/images/Dark/actions/PanelEnding.png deleted file mode 100644 index be7729164..000000000 Binary files a/rtdata/images/Dark/actions/PanelEnding.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/PixelShift-thumbnail.png b/rtdata/images/Dark/actions/PixelShift-thumbnail.png deleted file mode 100644 index 4bbea1aee..000000000 Binary files a/rtdata/images/Dark/actions/PixelShift-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/adj-black.png b/rtdata/images/Dark/actions/adj-black.png deleted file mode 100644 index bf5459fa5..000000000 Binary files a/rtdata/images/Dark/actions/adj-black.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/adj-white.png b/rtdata/images/Dark/actions/adj-white.png deleted file mode 100644 index 03028934e..000000000 Binary files a/rtdata/images/Dark/actions/adj-white.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-ca-blue1.png b/rtdata/images/Dark/actions/ajd-ca-blue1.png deleted file mode 100644 index 7a47267df..000000000 Binary files a/rtdata/images/Dark/actions/ajd-ca-blue1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-ca-blue2.png b/rtdata/images/Dark/actions/ajd-ca-blue2.png deleted file mode 100644 index dfb458300..000000000 Binary files a/rtdata/images/Dark/actions/ajd-ca-blue2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-ca-red1.png b/rtdata/images/Dark/actions/ajd-ca-red1.png deleted file mode 100644 index 1e45c5035..000000000 Binary files a/rtdata/images/Dark/actions/ajd-ca-red1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-ca-red2.png b/rtdata/images/Dark/actions/ajd-ca-red2.png deleted file mode 100644 index e5da9e005..000000000 Binary files a/rtdata/images/Dark/actions/ajd-ca-red2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-wb-bluered1.png b/rtdata/images/Dark/actions/ajd-wb-bluered1.png deleted file mode 100644 index 3c8473451..000000000 Binary files a/rtdata/images/Dark/actions/ajd-wb-bluered1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-wb-bluered2.png b/rtdata/images/Dark/actions/ajd-wb-bluered2.png deleted file mode 100644 index 0f06a770e..000000000 Binary files a/rtdata/images/Dark/actions/ajd-wb-bluered2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-wb-green1.png b/rtdata/images/Dark/actions/ajd-wb-green1.png deleted file mode 100644 index 4f33551d6..000000000 Binary files a/rtdata/images/Dark/actions/ajd-wb-green1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-wb-green2.png b/rtdata/images/Dark/actions/ajd-wb-green2.png deleted file mode 100644 index a9a7e8553..000000000 Binary files a/rtdata/images/Dark/actions/ajd-wb-green2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-wb-temp1.png b/rtdata/images/Dark/actions/ajd-wb-temp1.png deleted file mode 100644 index 3c8473451..000000000 Binary files a/rtdata/images/Dark/actions/ajd-wb-temp1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ajd-wb-temp2.png b/rtdata/images/Dark/actions/ajd-wb-temp2.png deleted file mode 100644 index 2b0c7c0ef..000000000 Binary files a/rtdata/images/Dark/actions/ajd-wb-temp2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-down-small.png b/rtdata/images/Dark/actions/arrow-down-small.png deleted file mode 100644 index d631a72f5..000000000 Binary files a/rtdata/images/Dark/actions/arrow-down-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-down.png b/rtdata/images/Dark/actions/arrow-down.png deleted file mode 100644 index 417038d15..000000000 Binary files a/rtdata/images/Dark/actions/arrow-down.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-left-small.png b/rtdata/images/Dark/actions/arrow-left-small.png deleted file mode 100644 index d61abd8a3..000000000 Binary files a/rtdata/images/Dark/actions/arrow-left-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-left.png b/rtdata/images/Dark/actions/arrow-left.png deleted file mode 100644 index a30aeadef..000000000 Binary files a/rtdata/images/Dark/actions/arrow-left.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-right-small.png b/rtdata/images/Dark/actions/arrow-right-small.png deleted file mode 100644 index fa0741927..000000000 Binary files a/rtdata/images/Dark/actions/arrow-right-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-right.png b/rtdata/images/Dark/actions/arrow-right.png deleted file mode 100644 index 2f426f9f1..000000000 Binary files a/rtdata/images/Dark/actions/arrow-right.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-up-small.png b/rtdata/images/Dark/actions/arrow-up-small.png deleted file mode 100644 index 21f8f61eb..000000000 Binary files a/rtdata/images/Dark/actions/arrow-up-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/arrow-up.png b/rtdata/images/Dark/actions/arrow-up.png deleted file mode 100644 index 2f4a9d228..000000000 Binary files a/rtdata/images/Dark/actions/arrow-up.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/atom.png b/rtdata/images/Dark/actions/atom.png deleted file mode 100644 index 1e7ce3da0..000000000 Binary files a/rtdata/images/Dark/actions/atom.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/beforeafter.png b/rtdata/images/Dark/actions/beforeafter.png deleted file mode 100644 index cd4e1a792..000000000 Binary files a/rtdata/images/Dark/actions/beforeafter.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/cglabel0.png b/rtdata/images/Dark/actions/cglabel0.png deleted file mode 100644 index af4abc914..000000000 Binary files a/rtdata/images/Dark/actions/cglabel0.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/cglabel1.png b/rtdata/images/Dark/actions/cglabel1.png deleted file mode 100644 index 6337a6476..000000000 Binary files a/rtdata/images/Dark/actions/cglabel1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/cglabel2.png b/rtdata/images/Dark/actions/cglabel2.png deleted file mode 100644 index a5b843c0c..000000000 Binary files a/rtdata/images/Dark/actions/cglabel2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/cglabel3.png b/rtdata/images/Dark/actions/cglabel3.png deleted file mode 100644 index a3f3da7a9..000000000 Binary files a/rtdata/images/Dark/actions/cglabel3.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/cglabel4.png b/rtdata/images/Dark/actions/cglabel4.png deleted file mode 100644 index 3e048f36c..000000000 Binary files a/rtdata/images/Dark/actions/cglabel4.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/cglabel5.png b/rtdata/images/Dark/actions/cglabel5.png deleted file mode 100644 index 323be0cb9..000000000 Binary files a/rtdata/images/Dark/actions/cglabel5.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/clabel0.png b/rtdata/images/Dark/actions/clabel0.png deleted file mode 100644 index 5c2484a36..000000000 Binary files a/rtdata/images/Dark/actions/clabel0.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/clabel1.png b/rtdata/images/Dark/actions/clabel1.png deleted file mode 100644 index 87bd0ea83..000000000 Binary files a/rtdata/images/Dark/actions/clabel1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/clabel2.png b/rtdata/images/Dark/actions/clabel2.png deleted file mode 100644 index b8ca4f72b..000000000 Binary files a/rtdata/images/Dark/actions/clabel2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/clabel3.png b/rtdata/images/Dark/actions/clabel3.png deleted file mode 100644 index d9dced467..000000000 Binary files a/rtdata/images/Dark/actions/clabel3.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/clabel4.png b/rtdata/images/Dark/actions/clabel4.png deleted file mode 100644 index 2afb44650..000000000 Binary files a/rtdata/images/Dark/actions/clabel4.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/clabel5.png b/rtdata/images/Dark/actions/clabel5.png deleted file mode 100644 index aef022fce..000000000 Binary files a/rtdata/images/Dark/actions/clabel5.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/closedhand.png b/rtdata/images/Dark/actions/closedhand.png deleted file mode 100644 index e9560f5a7..000000000 Binary files a/rtdata/images/Dark/actions/closedhand.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/colorPickers-hide.png b/rtdata/images/Dark/actions/colorPickers-hide.png deleted file mode 100644 index 54b33a7fb..000000000 Binary files a/rtdata/images/Dark/actions/colorPickers-hide.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/colorPickers-show.png b/rtdata/images/Dark/actions/colorPickers-show.png deleted file mode 100644 index d9d039c2b..000000000 Binary files a/rtdata/images/Dark/actions/colorPickers-show.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/colour.png b/rtdata/images/Dark/actions/colour.png deleted file mode 100644 index e518dfa3a..000000000 Binary files a/rtdata/images/Dark/actions/colour.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/crop-auto.png b/rtdata/images/Dark/actions/crop-auto.png deleted file mode 100644 index 8cb57e799..000000000 Binary files a/rtdata/images/Dark/actions/crop-auto.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/crop.png b/rtdata/images/Dark/actions/crop.png deleted file mode 100644 index a9a339020..000000000 Binary files a/rtdata/images/Dark/actions/crop.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/crossed-arrows-in.png b/rtdata/images/Dark/actions/crossed-arrows-in.png deleted file mode 100644 index b2a2d8820..000000000 Binary files a/rtdata/images/Dark/actions/crossed-arrows-in.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/crossed-arrows-out.png b/rtdata/images/Dark/actions/crossed-arrows-out.png deleted file mode 100644 index e552d55ca..000000000 Binary files a/rtdata/images/Dark/actions/crossed-arrows-out.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/curveType-NURBS.png b/rtdata/images/Dark/actions/curveType-NURBS.png deleted file mode 100644 index b891c89c7..000000000 Binary files a/rtdata/images/Dark/actions/curveType-NURBS.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/curveType-controlPoints.png b/rtdata/images/Dark/actions/curveType-controlPoints.png deleted file mode 100644 index 54dbcc540..000000000 Binary files a/rtdata/images/Dark/actions/curveType-controlPoints.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/curveType-flatLinear.png b/rtdata/images/Dark/actions/curveType-flatLinear.png deleted file mode 100644 index 6049e658c..000000000 Binary files a/rtdata/images/Dark/actions/curveType-flatLinear.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/curveType-linear.png b/rtdata/images/Dark/actions/curveType-linear.png deleted file mode 100644 index 67ff4390c..000000000 Binary files a/rtdata/images/Dark/actions/curveType-linear.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/curveType-parametric.png b/rtdata/images/Dark/actions/curveType-parametric.png deleted file mode 100644 index dcf7b02b5..000000000 Binary files a/rtdata/images/Dark/actions/curveType-parametric.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/curveType-spline.png b/rtdata/images/Dark/actions/curveType-spline.png deleted file mode 100644 index b9c0527d3..000000000 Binary files a/rtdata/images/Dark/actions/curveType-spline.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/detail.png b/rtdata/images/Dark/actions/detail.png deleted file mode 100644 index b1af89c9e..000000000 Binary files a/rtdata/images/Dark/actions/detail.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/distorsion.png b/rtdata/images/Dark/actions/distorsion.png deleted file mode 100644 index fc5200391..000000000 Binary files a/rtdata/images/Dark/actions/distorsion.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/distortion-auto.png b/rtdata/images/Dark/actions/distortion-auto.png deleted file mode 100644 index cc5ced965..000000000 Binary files a/rtdata/images/Dark/actions/distortion-auto.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/distortion-barrel.png b/rtdata/images/Dark/actions/distortion-barrel.png deleted file mode 100644 index 0a19ac097..000000000 Binary files a/rtdata/images/Dark/actions/distortion-barrel.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/distortion-pincushion.png b/rtdata/images/Dark/actions/distortion-pincushion.png deleted file mode 100644 index cfdcfaf63..000000000 Binary files a/rtdata/images/Dark/actions/distortion-pincushion.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/document-open-recent.png b/rtdata/images/Dark/actions/document-open-recent.png deleted file mode 100644 index f2c126cb7..000000000 Binary files a/rtdata/images/Dark/actions/document-open-recent.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/document-open.png b/rtdata/images/Dark/actions/document-open.png deleted file mode 100644 index 6d2ea0f34..000000000 Binary files a/rtdata/images/Dark/actions/document-open.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/edit-copy.png b/rtdata/images/Dark/actions/edit-copy.png deleted file mode 100644 index 4736313a2..000000000 Binary files a/rtdata/images/Dark/actions/edit-copy.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/edit-find.png b/rtdata/images/Dark/actions/edit-find.png deleted file mode 100644 index d560c644b..000000000 Binary files a/rtdata/images/Dark/actions/edit-find.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/edit-paste.png b/rtdata/images/Dark/actions/edit-paste.png deleted file mode 100644 index 38871deec..000000000 Binary files a/rtdata/images/Dark/actions/edit-paste.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/edited-small.png b/rtdata/images/Dark/actions/edited-small.png deleted file mode 100644 index f25997a59..000000000 Binary files a/rtdata/images/Dark/actions/edited-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/edited.png b/rtdata/images/Dark/actions/edited.png deleted file mode 100644 index 95d058454..000000000 Binary files a/rtdata/images/Dark/actions/edited.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/editedg-small.png b/rtdata/images/Dark/actions/editedg-small.png deleted file mode 100644 index 9eb229e75..000000000 Binary files a/rtdata/images/Dark/actions/editedg-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/editednot-small.png b/rtdata/images/Dark/actions/editednot-small.png deleted file mode 100644 index 410bff81b..000000000 Binary files a/rtdata/images/Dark/actions/editednot-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/editednotg-small.png b/rtdata/images/Dark/actions/editednotg-small.png deleted file mode 100644 index 55bc28f2b..000000000 Binary files a/rtdata/images/Dark/actions/editednotg-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/editmodehand.png b/rtdata/images/Dark/actions/editmodehand.png deleted file mode 100644 index 2b231db06..000000000 Binary files a/rtdata/images/Dark/actions/editmodehand.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/equalizer-narrow.png b/rtdata/images/Dark/actions/equalizer-narrow.png deleted file mode 100644 index dcf484ea7..000000000 Binary files a/rtdata/images/Dark/actions/equalizer-narrow.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/equalizer-wide.png b/rtdata/images/Dark/actions/equalizer-wide.png deleted file mode 100644 index 50cfed8fa..000000000 Binary files a/rtdata/images/Dark/actions/equalizer-wide.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/expanderClosed.png b/rtdata/images/Dark/actions/expanderClosed.png deleted file mode 100644 index 559f201db..000000000 Binary files a/rtdata/images/Dark/actions/expanderClosed.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/expanderDisabled.png b/rtdata/images/Dark/actions/expanderDisabled.png deleted file mode 100644 index 7e35c7266..000000000 Binary files a/rtdata/images/Dark/actions/expanderDisabled.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/expanderEnabled.png b/rtdata/images/Dark/actions/expanderEnabled.png deleted file mode 100644 index 33e8515af..000000000 Binary files a/rtdata/images/Dark/actions/expanderEnabled.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/expanderInconsistent.png b/rtdata/images/Dark/actions/expanderInconsistent.png deleted file mode 100644 index e19f8e106..000000000 Binary files a/rtdata/images/Dark/actions/expanderInconsistent.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/expanderOpened.png b/rtdata/images/Dark/actions/expanderOpened.png deleted file mode 100644 index 9a7f161ee..000000000 Binary files a/rtdata/images/Dark/actions/expanderOpened.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/exposure.png b/rtdata/images/Dark/actions/exposure.png deleted file mode 100644 index f6abf8b87..000000000 Binary files a/rtdata/images/Dark/actions/exposure.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/filter-original-1.png b/rtdata/images/Dark/actions/filter-original-1.png deleted file mode 100644 index 9b4e47ce9..000000000 Binary files a/rtdata/images/Dark/actions/filter-original-1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/filter-original-2.png b/rtdata/images/Dark/actions/filter-original-2.png deleted file mode 100644 index 03531e921..000000000 Binary files a/rtdata/images/Dark/actions/filter-original-2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/filter.png b/rtdata/images/Dark/actions/filter.png deleted file mode 100644 index bd5dcb5f4..000000000 Binary files a/rtdata/images/Dark/actions/filter.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/filterclear.png b/rtdata/images/Dark/actions/filterclear.png deleted file mode 100644 index 28c93061e..000000000 Binary files a/rtdata/images/Dark/actions/filterclear.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/fullscreen-exit.png b/rtdata/images/Dark/actions/fullscreen-exit.png deleted file mode 100644 index 55eb8e06d..000000000 Binary files a/rtdata/images/Dark/actions/fullscreen-exit.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/fullscreen.png b/rtdata/images/Dark/actions/fullscreen.png deleted file mode 100644 index 963409e9a..000000000 Binary files a/rtdata/images/Dark/actions/fullscreen.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gamut-hist.png b/rtdata/images/Dark/actions/gamut-hist.png deleted file mode 100644 index 8a60118dd..000000000 Binary files a/rtdata/images/Dark/actions/gamut-hist.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gamut-softproof.png b/rtdata/images/Dark/actions/gamut-softproof.png deleted file mode 100644 index d61874507..000000000 Binary files a/rtdata/images/Dark/actions/gamut-softproof.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gamut-warning.png b/rtdata/images/Dark/actions/gamut-warning.png deleted file mode 100644 index f6bb292a9..000000000 Binary files a/rtdata/images/Dark/actions/gamut-warning.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/grayrated.png b/rtdata/images/Dark/actions/grayrated.png deleted file mode 100644 index 6866bc1d6..000000000 Binary files a/rtdata/images/Dark/actions/grayrated.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-add.png b/rtdata/images/Dark/actions/gtk-add.png deleted file mode 100644 index 80abd6bfd..000000000 Binary files a/rtdata/images/Dark/actions/gtk-add.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-apply.png b/rtdata/images/Dark/actions/gtk-apply.png deleted file mode 100644 index 4790895e7..000000000 Binary files a/rtdata/images/Dark/actions/gtk-apply.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-cancel.png b/rtdata/images/Dark/actions/gtk-cancel.png deleted file mode 100644 index c76033ee9..000000000 Binary files a/rtdata/images/Dark/actions/gtk-cancel.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-close-small.png b/rtdata/images/Dark/actions/gtk-close-small.png deleted file mode 100644 index 7abb7a95a..000000000 Binary files a/rtdata/images/Dark/actions/gtk-close-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-close.png b/rtdata/images/Dark/actions/gtk-close.png deleted file mode 100644 index c76033ee9..000000000 Binary files a/rtdata/images/Dark/actions/gtk-close.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-color-picker-add.png b/rtdata/images/Dark/actions/gtk-color-picker-add.png deleted file mode 100644 index 77a30c250..000000000 Binary files a/rtdata/images/Dark/actions/gtk-color-picker-add.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-color-picker-small.png b/rtdata/images/Dark/actions/gtk-color-picker-small.png deleted file mode 100644 index f10b7f0fe..000000000 Binary files a/rtdata/images/Dark/actions/gtk-color-picker-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-color-picker.png b/rtdata/images/Dark/actions/gtk-color-picker.png deleted file mode 100644 index c79c3f3e9..000000000 Binary files a/rtdata/images/Dark/actions/gtk-color-picker.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-copy.png b/rtdata/images/Dark/actions/gtk-copy.png deleted file mode 100644 index 4736313a2..000000000 Binary files a/rtdata/images/Dark/actions/gtk-copy.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-edit.png b/rtdata/images/Dark/actions/gtk-edit.png deleted file mode 100644 index 8eabf5f09..000000000 Binary files a/rtdata/images/Dark/actions/gtk-edit.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-find.png b/rtdata/images/Dark/actions/gtk-find.png deleted file mode 100644 index d560c644b..000000000 Binary files a/rtdata/images/Dark/actions/gtk-find.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-media-play.png b/rtdata/images/Dark/actions/gtk-media-play.png deleted file mode 100644 index 2bd7ded54..000000000 Binary files a/rtdata/images/Dark/actions/gtk-media-play.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-media-stop.png b/rtdata/images/Dark/actions/gtk-media-stop.png deleted file mode 100644 index 9d3b25ba0..000000000 Binary files a/rtdata/images/Dark/actions/gtk-media-stop.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-ok.png b/rtdata/images/Dark/actions/gtk-ok.png deleted file mode 100644 index 4790895e7..000000000 Binary files a/rtdata/images/Dark/actions/gtk-ok.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-open.png b/rtdata/images/Dark/actions/gtk-open.png deleted file mode 100644 index 6d2ea0f34..000000000 Binary files a/rtdata/images/Dark/actions/gtk-open.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-paste.png b/rtdata/images/Dark/actions/gtk-paste.png deleted file mode 100644 index 38871deec..000000000 Binary files a/rtdata/images/Dark/actions/gtk-paste.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-preferences.png b/rtdata/images/Dark/actions/gtk-preferences.png deleted file mode 100644 index 1d3c0f398..000000000 Binary files a/rtdata/images/Dark/actions/gtk-preferences.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-remove.png b/rtdata/images/Dark/actions/gtk-remove.png deleted file mode 100644 index b789b5130..000000000 Binary files a/rtdata/images/Dark/actions/gtk-remove.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-save-large.png b/rtdata/images/Dark/actions/gtk-save-large.png deleted file mode 100644 index 9b1ba463e..000000000 Binary files a/rtdata/images/Dark/actions/gtk-save-large.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-save.png b/rtdata/images/Dark/actions/gtk-save.png deleted file mode 100644 index d72b9a2ad..000000000 Binary files a/rtdata/images/Dark/actions/gtk-save.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-undo-ltr-small.png b/rtdata/images/Dark/actions/gtk-undo-ltr-small.png deleted file mode 100644 index b0dbf0b98..000000000 Binary files a/rtdata/images/Dark/actions/gtk-undo-ltr-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-undo-ltr.png b/rtdata/images/Dark/actions/gtk-undo-ltr.png deleted file mode 100644 index f66791abb..000000000 Binary files a/rtdata/images/Dark/actions/gtk-undo-ltr.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-undo-rtl-small.png b/rtdata/images/Dark/actions/gtk-undo-rtl-small.png deleted file mode 100644 index 7ef3d5f67..000000000 Binary files a/rtdata/images/Dark/actions/gtk-undo-rtl-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-undo-rtl.png b/rtdata/images/Dark/actions/gtk-undo-rtl.png deleted file mode 100644 index 1c6fc0537..000000000 Binary files a/rtdata/images/Dark/actions/gtk-undo-rtl.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-undoall-ltr.png b/rtdata/images/Dark/actions/gtk-undoall-ltr.png deleted file mode 100644 index 00c61c2a8..000000000 Binary files a/rtdata/images/Dark/actions/gtk-undoall-ltr.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-undoall-rtl.png b/rtdata/images/Dark/actions/gtk-undoall-rtl.png deleted file mode 100644 index cf92a7017..000000000 Binary files a/rtdata/images/Dark/actions/gtk-undoall-rtl.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-100-small.png b/rtdata/images/Dark/actions/gtk-zoom-100-small.png deleted file mode 100644 index 43abd73a4..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-100-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-100.png b/rtdata/images/Dark/actions/gtk-zoom-100.png deleted file mode 100644 index a00a78d68..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-100.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-crop.png b/rtdata/images/Dark/actions/gtk-zoom-crop.png deleted file mode 100644 index f20e826ba..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-crop.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-fit.png b/rtdata/images/Dark/actions/gtk-zoom-fit.png deleted file mode 100644 index 670515eb4..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-fit.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-in-small.png b/rtdata/images/Dark/actions/gtk-zoom-in-small.png deleted file mode 100644 index 291c8ecac..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-in-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-in.png b/rtdata/images/Dark/actions/gtk-zoom-in.png deleted file mode 100644 index ee8688d43..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-in.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-out-small.png b/rtdata/images/Dark/actions/gtk-zoom-out-small.png deleted file mode 100644 index 93b771182..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-out-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/gtk-zoom-out.png b/rtdata/images/Dark/actions/gtk-zoom-out.png deleted file mode 100644 index aeec6b0fc..000000000 Binary files a/rtdata/images/Dark/actions/gtk-zoom-out.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histBar.png b/rtdata/images/Dark/actions/histBar.png deleted file mode 100644 index 24ef6b45f..000000000 Binary files a/rtdata/images/Dark/actions/histBar.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histBarg.png b/rtdata/images/Dark/actions/histBarg.png deleted file mode 100644 index 89d20ccff..000000000 Binary files a/rtdata/images/Dark/actions/histBarg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histBlue.png b/rtdata/images/Dark/actions/histBlue.png deleted file mode 100644 index 53c447a1c..000000000 Binary files a/rtdata/images/Dark/actions/histBlue.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histBlueg.png b/rtdata/images/Dark/actions/histBlueg.png deleted file mode 100644 index ac205219d..000000000 Binary files a/rtdata/images/Dark/actions/histBlueg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histChro.png b/rtdata/images/Dark/actions/histChro.png deleted file mode 100644 index 021a18222..000000000 Binary files a/rtdata/images/Dark/actions/histChro.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histChrog.png b/rtdata/images/Dark/actions/histChrog.png deleted file mode 100644 index 342311f5f..000000000 Binary files a/rtdata/images/Dark/actions/histChrog.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histFull.png b/rtdata/images/Dark/actions/histFull.png deleted file mode 100644 index 78f9ee96c..000000000 Binary files a/rtdata/images/Dark/actions/histFull.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histFullg.png b/rtdata/images/Dark/actions/histFullg.png deleted file mode 100644 index ffbbe1c2b..000000000 Binary files a/rtdata/images/Dark/actions/histFullg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histGreen.png b/rtdata/images/Dark/actions/histGreen.png deleted file mode 100644 index 54eebe37e..000000000 Binary files a/rtdata/images/Dark/actions/histGreen.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histGreeng.png b/rtdata/images/Dark/actions/histGreeng.png deleted file mode 100644 index 33c138cae..000000000 Binary files a/rtdata/images/Dark/actions/histGreeng.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histRaw.png b/rtdata/images/Dark/actions/histRaw.png deleted file mode 100644 index 36e1a5a31..000000000 Binary files a/rtdata/images/Dark/actions/histRaw.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histRawg.png b/rtdata/images/Dark/actions/histRawg.png deleted file mode 100644 index 1b9d286b3..000000000 Binary files a/rtdata/images/Dark/actions/histRawg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histRed.png b/rtdata/images/Dark/actions/histRed.png deleted file mode 100644 index ce7fddcd3..000000000 Binary files a/rtdata/images/Dark/actions/histRed.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histRedg.png b/rtdata/images/Dark/actions/histRedg.png deleted file mode 100644 index b75a66995..000000000 Binary files a/rtdata/images/Dark/actions/histRedg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histValue.png b/rtdata/images/Dark/actions/histValue.png deleted file mode 100644 index 451004889..000000000 Binary files a/rtdata/images/Dark/actions/histValue.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/histValueg.png b/rtdata/images/Dark/actions/histValueg.png deleted file mode 100644 index 31d6f63e5..000000000 Binary files a/rtdata/images/Dark/actions/histValueg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/image-editor.png b/rtdata/images/Dark/actions/image-editor.png deleted file mode 100644 index cf87bc311..000000000 Binary files a/rtdata/images/Dark/actions/image-editor.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/info.png b/rtdata/images/Dark/actions/info.png deleted file mode 100644 index 6ce41bad3..000000000 Binary files a/rtdata/images/Dark/actions/info.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/intent-absolute.png b/rtdata/images/Dark/actions/intent-absolute.png deleted file mode 100644 index 6d274a2c0..000000000 Binary files a/rtdata/images/Dark/actions/intent-absolute.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/intent-perceptual.png b/rtdata/images/Dark/actions/intent-perceptual.png deleted file mode 100644 index 821a714ae..000000000 Binary files a/rtdata/images/Dark/actions/intent-perceptual.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/intent-relative.png b/rtdata/images/Dark/actions/intent-relative.png deleted file mode 100644 index d586b47b2..000000000 Binary files a/rtdata/images/Dark/actions/intent-relative.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/intent-saturation.png b/rtdata/images/Dark/actions/intent-saturation.png deleted file mode 100644 index 0654f78b6..000000000 Binary files a/rtdata/images/Dark/actions/intent-saturation.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/list-add-small.png b/rtdata/images/Dark/actions/list-add-small.png deleted file mode 100644 index 15002fe13..000000000 Binary files a/rtdata/images/Dark/actions/list-add-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/list-add.png b/rtdata/images/Dark/actions/list-add.png deleted file mode 100644 index 80abd6bfd..000000000 Binary files a/rtdata/images/Dark/actions/list-add.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/list-remove-red-small.png b/rtdata/images/Dark/actions/list-remove-red-small.png deleted file mode 100644 index 71650328f..000000000 Binary files a/rtdata/images/Dark/actions/list-remove-red-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/list-remove.png b/rtdata/images/Dark/actions/list-remove.png deleted file mode 100644 index b789b5130..000000000 Binary files a/rtdata/images/Dark/actions/list-remove.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/lock-off.png b/rtdata/images/Dark/actions/lock-off.png deleted file mode 100644 index c4dbfe1af..000000000 Binary files a/rtdata/images/Dark/actions/lock-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/lock-on.png b/rtdata/images/Dark/actions/lock-on.png deleted file mode 100644 index 23366d571..000000000 Binary files a/rtdata/images/Dark/actions/lock-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/media-usb.png b/rtdata/images/Dark/actions/media-usb.png deleted file mode 100644 index 5c46c9464..000000000 Binary files a/rtdata/images/Dark/actions/media-usb.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/meta.png b/rtdata/images/Dark/actions/meta.png deleted file mode 100644 index 5c9c05d3f..000000000 Binary files a/rtdata/images/Dark/actions/meta.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/nav-next.png b/rtdata/images/Dark/actions/nav-next.png deleted file mode 100644 index a3e8ed0b0..000000000 Binary files a/rtdata/images/Dark/actions/nav-next.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/nav-prev.png b/rtdata/images/Dark/actions/nav-prev.png deleted file mode 100644 index cd621d372..000000000 Binary files a/rtdata/images/Dark/actions/nav-prev.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/nav-sync.png b/rtdata/images/Dark/actions/nav-sync.png deleted file mode 100644 index cbad9711e..000000000 Binary files a/rtdata/images/Dark/actions/nav-sync.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/new-detail-window.png b/rtdata/images/Dark/actions/new-detail-window.png deleted file mode 100644 index 43b39decf..000000000 Binary files a/rtdata/images/Dark/actions/new-detail-window.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/openhand.png b/rtdata/images/Dark/actions/openhand.png deleted file mode 100644 index 66c13d890..000000000 Binary files a/rtdata/images/Dark/actions/openhand.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/panel-to-bottom.png b/rtdata/images/Dark/actions/panel-to-bottom.png deleted file mode 100644 index 7e4905a9c..000000000 Binary files a/rtdata/images/Dark/actions/panel-to-bottom.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/panel-to-left.png b/rtdata/images/Dark/actions/panel-to-left.png deleted file mode 100644 index 97f7494a1..000000000 Binary files a/rtdata/images/Dark/actions/panel-to-left.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/panel-to-right.png b/rtdata/images/Dark/actions/panel-to-right.png deleted file mode 100644 index d6af36001..000000000 Binary files a/rtdata/images/Dark/actions/panel-to-right.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/panel-to-top.png b/rtdata/images/Dark/actions/panel-to-top.png deleted file mode 100644 index d628cc598..000000000 Binary files a/rtdata/images/Dark/actions/panel-to-top.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/perspective-h1.png b/rtdata/images/Dark/actions/perspective-h1.png deleted file mode 100644 index ea470842d..000000000 Binary files a/rtdata/images/Dark/actions/perspective-h1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/perspective-h2.png b/rtdata/images/Dark/actions/perspective-h2.png deleted file mode 100644 index 5cd371dfc..000000000 Binary files a/rtdata/images/Dark/actions/perspective-h2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/perspective-v1.png b/rtdata/images/Dark/actions/perspective-v1.png deleted file mode 100644 index e42755116..000000000 Binary files a/rtdata/images/Dark/actions/perspective-v1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/perspective-v2.png b/rtdata/images/Dark/actions/perspective-v2.png deleted file mode 100644 index 489e3bd02..000000000 Binary files a/rtdata/images/Dark/actions/perspective-v2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/popuparrow.png b/rtdata/images/Dark/actions/popuparrow.png deleted file mode 100644 index 6e67d45b4..000000000 Binary files a/rtdata/images/Dark/actions/popuparrow.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeB-off.png b/rtdata/images/Dark/actions/previewmodeB-off.png deleted file mode 100644 index 0c9890437..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeB-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeB-on.png b/rtdata/images/Dark/actions/previewmodeB-on.png deleted file mode 100644 index 466192b3a..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeB-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC0-off.png b/rtdata/images/Dark/actions/previewmodeBC0-off.png deleted file mode 100644 index 28c024555..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC0-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC0-on.png b/rtdata/images/Dark/actions/previewmodeBC0-on.png deleted file mode 100644 index f5e0b8000..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC0-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC1-off.png b/rtdata/images/Dark/actions/previewmodeBC1-off.png deleted file mode 100644 index 4ac160b05..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC1-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC1-on.png b/rtdata/images/Dark/actions/previewmodeBC1-on.png deleted file mode 100644 index 3e9b6874c..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC1-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC2-off.png b/rtdata/images/Dark/actions/previewmodeBC2-off.png deleted file mode 100644 index bf3d97b2d..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC2-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC2-on.png b/rtdata/images/Dark/actions/previewmodeBC2-on.png deleted file mode 100644 index 457453166..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC2-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC3-off.png b/rtdata/images/Dark/actions/previewmodeBC3-off.png deleted file mode 100644 index 487ec777e..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC3-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeBC3-on.png b/rtdata/images/Dark/actions/previewmodeBC3-on.png deleted file mode 100644 index 670b5b8b4..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeBC3-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeF-focusScreen-off.png b/rtdata/images/Dark/actions/previewmodeF-focusScreen-off.png deleted file mode 100644 index 75a285de2..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeF-focusScreen-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeF-focusScreen-on.png b/rtdata/images/Dark/actions/previewmodeF-focusScreen-on.png deleted file mode 100644 index 3d46dedc7..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeF-focusScreen-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeF-off.png b/rtdata/images/Dark/actions/previewmodeF-off.png deleted file mode 100644 index 5d52af569..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeF-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeF-on.png b/rtdata/images/Dark/actions/previewmodeF-on.png deleted file mode 100644 index f0d0ef230..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeF-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeG-off.png b/rtdata/images/Dark/actions/previewmodeG-off.png deleted file mode 100644 index 5c076c989..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeG-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeG-on.png b/rtdata/images/Dark/actions/previewmodeG-on.png deleted file mode 100644 index ecc75c8e7..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeG-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeL-off.png b/rtdata/images/Dark/actions/previewmodeL-off.png deleted file mode 100644 index 939dec642..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeL-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeL-on.png b/rtdata/images/Dark/actions/previewmodeL-on.png deleted file mode 100644 index 92fe937e8..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeL-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeR-off.png b/rtdata/images/Dark/actions/previewmodeR-off.png deleted file mode 100644 index b96e22c31..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeR-off.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/previewmodeR-on.png b/rtdata/images/Dark/actions/previewmodeR-on.png deleted file mode 100644 index fb1e46e98..000000000 Binary files a/rtdata/images/Dark/actions/previewmodeR-on.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/processing-pause.png b/rtdata/images/Dark/actions/processing-pause.png deleted file mode 100644 index 967c4a339..000000000 Binary files a/rtdata/images/Dark/actions/processing-pause.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/processing-play.png b/rtdata/images/Dark/actions/processing-play.png deleted file mode 100644 index d959d4a7c..000000000 Binary files a/rtdata/images/Dark/actions/processing-play.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/processing-thumbnail.png b/rtdata/images/Dark/actions/processing-thumbnail.png deleted file mode 100644 index 15a8af3f1..000000000 Binary files a/rtdata/images/Dark/actions/processing-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/processing.png b/rtdata/images/Dark/actions/processing.png deleted file mode 100644 index 78592c44a..000000000 Binary files a/rtdata/images/Dark/actions/processing.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/profile-filled.png b/rtdata/images/Dark/actions/profile-filled.png deleted file mode 100644 index 8e39de5f2..000000000 Binary files a/rtdata/images/Dark/actions/profile-filled.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/profile-partial.png b/rtdata/images/Dark/actions/profile-partial.png deleted file mode 100644 index 70c77fdff..000000000 Binary files a/rtdata/images/Dark/actions/profile-partial.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rated.png b/rtdata/images/Dark/actions/rated.png deleted file mode 100644 index ff1b949d2..000000000 Binary files a/rtdata/images/Dark/actions/rated.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ratednot.png b/rtdata/images/Dark/actions/ratednot.png deleted file mode 100644 index 82af59b91..000000000 Binary files a/rtdata/images/Dark/actions/ratednot.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/ratednotg.png b/rtdata/images/Dark/actions/ratednotg.png deleted file mode 100644 index 4bf6f1a0c..000000000 Binary files a/rtdata/images/Dark/actions/ratednotg.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/raw.png b/rtdata/images/Dark/actions/raw.png deleted file mode 100644 index d42599483..000000000 Binary files a/rtdata/images/Dark/actions/raw.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/refresh-red.png b/rtdata/images/Dark/actions/refresh-red.png deleted file mode 100644 index 8850fe544..000000000 Binary files a/rtdata/images/Dark/actions/refresh-red.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/refresh-white.png b/rtdata/images/Dark/actions/refresh-white.png deleted file mode 100644 index 40f625275..000000000 Binary files a/rtdata/images/Dark/actions/refresh-white.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-left-1.png b/rtdata/images/Dark/actions/rotate-left-1.png deleted file mode 100644 index 937598ca3..000000000 Binary files a/rtdata/images/Dark/actions/rotate-left-1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-left-2.png b/rtdata/images/Dark/actions/rotate-left-2.png deleted file mode 100644 index 20b3ff5da..000000000 Binary files a/rtdata/images/Dark/actions/rotate-left-2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-left-3.png b/rtdata/images/Dark/actions/rotate-left-3.png deleted file mode 100644 index 635a50da6..000000000 Binary files a/rtdata/images/Dark/actions/rotate-left-3.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-left.png b/rtdata/images/Dark/actions/rotate-left.png deleted file mode 100644 index 2f28a8cff..000000000 Binary files a/rtdata/images/Dark/actions/rotate-left.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-right-1.png b/rtdata/images/Dark/actions/rotate-right-1.png deleted file mode 100644 index 5bd9960ad..000000000 Binary files a/rtdata/images/Dark/actions/rotate-right-1.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-right-2.png b/rtdata/images/Dark/actions/rotate-right-2.png deleted file mode 100644 index 5da99f01e..000000000 Binary files a/rtdata/images/Dark/actions/rotate-right-2.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-right-3.png b/rtdata/images/Dark/actions/rotate-right-3.png deleted file mode 100644 index 9d2dd0e4f..000000000 Binary files a/rtdata/images/Dark/actions/rotate-right-3.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rotate-right.png b/rtdata/images/Dark/actions/rotate-right.png deleted file mode 100644 index b28d601c5..000000000 Binary files a/rtdata/images/Dark/actions/rotate-right.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/rtwindow.png b/rtdata/images/Dark/actions/rtwindow.png deleted file mode 100644 index 8fcc7a7c4..000000000 Binary files a/rtdata/images/Dark/actions/rtwindow.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/softProof.png b/rtdata/images/Dark/actions/softProof.png deleted file mode 100644 index 5f17df3ea..000000000 Binary files a/rtdata/images/Dark/actions/softProof.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/spGamutCheck.png b/rtdata/images/Dark/actions/spGamutCheck.png deleted file mode 100644 index ab812272a..000000000 Binary files a/rtdata/images/Dark/actions/spGamutCheck.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/stock-flip-horizontal.png b/rtdata/images/Dark/actions/stock-flip-horizontal.png deleted file mode 100644 index a963c9d6f..000000000 Binary files a/rtdata/images/Dark/actions/stock-flip-horizontal.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/stock-flip-vertical.png b/rtdata/images/Dark/actions/stock-flip-vertical.png deleted file mode 100644 index 65779151a..000000000 Binary files a/rtdata/images/Dark/actions/stock-flip-vertical.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/stock-rotate-270.png b/rtdata/images/Dark/actions/stock-rotate-270.png deleted file mode 100644 index cb6d50093..000000000 Binary files a/rtdata/images/Dark/actions/stock-rotate-270.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/stock-rotate-90.png b/rtdata/images/Dark/actions/stock-rotate-90.png deleted file mode 100644 index bb697dc3a..000000000 Binary files a/rtdata/images/Dark/actions/stock-rotate-90.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/straighten-small.png b/rtdata/images/Dark/actions/straighten-small.png deleted file mode 100644 index b7a2be89e..000000000 Binary files a/rtdata/images/Dark/actions/straighten-small.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/straighten.png b/rtdata/images/Dark/actions/straighten.png deleted file mode 100644 index a1bfdf507..000000000 Binary files a/rtdata/images/Dark/actions/straighten.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/toleftend.png b/rtdata/images/Dark/actions/toleftend.png deleted file mode 100644 index a37b37d41..000000000 Binary files a/rtdata/images/Dark/actions/toleftend.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/torightend.png b/rtdata/images/Dark/actions/torightend.png deleted file mode 100644 index 3ae0d4edd..000000000 Binary files a/rtdata/images/Dark/actions/torightend.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/transform.png b/rtdata/images/Dark/actions/transform.png deleted file mode 100644 index ed030de57..000000000 Binary files a/rtdata/images/Dark/actions/transform.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/trash-hide-deleted.png b/rtdata/images/Dark/actions/trash-hide-deleted.png deleted file mode 100644 index 59137cf35..000000000 Binary files a/rtdata/images/Dark/actions/trash-hide-deleted.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/trash-show-empty.png b/rtdata/images/Dark/actions/trash-show-empty.png deleted file mode 100644 index 0c5da5cda..000000000 Binary files a/rtdata/images/Dark/actions/trash-show-empty.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/trash-show-full.png b/rtdata/images/Dark/actions/trash-show-full.png deleted file mode 100644 index cc374db46..000000000 Binary files a/rtdata/images/Dark/actions/trash-show-full.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/trash-thumbnail.png b/rtdata/images/Dark/actions/trash-thumbnail.png deleted file mode 100644 index fad0363e0..000000000 Binary files a/rtdata/images/Dark/actions/trash-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/trash.png b/rtdata/images/Dark/actions/trash.png deleted file mode 100644 index 0c5da5cda..000000000 Binary files a/rtdata/images/Dark/actions/trash.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/unchanged-18.png b/rtdata/images/Dark/actions/unchanged-18.png deleted file mode 100644 index 9d08dda26..000000000 Binary files a/rtdata/images/Dark/actions/unchanged-18.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/unchanged-22.png b/rtdata/images/Dark/actions/unchanged-22.png deleted file mode 100644 index db03d456a..000000000 Binary files a/rtdata/images/Dark/actions/unchanged-22.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/undelete-rtl.png b/rtdata/images/Dark/actions/undelete-rtl.png deleted file mode 100644 index c8e052aed..000000000 Binary files a/rtdata/images/Dark/actions/undelete-rtl.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/undelete-thumbnail-rtl.png b/rtdata/images/Dark/actions/undelete-thumbnail-rtl.png deleted file mode 100644 index adcf65e9a..000000000 Binary files a/rtdata/images/Dark/actions/undelete-thumbnail-rtl.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/undelete-thumbnail.png b/rtdata/images/Dark/actions/undelete-thumbnail.png deleted file mode 100644 index adcf65e9a..000000000 Binary files a/rtdata/images/Dark/actions/undelete-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/undelete.png b/rtdata/images/Dark/actions/undelete.png deleted file mode 100644 index c8e052aed..000000000 Binary files a/rtdata/images/Dark/actions/undelete.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/warnhl.png b/rtdata/images/Dark/actions/warnhl.png deleted file mode 100644 index 4ca870ec5..000000000 Binary files a/rtdata/images/Dark/actions/warnhl.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/warnsh.png b/rtdata/images/Dark/actions/warnsh.png deleted file mode 100644 index d8d558ccf..000000000 Binary files a/rtdata/images/Dark/actions/warnsh.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wavelet.png b/rtdata/images/Dark/actions/wavelet.png deleted file mode 100644 index 97f4ce673..000000000 Binary files a/rtdata/images/Dark/actions/wavelet.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-auto.png b/rtdata/images/Dark/actions/wb-auto.png deleted file mode 100644 index be4114604..000000000 Binary files a/rtdata/images/Dark/actions/wb-auto.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-camera.png b/rtdata/images/Dark/actions/wb-camera.png deleted file mode 100644 index 372fd14bb..000000000 Binary files a/rtdata/images/Dark/actions/wb-camera.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-cloudy.png b/rtdata/images/Dark/actions/wb-cloudy.png deleted file mode 100644 index cdef40096..000000000 Binary files a/rtdata/images/Dark/actions/wb-cloudy.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-custom.png b/rtdata/images/Dark/actions/wb-custom.png deleted file mode 100644 index cc7b6ef3c..000000000 Binary files a/rtdata/images/Dark/actions/wb-custom.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-flash.png b/rtdata/images/Dark/actions/wb-flash.png deleted file mode 100644 index e8115b3d4..000000000 Binary files a/rtdata/images/Dark/actions/wb-flash.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-fluorescent.png b/rtdata/images/Dark/actions/wb-fluorescent.png deleted file mode 100644 index 4861c54b4..000000000 Binary files a/rtdata/images/Dark/actions/wb-fluorescent.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-lamp.png b/rtdata/images/Dark/actions/wb-lamp.png deleted file mode 100644 index 5086e362b..000000000 Binary files a/rtdata/images/Dark/actions/wb-lamp.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-led.png b/rtdata/images/Dark/actions/wb-led.png deleted file mode 100644 index 749b2e703..000000000 Binary files a/rtdata/images/Dark/actions/wb-led.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-shade.png b/rtdata/images/Dark/actions/wb-shade.png deleted file mode 100644 index 3b908909c..000000000 Binary files a/rtdata/images/Dark/actions/wb-shade.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-sun.png b/rtdata/images/Dark/actions/wb-sun.png deleted file mode 100644 index 880fd13f0..000000000 Binary files a/rtdata/images/Dark/actions/wb-sun.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-tungsten.png b/rtdata/images/Dark/actions/wb-tungsten.png deleted file mode 100644 index 48aef24a3..000000000 Binary files a/rtdata/images/Dark/actions/wb-tungsten.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/wb-water.png b/rtdata/images/Dark/actions/wb-water.png deleted file mode 100644 index 196869abf..000000000 Binary files a/rtdata/images/Dark/actions/wb-water.png and /dev/null differ diff --git a/rtdata/images/Dark/actions/zoom-100-identifier.png b/rtdata/images/Dark/actions/zoom-100-identifier.png deleted file mode 100644 index 7452d50dd..000000000 Binary files a/rtdata/images/Dark/actions/zoom-100-identifier.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/computer.png b/rtdata/images/Dark/devices/computer.png deleted file mode 100644 index 4bd0885b7..000000000 Binary files a/rtdata/images/Dark/devices/computer.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/drive-harddisk.png b/rtdata/images/Dark/devices/drive-harddisk.png deleted file mode 100644 index 4bd0885b7..000000000 Binary files a/rtdata/images/Dark/devices/drive-harddisk.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/drive-optical.png b/rtdata/images/Dark/devices/drive-optical.png deleted file mode 100644 index b4d20cc2e..000000000 Binary files a/rtdata/images/Dark/devices/drive-optical.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/drive-removable-media.png b/rtdata/images/Dark/devices/drive-removable-media.png deleted file mode 100644 index ee41f6a5c..000000000 Binary files a/rtdata/images/Dark/devices/drive-removable-media.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/gtk-cdrom.png b/rtdata/images/Dark/devices/gtk-cdrom.png deleted file mode 100644 index b4d20cc2e..000000000 Binary files a/rtdata/images/Dark/devices/gtk-cdrom.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/media-flash.png b/rtdata/images/Dark/devices/media-flash.png deleted file mode 100644 index 4bd0885b7..000000000 Binary files a/rtdata/images/Dark/devices/media-flash.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/media-floppy.png b/rtdata/images/Dark/devices/media-floppy.png deleted file mode 100644 index ee41f6a5c..000000000 Binary files a/rtdata/images/Dark/devices/media-floppy.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/media-optical-bd.png b/rtdata/images/Dark/devices/media-optical-bd.png deleted file mode 100644 index b4d20cc2e..000000000 Binary files a/rtdata/images/Dark/devices/media-optical-bd.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/media-optical-dvd.png b/rtdata/images/Dark/devices/media-optical-dvd.png deleted file mode 100644 index b4d20cc2e..000000000 Binary files a/rtdata/images/Dark/devices/media-optical-dvd.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/media-optical.png b/rtdata/images/Dark/devices/media-optical.png deleted file mode 100644 index b4d20cc2e..000000000 Binary files a/rtdata/images/Dark/devices/media-optical.png and /dev/null differ diff --git a/rtdata/images/Dark/devices/media-tape.png b/rtdata/images/Dark/devices/media-tape.png deleted file mode 100644 index 4bd0885b7..000000000 Binary files a/rtdata/images/Dark/devices/media-tape.png and /dev/null differ diff --git a/rtdata/images/Dark/index.theme b/rtdata/images/Dark/index.theme deleted file mode 100644 index 8912f3f5d..000000000 --- a/rtdata/images/Dark/index.theme +++ /dev/null @@ -1,42 +0,0 @@ -[Icon Theme] -Name=RawTherapee-Dark -Comment=Dark theme for RawTherapee -Inherits=hicolor -Example=folder - -Directories=actions,apps,categories,devices,emblems,places,status - -[actions] -Size=22 -Context=Actions -Type=Fixed - -[apps] -Size=22 -Context=Applications -Type=Fixed - -[categories] -Size=22 -Context=Categories -Type=Fixed - -[devices] -Size=22 -Context=Devices -Type=Fixed - -[emblems] -Size=22 -Context=Emblems -Type=Fixed - -[places] -Size=22 -Context=Places -Type=Fixed - -[status] -Size=22 -Context=Status -Type=Fixed diff --git a/rtdata/images/Dark/places/folder.png b/rtdata/images/Dark/places/folder.png deleted file mode 100644 index cc268ed89..000000000 Binary files a/rtdata/images/Dark/places/folder.png and /dev/null differ diff --git a/rtdata/images/Dark/places/gtk-directory.png b/rtdata/images/Dark/places/gtk-directory.png deleted file mode 100644 index cc268ed89..000000000 Binary files a/rtdata/images/Dark/places/gtk-directory.png and /dev/null differ diff --git a/rtdata/images/Dark/places/user-desktop.png b/rtdata/images/Dark/places/user-desktop.png deleted file mode 100644 index e973ac169..000000000 Binary files a/rtdata/images/Dark/places/user-desktop.png and /dev/null differ diff --git a/rtdata/images/Dark/places/user-home.png b/rtdata/images/Dark/places/user-home.png deleted file mode 100644 index 93d09835d..000000000 Binary files a/rtdata/images/Dark/places/user-home.png and /dev/null differ diff --git a/rtdata/images/Light/actions/Chanmixer-Bgamma.png b/rtdata/images/Light/actions/Chanmixer-Bgamma.png deleted file mode 100644 index 95503a367..000000000 Binary files a/rtdata/images/Light/actions/Chanmixer-Bgamma.png and /dev/null differ diff --git a/rtdata/images/Light/actions/Chanmixer-Ggamma.png b/rtdata/images/Light/actions/Chanmixer-Ggamma.png deleted file mode 100644 index 13f937ae0..000000000 Binary files a/rtdata/images/Light/actions/Chanmixer-Ggamma.png and /dev/null differ diff --git a/rtdata/images/Light/actions/Chanmixer-Rgamma.png b/rtdata/images/Light/actions/Chanmixer-Rgamma.png deleted file mode 100644 index 5e423fe18..000000000 Binary files a/rtdata/images/Light/actions/Chanmixer-Rgamma.png and /dev/null differ diff --git a/rtdata/images/Light/actions/HDR-thumbnail.png b/rtdata/images/Light/actions/HDR-thumbnail.png deleted file mode 100644 index 182e603e8..000000000 Binary files a/rtdata/images/Light/actions/HDR-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Light/actions/PanelEnding.png b/rtdata/images/Light/actions/PanelEnding.png deleted file mode 100644 index d7c3cc37d..000000000 Binary files a/rtdata/images/Light/actions/PanelEnding.png and /dev/null differ diff --git a/rtdata/images/Light/actions/PixelShift-thumbnail.png b/rtdata/images/Light/actions/PixelShift-thumbnail.png deleted file mode 100644 index 4bbea1aee..000000000 Binary files a/rtdata/images/Light/actions/PixelShift-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Light/actions/adj-black.png b/rtdata/images/Light/actions/adj-black.png deleted file mode 100644 index bf5459fa5..000000000 Binary files a/rtdata/images/Light/actions/adj-black.png and /dev/null differ diff --git a/rtdata/images/Light/actions/adj-white.png b/rtdata/images/Light/actions/adj-white.png deleted file mode 100644 index 03028934e..000000000 Binary files a/rtdata/images/Light/actions/adj-white.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-ca-blue1.png b/rtdata/images/Light/actions/ajd-ca-blue1.png deleted file mode 100644 index 7a47267df..000000000 Binary files a/rtdata/images/Light/actions/ajd-ca-blue1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-ca-blue2.png b/rtdata/images/Light/actions/ajd-ca-blue2.png deleted file mode 100644 index dfb458300..000000000 Binary files a/rtdata/images/Light/actions/ajd-ca-blue2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-ca-red1.png b/rtdata/images/Light/actions/ajd-ca-red1.png deleted file mode 100644 index 1e45c5035..000000000 Binary files a/rtdata/images/Light/actions/ajd-ca-red1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-ca-red2.png b/rtdata/images/Light/actions/ajd-ca-red2.png deleted file mode 100644 index e5da9e005..000000000 Binary files a/rtdata/images/Light/actions/ajd-ca-red2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-wb-bluered1.png b/rtdata/images/Light/actions/ajd-wb-bluered1.png deleted file mode 100644 index 3c8473451..000000000 Binary files a/rtdata/images/Light/actions/ajd-wb-bluered1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-wb-bluered2.png b/rtdata/images/Light/actions/ajd-wb-bluered2.png deleted file mode 100644 index 0f06a770e..000000000 Binary files a/rtdata/images/Light/actions/ajd-wb-bluered2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-wb-green1.png b/rtdata/images/Light/actions/ajd-wb-green1.png deleted file mode 100644 index 4f33551d6..000000000 Binary files a/rtdata/images/Light/actions/ajd-wb-green1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-wb-green2.png b/rtdata/images/Light/actions/ajd-wb-green2.png deleted file mode 100644 index a9a7e8553..000000000 Binary files a/rtdata/images/Light/actions/ajd-wb-green2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-wb-temp1.png b/rtdata/images/Light/actions/ajd-wb-temp1.png deleted file mode 100644 index 3c8473451..000000000 Binary files a/rtdata/images/Light/actions/ajd-wb-temp1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ajd-wb-temp2.png b/rtdata/images/Light/actions/ajd-wb-temp2.png deleted file mode 100644 index 2b0c7c0ef..000000000 Binary files a/rtdata/images/Light/actions/ajd-wb-temp2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-down-small.png b/rtdata/images/Light/actions/arrow-down-small.png deleted file mode 100644 index 21f25626c..000000000 Binary files a/rtdata/images/Light/actions/arrow-down-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-down.png b/rtdata/images/Light/actions/arrow-down.png deleted file mode 100644 index 36c366bd3..000000000 Binary files a/rtdata/images/Light/actions/arrow-down.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-left-small.png b/rtdata/images/Light/actions/arrow-left-small.png deleted file mode 100644 index 5dfd88f09..000000000 Binary files a/rtdata/images/Light/actions/arrow-left-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-left.png b/rtdata/images/Light/actions/arrow-left.png deleted file mode 100644 index 711ad1016..000000000 Binary files a/rtdata/images/Light/actions/arrow-left.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-right-small.png b/rtdata/images/Light/actions/arrow-right-small.png deleted file mode 100644 index 310e87b9c..000000000 Binary files a/rtdata/images/Light/actions/arrow-right-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-right.png b/rtdata/images/Light/actions/arrow-right.png deleted file mode 100644 index 933e84025..000000000 Binary files a/rtdata/images/Light/actions/arrow-right.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-up-small.png b/rtdata/images/Light/actions/arrow-up-small.png deleted file mode 100644 index 9b8884c5e..000000000 Binary files a/rtdata/images/Light/actions/arrow-up-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/arrow-up.png b/rtdata/images/Light/actions/arrow-up.png deleted file mode 100644 index df6b022a3..000000000 Binary files a/rtdata/images/Light/actions/arrow-up.png and /dev/null differ diff --git a/rtdata/images/Light/actions/atom.png b/rtdata/images/Light/actions/atom.png deleted file mode 100644 index 55feaf8d7..000000000 Binary files a/rtdata/images/Light/actions/atom.png and /dev/null differ diff --git a/rtdata/images/Light/actions/beforeafter.png b/rtdata/images/Light/actions/beforeafter.png deleted file mode 100644 index cdbc49dc4..000000000 Binary files a/rtdata/images/Light/actions/beforeafter.png and /dev/null differ diff --git a/rtdata/images/Light/actions/cglabel0.png b/rtdata/images/Light/actions/cglabel0.png deleted file mode 100644 index 72cb8f15b..000000000 Binary files a/rtdata/images/Light/actions/cglabel0.png and /dev/null differ diff --git a/rtdata/images/Light/actions/cglabel1.png b/rtdata/images/Light/actions/cglabel1.png deleted file mode 100644 index 6337a6476..000000000 Binary files a/rtdata/images/Light/actions/cglabel1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/cglabel2.png b/rtdata/images/Light/actions/cglabel2.png deleted file mode 100644 index a5b843c0c..000000000 Binary files a/rtdata/images/Light/actions/cglabel2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/cglabel3.png b/rtdata/images/Light/actions/cglabel3.png deleted file mode 100644 index a3f3da7a9..000000000 Binary files a/rtdata/images/Light/actions/cglabel3.png and /dev/null differ diff --git a/rtdata/images/Light/actions/cglabel4.png b/rtdata/images/Light/actions/cglabel4.png deleted file mode 100644 index 3e048f36c..000000000 Binary files a/rtdata/images/Light/actions/cglabel4.png and /dev/null differ diff --git a/rtdata/images/Light/actions/cglabel5.png b/rtdata/images/Light/actions/cglabel5.png deleted file mode 100644 index 323be0cb9..000000000 Binary files a/rtdata/images/Light/actions/cglabel5.png and /dev/null differ diff --git a/rtdata/images/Light/actions/clabel0.png b/rtdata/images/Light/actions/clabel0.png deleted file mode 100644 index 64de8ead0..000000000 Binary files a/rtdata/images/Light/actions/clabel0.png and /dev/null differ diff --git a/rtdata/images/Light/actions/clabel1.png b/rtdata/images/Light/actions/clabel1.png deleted file mode 100644 index 73e267c2a..000000000 Binary files a/rtdata/images/Light/actions/clabel1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/clabel2.png b/rtdata/images/Light/actions/clabel2.png deleted file mode 100644 index 3e6eca725..000000000 Binary files a/rtdata/images/Light/actions/clabel2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/clabel3.png b/rtdata/images/Light/actions/clabel3.png deleted file mode 100644 index e291a0df6..000000000 Binary files a/rtdata/images/Light/actions/clabel3.png and /dev/null differ diff --git a/rtdata/images/Light/actions/clabel4.png b/rtdata/images/Light/actions/clabel4.png deleted file mode 100644 index 89066bc43..000000000 Binary files a/rtdata/images/Light/actions/clabel4.png and /dev/null differ diff --git a/rtdata/images/Light/actions/clabel5.png b/rtdata/images/Light/actions/clabel5.png deleted file mode 100644 index 9944eaf69..000000000 Binary files a/rtdata/images/Light/actions/clabel5.png and /dev/null differ diff --git a/rtdata/images/Light/actions/closedhand.png b/rtdata/images/Light/actions/closedhand.png deleted file mode 100644 index a1aea95f2..000000000 Binary files a/rtdata/images/Light/actions/closedhand.png and /dev/null differ diff --git a/rtdata/images/Light/actions/colorPickers-hide.png b/rtdata/images/Light/actions/colorPickers-hide.png deleted file mode 100644 index 434087f1c..000000000 Binary files a/rtdata/images/Light/actions/colorPickers-hide.png and /dev/null differ diff --git a/rtdata/images/Light/actions/colorPickers-show.png b/rtdata/images/Light/actions/colorPickers-show.png deleted file mode 100644 index d93deb3eb..000000000 Binary files a/rtdata/images/Light/actions/colorPickers-show.png and /dev/null differ diff --git a/rtdata/images/Light/actions/colour.png b/rtdata/images/Light/actions/colour.png deleted file mode 100644 index d473e8a0b..000000000 Binary files a/rtdata/images/Light/actions/colour.png and /dev/null differ diff --git a/rtdata/images/Light/actions/crop-auto.png b/rtdata/images/Light/actions/crop-auto.png deleted file mode 100644 index a4c6c897e..000000000 Binary files a/rtdata/images/Light/actions/crop-auto.png and /dev/null differ diff --git a/rtdata/images/Light/actions/crop.png b/rtdata/images/Light/actions/crop.png deleted file mode 100644 index 16ca56996..000000000 Binary files a/rtdata/images/Light/actions/crop.png and /dev/null differ diff --git a/rtdata/images/Light/actions/crossed-arrows-in.png b/rtdata/images/Light/actions/crossed-arrows-in.png deleted file mode 100644 index da0e44b8b..000000000 Binary files a/rtdata/images/Light/actions/crossed-arrows-in.png and /dev/null differ diff --git a/rtdata/images/Light/actions/crossed-arrows-out.png b/rtdata/images/Light/actions/crossed-arrows-out.png deleted file mode 100644 index 8bc1a8819..000000000 Binary files a/rtdata/images/Light/actions/crossed-arrows-out.png and /dev/null differ diff --git a/rtdata/images/Light/actions/curveType-NURBS.png b/rtdata/images/Light/actions/curveType-NURBS.png deleted file mode 100644 index 2a025b1ba..000000000 Binary files a/rtdata/images/Light/actions/curveType-NURBS.png and /dev/null differ diff --git a/rtdata/images/Light/actions/curveType-controlPoints.png b/rtdata/images/Light/actions/curveType-controlPoints.png deleted file mode 100644 index eae5a3875..000000000 Binary files a/rtdata/images/Light/actions/curveType-controlPoints.png and /dev/null differ diff --git a/rtdata/images/Light/actions/curveType-flatLinear.png b/rtdata/images/Light/actions/curveType-flatLinear.png deleted file mode 100644 index 6fb01eba8..000000000 Binary files a/rtdata/images/Light/actions/curveType-flatLinear.png and /dev/null differ diff --git a/rtdata/images/Light/actions/curveType-linear.png b/rtdata/images/Light/actions/curveType-linear.png deleted file mode 100644 index f58b3ab51..000000000 Binary files a/rtdata/images/Light/actions/curveType-linear.png and /dev/null differ diff --git a/rtdata/images/Light/actions/curveType-parametric.png b/rtdata/images/Light/actions/curveType-parametric.png deleted file mode 100644 index 287a37ab0..000000000 Binary files a/rtdata/images/Light/actions/curveType-parametric.png and /dev/null differ diff --git a/rtdata/images/Light/actions/curveType-spline.png b/rtdata/images/Light/actions/curveType-spline.png deleted file mode 100644 index e3e5e08d9..000000000 Binary files a/rtdata/images/Light/actions/curveType-spline.png and /dev/null differ diff --git a/rtdata/images/Light/actions/detail.png b/rtdata/images/Light/actions/detail.png deleted file mode 100644 index 1fc314fd3..000000000 Binary files a/rtdata/images/Light/actions/detail.png and /dev/null differ diff --git a/rtdata/images/Light/actions/distorsion.png b/rtdata/images/Light/actions/distorsion.png deleted file mode 100644 index 18b4a01df..000000000 Binary files a/rtdata/images/Light/actions/distorsion.png and /dev/null differ diff --git a/rtdata/images/Light/actions/distortion-auto.png b/rtdata/images/Light/actions/distortion-auto.png deleted file mode 100644 index 759c8e463..000000000 Binary files a/rtdata/images/Light/actions/distortion-auto.png and /dev/null differ diff --git a/rtdata/images/Light/actions/distortion-barrel.png b/rtdata/images/Light/actions/distortion-barrel.png deleted file mode 100644 index 836be0ac2..000000000 Binary files a/rtdata/images/Light/actions/distortion-barrel.png and /dev/null differ diff --git a/rtdata/images/Light/actions/distortion-pincushion.png b/rtdata/images/Light/actions/distortion-pincushion.png deleted file mode 100644 index f64574151..000000000 Binary files a/rtdata/images/Light/actions/distortion-pincushion.png and /dev/null differ diff --git a/rtdata/images/Light/actions/document-open-recent.png b/rtdata/images/Light/actions/document-open-recent.png deleted file mode 100644 index 5ef8724f2..000000000 Binary files a/rtdata/images/Light/actions/document-open-recent.png and /dev/null differ diff --git a/rtdata/images/Light/actions/document-open.png b/rtdata/images/Light/actions/document-open.png deleted file mode 100644 index f7b57849a..000000000 Binary files a/rtdata/images/Light/actions/document-open.png and /dev/null differ diff --git a/rtdata/images/Light/actions/edit-copy.png b/rtdata/images/Light/actions/edit-copy.png deleted file mode 100644 index 12e49387f..000000000 Binary files a/rtdata/images/Light/actions/edit-copy.png and /dev/null differ diff --git a/rtdata/images/Light/actions/edit-find.png b/rtdata/images/Light/actions/edit-find.png deleted file mode 100644 index d15687e7d..000000000 Binary files a/rtdata/images/Light/actions/edit-find.png and /dev/null differ diff --git a/rtdata/images/Light/actions/edit-paste.png b/rtdata/images/Light/actions/edit-paste.png deleted file mode 100644 index d7e924562..000000000 Binary files a/rtdata/images/Light/actions/edit-paste.png and /dev/null differ diff --git a/rtdata/images/Light/actions/edited-small.png b/rtdata/images/Light/actions/edited-small.png deleted file mode 100644 index f25997a59..000000000 Binary files a/rtdata/images/Light/actions/edited-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/edited.png b/rtdata/images/Light/actions/edited.png deleted file mode 100644 index 95d058454..000000000 Binary files a/rtdata/images/Light/actions/edited.png and /dev/null differ diff --git a/rtdata/images/Light/actions/editedg-small.png b/rtdata/images/Light/actions/editedg-small.png deleted file mode 100644 index 9eb229e75..000000000 Binary files a/rtdata/images/Light/actions/editedg-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/editednot-small.png b/rtdata/images/Light/actions/editednot-small.png deleted file mode 100644 index 410bff81b..000000000 Binary files a/rtdata/images/Light/actions/editednot-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/editednotg-small.png b/rtdata/images/Light/actions/editednotg-small.png deleted file mode 100644 index 55bc28f2b..000000000 Binary files a/rtdata/images/Light/actions/editednotg-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/editmodehand.png b/rtdata/images/Light/actions/editmodehand.png deleted file mode 100644 index a3ec816bb..000000000 Binary files a/rtdata/images/Light/actions/editmodehand.png and /dev/null differ diff --git a/rtdata/images/Light/actions/equalizer-narrow.png b/rtdata/images/Light/actions/equalizer-narrow.png deleted file mode 100644 index c9e2c5b26..000000000 Binary files a/rtdata/images/Light/actions/equalizer-narrow.png and /dev/null differ diff --git a/rtdata/images/Light/actions/equalizer-wide.png b/rtdata/images/Light/actions/equalizer-wide.png deleted file mode 100644 index f5b0aca68..000000000 Binary files a/rtdata/images/Light/actions/equalizer-wide.png and /dev/null differ diff --git a/rtdata/images/Light/actions/expanderClosed.png b/rtdata/images/Light/actions/expanderClosed.png deleted file mode 100644 index 81a7d85ab..000000000 Binary files a/rtdata/images/Light/actions/expanderClosed.png and /dev/null differ diff --git a/rtdata/images/Light/actions/expanderDisabled.png b/rtdata/images/Light/actions/expanderDisabled.png deleted file mode 100644 index 8fcef1b01..000000000 Binary files a/rtdata/images/Light/actions/expanderDisabled.png and /dev/null differ diff --git a/rtdata/images/Light/actions/expanderEnabled.png b/rtdata/images/Light/actions/expanderEnabled.png deleted file mode 100644 index 7e2006eb3..000000000 Binary files a/rtdata/images/Light/actions/expanderEnabled.png and /dev/null differ diff --git a/rtdata/images/Light/actions/expanderInconsistent.png b/rtdata/images/Light/actions/expanderInconsistent.png deleted file mode 100644 index 3c2339b60..000000000 Binary files a/rtdata/images/Light/actions/expanderInconsistent.png and /dev/null differ diff --git a/rtdata/images/Light/actions/expanderOpened.png b/rtdata/images/Light/actions/expanderOpened.png deleted file mode 100644 index 5b003e3f7..000000000 Binary files a/rtdata/images/Light/actions/expanderOpened.png and /dev/null differ diff --git a/rtdata/images/Light/actions/exposure.png b/rtdata/images/Light/actions/exposure.png deleted file mode 100644 index 8675d8e15..000000000 Binary files a/rtdata/images/Light/actions/exposure.png and /dev/null differ diff --git a/rtdata/images/Light/actions/filter-original-1.png b/rtdata/images/Light/actions/filter-original-1.png deleted file mode 100644 index 2daef11fb..000000000 Binary files a/rtdata/images/Light/actions/filter-original-1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/filter-original-2.png b/rtdata/images/Light/actions/filter-original-2.png deleted file mode 100644 index 37727f3be..000000000 Binary files a/rtdata/images/Light/actions/filter-original-2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/filter.png b/rtdata/images/Light/actions/filter.png deleted file mode 100644 index 7c69d18ee..000000000 Binary files a/rtdata/images/Light/actions/filter.png and /dev/null differ diff --git a/rtdata/images/Light/actions/filterclear.png b/rtdata/images/Light/actions/filterclear.png deleted file mode 100644 index bd4f651f8..000000000 Binary files a/rtdata/images/Light/actions/filterclear.png and /dev/null differ diff --git a/rtdata/images/Light/actions/fullscreen-exit.png b/rtdata/images/Light/actions/fullscreen-exit.png deleted file mode 100644 index 01df3044c..000000000 Binary files a/rtdata/images/Light/actions/fullscreen-exit.png and /dev/null differ diff --git a/rtdata/images/Light/actions/fullscreen.png b/rtdata/images/Light/actions/fullscreen.png deleted file mode 100644 index e08067584..000000000 Binary files a/rtdata/images/Light/actions/fullscreen.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gamut-hist.png b/rtdata/images/Light/actions/gamut-hist.png deleted file mode 100644 index 8c81e0213..000000000 Binary files a/rtdata/images/Light/actions/gamut-hist.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gamut-softproof.png b/rtdata/images/Light/actions/gamut-softproof.png deleted file mode 100644 index e745d8dd6..000000000 Binary files a/rtdata/images/Light/actions/gamut-softproof.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gamut-warning.png b/rtdata/images/Light/actions/gamut-warning.png deleted file mode 100644 index cbbf89a56..000000000 Binary files a/rtdata/images/Light/actions/gamut-warning.png and /dev/null differ diff --git a/rtdata/images/Light/actions/grayrated.png b/rtdata/images/Light/actions/grayrated.png deleted file mode 100644 index 813af1cee..000000000 Binary files a/rtdata/images/Light/actions/grayrated.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-add.png b/rtdata/images/Light/actions/gtk-add.png deleted file mode 100644 index 9a982056c..000000000 Binary files a/rtdata/images/Light/actions/gtk-add.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-apply.png b/rtdata/images/Light/actions/gtk-apply.png deleted file mode 100644 index e1224bca3..000000000 Binary files a/rtdata/images/Light/actions/gtk-apply.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-cancel.png b/rtdata/images/Light/actions/gtk-cancel.png deleted file mode 100644 index 65740aaf1..000000000 Binary files a/rtdata/images/Light/actions/gtk-cancel.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-close-small.png b/rtdata/images/Light/actions/gtk-close-small.png deleted file mode 100644 index ef2ac03d8..000000000 Binary files a/rtdata/images/Light/actions/gtk-close-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-close.png b/rtdata/images/Light/actions/gtk-close.png deleted file mode 100644 index 65740aaf1..000000000 Binary files a/rtdata/images/Light/actions/gtk-close.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-color-picker-add.png b/rtdata/images/Light/actions/gtk-color-picker-add.png deleted file mode 100644 index 01d2b6a0b..000000000 Binary files a/rtdata/images/Light/actions/gtk-color-picker-add.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-color-picker-small.png b/rtdata/images/Light/actions/gtk-color-picker-small.png deleted file mode 100644 index 834848607..000000000 Binary files a/rtdata/images/Light/actions/gtk-color-picker-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-color-picker.png b/rtdata/images/Light/actions/gtk-color-picker.png deleted file mode 100644 index f2fbc5cf9..000000000 Binary files a/rtdata/images/Light/actions/gtk-color-picker.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-copy.png b/rtdata/images/Light/actions/gtk-copy.png deleted file mode 100644 index 12e49387f..000000000 Binary files a/rtdata/images/Light/actions/gtk-copy.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-edit.png b/rtdata/images/Light/actions/gtk-edit.png deleted file mode 100644 index d76e57227..000000000 Binary files a/rtdata/images/Light/actions/gtk-edit.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-find.png b/rtdata/images/Light/actions/gtk-find.png deleted file mode 100644 index d15687e7d..000000000 Binary files a/rtdata/images/Light/actions/gtk-find.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-media-play.png b/rtdata/images/Light/actions/gtk-media-play.png deleted file mode 100644 index 2f97b3fec..000000000 Binary files a/rtdata/images/Light/actions/gtk-media-play.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-media-stop.png b/rtdata/images/Light/actions/gtk-media-stop.png deleted file mode 100644 index ea1b0e8a1..000000000 Binary files a/rtdata/images/Light/actions/gtk-media-stop.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-ok.png b/rtdata/images/Light/actions/gtk-ok.png deleted file mode 100644 index e1224bca3..000000000 Binary files a/rtdata/images/Light/actions/gtk-ok.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-open.png b/rtdata/images/Light/actions/gtk-open.png deleted file mode 100644 index f7b57849a..000000000 Binary files a/rtdata/images/Light/actions/gtk-open.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-paste.png b/rtdata/images/Light/actions/gtk-paste.png deleted file mode 100644 index d7e924562..000000000 Binary files a/rtdata/images/Light/actions/gtk-paste.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-preferences.png b/rtdata/images/Light/actions/gtk-preferences.png deleted file mode 100644 index edb354e1a..000000000 Binary files a/rtdata/images/Light/actions/gtk-preferences.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-remove.png b/rtdata/images/Light/actions/gtk-remove.png deleted file mode 100644 index f198bce68..000000000 Binary files a/rtdata/images/Light/actions/gtk-remove.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-save-large.png b/rtdata/images/Light/actions/gtk-save-large.png deleted file mode 100644 index a55dfe04c..000000000 Binary files a/rtdata/images/Light/actions/gtk-save-large.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-save.png b/rtdata/images/Light/actions/gtk-save.png deleted file mode 100644 index 64f9e44a2..000000000 Binary files a/rtdata/images/Light/actions/gtk-save.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-undo-ltr-small.png b/rtdata/images/Light/actions/gtk-undo-ltr-small.png deleted file mode 100644 index 86d0fa28f..000000000 Binary files a/rtdata/images/Light/actions/gtk-undo-ltr-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-undo-ltr.png b/rtdata/images/Light/actions/gtk-undo-ltr.png deleted file mode 100644 index ee15060e9..000000000 Binary files a/rtdata/images/Light/actions/gtk-undo-ltr.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-undo-rtl-small.png b/rtdata/images/Light/actions/gtk-undo-rtl-small.png deleted file mode 100644 index f8b4d4586..000000000 Binary files a/rtdata/images/Light/actions/gtk-undo-rtl-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-undo-rtl.png b/rtdata/images/Light/actions/gtk-undo-rtl.png deleted file mode 100644 index 22c6f2212..000000000 Binary files a/rtdata/images/Light/actions/gtk-undo-rtl.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-undoall-ltr.png b/rtdata/images/Light/actions/gtk-undoall-ltr.png deleted file mode 100644 index dca3f3d01..000000000 Binary files a/rtdata/images/Light/actions/gtk-undoall-ltr.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-undoall-rtl.png b/rtdata/images/Light/actions/gtk-undoall-rtl.png deleted file mode 100644 index ac051c8e6..000000000 Binary files a/rtdata/images/Light/actions/gtk-undoall-rtl.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-100-small.png b/rtdata/images/Light/actions/gtk-zoom-100-small.png deleted file mode 100644 index 23e694f6e..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-100-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-100.png b/rtdata/images/Light/actions/gtk-zoom-100.png deleted file mode 100644 index 656274a75..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-100.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-crop.png b/rtdata/images/Light/actions/gtk-zoom-crop.png deleted file mode 100644 index c83bac4fe..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-crop.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-fit.png b/rtdata/images/Light/actions/gtk-zoom-fit.png deleted file mode 100644 index 7f3452eed..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-fit.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-in-small.png b/rtdata/images/Light/actions/gtk-zoom-in-small.png deleted file mode 100644 index f5e381ca8..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-in-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-in.png b/rtdata/images/Light/actions/gtk-zoom-in.png deleted file mode 100644 index 0cafb1e36..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-in.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-out-small.png b/rtdata/images/Light/actions/gtk-zoom-out-small.png deleted file mode 100644 index 4605917bc..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-out-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/gtk-zoom-out.png b/rtdata/images/Light/actions/gtk-zoom-out.png deleted file mode 100644 index f3d914d93..000000000 Binary files a/rtdata/images/Light/actions/gtk-zoom-out.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histBar.png b/rtdata/images/Light/actions/histBar.png deleted file mode 100644 index 84bbecad8..000000000 Binary files a/rtdata/images/Light/actions/histBar.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histBarg.png b/rtdata/images/Light/actions/histBarg.png deleted file mode 100644 index 789ee931c..000000000 Binary files a/rtdata/images/Light/actions/histBarg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histBlue.png b/rtdata/images/Light/actions/histBlue.png deleted file mode 100644 index 53c447a1c..000000000 Binary files a/rtdata/images/Light/actions/histBlue.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histBlueg.png b/rtdata/images/Light/actions/histBlueg.png deleted file mode 100644 index ac205219d..000000000 Binary files a/rtdata/images/Light/actions/histBlueg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histChro.png b/rtdata/images/Light/actions/histChro.png deleted file mode 100644 index efbf75aa5..000000000 Binary files a/rtdata/images/Light/actions/histChro.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histChrog.png b/rtdata/images/Light/actions/histChrog.png deleted file mode 100644 index 8349d5089..000000000 Binary files a/rtdata/images/Light/actions/histChrog.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histFull.png b/rtdata/images/Light/actions/histFull.png deleted file mode 100644 index edabaa2bd..000000000 Binary files a/rtdata/images/Light/actions/histFull.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histFullg.png b/rtdata/images/Light/actions/histFullg.png deleted file mode 100644 index ce3cf8ddc..000000000 Binary files a/rtdata/images/Light/actions/histFullg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histGreen.png b/rtdata/images/Light/actions/histGreen.png deleted file mode 100644 index 54eebe37e..000000000 Binary files a/rtdata/images/Light/actions/histGreen.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histGreeng.png b/rtdata/images/Light/actions/histGreeng.png deleted file mode 100644 index 33c138cae..000000000 Binary files a/rtdata/images/Light/actions/histGreeng.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histRaw.png b/rtdata/images/Light/actions/histRaw.png deleted file mode 100644 index 36e1a5a31..000000000 Binary files a/rtdata/images/Light/actions/histRaw.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histRawg.png b/rtdata/images/Light/actions/histRawg.png deleted file mode 100644 index 1b9d286b3..000000000 Binary files a/rtdata/images/Light/actions/histRawg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histRed.png b/rtdata/images/Light/actions/histRed.png deleted file mode 100644 index ce7fddcd3..000000000 Binary files a/rtdata/images/Light/actions/histRed.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histRedg.png b/rtdata/images/Light/actions/histRedg.png deleted file mode 100644 index b75a66995..000000000 Binary files a/rtdata/images/Light/actions/histRedg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histValue.png b/rtdata/images/Light/actions/histValue.png deleted file mode 100644 index 7f807ec9b..000000000 Binary files a/rtdata/images/Light/actions/histValue.png and /dev/null differ diff --git a/rtdata/images/Light/actions/histValueg.png b/rtdata/images/Light/actions/histValueg.png deleted file mode 100644 index 28f5dbe18..000000000 Binary files a/rtdata/images/Light/actions/histValueg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/image-editor.png b/rtdata/images/Light/actions/image-editor.png deleted file mode 100644 index 3061ad89e..000000000 Binary files a/rtdata/images/Light/actions/image-editor.png and /dev/null differ diff --git a/rtdata/images/Light/actions/info.png b/rtdata/images/Light/actions/info.png deleted file mode 100644 index db3f654de..000000000 Binary files a/rtdata/images/Light/actions/info.png and /dev/null differ diff --git a/rtdata/images/Light/actions/intent-absolute.png b/rtdata/images/Light/actions/intent-absolute.png deleted file mode 100644 index fb5919181..000000000 Binary files a/rtdata/images/Light/actions/intent-absolute.png and /dev/null differ diff --git a/rtdata/images/Light/actions/intent-perceptual.png b/rtdata/images/Light/actions/intent-perceptual.png deleted file mode 100644 index 88de7b5e9..000000000 Binary files a/rtdata/images/Light/actions/intent-perceptual.png and /dev/null differ diff --git a/rtdata/images/Light/actions/intent-relative.png b/rtdata/images/Light/actions/intent-relative.png deleted file mode 100644 index f952f4ab7..000000000 Binary files a/rtdata/images/Light/actions/intent-relative.png and /dev/null differ diff --git a/rtdata/images/Light/actions/intent-saturation.png b/rtdata/images/Light/actions/intent-saturation.png deleted file mode 100644 index 92908b030..000000000 Binary files a/rtdata/images/Light/actions/intent-saturation.png and /dev/null differ diff --git a/rtdata/images/Light/actions/list-add-small.png b/rtdata/images/Light/actions/list-add-small.png deleted file mode 100644 index 9d06f0303..000000000 Binary files a/rtdata/images/Light/actions/list-add-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/list-add.png b/rtdata/images/Light/actions/list-add.png deleted file mode 100644 index 9a982056c..000000000 Binary files a/rtdata/images/Light/actions/list-add.png and /dev/null differ diff --git a/rtdata/images/Light/actions/list-remove-red-small.png b/rtdata/images/Light/actions/list-remove-red-small.png deleted file mode 100644 index 866a2b2d2..000000000 Binary files a/rtdata/images/Light/actions/list-remove-red-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/list-remove.png b/rtdata/images/Light/actions/list-remove.png deleted file mode 100644 index f198bce68..000000000 Binary files a/rtdata/images/Light/actions/list-remove.png and /dev/null differ diff --git a/rtdata/images/Light/actions/lock-off.png b/rtdata/images/Light/actions/lock-off.png deleted file mode 100644 index af4489e34..000000000 Binary files a/rtdata/images/Light/actions/lock-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/lock-on.png b/rtdata/images/Light/actions/lock-on.png deleted file mode 100644 index 3c664e73e..000000000 Binary files a/rtdata/images/Light/actions/lock-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/media-usb.png b/rtdata/images/Light/actions/media-usb.png deleted file mode 100644 index e8b990a03..000000000 Binary files a/rtdata/images/Light/actions/media-usb.png and /dev/null differ diff --git a/rtdata/images/Light/actions/meta.png b/rtdata/images/Light/actions/meta.png deleted file mode 100644 index a2f61665a..000000000 Binary files a/rtdata/images/Light/actions/meta.png and /dev/null differ diff --git a/rtdata/images/Light/actions/nav-next.png b/rtdata/images/Light/actions/nav-next.png deleted file mode 100644 index d68e1df60..000000000 Binary files a/rtdata/images/Light/actions/nav-next.png and /dev/null differ diff --git a/rtdata/images/Light/actions/nav-prev.png b/rtdata/images/Light/actions/nav-prev.png deleted file mode 100644 index ad37367ba..000000000 Binary files a/rtdata/images/Light/actions/nav-prev.png and /dev/null differ diff --git a/rtdata/images/Light/actions/nav-sync.png b/rtdata/images/Light/actions/nav-sync.png deleted file mode 100644 index eb8445a40..000000000 Binary files a/rtdata/images/Light/actions/nav-sync.png and /dev/null differ diff --git a/rtdata/images/Light/actions/new-detail-window.png b/rtdata/images/Light/actions/new-detail-window.png deleted file mode 100644 index 23ae12faf..000000000 Binary files a/rtdata/images/Light/actions/new-detail-window.png and /dev/null differ diff --git a/rtdata/images/Light/actions/openhand.png b/rtdata/images/Light/actions/openhand.png deleted file mode 100644 index 28da9e5e6..000000000 Binary files a/rtdata/images/Light/actions/openhand.png and /dev/null differ diff --git a/rtdata/images/Light/actions/panel-to-bottom.png b/rtdata/images/Light/actions/panel-to-bottom.png deleted file mode 100644 index cc3b45b64..000000000 Binary files a/rtdata/images/Light/actions/panel-to-bottom.png and /dev/null differ diff --git a/rtdata/images/Light/actions/panel-to-left.png b/rtdata/images/Light/actions/panel-to-left.png deleted file mode 100644 index 2562b8f00..000000000 Binary files a/rtdata/images/Light/actions/panel-to-left.png and /dev/null differ diff --git a/rtdata/images/Light/actions/panel-to-right.png b/rtdata/images/Light/actions/panel-to-right.png deleted file mode 100644 index 3e05a3813..000000000 Binary files a/rtdata/images/Light/actions/panel-to-right.png and /dev/null differ diff --git a/rtdata/images/Light/actions/panel-to-top.png b/rtdata/images/Light/actions/panel-to-top.png deleted file mode 100644 index ff453efac..000000000 Binary files a/rtdata/images/Light/actions/panel-to-top.png and /dev/null differ diff --git a/rtdata/images/Light/actions/perspective-h1.png b/rtdata/images/Light/actions/perspective-h1.png deleted file mode 100644 index c857a1df5..000000000 Binary files a/rtdata/images/Light/actions/perspective-h1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/perspective-h2.png b/rtdata/images/Light/actions/perspective-h2.png deleted file mode 100644 index 0fb23ea9c..000000000 Binary files a/rtdata/images/Light/actions/perspective-h2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/perspective-v1.png b/rtdata/images/Light/actions/perspective-v1.png deleted file mode 100644 index eb94f4b9b..000000000 Binary files a/rtdata/images/Light/actions/perspective-v1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/perspective-v2.png b/rtdata/images/Light/actions/perspective-v2.png deleted file mode 100644 index 1b983a78d..000000000 Binary files a/rtdata/images/Light/actions/perspective-v2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/popuparrow.png b/rtdata/images/Light/actions/popuparrow.png deleted file mode 100644 index ba3956421..000000000 Binary files a/rtdata/images/Light/actions/popuparrow.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeB-off.png b/rtdata/images/Light/actions/previewmodeB-off.png deleted file mode 100644 index 0c9890437..000000000 Binary files a/rtdata/images/Light/actions/previewmodeB-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeB-on.png b/rtdata/images/Light/actions/previewmodeB-on.png deleted file mode 100644 index 466192b3a..000000000 Binary files a/rtdata/images/Light/actions/previewmodeB-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC0-off.png b/rtdata/images/Light/actions/previewmodeBC0-off.png deleted file mode 100644 index 28c024555..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC0-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC0-on.png b/rtdata/images/Light/actions/previewmodeBC0-on.png deleted file mode 100644 index f5e0b8000..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC0-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC1-off.png b/rtdata/images/Light/actions/previewmodeBC1-off.png deleted file mode 100644 index 4ac160b05..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC1-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC1-on.png b/rtdata/images/Light/actions/previewmodeBC1-on.png deleted file mode 100644 index 3e9b6874c..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC1-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC2-off.png b/rtdata/images/Light/actions/previewmodeBC2-off.png deleted file mode 100644 index bf3d97b2d..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC2-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC2-on.png b/rtdata/images/Light/actions/previewmodeBC2-on.png deleted file mode 100644 index 457453166..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC2-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC3-off.png b/rtdata/images/Light/actions/previewmodeBC3-off.png deleted file mode 100644 index 487ec777e..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC3-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeBC3-on.png b/rtdata/images/Light/actions/previewmodeBC3-on.png deleted file mode 100644 index 670b5b8b4..000000000 Binary files a/rtdata/images/Light/actions/previewmodeBC3-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeF-focusScreen-off.png b/rtdata/images/Light/actions/previewmodeF-focusScreen-off.png deleted file mode 100644 index 0aa81a705..000000000 Binary files a/rtdata/images/Light/actions/previewmodeF-focusScreen-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeF-focusScreen-on.png b/rtdata/images/Light/actions/previewmodeF-focusScreen-on.png deleted file mode 100644 index 3d46dedc7..000000000 Binary files a/rtdata/images/Light/actions/previewmodeF-focusScreen-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeF-off.png b/rtdata/images/Light/actions/previewmodeF-off.png deleted file mode 100644 index 5d52af569..000000000 Binary files a/rtdata/images/Light/actions/previewmodeF-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeF-on.png b/rtdata/images/Light/actions/previewmodeF-on.png deleted file mode 100644 index f0d0ef230..000000000 Binary files a/rtdata/images/Light/actions/previewmodeF-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeG-off.png b/rtdata/images/Light/actions/previewmodeG-off.png deleted file mode 100644 index 5c076c989..000000000 Binary files a/rtdata/images/Light/actions/previewmodeG-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeG-on.png b/rtdata/images/Light/actions/previewmodeG-on.png deleted file mode 100644 index ecc75c8e7..000000000 Binary files a/rtdata/images/Light/actions/previewmodeG-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeL-off.png b/rtdata/images/Light/actions/previewmodeL-off.png deleted file mode 100644 index 939dec642..000000000 Binary files a/rtdata/images/Light/actions/previewmodeL-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeL-on.png b/rtdata/images/Light/actions/previewmodeL-on.png deleted file mode 100644 index 92fe937e8..000000000 Binary files a/rtdata/images/Light/actions/previewmodeL-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeR-off.png b/rtdata/images/Light/actions/previewmodeR-off.png deleted file mode 100644 index b96e22c31..000000000 Binary files a/rtdata/images/Light/actions/previewmodeR-off.png and /dev/null differ diff --git a/rtdata/images/Light/actions/previewmodeR-on.png b/rtdata/images/Light/actions/previewmodeR-on.png deleted file mode 100644 index fb1e46e98..000000000 Binary files a/rtdata/images/Light/actions/previewmodeR-on.png and /dev/null differ diff --git a/rtdata/images/Light/actions/processing-pause.png b/rtdata/images/Light/actions/processing-pause.png deleted file mode 100644 index 36660d7e6..000000000 Binary files a/rtdata/images/Light/actions/processing-pause.png and /dev/null differ diff --git a/rtdata/images/Light/actions/processing-play.png b/rtdata/images/Light/actions/processing-play.png deleted file mode 100644 index 5e1acbac7..000000000 Binary files a/rtdata/images/Light/actions/processing-play.png and /dev/null differ diff --git a/rtdata/images/Light/actions/processing-thumbnail.png b/rtdata/images/Light/actions/processing-thumbnail.png deleted file mode 100644 index c95ce2ffa..000000000 Binary files a/rtdata/images/Light/actions/processing-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Light/actions/processing.png b/rtdata/images/Light/actions/processing.png deleted file mode 100644 index 28a598856..000000000 Binary files a/rtdata/images/Light/actions/processing.png and /dev/null differ diff --git a/rtdata/images/Light/actions/profile-filled.png b/rtdata/images/Light/actions/profile-filled.png deleted file mode 100644 index 7e5ae44bf..000000000 Binary files a/rtdata/images/Light/actions/profile-filled.png and /dev/null differ diff --git a/rtdata/images/Light/actions/profile-partial.png b/rtdata/images/Light/actions/profile-partial.png deleted file mode 100644 index 9bb666ae3..000000000 Binary files a/rtdata/images/Light/actions/profile-partial.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rated.png b/rtdata/images/Light/actions/rated.png deleted file mode 100644 index 6b238da70..000000000 Binary files a/rtdata/images/Light/actions/rated.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ratednot.png b/rtdata/images/Light/actions/ratednot.png deleted file mode 100644 index 33bc1935f..000000000 Binary files a/rtdata/images/Light/actions/ratednot.png and /dev/null differ diff --git a/rtdata/images/Light/actions/ratednotg.png b/rtdata/images/Light/actions/ratednotg.png deleted file mode 100644 index ff55f1646..000000000 Binary files a/rtdata/images/Light/actions/ratednotg.png and /dev/null differ diff --git a/rtdata/images/Light/actions/raw.png b/rtdata/images/Light/actions/raw.png deleted file mode 100644 index bf3e8f631..000000000 Binary files a/rtdata/images/Light/actions/raw.png and /dev/null differ diff --git a/rtdata/images/Light/actions/refresh-red.png b/rtdata/images/Light/actions/refresh-red.png deleted file mode 100644 index 157c4bd70..000000000 Binary files a/rtdata/images/Light/actions/refresh-red.png and /dev/null differ diff --git a/rtdata/images/Light/actions/refresh-white.png b/rtdata/images/Light/actions/refresh-white.png deleted file mode 100644 index 4536ce00d..000000000 Binary files a/rtdata/images/Light/actions/refresh-white.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-left-1.png b/rtdata/images/Light/actions/rotate-left-1.png deleted file mode 100644 index 869c9ed4a..000000000 Binary files a/rtdata/images/Light/actions/rotate-left-1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-left-2.png b/rtdata/images/Light/actions/rotate-left-2.png deleted file mode 100644 index 7aa5bd1ba..000000000 Binary files a/rtdata/images/Light/actions/rotate-left-2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-left-3.png b/rtdata/images/Light/actions/rotate-left-3.png deleted file mode 100644 index 5bf87bb2b..000000000 Binary files a/rtdata/images/Light/actions/rotate-left-3.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-left.png b/rtdata/images/Light/actions/rotate-left.png deleted file mode 100644 index f3851ba12..000000000 Binary files a/rtdata/images/Light/actions/rotate-left.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-right-1.png b/rtdata/images/Light/actions/rotate-right-1.png deleted file mode 100644 index 9d4d477cb..000000000 Binary files a/rtdata/images/Light/actions/rotate-right-1.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-right-2.png b/rtdata/images/Light/actions/rotate-right-2.png deleted file mode 100644 index bb4d98c66..000000000 Binary files a/rtdata/images/Light/actions/rotate-right-2.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-right-3.png b/rtdata/images/Light/actions/rotate-right-3.png deleted file mode 100644 index 4bf41091c..000000000 Binary files a/rtdata/images/Light/actions/rotate-right-3.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rotate-right.png b/rtdata/images/Light/actions/rotate-right.png deleted file mode 100644 index f9a728b8a..000000000 Binary files a/rtdata/images/Light/actions/rotate-right.png and /dev/null differ diff --git a/rtdata/images/Light/actions/rtwindow.png b/rtdata/images/Light/actions/rtwindow.png deleted file mode 100644 index 19dfa521a..000000000 Binary files a/rtdata/images/Light/actions/rtwindow.png and /dev/null differ diff --git a/rtdata/images/Light/actions/softProof.png b/rtdata/images/Light/actions/softProof.png deleted file mode 100644 index 3e5eb2f18..000000000 Binary files a/rtdata/images/Light/actions/softProof.png and /dev/null differ diff --git a/rtdata/images/Light/actions/spGamutCheck.png b/rtdata/images/Light/actions/spGamutCheck.png deleted file mode 100644 index b1ae3e423..000000000 Binary files a/rtdata/images/Light/actions/spGamutCheck.png and /dev/null differ diff --git a/rtdata/images/Light/actions/stock-flip-horizontal.png b/rtdata/images/Light/actions/stock-flip-horizontal.png deleted file mode 100644 index af8b4ac95..000000000 Binary files a/rtdata/images/Light/actions/stock-flip-horizontal.png and /dev/null differ diff --git a/rtdata/images/Light/actions/stock-flip-vertical.png b/rtdata/images/Light/actions/stock-flip-vertical.png deleted file mode 100644 index baf393fed..000000000 Binary files a/rtdata/images/Light/actions/stock-flip-vertical.png and /dev/null differ diff --git a/rtdata/images/Light/actions/stock-rotate-270.png b/rtdata/images/Light/actions/stock-rotate-270.png deleted file mode 100644 index ae46db66d..000000000 Binary files a/rtdata/images/Light/actions/stock-rotate-270.png and /dev/null differ diff --git a/rtdata/images/Light/actions/stock-rotate-90.png b/rtdata/images/Light/actions/stock-rotate-90.png deleted file mode 100644 index a125fe413..000000000 Binary files a/rtdata/images/Light/actions/stock-rotate-90.png and /dev/null differ diff --git a/rtdata/images/Light/actions/straighten-small.png b/rtdata/images/Light/actions/straighten-small.png deleted file mode 100644 index 5090d70f9..000000000 Binary files a/rtdata/images/Light/actions/straighten-small.png and /dev/null differ diff --git a/rtdata/images/Light/actions/straighten.png b/rtdata/images/Light/actions/straighten.png deleted file mode 100644 index 3810c5e8a..000000000 Binary files a/rtdata/images/Light/actions/straighten.png and /dev/null differ diff --git a/rtdata/images/Light/actions/toleftend.png b/rtdata/images/Light/actions/toleftend.png deleted file mode 100644 index 3fae3eae5..000000000 Binary files a/rtdata/images/Light/actions/toleftend.png and /dev/null differ diff --git a/rtdata/images/Light/actions/torightend.png b/rtdata/images/Light/actions/torightend.png deleted file mode 100644 index a6b33af2d..000000000 Binary files a/rtdata/images/Light/actions/torightend.png and /dev/null differ diff --git a/rtdata/images/Light/actions/transform.png b/rtdata/images/Light/actions/transform.png deleted file mode 100644 index 48f23e0b6..000000000 Binary files a/rtdata/images/Light/actions/transform.png and /dev/null differ diff --git a/rtdata/images/Light/actions/trash-hide-deleted.png b/rtdata/images/Light/actions/trash-hide-deleted.png deleted file mode 100644 index 95aaecdba..000000000 Binary files a/rtdata/images/Light/actions/trash-hide-deleted.png and /dev/null differ diff --git a/rtdata/images/Light/actions/trash-show-empty.png b/rtdata/images/Light/actions/trash-show-empty.png deleted file mode 100644 index dd35e4b30..000000000 Binary files a/rtdata/images/Light/actions/trash-show-empty.png and /dev/null differ diff --git a/rtdata/images/Light/actions/trash-show-full.png b/rtdata/images/Light/actions/trash-show-full.png deleted file mode 100644 index fd6eff338..000000000 Binary files a/rtdata/images/Light/actions/trash-show-full.png and /dev/null differ diff --git a/rtdata/images/Light/actions/trash-thumbnail.png b/rtdata/images/Light/actions/trash-thumbnail.png deleted file mode 100644 index 4adf53ebf..000000000 Binary files a/rtdata/images/Light/actions/trash-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Light/actions/trash.png b/rtdata/images/Light/actions/trash.png deleted file mode 100644 index dd35e4b30..000000000 Binary files a/rtdata/images/Light/actions/trash.png and /dev/null differ diff --git a/rtdata/images/Light/actions/unchanged-18.png b/rtdata/images/Light/actions/unchanged-18.png deleted file mode 100644 index 9d08dda26..000000000 Binary files a/rtdata/images/Light/actions/unchanged-18.png and /dev/null differ diff --git a/rtdata/images/Light/actions/unchanged-22.png b/rtdata/images/Light/actions/unchanged-22.png deleted file mode 100644 index db03d456a..000000000 Binary files a/rtdata/images/Light/actions/unchanged-22.png and /dev/null differ diff --git a/rtdata/images/Light/actions/undelete-rtl.png b/rtdata/images/Light/actions/undelete-rtl.png deleted file mode 100644 index 27f273bd6..000000000 Binary files a/rtdata/images/Light/actions/undelete-rtl.png and /dev/null differ diff --git a/rtdata/images/Light/actions/undelete-thumbnail-rtl.png b/rtdata/images/Light/actions/undelete-thumbnail-rtl.png deleted file mode 100644 index 7c26653a8..000000000 Binary files a/rtdata/images/Light/actions/undelete-thumbnail-rtl.png and /dev/null differ diff --git a/rtdata/images/Light/actions/undelete-thumbnail.png b/rtdata/images/Light/actions/undelete-thumbnail.png deleted file mode 100644 index 7c26653a8..000000000 Binary files a/rtdata/images/Light/actions/undelete-thumbnail.png and /dev/null differ diff --git a/rtdata/images/Light/actions/undelete.png b/rtdata/images/Light/actions/undelete.png deleted file mode 100644 index 27f273bd6..000000000 Binary files a/rtdata/images/Light/actions/undelete.png and /dev/null differ diff --git a/rtdata/images/Light/actions/warnhl.png b/rtdata/images/Light/actions/warnhl.png deleted file mode 100644 index 066241abc..000000000 Binary files a/rtdata/images/Light/actions/warnhl.png and /dev/null differ diff --git a/rtdata/images/Light/actions/warnsh.png b/rtdata/images/Light/actions/warnsh.png deleted file mode 100644 index 5621b88b4..000000000 Binary files a/rtdata/images/Light/actions/warnsh.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wavelet.png b/rtdata/images/Light/actions/wavelet.png deleted file mode 100644 index 3de85a8f1..000000000 Binary files a/rtdata/images/Light/actions/wavelet.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-auto.png b/rtdata/images/Light/actions/wb-auto.png deleted file mode 100644 index fa5c582ad..000000000 Binary files a/rtdata/images/Light/actions/wb-auto.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-camera.png b/rtdata/images/Light/actions/wb-camera.png deleted file mode 100644 index e3f4b9a01..000000000 Binary files a/rtdata/images/Light/actions/wb-camera.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-cloudy.png b/rtdata/images/Light/actions/wb-cloudy.png deleted file mode 100644 index a04cc56b5..000000000 Binary files a/rtdata/images/Light/actions/wb-cloudy.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-custom.png b/rtdata/images/Light/actions/wb-custom.png deleted file mode 100644 index 2cc95a999..000000000 Binary files a/rtdata/images/Light/actions/wb-custom.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-flash.png b/rtdata/images/Light/actions/wb-flash.png deleted file mode 100644 index 35f643e46..000000000 Binary files a/rtdata/images/Light/actions/wb-flash.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-fluorescent.png b/rtdata/images/Light/actions/wb-fluorescent.png deleted file mode 100644 index f0da5ba72..000000000 Binary files a/rtdata/images/Light/actions/wb-fluorescent.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-lamp.png b/rtdata/images/Light/actions/wb-lamp.png deleted file mode 100644 index 47f12d904..000000000 Binary files a/rtdata/images/Light/actions/wb-lamp.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-led.png b/rtdata/images/Light/actions/wb-led.png deleted file mode 100644 index 5c2ef46d7..000000000 Binary files a/rtdata/images/Light/actions/wb-led.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-shade.png b/rtdata/images/Light/actions/wb-shade.png deleted file mode 100644 index 617123893..000000000 Binary files a/rtdata/images/Light/actions/wb-shade.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-sun.png b/rtdata/images/Light/actions/wb-sun.png deleted file mode 100644 index 115c8a0cb..000000000 Binary files a/rtdata/images/Light/actions/wb-sun.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-tungsten.png b/rtdata/images/Light/actions/wb-tungsten.png deleted file mode 100644 index 61ad022c4..000000000 Binary files a/rtdata/images/Light/actions/wb-tungsten.png and /dev/null differ diff --git a/rtdata/images/Light/actions/wb-water.png b/rtdata/images/Light/actions/wb-water.png deleted file mode 100644 index a1ae414af..000000000 Binary files a/rtdata/images/Light/actions/wb-water.png and /dev/null differ diff --git a/rtdata/images/Light/actions/zoom-100-identifier.png b/rtdata/images/Light/actions/zoom-100-identifier.png deleted file mode 100644 index a07b63b83..000000000 Binary files a/rtdata/images/Light/actions/zoom-100-identifier.png and /dev/null differ diff --git a/rtdata/images/Light/devices/computer.png b/rtdata/images/Light/devices/computer.png deleted file mode 100644 index 5969fae78..000000000 Binary files a/rtdata/images/Light/devices/computer.png and /dev/null differ diff --git a/rtdata/images/Light/devices/drive-harddisk.png b/rtdata/images/Light/devices/drive-harddisk.png deleted file mode 100644 index 5969fae78..000000000 Binary files a/rtdata/images/Light/devices/drive-harddisk.png and /dev/null differ diff --git a/rtdata/images/Light/devices/drive-optical.png b/rtdata/images/Light/devices/drive-optical.png deleted file mode 100644 index 5e4ba680d..000000000 Binary files a/rtdata/images/Light/devices/drive-optical.png and /dev/null differ diff --git a/rtdata/images/Light/devices/drive-removable-media.png b/rtdata/images/Light/devices/drive-removable-media.png deleted file mode 100644 index 378f0cbbe..000000000 Binary files a/rtdata/images/Light/devices/drive-removable-media.png and /dev/null differ diff --git a/rtdata/images/Light/devices/gtk-cdrom.png b/rtdata/images/Light/devices/gtk-cdrom.png deleted file mode 100644 index 5e4ba680d..000000000 Binary files a/rtdata/images/Light/devices/gtk-cdrom.png and /dev/null differ diff --git a/rtdata/images/Light/devices/media-flash.png b/rtdata/images/Light/devices/media-flash.png deleted file mode 100644 index 5969fae78..000000000 Binary files a/rtdata/images/Light/devices/media-flash.png and /dev/null differ diff --git a/rtdata/images/Light/devices/media-floppy.png b/rtdata/images/Light/devices/media-floppy.png deleted file mode 100644 index 378f0cbbe..000000000 Binary files a/rtdata/images/Light/devices/media-floppy.png and /dev/null differ diff --git a/rtdata/images/Light/devices/media-optical-bd.png b/rtdata/images/Light/devices/media-optical-bd.png deleted file mode 100644 index 5e4ba680d..000000000 Binary files a/rtdata/images/Light/devices/media-optical-bd.png and /dev/null differ diff --git a/rtdata/images/Light/devices/media-optical-dvd.png b/rtdata/images/Light/devices/media-optical-dvd.png deleted file mode 100644 index 5e4ba680d..000000000 Binary files a/rtdata/images/Light/devices/media-optical-dvd.png and /dev/null differ diff --git a/rtdata/images/Light/devices/media-optical.png b/rtdata/images/Light/devices/media-optical.png deleted file mode 100644 index 5e4ba680d..000000000 Binary files a/rtdata/images/Light/devices/media-optical.png and /dev/null differ diff --git a/rtdata/images/Light/devices/media-tape.png b/rtdata/images/Light/devices/media-tape.png deleted file mode 100644 index 5969fae78..000000000 Binary files a/rtdata/images/Light/devices/media-tape.png and /dev/null differ diff --git a/rtdata/images/Light/index.theme b/rtdata/images/Light/index.theme deleted file mode 100644 index 1188aa465..000000000 --- a/rtdata/images/Light/index.theme +++ /dev/null @@ -1,42 +0,0 @@ -[Icon Theme] -Name=RawTherapee-Light -Comment=Light theme for RawTherapee -Inherits=hicolor -Example=folder - -Directories=actions,apps,categories,devices,emblems,places,status - -[actions] -Size=22 -Context=Actions -Type=Fixed - -[apps] -Size=22 -Context=Applications -Type=Fixed - -[categories] -Size=22 -Context=Categories -Type=Fixed - -[devices] -Size=22 -Context=Devices -Type=Fixed - -[emblems] -Size=22 -Context=Emblems -Type=Fixed - -[places] -Size=22 -Context=Places -Type=Fixed - -[status] -Size=22 -Context=Status -Type=Fixed diff --git a/rtdata/images/Light/places/folder.png b/rtdata/images/Light/places/folder.png deleted file mode 100644 index 19ea93f4c..000000000 Binary files a/rtdata/images/Light/places/folder.png and /dev/null differ diff --git a/rtdata/images/Light/places/gtk-directory.png b/rtdata/images/Light/places/gtk-directory.png deleted file mode 100644 index 19ea93f4c..000000000 Binary files a/rtdata/images/Light/places/gtk-directory.png and /dev/null differ diff --git a/rtdata/images/Light/places/user-desktop.png b/rtdata/images/Light/places/user-desktop.png deleted file mode 100644 index e11d7388e..000000000 Binary files a/rtdata/images/Light/places/user-desktop.png and /dev/null differ diff --git a/rtdata/images/Light/places/user-home.png b/rtdata/images/Light/places/user-home.png deleted file mode 100644 index 69868e8d5..000000000 Binary files a/rtdata/images/Light/places/user-home.png and /dev/null differ diff --git a/rtdata/images/PanelEnding.png b/rtdata/images/PanelEnding.png deleted file mode 100644 index b540adc66..000000000 Binary files a/rtdata/images/PanelEnding.png and /dev/null differ diff --git a/rtdata/images/beforeafter.png b/rtdata/images/beforeafter.png deleted file mode 100644 index a4b3fac7b..000000000 Binary files a/rtdata/images/beforeafter.png and /dev/null differ diff --git a/rtdata/images/cglabel0.png b/rtdata/images/cglabel0.png deleted file mode 100644 index f3f0a3b27..000000000 Binary files a/rtdata/images/cglabel0.png and /dev/null differ diff --git a/rtdata/images/cglabel1.png b/rtdata/images/cglabel1.png deleted file mode 100644 index 3d5d745b2..000000000 Binary files a/rtdata/images/cglabel1.png and /dev/null differ diff --git a/rtdata/images/cglabel2.png b/rtdata/images/cglabel2.png deleted file mode 100644 index f0bfb2e02..000000000 Binary files a/rtdata/images/cglabel2.png and /dev/null differ diff --git a/rtdata/images/cglabel3.png b/rtdata/images/cglabel3.png deleted file mode 100644 index 84aeceb47..000000000 Binary files a/rtdata/images/cglabel3.png and /dev/null differ diff --git a/rtdata/images/cglabel4.png b/rtdata/images/cglabel4.png deleted file mode 100644 index c6d2286ed..000000000 Binary files a/rtdata/images/cglabel4.png and /dev/null differ diff --git a/rtdata/images/cglabel5.png b/rtdata/images/cglabel5.png deleted file mode 100644 index 48568972d..000000000 Binary files a/rtdata/images/cglabel5.png and /dev/null differ diff --git a/rtdata/images/clabel0.png b/rtdata/images/clabel0.png deleted file mode 100644 index 65410ff22..000000000 Binary files a/rtdata/images/clabel0.png and /dev/null differ diff --git a/rtdata/images/clabel1.png b/rtdata/images/clabel1.png deleted file mode 100644 index 39d679aaa..000000000 Binary files a/rtdata/images/clabel1.png and /dev/null differ diff --git a/rtdata/images/clabel2.png b/rtdata/images/clabel2.png deleted file mode 100644 index b9316398a..000000000 Binary files a/rtdata/images/clabel2.png and /dev/null differ diff --git a/rtdata/images/clabel3.png b/rtdata/images/clabel3.png deleted file mode 100644 index e804d36a1..000000000 Binary files a/rtdata/images/clabel3.png and /dev/null differ diff --git a/rtdata/images/clabel4.png b/rtdata/images/clabel4.png deleted file mode 100644 index 5ac41db81..000000000 Binary files a/rtdata/images/clabel4.png and /dev/null differ diff --git a/rtdata/images/clabel5.png b/rtdata/images/clabel5.png deleted file mode 100644 index dbe190966..000000000 Binary files a/rtdata/images/clabel5.png and /dev/null differ diff --git a/rtdata/images/closedhand.png b/rtdata/images/closedhand.png deleted file mode 100644 index a08542071..000000000 Binary files a/rtdata/images/closedhand.png and /dev/null differ diff --git a/rtdata/images/colour.png b/rtdata/images/colour.png deleted file mode 100644 index e38094f02..000000000 Binary files a/rtdata/images/colour.png and /dev/null differ diff --git a/rtdata/images/crop-auto.png b/rtdata/images/crop-auto.png deleted file mode 100644 index 015a9555e..000000000 Binary files a/rtdata/images/crop-auto.png and /dev/null differ diff --git a/rtdata/images/crop.png b/rtdata/images/crop.png deleted file mode 100644 index 345fa209e..000000000 Binary files a/rtdata/images/crop.png and /dev/null differ diff --git a/rtdata/images/cross.png b/rtdata/images/cross.png deleted file mode 100644 index 6be9dde06..000000000 Binary files a/rtdata/images/cross.png and /dev/null differ diff --git a/rtdata/images/crossed-arrows-out.png b/rtdata/images/crossed-arrows-out.png deleted file mode 100644 index d4b8c2f8f..000000000 Binary files a/rtdata/images/crossed-arrows-out.png and /dev/null differ diff --git a/rtdata/images/curveType-NURBS.png b/rtdata/images/curveType-NURBS.png deleted file mode 100644 index b18128159..000000000 Binary files a/rtdata/images/curveType-NURBS.png and /dev/null differ diff --git a/rtdata/images/curveType-controlPoints.png b/rtdata/images/curveType-controlPoints.png deleted file mode 100644 index b8c4f447e..000000000 Binary files a/rtdata/images/curveType-controlPoints.png and /dev/null differ diff --git a/rtdata/images/curveType-flatLinear.png b/rtdata/images/curveType-flatLinear.png deleted file mode 100644 index ad061ef27..000000000 Binary files a/rtdata/images/curveType-flatLinear.png and /dev/null differ diff --git a/rtdata/images/curveType-linear.png b/rtdata/images/curveType-linear.png deleted file mode 100644 index a76331321..000000000 Binary files a/rtdata/images/curveType-linear.png and /dev/null differ diff --git a/rtdata/images/curveType-parametric.png b/rtdata/images/curveType-parametric.png deleted file mode 100644 index e1df7b699..000000000 Binary files a/rtdata/images/curveType-parametric.png and /dev/null differ diff --git a/rtdata/images/curveType-spline.png b/rtdata/images/curveType-spline.png deleted file mode 100644 index a179b901d..000000000 Binary files a/rtdata/images/curveType-spline.png and /dev/null differ diff --git a/rtdata/images/detail.png b/rtdata/images/detail.png deleted file mode 100644 index f4ad6e440..000000000 Binary files a/rtdata/images/detail.png and /dev/null differ diff --git a/rtdata/images/distortion-auto.png b/rtdata/images/distortion-auto.png deleted file mode 100644 index a0b9c114d..000000000 Binary files a/rtdata/images/distortion-auto.png and /dev/null differ diff --git a/rtdata/images/edited-small.png b/rtdata/images/edited-small.png deleted file mode 100644 index 7d6ecdede..000000000 Binary files a/rtdata/images/edited-small.png and /dev/null differ diff --git a/rtdata/images/edited.png b/rtdata/images/edited.png deleted file mode 100644 index 85c81b2e1..000000000 Binary files a/rtdata/images/edited.png and /dev/null differ diff --git a/rtdata/images/editedg-small.png b/rtdata/images/editedg-small.png deleted file mode 100644 index 1de271128..000000000 Binary files a/rtdata/images/editedg-small.png and /dev/null differ diff --git a/rtdata/images/editednot-small.png b/rtdata/images/editednot-small.png deleted file mode 100644 index c1a0299ed..000000000 Binary files a/rtdata/images/editednot-small.png and /dev/null differ diff --git a/rtdata/images/editednotg-small.png b/rtdata/images/editednotg-small.png deleted file mode 100644 index fa0de4fdf..000000000 Binary files a/rtdata/images/editednotg-small.png and /dev/null differ diff --git a/rtdata/images/empty.png b/rtdata/images/empty.png deleted file mode 100644 index fc5838fdb..000000000 Binary files a/rtdata/images/empty.png and /dev/null differ diff --git a/rtdata/images/exposure.png b/rtdata/images/exposure.png deleted file mode 100644 index 0579cdd75..000000000 Binary files a/rtdata/images/exposure.png and /dev/null differ diff --git a/rtdata/images/filter.png b/rtdata/images/filter.png deleted file mode 100644 index 1059a8122..000000000 Binary files a/rtdata/images/filter.png and /dev/null differ diff --git a/rtdata/images/filterclear.png b/rtdata/images/filterclear.png deleted file mode 100644 index 47b3f2725..000000000 Binary files a/rtdata/images/filterclear.png and /dev/null differ diff --git a/rtdata/images/folder.png b/rtdata/images/folder.png deleted file mode 100644 index 551db978a..000000000 Binary files a/rtdata/images/folder.png and /dev/null differ diff --git a/rtdata/images/fullscreen-exit.png b/rtdata/images/fullscreen-exit.png deleted file mode 100644 index 2946010be..000000000 Binary files a/rtdata/images/fullscreen-exit.png and /dev/null differ diff --git a/rtdata/images/fullscreen.png b/rtdata/images/fullscreen.png deleted file mode 100644 index 3d9fccc28..000000000 Binary files a/rtdata/images/fullscreen.png and /dev/null differ diff --git a/rtdata/images/grayrated.png b/rtdata/images/grayrated.png deleted file mode 100644 index c71a6d0c0..000000000 Binary files a/rtdata/images/grayrated.png and /dev/null differ diff --git a/rtdata/images/gtk-add.png b/rtdata/images/gtk-add.png deleted file mode 100644 index 21fc43cf3..000000000 Binary files a/rtdata/images/gtk-add.png and /dev/null differ diff --git a/rtdata/images/gtk-apply.png b/rtdata/images/gtk-apply.png deleted file mode 100644 index f0bb96bfe..000000000 Binary files a/rtdata/images/gtk-apply.png and /dev/null differ diff --git a/rtdata/images/gtk-close-small.png b/rtdata/images/gtk-close-small.png deleted file mode 100644 index b92be85b1..000000000 Binary files a/rtdata/images/gtk-close-small.png and /dev/null differ diff --git a/rtdata/images/gtk-close.png b/rtdata/images/gtk-close.png deleted file mode 100644 index a25b8c29a..000000000 Binary files a/rtdata/images/gtk-close.png and /dev/null differ diff --git a/rtdata/images/gtk-color-picker-small.png b/rtdata/images/gtk-color-picker-small.png deleted file mode 100644 index 2f7b6cc87..000000000 Binary files a/rtdata/images/gtk-color-picker-small.png and /dev/null differ diff --git a/rtdata/images/gtk-color-picker.png b/rtdata/images/gtk-color-picker.png deleted file mode 100644 index 0ad9bc4f6..000000000 Binary files a/rtdata/images/gtk-color-picker.png and /dev/null differ diff --git a/rtdata/images/gtk-open.png b/rtdata/images/gtk-open.png deleted file mode 100644 index 5e6286c37..000000000 Binary files a/rtdata/images/gtk-open.png and /dev/null differ diff --git a/rtdata/images/gtk-save-large.png b/rtdata/images/gtk-save-large.png deleted file mode 100644 index 11170bd22..000000000 Binary files a/rtdata/images/gtk-save-large.png and /dev/null differ diff --git a/rtdata/images/gtk-undo-ltr.png b/rtdata/images/gtk-undo-ltr.png deleted file mode 100644 index 343eda063..000000000 Binary files a/rtdata/images/gtk-undo-ltr.png and /dev/null differ diff --git a/rtdata/images/gtk-undo-rtl.png b/rtdata/images/gtk-undo-rtl.png deleted file mode 100644 index 404ec98a5..000000000 Binary files a/rtdata/images/gtk-undo-rtl.png and /dev/null differ diff --git a/rtdata/images/gtk-undoall-ltr.png b/rtdata/images/gtk-undoall-ltr.png deleted file mode 100644 index 4a9a30d39..000000000 Binary files a/rtdata/images/gtk-undoall-ltr.png and /dev/null differ diff --git a/rtdata/images/gtk-undoall-rtl.png b/rtdata/images/gtk-undoall-rtl.png deleted file mode 100644 index 35303720e..000000000 Binary files a/rtdata/images/gtk-undoall-rtl.png and /dev/null differ diff --git a/rtdata/images/gtk-zoom-100.png b/rtdata/images/gtk-zoom-100.png deleted file mode 100644 index c7fae09c3..000000000 Binary files a/rtdata/images/gtk-zoom-100.png and /dev/null differ diff --git a/rtdata/images/gtk-zoom-fit.png b/rtdata/images/gtk-zoom-fit.png deleted file mode 100644 index 799a99ba0..000000000 Binary files a/rtdata/images/gtk-zoom-fit.png and /dev/null differ diff --git a/rtdata/images/gtk-zoom-in.png b/rtdata/images/gtk-zoom-in.png deleted file mode 100644 index 913e61968..000000000 Binary files a/rtdata/images/gtk-zoom-in.png and /dev/null differ diff --git a/rtdata/images/gtk-zoom-out.png b/rtdata/images/gtk-zoom-out.png deleted file mode 100644 index 298138baa..000000000 Binary files a/rtdata/images/gtk-zoom-out.png and /dev/null differ diff --git a/rtdata/images/histBar.png b/rtdata/images/histBar.png deleted file mode 100644 index 8ebdf4fab..000000000 Binary files a/rtdata/images/histBar.png and /dev/null differ diff --git a/rtdata/images/histBlue.png b/rtdata/images/histBlue.png deleted file mode 100644 index b49a01dc7..000000000 Binary files a/rtdata/images/histBlue.png and /dev/null differ diff --git a/rtdata/images/histGreen.png b/rtdata/images/histGreen.png deleted file mode 100644 index 559b7d78a..000000000 Binary files a/rtdata/images/histGreen.png and /dev/null differ diff --git a/rtdata/images/histRaw.png b/rtdata/images/histRaw.png deleted file mode 100644 index 30e10cf09..000000000 Binary files a/rtdata/images/histRaw.png and /dev/null differ diff --git a/rtdata/images/histRed.png b/rtdata/images/histRed.png deleted file mode 100644 index 91bb9f2f5..000000000 Binary files a/rtdata/images/histRed.png and /dev/null differ diff --git a/rtdata/images/histValue.png b/rtdata/images/histValue.png deleted file mode 100644 index 36d47564e..000000000 Binary files a/rtdata/images/histValue.png and /dev/null differ diff --git a/rtdata/images/image-editor.png b/rtdata/images/image-editor.png deleted file mode 100644 index 9f9a335dc..000000000 Binary files a/rtdata/images/image-editor.png and /dev/null differ diff --git a/rtdata/images/info.png b/rtdata/images/info.png deleted file mode 100644 index 94245aefd..000000000 Binary files a/rtdata/images/info.png and /dev/null differ diff --git a/rtdata/images/list-add-small.png b/rtdata/images/list-add-small.png deleted file mode 100644 index d26852798..000000000 Binary files a/rtdata/images/list-add-small.png and /dev/null differ diff --git a/rtdata/images/list-remove-red-small.png b/rtdata/images/list-remove-red-small.png deleted file mode 100644 index ea67d1221..000000000 Binary files a/rtdata/images/list-remove-red-small.png and /dev/null differ diff --git a/rtdata/images/list-remove.png b/rtdata/images/list-remove.png deleted file mode 100644 index 85e1c30b3..000000000 Binary files a/rtdata/images/list-remove.png and /dev/null differ diff --git a/rtdata/images/lock-off.png b/rtdata/images/lock-off.png deleted file mode 100644 index 976af2977..000000000 Binary files a/rtdata/images/lock-off.png and /dev/null differ diff --git a/rtdata/images/lock-on.png b/rtdata/images/lock-on.png deleted file mode 100644 index 9c4bcd046..000000000 Binary files a/rtdata/images/lock-on.png and /dev/null differ diff --git a/rtdata/images/logoicon-wind.png b/rtdata/images/logoicon-wind.png deleted file mode 100644 index 39e2819da..000000000 Binary files a/rtdata/images/logoicon-wind.png and /dev/null differ diff --git a/rtdata/images/media-usb.png b/rtdata/images/media-usb.png deleted file mode 100644 index e9a279da1..000000000 Binary files a/rtdata/images/media-usb.png and /dev/null differ diff --git a/rtdata/images/meta.png b/rtdata/images/meta.png deleted file mode 100644 index 6f0c4185d..000000000 Binary files a/rtdata/images/meta.png and /dev/null differ diff --git a/rtdata/images/move-1D-h.png b/rtdata/images/move-1D-h.png deleted file mode 100644 index 44babcfb4..000000000 Binary files a/rtdata/images/move-1D-h.png and /dev/null differ diff --git a/rtdata/images/move-1D-v.png b/rtdata/images/move-1D-v.png deleted file mode 100644 index cbc1c7e68..000000000 Binary files a/rtdata/images/move-1D-v.png and /dev/null differ diff --git a/rtdata/images/move-2D.png b/rtdata/images/move-2D.png deleted file mode 100644 index 27e7c1e67..000000000 Binary files a/rtdata/images/move-2D.png and /dev/null differ diff --git a/rtdata/images/move-rotate.png b/rtdata/images/move-rotate.png deleted file mode 100644 index 70309972b..000000000 Binary files a/rtdata/images/move-rotate.png and /dev/null differ diff --git a/rtdata/images/network.png b/rtdata/images/network.png deleted file mode 100644 index 8a77e5d92..000000000 Binary files a/rtdata/images/network.png and /dev/null differ diff --git a/rtdata/images/nocolorlabel.png b/rtdata/images/nocolorlabel.png deleted file mode 100644 index be61570b0..000000000 Binary files a/rtdata/images/nocolorlabel.png and /dev/null differ diff --git a/rtdata/images/non-themed/png/empty.png b/rtdata/images/non-themed/png/empty.png new file mode 100644 index 000000000..534ddcb72 Binary files /dev/null and b/rtdata/images/non-themed/png/empty.png differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-128.png b/rtdata/images/non-themed/png/rawtherapee-logo-128.png new file mode 100644 index 000000000..0a224b3d9 Binary files /dev/null and b/rtdata/images/non-themed/png/rawtherapee-logo-128.png differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-16.png b/rtdata/images/non-themed/png/rawtherapee-logo-16.png new file mode 100644 index 000000000..7b67f7408 Binary files /dev/null and b/rtdata/images/non-themed/png/rawtherapee-logo-16.png differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-24.png b/rtdata/images/non-themed/png/rawtherapee-logo-24.png new file mode 100644 index 000000000..6b13e0c98 Binary files /dev/null and b/rtdata/images/non-themed/png/rawtherapee-logo-24.png differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-256.png b/rtdata/images/non-themed/png/rawtherapee-logo-256.png new file mode 100644 index 000000000..00fdb390f Binary files /dev/null and b/rtdata/images/non-themed/png/rawtherapee-logo-256.png differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-48.png b/rtdata/images/non-themed/png/rawtherapee-logo-48.png new file mode 100644 index 000000000..cbd46b20e Binary files /dev/null and b/rtdata/images/non-themed/png/rawtherapee-logo-48.png differ diff --git a/rtdata/images/splash.png b/rtdata/images/non-themed/png/splash.png similarity index 100% rename from rtdata/images/splash.png rename to rtdata/images/non-themed/png/splash.png diff --git a/rtdata/icons/RT.ico b/rtdata/images/non-themed/rawtherapee.ico similarity index 100% rename from rtdata/icons/RT.ico rename to rtdata/images/non-themed/rawtherapee.ico diff --git a/rtdata/images/non-themed/rt-logo.svg b/rtdata/images/non-themed/rt-logo.svg new file mode 100644 index 000000000..b257e1eb2 --- /dev/null +++ b/rtdata/images/non-themed/rt-logo.svg @@ -0,0 +1,1060 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + Select the desired element and apply one of the effects in the Filter Editor. You might need to ungroup the element before applying. For example to set the RT ring to have a colorful glow, you just need to select it and enable the "ring glow" or "ring shadow" effect. You can change the flood color of the "ring shadow" effect to make it white if you want to make the logo usable on a dark background. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Raw + Therapee + + "Raw" font Eras-UltraBlk, 69px, -3px spacing between characters, skewed 2° to the right."Therapee" font Eras-Medium, 68px, 4px spacing between characters, skewed 2° to the right.Both have a dropshadow with an opacity of 0.40 and Gaussian blur standard deviation of 3.5. Eras font from "freefonts-0.10":ftp://ftp.gimp.org/pub/gimp/fonts/ RawTherapee logo design version 1.0 from 2014-01-16 | www.rawtherapee.com + + + + + + + + + + + + + + + + Object to path:This is what it should look like. + diff --git a/rtdata/images/rt_splash.svg b/rtdata/images/non-themed/rt-splash.svg similarity index 100% rename from rtdata/images/rt_splash.svg rename to rtdata/images/non-themed/rt-splash.svg diff --git a/rtdata/images/openhand.png b/rtdata/images/openhand.png deleted file mode 100644 index e52a28067..000000000 Binary files a/rtdata/images/openhand.png and /dev/null differ diff --git a/rtdata/images/panel-to-bottom.png b/rtdata/images/panel-to-bottom.png deleted file mode 100644 index 4e3b6057d..000000000 Binary files a/rtdata/images/panel-to-bottom.png and /dev/null differ diff --git a/rtdata/images/panel-to-left.png b/rtdata/images/panel-to-left.png deleted file mode 100644 index 99821881d..000000000 Binary files a/rtdata/images/panel-to-left.png and /dev/null differ diff --git a/rtdata/images/panel-to-right.png b/rtdata/images/panel-to-right.png deleted file mode 100644 index 6037c1fa9..000000000 Binary files a/rtdata/images/panel-to-right.png and /dev/null differ diff --git a/rtdata/images/panel-to-top.png b/rtdata/images/panel-to-top.png deleted file mode 100644 index b129e9d4c..000000000 Binary files a/rtdata/images/panel-to-top.png and /dev/null differ diff --git a/rtdata/images/popuparrow.png b/rtdata/images/popuparrow.png deleted file mode 100644 index f933a71ca..000000000 Binary files a/rtdata/images/popuparrow.png and /dev/null differ diff --git a/rtdata/images/processing-pause.png b/rtdata/images/processing-pause.png deleted file mode 100644 index dc3c6b633..000000000 Binary files a/rtdata/images/processing-pause.png and /dev/null differ diff --git a/rtdata/images/processing-play.png b/rtdata/images/processing-play.png deleted file mode 100644 index e653de0f1..000000000 Binary files a/rtdata/images/processing-play.png and /dev/null differ diff --git a/rtdata/images/processing.png b/rtdata/images/processing.png deleted file mode 100644 index 2a602d656..000000000 Binary files a/rtdata/images/processing.png and /dev/null differ diff --git a/rtdata/images/rated.png b/rtdata/images/rated.png deleted file mode 100644 index 99d6b73ba..000000000 Binary files a/rtdata/images/rated.png and /dev/null differ diff --git a/rtdata/images/ratednot.png b/rtdata/images/ratednot.png deleted file mode 100644 index ed7c561df..000000000 Binary files a/rtdata/images/ratednot.png and /dev/null differ diff --git a/rtdata/images/ratednotg.png b/rtdata/images/ratednotg.png deleted file mode 100644 index 2f619d755..000000000 Binary files a/rtdata/images/ratednotg.png and /dev/null differ diff --git a/rtdata/images/raw.png b/rtdata/images/raw.png deleted file mode 100644 index aa8d0bb6d..000000000 Binary files a/rtdata/images/raw.png and /dev/null differ diff --git a/rtdata/images/recent-save.png b/rtdata/images/recent-save.png deleted file mode 100644 index be5de85d9..000000000 Binary files a/rtdata/images/recent-save.png and /dev/null differ diff --git a/rtdata/images/refresh-red.png b/rtdata/images/refresh-red.png deleted file mode 100644 index 24dc27e64..000000000 Binary files a/rtdata/images/refresh-red.png and /dev/null differ diff --git a/rtdata/images/refresh-white.png b/rtdata/images/refresh-white.png deleted file mode 100644 index c4143da34..000000000 Binary files a/rtdata/images/refresh-white.png and /dev/null differ diff --git a/rtdata/images/rt-logo-large.png b/rtdata/images/rt-logo-large.png deleted file mode 100644 index f2cde46b7..000000000 Binary files a/rtdata/images/rt-logo-large.png and /dev/null differ diff --git a/rtdata/images/rt-logo-medium.png b/rtdata/images/rt-logo-medium.png deleted file mode 100644 index a2c2366f1..000000000 Binary files a/rtdata/images/rt-logo-medium.png and /dev/null differ diff --git a/rtdata/images/rt-logo-small.png b/rtdata/images/rt-logo-small.png deleted file mode 100644 index cf306e433..000000000 Binary files a/rtdata/images/rt-logo-small.png and /dev/null differ diff --git a/rtdata/images/rt-logo-tiny.png b/rtdata/images/rt-logo-tiny.png deleted file mode 100644 index f1034f149..000000000 Binary files a/rtdata/images/rt-logo-tiny.png and /dev/null differ diff --git a/rtdata/images/saved.png b/rtdata/images/saved.png deleted file mode 100644 index 2a465c0f2..000000000 Binary files a/rtdata/images/saved.png and /dev/null differ diff --git a/rtdata/images/savedg.png b/rtdata/images/savedg.png deleted file mode 100644 index 6855b7c2e..000000000 Binary files a/rtdata/images/savedg.png and /dev/null differ diff --git a/rtdata/images/savednot.png b/rtdata/images/savednot.png deleted file mode 100644 index 532e8b366..000000000 Binary files a/rtdata/images/savednot.png and /dev/null differ diff --git a/rtdata/images/savednotg.png b/rtdata/images/savednotg.png deleted file mode 100644 index c6079a1ed..000000000 Binary files a/rtdata/images/savednotg.png and /dev/null differ diff --git a/rtdata/images/stock-flip-horizontal.png b/rtdata/images/stock-flip-horizontal.png deleted file mode 100644 index 9c42f276e..000000000 Binary files a/rtdata/images/stock-flip-horizontal.png and /dev/null differ diff --git a/rtdata/images/stock-flip-vertical.png b/rtdata/images/stock-flip-vertical.png deleted file mode 100644 index 2b838c15b..000000000 Binary files a/rtdata/images/stock-flip-vertical.png and /dev/null differ diff --git a/rtdata/images/stock-rotate-270.png b/rtdata/images/stock-rotate-270.png deleted file mode 100644 index 2c6e23d37..000000000 Binary files a/rtdata/images/stock-rotate-270.png and /dev/null differ diff --git a/rtdata/images/stock-rotate-90.png b/rtdata/images/stock-rotate-90.png deleted file mode 100644 index 31cd17760..000000000 Binary files a/rtdata/images/stock-rotate-90.png and /dev/null differ diff --git a/rtdata/images/straighten-small.png b/rtdata/images/straighten-small.png deleted file mode 100644 index c750356ab..000000000 Binary files a/rtdata/images/straighten-small.png and /dev/null differ diff --git a/rtdata/images/straighten.png b/rtdata/images/straighten.png deleted file mode 100644 index 955af8f0a..000000000 Binary files a/rtdata/images/straighten.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/add-small.png b/rtdata/images/themed/png/dark/add-small.png new file mode 100644 index 000000000..44a3d8639 Binary files /dev/null and b/rtdata/images/themed/png/dark/add-small.png differ diff --git a/rtdata/images/themed/png/dark/add.png b/rtdata/images/themed/png/dark/add.png new file mode 100644 index 000000000..6b401bc87 Binary files /dev/null and b/rtdata/images/themed/png/dark/add.png differ diff --git a/rtdata/images/themed/png/dark/aperture.png b/rtdata/images/themed/png/dark/aperture.png new file mode 100644 index 000000000..a80fda199 Binary files /dev/null and b/rtdata/images/themed/png/dark/aperture.png differ diff --git a/rtdata/images/themed/png/dark/arrow-down-small.png b/rtdata/images/themed/png/dark/arrow-down-small.png new file mode 100644 index 000000000..3c1b4033a Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow-down-small.png differ diff --git a/rtdata/images/themed/png/dark/arrow-left-small.png b/rtdata/images/themed/png/dark/arrow-left-small.png new file mode 100644 index 000000000..b8245b953 Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow-left-small.png differ diff --git a/rtdata/images/themed/png/dark/arrow-right-small.png b/rtdata/images/themed/png/dark/arrow-right-small.png new file mode 100644 index 000000000..83177a23a Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow-right-small.png differ diff --git a/rtdata/images/themed/png/dark/arrow-up-small.png b/rtdata/images/themed/png/dark/arrow-up-small.png new file mode 100644 index 000000000..0483b3e73 Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow-up-small.png differ diff --git a/rtdata/images/themed/png/dark/arrow-updown.png b/rtdata/images/themed/png/dark/arrow-updown.png new file mode 100644 index 000000000..cd2c0b14e Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow-updown.png differ diff --git a/rtdata/images/themed/png/dark/arrow2-left.png b/rtdata/images/themed/png/dark/arrow2-left.png new file mode 100644 index 000000000..dd0c0c3d7 Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow2-left.png differ diff --git a/rtdata/images/themed/png/dark/arrow2-right.png b/rtdata/images/themed/png/dark/arrow2-right.png new file mode 100644 index 000000000..2ee87ec71 Binary files /dev/null and b/rtdata/images/themed/png/dark/arrow2-right.png differ diff --git a/rtdata/images/themed/png/dark/atom.png b/rtdata/images/themed/png/dark/atom.png new file mode 100644 index 000000000..9de042fbb Binary files /dev/null and b/rtdata/images/themed/png/dark/atom.png differ diff --git a/rtdata/images/themed/png/dark/bayer.png b/rtdata/images/themed/png/dark/bayer.png new file mode 100644 index 000000000..035318b9a Binary files /dev/null and b/rtdata/images/themed/png/dark/bayer.png differ diff --git a/rtdata/images/themed/png/dark/beforeafter.png b/rtdata/images/themed/png/dark/beforeafter.png new file mode 100644 index 000000000..25bd64b5a Binary files /dev/null and b/rtdata/images/themed/png/dark/beforeafter.png differ diff --git a/rtdata/images/themed/png/dark/cancel-small.png b/rtdata/images/themed/png/dark/cancel-small.png new file mode 100644 index 000000000..8a812e8f3 Binary files /dev/null and b/rtdata/images/themed/png/dark/cancel-small.png differ diff --git a/rtdata/images/themed/png/dark/cancel.png b/rtdata/images/themed/png/dark/cancel.png new file mode 100644 index 000000000..6eda05c50 Binary files /dev/null and b/rtdata/images/themed/png/dark/cancel.png differ diff --git a/rtdata/images/themed/png/dark/circle-black-small.png b/rtdata/images/themed/png/dark/circle-black-small.png new file mode 100644 index 000000000..f18a415b6 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-black-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-blue-green-small.png b/rtdata/images/themed/png/dark/circle-blue-green-small.png new file mode 100644 index 000000000..247931823 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-blue-green-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-blue-red-small.png b/rtdata/images/themed/png/dark/circle-blue-red-small.png new file mode 100644 index 000000000..d88a01330 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-blue-red-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-blue-small.png b/rtdata/images/themed/png/dark/circle-blue-small.png new file mode 100644 index 000000000..2c8ff48fd Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-blue-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-blue-yellow-small.png b/rtdata/images/themed/png/dark/circle-blue-yellow-small.png new file mode 100644 index 000000000..0585b2195 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-blue-yellow-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-cyan-red-small.png b/rtdata/images/themed/png/dark/circle-cyan-red-small.png new file mode 100644 index 000000000..ed7003161 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-cyan-red-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-cyan-small.png b/rtdata/images/themed/png/dark/circle-cyan-small.png new file mode 100644 index 000000000..84f873a2c Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-cyan-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-darkgray-small.png b/rtdata/images/themed/png/dark/circle-darkgray-small.png new file mode 100644 index 000000000..e706b1eba Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-darkgray-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-blue-small.png b/rtdata/images/themed/png/dark/circle-empty-blue-small.png new file mode 100644 index 000000000..d53b3516e Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-blue-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-darkgray-small.png b/rtdata/images/themed/png/dark/circle-empty-darkgray-small.png new file mode 100644 index 000000000..4f0f0f4c7 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-darkgray-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-gray-small.png b/rtdata/images/themed/png/dark/circle-empty-gray-small.png new file mode 100644 index 000000000..b3a57c83b Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-gray-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-green-small.png b/rtdata/images/themed/png/dark/circle-empty-green-small.png new file mode 100644 index 000000000..3b1444d37 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-green-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-purple-small.png b/rtdata/images/themed/png/dark/circle-empty-purple-small.png new file mode 100644 index 000000000..e61da8e9f Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-purple-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-red-small.png b/rtdata/images/themed/png/dark/circle-empty-red-small.png new file mode 100644 index 000000000..bf8035931 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-red-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-empty-yellow-small.png b/rtdata/images/themed/png/dark/circle-empty-yellow-small.png new file mode 100644 index 000000000..9a3ca9bd8 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-empty-yellow-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-gray-blue-small.png b/rtdata/images/themed/png/dark/circle-gray-blue-small.png new file mode 100644 index 000000000..01d5da881 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-gray-blue-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-gray-green-small.png b/rtdata/images/themed/png/dark/circle-gray-green-small.png new file mode 100644 index 000000000..2290b708f Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-gray-green-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-gray-red-small.png b/rtdata/images/themed/png/dark/circle-gray-red-small.png new file mode 100644 index 000000000..29afda33b Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-gray-red-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-gray-small.png b/rtdata/images/themed/png/dark/circle-gray-small.png new file mode 100644 index 000000000..18ad6330a Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-gray-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-green-blue-small.png b/rtdata/images/themed/png/dark/circle-green-blue-small.png new file mode 100644 index 000000000..1d6e60252 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-green-blue-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-green-red-small.png b/rtdata/images/themed/png/dark/circle-green-red-small.png new file mode 100644 index 000000000..96f86b1b9 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-green-red-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-green-small.png b/rtdata/images/themed/png/dark/circle-green-small.png new file mode 100644 index 000000000..88270e0cb Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-green-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-magenta-small.png b/rtdata/images/themed/png/dark/circle-magenta-small.png new file mode 100644 index 000000000..cce26e1f2 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-magenta-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-orange-small.png b/rtdata/images/themed/png/dark/circle-orange-small.png new file mode 100644 index 000000000..5894f0987 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-orange-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-purple-small.png b/rtdata/images/themed/png/dark/circle-purple-small.png new file mode 100644 index 000000000..9fe4eb0d6 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-purple-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-red-blue-small.png b/rtdata/images/themed/png/dark/circle-red-blue-small.png new file mode 100644 index 000000000..e70ef22f6 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-red-blue-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-red-cyan-small.png b/rtdata/images/themed/png/dark/circle-red-cyan-small.png new file mode 100644 index 000000000..92b03b953 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-red-cyan-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-red-green-small.png b/rtdata/images/themed/png/dark/circle-red-green-small.png new file mode 100644 index 000000000..4572e019f Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-red-green-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-red-small.png b/rtdata/images/themed/png/dark/circle-red-small.png new file mode 100644 index 000000000..a8c9cecec Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-red-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-white-small.png b/rtdata/images/themed/png/dark/circle-white-small.png new file mode 100644 index 000000000..acf4f8b76 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-white-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-yellow-blue-small.png b/rtdata/images/themed/png/dark/circle-yellow-blue-small.png new file mode 100644 index 000000000..1f7aec9f2 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-yellow-blue-small.png differ diff --git a/rtdata/images/themed/png/dark/circle-yellow-small.png b/rtdata/images/themed/png/dark/circle-yellow-small.png new file mode 100644 index 000000000..1c5678ac2 Binary files /dev/null and b/rtdata/images/themed/png/dark/circle-yellow-small.png differ diff --git a/rtdata/images/themed/png/dark/color-circles.png b/rtdata/images/themed/png/dark/color-circles.png new file mode 100644 index 000000000..f4b974b13 Binary files /dev/null and b/rtdata/images/themed/png/dark/color-circles.png differ diff --git a/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png b/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png new file mode 100644 index 000000000..5dcdacf1f Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/color-picker-add.png b/rtdata/images/themed/png/dark/color-picker-add.png new file mode 100644 index 000000000..fc4b040e2 Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker-add.png differ diff --git a/rtdata/images/themed/png/dark/color-picker-bars.png b/rtdata/images/themed/png/dark/color-picker-bars.png new file mode 100644 index 000000000..66e749864 Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker-bars.png differ diff --git a/rtdata/images/themed/png/dark/color-picker-hicontrast.png b/rtdata/images/themed/png/dark/color-picker-hicontrast.png new file mode 100644 index 000000000..c7bfb850b Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/color-picker-hide.png b/rtdata/images/themed/png/dark/color-picker-hide.png new file mode 100644 index 000000000..0bd4fafba Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker-hide.png differ diff --git a/rtdata/images/themed/png/dark/color-picker.png b/rtdata/images/themed/png/dark/color-picker.png new file mode 100644 index 000000000..f0174fd44 Binary files /dev/null and b/rtdata/images/themed/png/dark/color-picker.png differ diff --git a/rtdata/images/themed/png/dark/contrastmask-off.png b/rtdata/images/themed/png/dark/contrastmask-off.png new file mode 100644 index 000000000..f551f5413 Binary files /dev/null and b/rtdata/images/themed/png/dark/contrastmask-off.png differ diff --git a/rtdata/images/themed/png/dark/contrastmask-on.png b/rtdata/images/themed/png/dark/contrastmask-on.png new file mode 100644 index 000000000..28ea71f52 Binary files /dev/null and b/rtdata/images/themed/png/dark/contrastmask-on.png differ diff --git a/rtdata/images/themed/png/dark/copy.png b/rtdata/images/themed/png/dark/copy.png new file mode 100644 index 000000000..3b51949ed Binary files /dev/null and b/rtdata/images/themed/png/dark/copy.png differ diff --git a/rtdata/images/themed/png/dark/crop-auto-small.png b/rtdata/images/themed/png/dark/crop-auto-small.png new file mode 100644 index 000000000..d7942888d Binary files /dev/null and b/rtdata/images/themed/png/dark/crop-auto-small.png differ diff --git a/rtdata/images/themed/png/dark/crop-auto.png b/rtdata/images/themed/png/dark/crop-auto.png new file mode 100644 index 000000000..52cbd9e77 Binary files /dev/null and b/rtdata/images/themed/png/dark/crop-auto.png differ diff --git a/rtdata/images/themed/png/dark/crop-point-hicontrast.png b/rtdata/images/themed/png/dark/crop-point-hicontrast.png new file mode 100644 index 000000000..65aa29856 Binary files /dev/null and b/rtdata/images/themed/png/dark/crop-point-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/crop-small.png b/rtdata/images/themed/png/dark/crop-small.png new file mode 100644 index 000000000..aa278c16c Binary files /dev/null and b/rtdata/images/themed/png/dark/crop-small.png differ diff --git a/rtdata/images/themed/png/dark/crop.png b/rtdata/images/themed/png/dark/crop.png new file mode 100644 index 000000000..d8a290eec Binary files /dev/null and b/rtdata/images/themed/png/dark/crop.png differ diff --git a/rtdata/images/themed/png/dark/crossed-arrows-in.png b/rtdata/images/themed/png/dark/crossed-arrows-in.png new file mode 100644 index 000000000..531803679 Binary files /dev/null and b/rtdata/images/themed/png/dark/crossed-arrows-in.png differ diff --git a/rtdata/images/themed/png/dark/crossed-arrows-out.png b/rtdata/images/themed/png/dark/crossed-arrows-out.png new file mode 100644 index 000000000..c05eb3fe8 Binary files /dev/null and b/rtdata/images/themed/png/dark/crossed-arrows-out.png differ diff --git a/rtdata/images/themed/png/dark/crosshair-adjust.png b/rtdata/images/themed/png/dark/crosshair-adjust.png new file mode 100644 index 000000000..8536e8f09 Binary files /dev/null and b/rtdata/images/themed/png/dark/crosshair-adjust.png differ diff --git a/rtdata/images/themed/png/dark/crosshair-hicontrast.png b/rtdata/images/themed/png/dark/crosshair-hicontrast.png new file mode 100644 index 000000000..078512803 Binary files /dev/null and b/rtdata/images/themed/png/dark/crosshair-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/crosshair-node-curve.png b/rtdata/images/themed/png/dark/crosshair-node-curve.png new file mode 100644 index 000000000..08d6e00ff Binary files /dev/null and b/rtdata/images/themed/png/dark/crosshair-node-curve.png differ diff --git a/rtdata/images/themed/png/dark/crosshair-small.png b/rtdata/images/themed/png/dark/crosshair-small.png new file mode 100644 index 000000000..66db0bd42 Binary files /dev/null and b/rtdata/images/themed/png/dark/crosshair-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-controlpoints-small.png b/rtdata/images/themed/png/dark/curve-controlpoints-small.png new file mode 100644 index 000000000..e4107e5e4 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-controlpoints-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-controlpoints.png b/rtdata/images/themed/png/dark/curve-controlpoints.png new file mode 100644 index 000000000..e85d1a214 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-controlpoints.png differ diff --git a/rtdata/images/themed/png/dark/curve-flat-small.png b/rtdata/images/themed/png/dark/curve-flat-small.png new file mode 100644 index 000000000..61893e320 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-flat-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-flat.png b/rtdata/images/themed/png/dark/curve-flat.png new file mode 100644 index 000000000..7621dd8a0 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-flat.png differ diff --git a/rtdata/images/themed/png/dark/curve-linear-small.png b/rtdata/images/themed/png/dark/curve-linear-small.png new file mode 100644 index 000000000..723d29e93 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-linear-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-linear.png b/rtdata/images/themed/png/dark/curve-linear.png new file mode 100644 index 000000000..60a8b3d73 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-linear.png differ diff --git a/rtdata/images/themed/png/dark/curve-nurbs-small.png b/rtdata/images/themed/png/dark/curve-nurbs-small.png new file mode 100644 index 000000000..0ba221d92 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-nurbs-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-nurbs.png b/rtdata/images/themed/png/dark/curve-nurbs.png new file mode 100644 index 000000000..8d9425a0b Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-nurbs.png differ diff --git a/rtdata/images/themed/png/dark/curve-parametric-small.png b/rtdata/images/themed/png/dark/curve-parametric-small.png new file mode 100644 index 000000000..237b76125 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-parametric-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-parametric.png b/rtdata/images/themed/png/dark/curve-parametric.png new file mode 100644 index 000000000..97f3ac96b Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-parametric.png differ diff --git a/rtdata/images/themed/png/dark/curve-spline-small.png b/rtdata/images/themed/png/dark/curve-spline-small.png new file mode 100644 index 000000000..763beda56 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-spline-small.png differ diff --git a/rtdata/images/themed/png/dark/curve-spline.png b/rtdata/images/themed/png/dark/curve-spline.png new file mode 100644 index 000000000..c86105d46 Binary files /dev/null and b/rtdata/images/themed/png/dark/curve-spline.png differ diff --git a/rtdata/images/themed/png/dark/detail.png b/rtdata/images/themed/png/dark/detail.png new file mode 100644 index 000000000..73ee6a9f0 Binary files /dev/null and b/rtdata/images/themed/png/dark/detail.png differ diff --git a/rtdata/images/themed/png/dark/device-floppy.png b/rtdata/images/themed/png/dark/device-floppy.png new file mode 100644 index 000000000..939a6d63e Binary files /dev/null and b/rtdata/images/themed/png/dark/device-floppy.png differ diff --git a/rtdata/images/themed/png/dark/device-hdd.png b/rtdata/images/themed/png/dark/device-hdd.png new file mode 100644 index 000000000..92ddc0e01 Binary files /dev/null and b/rtdata/images/themed/png/dark/device-hdd.png differ diff --git a/rtdata/images/themed/png/dark/device-network.png b/rtdata/images/themed/png/dark/device-network.png new file mode 100644 index 000000000..4aa2516ef Binary files /dev/null and b/rtdata/images/themed/png/dark/device-network.png differ diff --git a/rtdata/images/themed/png/dark/device-optical.png b/rtdata/images/themed/png/dark/device-optical.png new file mode 100644 index 000000000..e5cd69a02 Binary files /dev/null and b/rtdata/images/themed/png/dark/device-optical.png differ diff --git a/rtdata/images/themed/png/dark/device-usb.png b/rtdata/images/themed/png/dark/device-usb.png new file mode 100644 index 000000000..a19b591e6 Binary files /dev/null and b/rtdata/images/themed/png/dark/device-usb.png differ diff --git a/rtdata/images/themed/png/dark/distortion-auto-small.png b/rtdata/images/themed/png/dark/distortion-auto-small.png new file mode 100644 index 000000000..e002a4ae7 Binary files /dev/null and b/rtdata/images/themed/png/dark/distortion-auto-small.png differ diff --git a/rtdata/images/themed/png/dark/distortion-auto.png b/rtdata/images/themed/png/dark/distortion-auto.png new file mode 100644 index 000000000..28c89da36 Binary files /dev/null and b/rtdata/images/themed/png/dark/distortion-auto.png differ diff --git a/rtdata/images/themed/png/dark/distortion-barrel-small.png b/rtdata/images/themed/png/dark/distortion-barrel-small.png new file mode 100644 index 000000000..531fd93d9 Binary files /dev/null and b/rtdata/images/themed/png/dark/distortion-barrel-small.png differ diff --git a/rtdata/images/themed/png/dark/distortion-barrel.png b/rtdata/images/themed/png/dark/distortion-barrel.png new file mode 100644 index 000000000..44f312dc9 Binary files /dev/null and b/rtdata/images/themed/png/dark/distortion-barrel.png differ diff --git a/rtdata/images/themed/png/dark/distortion-pincushion-small.png b/rtdata/images/themed/png/dark/distortion-pincushion-small.png new file mode 100644 index 000000000..c33205d78 Binary files /dev/null and b/rtdata/images/themed/png/dark/distortion-pincushion-small.png differ diff --git a/rtdata/images/themed/png/dark/distortion-pincushion.png b/rtdata/images/themed/png/dark/distortion-pincushion.png new file mode 100644 index 000000000..219dc6d37 Binary files /dev/null and b/rtdata/images/themed/png/dark/distortion-pincushion.png differ diff --git a/rtdata/images/themed/png/dark/edit-point.png b/rtdata/images/themed/png/dark/edit-point.png new file mode 100644 index 000000000..8ead1ea66 Binary files /dev/null and b/rtdata/images/themed/png/dark/edit-point.png differ diff --git a/rtdata/images/themed/png/dark/equilizer-narrow.png b/rtdata/images/themed/png/dark/equilizer-narrow.png new file mode 100644 index 000000000..6ee072ae5 Binary files /dev/null and b/rtdata/images/themed/png/dark/equilizer-narrow.png differ diff --git a/rtdata/images/themed/png/dark/equilizer-wide.png b/rtdata/images/themed/png/dark/equilizer-wide.png new file mode 100644 index 000000000..37c07c605 Binary files /dev/null and b/rtdata/images/themed/png/dark/equilizer-wide.png differ diff --git a/rtdata/images/themed/png/dark/expander-closed-small.png b/rtdata/images/themed/png/dark/expander-closed-small.png new file mode 100644 index 000000000..b59480cd5 Binary files /dev/null and b/rtdata/images/themed/png/dark/expander-closed-small.png differ diff --git a/rtdata/images/themed/png/dark/expander-open-small.png b/rtdata/images/themed/png/dark/expander-open-small.png new file mode 100644 index 000000000..15b74149a Binary files /dev/null and b/rtdata/images/themed/png/dark/expander-open-small.png differ diff --git a/rtdata/images/themed/png/dark/exposure.png b/rtdata/images/themed/png/dark/exposure.png new file mode 100644 index 000000000..f7cc6e155 Binary files /dev/null and b/rtdata/images/themed/png/dark/exposure.png differ diff --git a/rtdata/images/themed/png/dark/filetype-hdr.png b/rtdata/images/themed/png/dark/filetype-hdr.png new file mode 100644 index 000000000..a333858d5 Binary files /dev/null and b/rtdata/images/themed/png/dark/filetype-hdr.png differ diff --git a/rtdata/images/themed/png/dark/filetype-ps.png b/rtdata/images/themed/png/dark/filetype-ps.png new file mode 100644 index 000000000..414530cdd Binary files /dev/null and b/rtdata/images/themed/png/dark/filetype-ps.png differ diff --git a/rtdata/images/themed/png/dark/filter-clear.png b/rtdata/images/themed/png/dark/filter-clear.png new file mode 100644 index 000000000..acb729f11 Binary files /dev/null and b/rtdata/images/themed/png/dark/filter-clear.png differ diff --git a/rtdata/images/themed/png/dark/filter-original.png b/rtdata/images/themed/png/dark/filter-original.png new file mode 100644 index 000000000..9f538fab4 Binary files /dev/null and b/rtdata/images/themed/png/dark/filter-original.png differ diff --git a/rtdata/images/themed/png/dark/filter-original2.png b/rtdata/images/themed/png/dark/filter-original2.png new file mode 100644 index 000000000..7617380b2 Binary files /dev/null and b/rtdata/images/themed/png/dark/filter-original2.png differ diff --git a/rtdata/images/themed/png/dark/filter.png b/rtdata/images/themed/png/dark/filter.png new file mode 100644 index 000000000..af0060c9a Binary files /dev/null and b/rtdata/images/themed/png/dark/filter.png differ diff --git a/rtdata/images/themed/png/dark/flip-horizontal.png b/rtdata/images/themed/png/dark/flip-horizontal.png new file mode 100644 index 000000000..fe53cefe7 Binary files /dev/null and b/rtdata/images/themed/png/dark/flip-horizontal.png differ diff --git a/rtdata/images/themed/png/dark/flip-vertical.png b/rtdata/images/themed/png/dark/flip-vertical.png new file mode 100644 index 000000000..85e7ccd02 Binary files /dev/null and b/rtdata/images/themed/png/dark/flip-vertical.png differ diff --git a/rtdata/images/themed/png/dark/focusscreen-off.png b/rtdata/images/themed/png/dark/focusscreen-off.png new file mode 100644 index 000000000..5ee597b3b Binary files /dev/null and b/rtdata/images/themed/png/dark/focusscreen-off.png differ diff --git a/rtdata/images/themed/png/dark/focusscreen-on.png b/rtdata/images/themed/png/dark/focusscreen-on.png new file mode 100644 index 000000000..f9c418b92 Binary files /dev/null and b/rtdata/images/themed/png/dark/focusscreen-on.png differ diff --git a/rtdata/images/themed/png/dark/folder-closed-home-small.png b/rtdata/images/themed/png/dark/folder-closed-home-small.png new file mode 100644 index 000000000..06aeea67a Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-closed-home-small.png differ diff --git a/rtdata/images/themed/png/dark/folder-closed-home.png b/rtdata/images/themed/png/dark/folder-closed-home.png new file mode 100644 index 000000000..88f801d24 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-closed-home.png differ diff --git a/rtdata/images/themed/png/dark/folder-closed-recent-small.png b/rtdata/images/themed/png/dark/folder-closed-recent-small.png new file mode 100644 index 000000000..fdf1696b3 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-closed-recent-small.png differ diff --git a/rtdata/images/themed/png/dark/folder-closed-recent.png b/rtdata/images/themed/png/dark/folder-closed-recent.png new file mode 100644 index 000000000..fe23eea9f Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-closed-recent.png differ diff --git a/rtdata/images/themed/png/dark/folder-closed-small.png b/rtdata/images/themed/png/dark/folder-closed-small.png new file mode 100644 index 000000000..de543f67f Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-closed-small.png differ diff --git a/rtdata/images/themed/png/dark/folder-closed.png b/rtdata/images/themed/png/dark/folder-closed.png new file mode 100644 index 000000000..2ec2d9717 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-closed.png differ diff --git a/rtdata/images/themed/png/dark/folder-open-recent-small.png b/rtdata/images/themed/png/dark/folder-open-recent-small.png new file mode 100644 index 000000000..3fac2f496 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-open-recent-small.png differ diff --git a/rtdata/images/themed/png/dark/folder-open-recent.png b/rtdata/images/themed/png/dark/folder-open-recent.png new file mode 100644 index 000000000..acf421774 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-open-recent.png differ diff --git a/rtdata/images/themed/png/dark/folder-open-small.png b/rtdata/images/themed/png/dark/folder-open-small.png new file mode 100644 index 000000000..56eca1923 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-open-small.png differ diff --git a/rtdata/images/themed/png/dark/folder-open.png b/rtdata/images/themed/png/dark/folder-open.png new file mode 100644 index 000000000..df99ec1a2 Binary files /dev/null and b/rtdata/images/themed/png/dark/folder-open.png differ diff --git a/rtdata/images/themed/png/dark/fullscreen-enter.png b/rtdata/images/themed/png/dark/fullscreen-enter.png new file mode 100644 index 000000000..2986358eb Binary files /dev/null and b/rtdata/images/themed/png/dark/fullscreen-enter.png differ diff --git a/rtdata/images/themed/png/dark/fullscreen-leave.png b/rtdata/images/themed/png/dark/fullscreen-leave.png new file mode 100644 index 000000000..5844f0e85 Binary files /dev/null and b/rtdata/images/themed/png/dark/fullscreen-leave.png differ diff --git a/rtdata/images/themed/png/dark/gamut-hist.png b/rtdata/images/themed/png/dark/gamut-hist.png new file mode 100644 index 000000000..346ae6225 Binary files /dev/null and b/rtdata/images/themed/png/dark/gamut-hist.png differ diff --git a/rtdata/images/themed/png/dark/gamut-plus.png b/rtdata/images/themed/png/dark/gamut-plus.png new file mode 100644 index 000000000..a83f5e603 Binary files /dev/null and b/rtdata/images/themed/png/dark/gamut-plus.png differ diff --git a/rtdata/images/themed/png/dark/gamut-softproof.png b/rtdata/images/themed/png/dark/gamut-softproof.png new file mode 100644 index 000000000..b130cc275 Binary files /dev/null and b/rtdata/images/themed/png/dark/gamut-softproof.png differ diff --git a/rtdata/images/themed/png/dark/gamut-warning.png b/rtdata/images/themed/png/dark/gamut-warning.png new file mode 100644 index 000000000..cf09ff17d Binary files /dev/null and b/rtdata/images/themed/png/dark/gamut-warning.png differ diff --git a/rtdata/images/themed/png/dark/gamut_srgb_prophoto_xy.png b/rtdata/images/themed/png/dark/gamut_srgb_prophoto_xy.png new file mode 100644 index 000000000..8e131b1dd Binary files /dev/null and b/rtdata/images/themed/png/dark/gamut_srgb_prophoto_xy.png differ diff --git a/rtdata/images/themed/png/dark/gears-pause.png b/rtdata/images/themed/png/dark/gears-pause.png new file mode 100644 index 000000000..e9cb6a535 Binary files /dev/null and b/rtdata/images/themed/png/dark/gears-pause.png differ diff --git a/rtdata/images/themed/png/dark/gears-play.png b/rtdata/images/themed/png/dark/gears-play.png new file mode 100644 index 000000000..917130261 Binary files /dev/null and b/rtdata/images/themed/png/dark/gears-play.png differ diff --git a/rtdata/images/themed/png/dark/gears-small.png b/rtdata/images/themed/png/dark/gears-small.png new file mode 100644 index 000000000..70186dd18 Binary files /dev/null and b/rtdata/images/themed/png/dark/gears-small.png differ diff --git a/rtdata/images/themed/png/dark/gears.png b/rtdata/images/themed/png/dark/gears.png new file mode 100644 index 000000000..e21456d9f Binary files /dev/null and b/rtdata/images/themed/png/dark/gears.png differ diff --git a/rtdata/images/themed/png/dark/goto-end-small.png b/rtdata/images/themed/png/dark/goto-end-small.png new file mode 100644 index 000000000..13f626635 Binary files /dev/null and b/rtdata/images/themed/png/dark/goto-end-small.png differ diff --git a/rtdata/images/themed/png/dark/goto-start-small.png b/rtdata/images/themed/png/dark/goto-start-small.png new file mode 100644 index 000000000..70cc10bf4 Binary files /dev/null and b/rtdata/images/themed/png/dark/goto-start-small.png differ diff --git a/rtdata/images/themed/png/dark/hand-closed-hicontrast.png b/rtdata/images/themed/png/dark/hand-closed-hicontrast.png new file mode 100644 index 000000000..590d95096 Binary files /dev/null and b/rtdata/images/themed/png/dark/hand-closed-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/hand-open-hicontrast.png b/rtdata/images/themed/png/dark/hand-open-hicontrast.png new file mode 100644 index 000000000..2ee26e375 Binary files /dev/null and b/rtdata/images/themed/png/dark/hand-open-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/hand-open.png b/rtdata/images/themed/png/dark/hand-open.png new file mode 100644 index 000000000..85fcaaacc Binary files /dev/null and b/rtdata/images/themed/png/dark/hand-open.png differ diff --git a/rtdata/images/themed/png/dark/histogram-bar-off-small.png b/rtdata/images/themed/png/dark/histogram-bar-off-small.png new file mode 100644 index 000000000..5c9c21e72 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-bar-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-bar-on-small.png b/rtdata/images/themed/png/dark/histogram-bar-on-small.png new file mode 100644 index 000000000..f8a5bddf6 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-bar-on-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-bayer-off-small.png b/rtdata/images/themed/png/dark/histogram-bayer-off-small.png new file mode 100644 index 000000000..af1369145 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-bayer-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-bayer-on-small.png b/rtdata/images/themed/png/dark/histogram-bayer-on-small.png new file mode 100644 index 000000000..44e23b51b Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-bayer-on-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-blue-off-small.png b/rtdata/images/themed/png/dark/histogram-blue-off-small.png new file mode 100644 index 000000000..8b368ed63 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-blue-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-blue-on-small.png b/rtdata/images/themed/png/dark/histogram-blue-on-small.png new file mode 100644 index 000000000..537153043 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-blue-on-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-gold-off-small.png b/rtdata/images/themed/png/dark/histogram-gold-off-small.png new file mode 100644 index 000000000..4272c3ff7 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-gold-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-gold-on-small.png b/rtdata/images/themed/png/dark/histogram-gold-on-small.png new file mode 100644 index 000000000..8f32203fd Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-gold-on-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-green-off-small.png b/rtdata/images/themed/png/dark/histogram-green-off-small.png new file mode 100644 index 000000000..395fcac9e Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-green-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-green-on-small.png b/rtdata/images/themed/png/dark/histogram-green-on-small.png new file mode 100644 index 000000000..db3f89ef5 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-green-on-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-mode-linear-small.png b/rtdata/images/themed/png/dark/histogram-mode-linear-small.png new file mode 100644 index 000000000..507be4c3e Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-mode-linear-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-mode-logx-small.png b/rtdata/images/themed/png/dark/histogram-mode-logx-small.png new file mode 100644 index 000000000..2a0b7cc6a Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-mode-logx-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-mode-logxy-small.png b/rtdata/images/themed/png/dark/histogram-mode-logxy-small.png new file mode 100644 index 000000000..23bf705ac Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-mode-logxy-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-red-off-small.png b/rtdata/images/themed/png/dark/histogram-red-off-small.png new file mode 100644 index 000000000..7d5ea5352 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-red-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-red-on-small.png b/rtdata/images/themed/png/dark/histogram-red-on-small.png new file mode 100644 index 000000000..deee136a2 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-red-on-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-silver-off-small.png b/rtdata/images/themed/png/dark/histogram-silver-off-small.png new file mode 100644 index 000000000..d88e879bc Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-silver-off-small.png differ diff --git a/rtdata/images/themed/png/dark/histogram-silver-on-small.png b/rtdata/images/themed/png/dark/histogram-silver-on-small.png new file mode 100644 index 000000000..bdef06144 Binary files /dev/null and b/rtdata/images/themed/png/dark/histogram-silver-on-small.png differ diff --git a/rtdata/images/themed/png/dark/info.png b/rtdata/images/themed/png/dark/info.png new file mode 100644 index 000000000..4d7ad53bb Binary files /dev/null and b/rtdata/images/themed/png/dark/info.png differ diff --git a/rtdata/images/themed/png/dark/intent-absolute.png b/rtdata/images/themed/png/dark/intent-absolute.png new file mode 100644 index 000000000..14cc9f44b Binary files /dev/null and b/rtdata/images/themed/png/dark/intent-absolute.png differ diff --git a/rtdata/images/themed/png/dark/intent-perceptual.png b/rtdata/images/themed/png/dark/intent-perceptual.png new file mode 100644 index 000000000..44507d85f Binary files /dev/null and b/rtdata/images/themed/png/dark/intent-perceptual.png differ diff --git a/rtdata/images/themed/png/dark/intent-relative.png b/rtdata/images/themed/png/dark/intent-relative.png new file mode 100644 index 000000000..895c335c1 Binary files /dev/null and b/rtdata/images/themed/png/dark/intent-relative.png differ diff --git a/rtdata/images/themed/png/dark/intent-saturation.png b/rtdata/images/themed/png/dark/intent-saturation.png new file mode 100644 index 000000000..fb33221e4 Binary files /dev/null and b/rtdata/images/themed/png/dark/intent-saturation.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-1to1-small.png b/rtdata/images/themed/png/dark/magnifier-1to1-small.png new file mode 100644 index 000000000..b68d5d975 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-1to1-small.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-1to1.png b/rtdata/images/themed/png/dark/magnifier-1to1.png new file mode 100644 index 000000000..b111f5cb6 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-1to1.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-crop.png b/rtdata/images/themed/png/dark/magnifier-crop.png new file mode 100644 index 000000000..1302ac7f9 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-crop.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-fit.png b/rtdata/images/themed/png/dark/magnifier-fit.png new file mode 100644 index 000000000..d3c238338 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-fit.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-minus-small.png b/rtdata/images/themed/png/dark/magnifier-minus-small.png new file mode 100644 index 000000000..dd1b65589 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-minus-small.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-minus.png b/rtdata/images/themed/png/dark/magnifier-minus.png new file mode 100644 index 000000000..1f60a292a Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-minus.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-plus-small.png b/rtdata/images/themed/png/dark/magnifier-plus-small.png new file mode 100644 index 000000000..532f9c426 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-plus-small.png differ diff --git a/rtdata/images/themed/png/dark/magnifier-plus.png b/rtdata/images/themed/png/dark/magnifier-plus.png new file mode 100644 index 000000000..b8d6a2a7a Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier-plus.png differ diff --git a/rtdata/images/themed/png/dark/magnifier.png b/rtdata/images/themed/png/dark/magnifier.png new file mode 100644 index 000000000..6ae59fd55 Binary files /dev/null and b/rtdata/images/themed/png/dark/magnifier.png differ diff --git a/rtdata/images/themed/png/dark/metadata.png b/rtdata/images/themed/png/dark/metadata.png new file mode 100644 index 000000000..48fccde79 Binary files /dev/null and b/rtdata/images/themed/png/dark/metadata.png differ diff --git a/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png b/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png new file mode 100644 index 000000000..b802c5849 Binary files /dev/null and b/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png b/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png new file mode 100644 index 000000000..2e51e88a3 Binary files /dev/null and b/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/node-move-x-hicontrast.png b/rtdata/images/themed/png/dark/node-move-x-hicontrast.png new file mode 100644 index 000000000..1cc871dbb Binary files /dev/null and b/rtdata/images/themed/png/dark/node-move-x-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png b/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png new file mode 100644 index 000000000..8b843958d Binary files /dev/null and b/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/node-move-y-hicontrast.png b/rtdata/images/themed/png/dark/node-move-y-hicontrast.png new file mode 100644 index 000000000..f80690851 Binary files /dev/null and b/rtdata/images/themed/png/dark/node-move-y-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/one-to-one-small.png b/rtdata/images/themed/png/dark/one-to-one-small.png new file mode 100644 index 000000000..50cda2db5 Binary files /dev/null and b/rtdata/images/themed/png/dark/one-to-one-small.png differ diff --git a/rtdata/images/themed/png/dark/ornament1.png b/rtdata/images/themed/png/dark/ornament1.png new file mode 100644 index 000000000..2acdd19e8 Binary files /dev/null and b/rtdata/images/themed/png/dark/ornament1.png differ diff --git a/rtdata/images/themed/png/dark/padlock-locked-small.png b/rtdata/images/themed/png/dark/padlock-locked-small.png new file mode 100644 index 000000000..8f7c12169 Binary files /dev/null and b/rtdata/images/themed/png/dark/padlock-locked-small.png differ diff --git a/rtdata/images/themed/png/dark/padlock-unlocked-small.png b/rtdata/images/themed/png/dark/padlock-unlocked-small.png new file mode 100644 index 000000000..ad27326c7 Binary files /dev/null and b/rtdata/images/themed/png/dark/padlock-unlocked-small.png differ diff --git a/rtdata/images/themed/png/dark/palette-brush.png b/rtdata/images/themed/png/dark/palette-brush.png new file mode 100644 index 000000000..592521db0 Binary files /dev/null and b/rtdata/images/themed/png/dark/palette-brush.png differ diff --git a/rtdata/images/themed/png/dark/panel-to-bottom.png b/rtdata/images/themed/png/dark/panel-to-bottom.png new file mode 100644 index 000000000..a8ed862f1 Binary files /dev/null and b/rtdata/images/themed/png/dark/panel-to-bottom.png differ diff --git a/rtdata/images/themed/png/dark/panel-to-left.png b/rtdata/images/themed/png/dark/panel-to-left.png new file mode 100644 index 000000000..51eb8b845 Binary files /dev/null and b/rtdata/images/themed/png/dark/panel-to-left.png differ diff --git a/rtdata/images/themed/png/dark/panel-to-right.png b/rtdata/images/themed/png/dark/panel-to-right.png new file mode 100644 index 000000000..372607970 Binary files /dev/null and b/rtdata/images/themed/png/dark/panel-to-right.png differ diff --git a/rtdata/images/themed/png/dark/panel-to-top.png b/rtdata/images/themed/png/dark/panel-to-top.png new file mode 100644 index 000000000..fc92ca1f6 Binary files /dev/null and b/rtdata/images/themed/png/dark/panel-to-top.png differ diff --git a/rtdata/images/themed/png/dark/paste.png b/rtdata/images/themed/png/dark/paste.png new file mode 100644 index 000000000..fba618a86 Binary files /dev/null and b/rtdata/images/themed/png/dark/paste.png differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-left-small.png b/rtdata/images/themed/png/dark/perspective-horizontal-left-small.png new file mode 100644 index 000000000..039485fe3 Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-horizontal-left-small.png differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-left.png b/rtdata/images/themed/png/dark/perspective-horizontal-left.png new file mode 100644 index 000000000..b2b169840 Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-horizontal-left.png differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-right-small.png b/rtdata/images/themed/png/dark/perspective-horizontal-right-small.png new file mode 100644 index 000000000..a917cf458 Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-horizontal-right-small.png differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-right.png b/rtdata/images/themed/png/dark/perspective-horizontal-right.png new file mode 100644 index 000000000..6ab911949 Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-horizontal-right.png differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-bottom-small.png b/rtdata/images/themed/png/dark/perspective-vertical-bottom-small.png new file mode 100644 index 000000000..f45a38c3e Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-vertical-bottom-small.png differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-bottom.png b/rtdata/images/themed/png/dark/perspective-vertical-bottom.png new file mode 100644 index 000000000..0e508882b Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-vertical-bottom.png differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-top-small.png b/rtdata/images/themed/png/dark/perspective-vertical-top-small.png new file mode 100644 index 000000000..ab96d5596 Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-vertical-top-small.png differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-top.png b/rtdata/images/themed/png/dark/perspective-vertical-top.png new file mode 100644 index 000000000..6084254a5 Binary files /dev/null and b/rtdata/images/themed/png/dark/perspective-vertical-top.png differ diff --git a/rtdata/images/themed/png/dark/power-inconsistent-small.png b/rtdata/images/themed/png/dark/power-inconsistent-small.png new file mode 100644 index 000000000..75f9c7a58 Binary files /dev/null and b/rtdata/images/themed/png/dark/power-inconsistent-small.png differ diff --git a/rtdata/images/themed/png/dark/power-off-small.png b/rtdata/images/themed/png/dark/power-off-small.png new file mode 100644 index 000000000..9b3118c50 Binary files /dev/null and b/rtdata/images/themed/png/dark/power-off-small.png differ diff --git a/rtdata/images/themed/png/dark/power-on-small.png b/rtdata/images/themed/png/dark/power-on-small.png new file mode 100644 index 000000000..c54e0d50e Binary files /dev/null and b/rtdata/images/themed/png/dark/power-on-small.png differ diff --git a/rtdata/images/themed/png/dark/preferences.png b/rtdata/images/themed/png/dark/preferences.png new file mode 100644 index 000000000..b88c501e5 Binary files /dev/null and b/rtdata/images/themed/png/dark/preferences.png differ diff --git a/rtdata/images/themed/png/dark/profile-filled.png b/rtdata/images/themed/png/dark/profile-filled.png new file mode 100644 index 000000000..e806c99f5 Binary files /dev/null and b/rtdata/images/themed/png/dark/profile-filled.png differ diff --git a/rtdata/images/themed/png/dark/profile-partial.png b/rtdata/images/themed/png/dark/profile-partial.png new file mode 100644 index 000000000..335a0238a Binary files /dev/null and b/rtdata/images/themed/png/dark/profile-partial.png differ diff --git a/rtdata/images/themed/png/dark/redo-all.png b/rtdata/images/themed/png/dark/redo-all.png new file mode 100644 index 000000000..e293010d0 Binary files /dev/null and b/rtdata/images/themed/png/dark/redo-all.png differ diff --git a/rtdata/images/themed/png/dark/redo-small.png b/rtdata/images/themed/png/dark/redo-small.png new file mode 100644 index 000000000..84a5988ef Binary files /dev/null and b/rtdata/images/themed/png/dark/redo-small.png differ diff --git a/rtdata/images/themed/png/dark/redo.png b/rtdata/images/themed/png/dark/redo.png new file mode 100644 index 000000000..c75b63620 Binary files /dev/null and b/rtdata/images/themed/png/dark/redo.png differ diff --git a/rtdata/images/themed/png/dark/refresh-red-small.png b/rtdata/images/themed/png/dark/refresh-red-small.png new file mode 100644 index 000000000..296035883 Binary files /dev/null and b/rtdata/images/themed/png/dark/refresh-red-small.png differ diff --git a/rtdata/images/themed/png/dark/refresh-small.png b/rtdata/images/themed/png/dark/refresh-small.png new file mode 100644 index 000000000..b8f2e67d5 Binary files /dev/null and b/rtdata/images/themed/png/dark/refresh-small.png differ diff --git a/rtdata/images/themed/png/dark/refresh.png b/rtdata/images/themed/png/dark/refresh.png new file mode 100644 index 000000000..6981fbefb Binary files /dev/null and b/rtdata/images/themed/png/dark/refresh.png differ diff --git a/rtdata/images/themed/png/dark/remove-small.png b/rtdata/images/themed/png/dark/remove-small.png new file mode 100644 index 000000000..996823902 Binary files /dev/null and b/rtdata/images/themed/png/dark/remove-small.png differ diff --git a/rtdata/images/themed/png/dark/remove.png b/rtdata/images/themed/png/dark/remove.png new file mode 100644 index 000000000..8d9715ac5 Binary files /dev/null and b/rtdata/images/themed/png/dark/remove.png differ diff --git a/rtdata/images/themed/png/dark/rotate-aroundnode-hicontrast.png b/rtdata/images/themed/png/dark/rotate-aroundnode-hicontrast.png new file mode 100644 index 000000000..d8929ac42 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-aroundnode-hicontrast.png differ diff --git a/rtdata/images/themed/png/dark/rotate-aroundnode.png b/rtdata/images/themed/png/dark/rotate-aroundnode.png new file mode 100644 index 000000000..50db200a6 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-aroundnode.png differ diff --git a/rtdata/images/themed/png/dark/rotate-left-90.png b/rtdata/images/themed/png/dark/rotate-left-90.png new file mode 100644 index 000000000..fa238e339 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-left-90.png differ diff --git a/rtdata/images/themed/png/dark/rotate-left-small.png b/rtdata/images/themed/png/dark/rotate-left-small.png new file mode 100644 index 000000000..659dc6344 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-left-small.png differ diff --git a/rtdata/images/themed/png/dark/rotate-left.png b/rtdata/images/themed/png/dark/rotate-left.png new file mode 100644 index 000000000..739b39c0b Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-left.png differ diff --git a/rtdata/images/themed/png/dark/rotate-right-90.png b/rtdata/images/themed/png/dark/rotate-right-90.png new file mode 100644 index 000000000..126232d2f Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-right-90.png differ diff --git a/rtdata/images/themed/png/dark/rotate-right-small.png b/rtdata/images/themed/png/dark/rotate-right-small.png new file mode 100644 index 000000000..c59152c81 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-right-small.png differ diff --git a/rtdata/images/themed/png/dark/rotate-right.png b/rtdata/images/themed/png/dark/rotate-right.png new file mode 100644 index 000000000..8f99d9b05 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-right.png differ diff --git a/rtdata/images/themed/png/dark/rotate-straighten-small.png b/rtdata/images/themed/png/dark/rotate-straighten-small.png new file mode 100644 index 000000000..d57dcb7c7 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-straighten-small.png differ diff --git a/rtdata/images/themed/png/dark/rotate-straighten.png b/rtdata/images/themed/png/dark/rotate-straighten.png new file mode 100644 index 000000000..457282758 Binary files /dev/null and b/rtdata/images/themed/png/dark/rotate-straighten.png differ diff --git a/rtdata/images/themed/png/dark/save-small.png b/rtdata/images/themed/png/dark/save-small.png new file mode 100644 index 000000000..e4912f5d2 Binary files /dev/null and b/rtdata/images/themed/png/dark/save-small.png differ diff --git a/rtdata/images/themed/png/dark/save.png b/rtdata/images/themed/png/dark/save.png new file mode 100644 index 000000000..2d52cdaeb Binary files /dev/null and b/rtdata/images/themed/png/dark/save.png differ diff --git a/rtdata/images/themed/png/dark/saved-no-small.png b/rtdata/images/themed/png/dark/saved-no-small.png new file mode 100644 index 000000000..417f27624 Binary files /dev/null and b/rtdata/images/themed/png/dark/saved-no-small.png differ diff --git a/rtdata/images/themed/png/dark/saved-yes-small.png b/rtdata/images/themed/png/dark/saved-yes-small.png new file mode 100644 index 000000000..953c7f8cc Binary files /dev/null and b/rtdata/images/themed/png/dark/saved-yes-small.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-black-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-black-off-narrow.png new file mode 100644 index 000000000..ff6adb675 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-black-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-black-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-black-on-narrow.png new file mode 100644 index 000000000..5d6e35c3d Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-black-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-blue-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-blue-off-narrow.png new file mode 100644 index 000000000..2a9741c0f Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-blue-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-blue-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-blue-on-narrow.png new file mode 100644 index 000000000..e52337d33 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-blue-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-gray-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-gray-off-narrow.png new file mode 100644 index 000000000..7e009920f Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-gray-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-gray-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-gray-on-narrow.png new file mode 100644 index 000000000..64289008a Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-gray-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-green-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-green-off-narrow.png new file mode 100644 index 000000000..f55cbb8c3 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-green-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-green-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-green-on-narrow.png new file mode 100644 index 000000000..0c8b9522d Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-green-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-luminosity-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-luminosity-off-narrow.png new file mode 100644 index 000000000..c6dfe8410 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-luminosity-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-luminosity-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-luminosity-on-narrow.png new file mode 100644 index 000000000..b45b608d9 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-luminosity-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-red-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-red-off-narrow.png new file mode 100644 index 000000000..99730ee4b Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-red-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-red-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-red-on-narrow.png new file mode 100644 index 000000000..e0b91d8b3 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-red-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-theme-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-theme-off-narrow.png new file mode 100644 index 000000000..449946648 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-theme-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-theme-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-theme-on-narrow.png new file mode 100644 index 000000000..e59257824 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-theme-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-white-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-white-off-narrow.png new file mode 100644 index 000000000..b2e5e3611 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-white-off-narrow.png differ diff --git a/rtdata/images/themed/png/dark/square-toggle-white-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-white-on-narrow.png new file mode 100644 index 000000000..7ff59d927 Binary files /dev/null and b/rtdata/images/themed/png/dark/square-toggle-white-on-narrow.png differ diff --git a/rtdata/images/themed/png/dark/star-gold-hollow-narrow.png b/rtdata/images/themed/png/dark/star-gold-hollow-narrow.png new file mode 100644 index 000000000..b0ce704d6 Binary files /dev/null and b/rtdata/images/themed/png/dark/star-gold-hollow-narrow.png differ diff --git a/rtdata/images/themed/png/dark/star-gold-hollow-small.png b/rtdata/images/themed/png/dark/star-gold-hollow-small.png new file mode 100644 index 000000000..478055c2b Binary files /dev/null and b/rtdata/images/themed/png/dark/star-gold-hollow-small.png differ diff --git a/rtdata/images/themed/png/dark/star-gold-narrow.png b/rtdata/images/themed/png/dark/star-gold-narrow.png new file mode 100644 index 000000000..32710fb9d Binary files /dev/null and b/rtdata/images/themed/png/dark/star-gold-narrow.png differ diff --git a/rtdata/images/themed/png/dark/star-gold-small.png b/rtdata/images/themed/png/dark/star-gold-small.png new file mode 100644 index 000000000..da02a823e Binary files /dev/null and b/rtdata/images/themed/png/dark/star-gold-small.png differ diff --git a/rtdata/images/themed/png/dark/star-hollow-narrow.png b/rtdata/images/themed/png/dark/star-hollow-narrow.png new file mode 100644 index 000000000..b9c978350 Binary files /dev/null and b/rtdata/images/themed/png/dark/star-hollow-narrow.png differ diff --git a/rtdata/images/themed/png/dark/star-hollow-small.png b/rtdata/images/themed/png/dark/star-hollow-small.png new file mode 100644 index 000000000..b5cf648ca Binary files /dev/null and b/rtdata/images/themed/png/dark/star-hollow-small.png differ diff --git a/rtdata/images/themed/png/dark/star-narrow.png b/rtdata/images/themed/png/dark/star-narrow.png new file mode 100644 index 000000000..bdcc73bfe Binary files /dev/null and b/rtdata/images/themed/png/dark/star-narrow.png differ diff --git a/rtdata/images/themed/png/dark/star-small.png b/rtdata/images/themed/png/dark/star-small.png new file mode 100644 index 000000000..db895d932 Binary files /dev/null and b/rtdata/images/themed/png/dark/star-small.png differ diff --git a/rtdata/images/themed/png/dark/template-16.png b/rtdata/images/themed/png/dark/template-16.png new file mode 100644 index 000000000..1c50ead9e Binary files /dev/null and b/rtdata/images/themed/png/dark/template-16.png differ diff --git a/rtdata/images/themed/png/dark/template-24.png b/rtdata/images/themed/png/dark/template-24.png new file mode 100644 index 000000000..7ab9e8c0f Binary files /dev/null and b/rtdata/images/themed/png/dark/template-24.png differ diff --git a/rtdata/images/themed/png/dark/template-narrow.png b/rtdata/images/themed/png/dark/template-narrow.png new file mode 100644 index 000000000..78c374503 Binary files /dev/null and b/rtdata/images/themed/png/dark/template-narrow.png differ diff --git a/rtdata/images/themed/png/dark/tick-green-hollow-small.png b/rtdata/images/themed/png/dark/tick-green-hollow-small.png new file mode 100644 index 000000000..176bf5489 Binary files /dev/null and b/rtdata/images/themed/png/dark/tick-green-hollow-small.png differ diff --git a/rtdata/images/themed/png/dark/tick-green-hollow.png b/rtdata/images/themed/png/dark/tick-green-hollow.png new file mode 100644 index 000000000..7cac33dc0 Binary files /dev/null and b/rtdata/images/themed/png/dark/tick-green-hollow.png differ diff --git a/rtdata/images/themed/png/dark/tick-green-small.png b/rtdata/images/themed/png/dark/tick-green-small.png new file mode 100644 index 000000000..54cf5d024 Binary files /dev/null and b/rtdata/images/themed/png/dark/tick-green-small.png differ diff --git a/rtdata/images/themed/png/dark/tick-green.png b/rtdata/images/themed/png/dark/tick-green.png new file mode 100644 index 000000000..2458734b2 Binary files /dev/null and b/rtdata/images/themed/png/dark/tick-green.png differ diff --git a/rtdata/images/themed/png/dark/tick-hollow-small.png b/rtdata/images/themed/png/dark/tick-hollow-small.png new file mode 100644 index 000000000..e5e492deb Binary files /dev/null and b/rtdata/images/themed/png/dark/tick-hollow-small.png differ diff --git a/rtdata/images/themed/png/dark/tick-small.png b/rtdata/images/themed/png/dark/tick-small.png new file mode 100644 index 000000000..8ee5e5516 Binary files /dev/null and b/rtdata/images/themed/png/dark/tick-small.png differ diff --git a/rtdata/images/themed/png/dark/tick.png b/rtdata/images/themed/png/dark/tick.png new file mode 100644 index 000000000..5318ae4d5 Binary files /dev/null and b/rtdata/images/themed/png/dark/tick.png differ diff --git a/rtdata/images/themed/png/dark/transform.png b/rtdata/images/themed/png/dark/transform.png new file mode 100644 index 000000000..30cd76dd6 Binary files /dev/null and b/rtdata/images/themed/png/dark/transform.png differ diff --git a/rtdata/images/themed/png/dark/trash-delete.png b/rtdata/images/themed/png/dark/trash-delete.png new file mode 100644 index 000000000..1a7c084aa Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-delete.png differ diff --git a/rtdata/images/themed/png/dark/trash-empty-show.png b/rtdata/images/themed/png/dark/trash-empty-show.png new file mode 100644 index 000000000..983979634 Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-empty-show.png differ diff --git a/rtdata/images/themed/png/dark/trash-empty.png b/rtdata/images/themed/png/dark/trash-empty.png new file mode 100644 index 000000000..a1b92354e Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-empty.png differ diff --git a/rtdata/images/themed/png/dark/trash-full-show.png b/rtdata/images/themed/png/dark/trash-full-show.png new file mode 100644 index 000000000..1c1c7aa17 Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-full-show.png differ diff --git a/rtdata/images/themed/png/dark/trash-full.png b/rtdata/images/themed/png/dark/trash-full.png new file mode 100644 index 000000000..699d2b8ac Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-full.png differ diff --git a/rtdata/images/themed/png/dark/trash-hide-deleted.png b/rtdata/images/themed/png/dark/trash-hide-deleted.png new file mode 100644 index 000000000..ffbb9f391 Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-hide-deleted.png differ diff --git a/rtdata/images/themed/png/dark/trash-remove-small.png b/rtdata/images/themed/png/dark/trash-remove-small.png new file mode 100644 index 000000000..75fd6493c Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-remove-small.png differ diff --git a/rtdata/images/themed/png/dark/trash-remove.png b/rtdata/images/themed/png/dark/trash-remove.png new file mode 100644 index 000000000..f9dc4bde7 Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-remove.png differ diff --git a/rtdata/images/themed/png/dark/trash-small.png b/rtdata/images/themed/png/dark/trash-small.png new file mode 100644 index 000000000..2a19f041c Binary files /dev/null and b/rtdata/images/themed/png/dark/trash-small.png differ diff --git a/rtdata/images/themed/png/dark/undo-all.png b/rtdata/images/themed/png/dark/undo-all.png new file mode 100644 index 000000000..7f577140b Binary files /dev/null and b/rtdata/images/themed/png/dark/undo-all.png differ diff --git a/rtdata/images/themed/png/dark/undo-small.png b/rtdata/images/themed/png/dark/undo-small.png new file mode 100644 index 000000000..0908ba6d5 Binary files /dev/null and b/rtdata/images/themed/png/dark/undo-small.png differ diff --git a/rtdata/images/themed/png/dark/undo.png b/rtdata/images/themed/png/dark/undo.png new file mode 100644 index 000000000..3e0a28d1e Binary files /dev/null and b/rtdata/images/themed/png/dark/undo.png differ diff --git a/rtdata/images/themed/png/dark/warning-highlights.png b/rtdata/images/themed/png/dark/warning-highlights.png new file mode 100644 index 000000000..61ec734ca Binary files /dev/null and b/rtdata/images/themed/png/dark/warning-highlights.png differ diff --git a/rtdata/images/themed/png/dark/warning-shadows.png b/rtdata/images/themed/png/dark/warning-shadows.png new file mode 100644 index 000000000..c5e83dad6 Binary files /dev/null and b/rtdata/images/themed/png/dark/warning-shadows.png differ diff --git a/rtdata/images/themed/png/dark/wavelets.png b/rtdata/images/themed/png/dark/wavelets.png new file mode 100644 index 000000000..664fa8196 Binary files /dev/null and b/rtdata/images/themed/png/dark/wavelets.png differ diff --git a/rtdata/images/themed/png/dark/wb-auto-small.png b/rtdata/images/themed/png/dark/wb-auto-small.png new file mode 100644 index 000000000..e557048eb Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-auto-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-auto.png b/rtdata/images/themed/png/dark/wb-auto.png new file mode 100644 index 000000000..e2f033360 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-auto.png differ diff --git a/rtdata/images/themed/png/dark/wb-camera-small.png b/rtdata/images/themed/png/dark/wb-camera-small.png new file mode 100644 index 000000000..69c869445 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-camera-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-camera.png b/rtdata/images/themed/png/dark/wb-camera.png new file mode 100644 index 000000000..8749579d0 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-camera.png differ diff --git a/rtdata/images/themed/png/dark/wb-cloudy-small.png b/rtdata/images/themed/png/dark/wb-cloudy-small.png new file mode 100644 index 000000000..175d88f1a Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-cloudy-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-cloudy.png b/rtdata/images/themed/png/dark/wb-cloudy.png new file mode 100644 index 000000000..1c394b709 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-cloudy.png differ diff --git a/rtdata/images/themed/png/dark/wb-custom-small.png b/rtdata/images/themed/png/dark/wb-custom-small.png new file mode 100644 index 000000000..2f3fcb517 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-custom-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-custom.png b/rtdata/images/themed/png/dark/wb-custom.png new file mode 100644 index 000000000..db9abc03c Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-custom.png differ diff --git a/rtdata/images/themed/png/dark/wb-flash-small.png b/rtdata/images/themed/png/dark/wb-flash-small.png new file mode 100644 index 000000000..1bc051cd4 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-flash-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-flash.png b/rtdata/images/themed/png/dark/wb-flash.png new file mode 100644 index 000000000..d460a0569 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-flash.png differ diff --git a/rtdata/images/themed/png/dark/wb-fluorescent-small.png b/rtdata/images/themed/png/dark/wb-fluorescent-small.png new file mode 100644 index 000000000..3c7882252 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-fluorescent-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-fluorescent.png b/rtdata/images/themed/png/dark/wb-fluorescent.png new file mode 100644 index 000000000..c994ee9dd Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-fluorescent.png differ diff --git a/rtdata/images/themed/png/dark/wb-lamp-small.png b/rtdata/images/themed/png/dark/wb-lamp-small.png new file mode 100644 index 000000000..ea5f790c3 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-lamp-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-lamp.png b/rtdata/images/themed/png/dark/wb-lamp.png new file mode 100644 index 000000000..b0d3df3e5 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-lamp.png differ diff --git a/rtdata/images/themed/png/dark/wb-led-small.png b/rtdata/images/themed/png/dark/wb-led-small.png new file mode 100644 index 000000000..dc4385c94 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-led-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-led.png b/rtdata/images/themed/png/dark/wb-led.png new file mode 100644 index 000000000..dfdb25191 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-led.png differ diff --git a/rtdata/images/themed/png/dark/wb-shade-small.png b/rtdata/images/themed/png/dark/wb-shade-small.png new file mode 100644 index 000000000..255c021a6 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-shade-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-shade.png b/rtdata/images/themed/png/dark/wb-shade.png new file mode 100644 index 000000000..2be98acf6 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-shade.png differ diff --git a/rtdata/images/themed/png/dark/wb-sun-small.png b/rtdata/images/themed/png/dark/wb-sun-small.png new file mode 100644 index 000000000..a7de769df Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-sun-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-sun.png b/rtdata/images/themed/png/dark/wb-sun.png new file mode 100644 index 000000000..e65ee2a80 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-sun.png differ diff --git a/rtdata/images/themed/png/dark/wb-tungsten-small.png b/rtdata/images/themed/png/dark/wb-tungsten-small.png new file mode 100644 index 000000000..6f958cd59 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-tungsten-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-tungsten.png b/rtdata/images/themed/png/dark/wb-tungsten.png new file mode 100644 index 000000000..2c71f66ef Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-tungsten.png differ diff --git a/rtdata/images/themed/png/dark/wb-water-small.png b/rtdata/images/themed/png/dark/wb-water-small.png new file mode 100644 index 000000000..2ecb58552 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-water-small.png differ diff --git a/rtdata/images/themed/png/dark/wb-water.png b/rtdata/images/themed/png/dark/wb-water.png new file mode 100644 index 000000000..7bc55c153 Binary files /dev/null and b/rtdata/images/themed/png/dark/wb-water.png differ diff --git a/rtdata/images/themed/png/dark/window-add.png b/rtdata/images/themed/png/dark/window-add.png new file mode 100644 index 000000000..4364b1a13 Binary files /dev/null and b/rtdata/images/themed/png/dark/window-add.png differ diff --git a/rtdata/images/themed/png/light/add-small.png b/rtdata/images/themed/png/light/add-small.png new file mode 100644 index 000000000..59211ace6 Binary files /dev/null and b/rtdata/images/themed/png/light/add-small.png differ diff --git a/rtdata/images/themed/png/light/add.png b/rtdata/images/themed/png/light/add.png new file mode 100644 index 000000000..88b1c285d Binary files /dev/null and b/rtdata/images/themed/png/light/add.png differ diff --git a/rtdata/images/themed/png/light/aperture.png b/rtdata/images/themed/png/light/aperture.png new file mode 100644 index 000000000..70e8e0be5 Binary files /dev/null and b/rtdata/images/themed/png/light/aperture.png differ diff --git a/rtdata/images/themed/png/light/arrow-down-small.png b/rtdata/images/themed/png/light/arrow-down-small.png new file mode 100644 index 000000000..ab76bb3cc Binary files /dev/null and b/rtdata/images/themed/png/light/arrow-down-small.png differ diff --git a/rtdata/images/themed/png/light/arrow-left-small.png b/rtdata/images/themed/png/light/arrow-left-small.png new file mode 100644 index 000000000..2673b7445 Binary files /dev/null and b/rtdata/images/themed/png/light/arrow-left-small.png differ diff --git a/rtdata/images/themed/png/light/arrow-right-small.png b/rtdata/images/themed/png/light/arrow-right-small.png new file mode 100644 index 000000000..228cecd3d Binary files /dev/null and b/rtdata/images/themed/png/light/arrow-right-small.png differ diff --git a/rtdata/images/themed/png/light/arrow-up-small.png b/rtdata/images/themed/png/light/arrow-up-small.png new file mode 100644 index 000000000..6e8061207 Binary files /dev/null and b/rtdata/images/themed/png/light/arrow-up-small.png differ diff --git a/rtdata/images/themed/png/light/arrow-updown.png b/rtdata/images/themed/png/light/arrow-updown.png new file mode 100644 index 000000000..bb0ccc5dc Binary files /dev/null and b/rtdata/images/themed/png/light/arrow-updown.png differ diff --git a/rtdata/images/themed/png/light/arrow2-left.png b/rtdata/images/themed/png/light/arrow2-left.png new file mode 100644 index 000000000..4ac761b76 Binary files /dev/null and b/rtdata/images/themed/png/light/arrow2-left.png differ diff --git a/rtdata/images/themed/png/light/arrow2-right.png b/rtdata/images/themed/png/light/arrow2-right.png new file mode 100644 index 000000000..75d150843 Binary files /dev/null and b/rtdata/images/themed/png/light/arrow2-right.png differ diff --git a/rtdata/images/themed/png/light/atom.png b/rtdata/images/themed/png/light/atom.png new file mode 100644 index 000000000..df3dc8bdf Binary files /dev/null and b/rtdata/images/themed/png/light/atom.png differ diff --git a/rtdata/images/themed/png/light/bayer.png b/rtdata/images/themed/png/light/bayer.png new file mode 100644 index 000000000..c85ce844e Binary files /dev/null and b/rtdata/images/themed/png/light/bayer.png differ diff --git a/rtdata/images/themed/png/light/beforeafter.png b/rtdata/images/themed/png/light/beforeafter.png new file mode 100644 index 000000000..fb7e7ce55 Binary files /dev/null and b/rtdata/images/themed/png/light/beforeafter.png differ diff --git a/rtdata/images/themed/png/light/cancel-small.png b/rtdata/images/themed/png/light/cancel-small.png new file mode 100644 index 000000000..8c5d91145 Binary files /dev/null and b/rtdata/images/themed/png/light/cancel-small.png differ diff --git a/rtdata/images/themed/png/light/cancel.png b/rtdata/images/themed/png/light/cancel.png new file mode 100644 index 000000000..1a48a2e44 Binary files /dev/null and b/rtdata/images/themed/png/light/cancel.png differ diff --git a/rtdata/images/themed/png/light/circle-black-small.png b/rtdata/images/themed/png/light/circle-black-small.png new file mode 100644 index 000000000..f18a415b6 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-black-small.png differ diff --git a/rtdata/images/themed/png/light/circle-blue-green-small.png b/rtdata/images/themed/png/light/circle-blue-green-small.png new file mode 100644 index 000000000..247931823 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-blue-green-small.png differ diff --git a/rtdata/images/themed/png/light/circle-blue-red-small.png b/rtdata/images/themed/png/light/circle-blue-red-small.png new file mode 100644 index 000000000..d88a01330 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-blue-red-small.png differ diff --git a/rtdata/images/themed/png/light/circle-blue-small.png b/rtdata/images/themed/png/light/circle-blue-small.png new file mode 100644 index 000000000..2c8ff48fd Binary files /dev/null and b/rtdata/images/themed/png/light/circle-blue-small.png differ diff --git a/rtdata/images/themed/png/light/circle-blue-yellow-small.png b/rtdata/images/themed/png/light/circle-blue-yellow-small.png new file mode 100644 index 000000000..0585b2195 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-blue-yellow-small.png differ diff --git a/rtdata/images/themed/png/light/circle-cyan-red-small.png b/rtdata/images/themed/png/light/circle-cyan-red-small.png new file mode 100644 index 000000000..ed7003161 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-cyan-red-small.png differ diff --git a/rtdata/images/themed/png/light/circle-cyan-small.png b/rtdata/images/themed/png/light/circle-cyan-small.png new file mode 100644 index 000000000..84f873a2c Binary files /dev/null and b/rtdata/images/themed/png/light/circle-cyan-small.png differ diff --git a/rtdata/images/themed/png/light/circle-darkgray-small.png b/rtdata/images/themed/png/light/circle-darkgray-small.png new file mode 100644 index 000000000..e706b1eba Binary files /dev/null and b/rtdata/images/themed/png/light/circle-darkgray-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-blue-small.png b/rtdata/images/themed/png/light/circle-empty-blue-small.png new file mode 100644 index 000000000..d53b3516e Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-blue-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-darkgray-small.png b/rtdata/images/themed/png/light/circle-empty-darkgray-small.png new file mode 100644 index 000000000..4f0f0f4c7 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-darkgray-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-gray-small.png b/rtdata/images/themed/png/light/circle-empty-gray-small.png new file mode 100644 index 000000000..b3a57c83b Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-gray-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-green-small.png b/rtdata/images/themed/png/light/circle-empty-green-small.png new file mode 100644 index 000000000..3b1444d37 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-green-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-purple-small.png b/rtdata/images/themed/png/light/circle-empty-purple-small.png new file mode 100644 index 000000000..e61da8e9f Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-purple-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-red-small.png b/rtdata/images/themed/png/light/circle-empty-red-small.png new file mode 100644 index 000000000..bf8035931 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-red-small.png differ diff --git a/rtdata/images/themed/png/light/circle-empty-yellow-small.png b/rtdata/images/themed/png/light/circle-empty-yellow-small.png new file mode 100644 index 000000000..9a3ca9bd8 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-empty-yellow-small.png differ diff --git a/rtdata/images/themed/png/light/circle-gray-blue-small.png b/rtdata/images/themed/png/light/circle-gray-blue-small.png new file mode 100644 index 000000000..01d5da881 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-gray-blue-small.png differ diff --git a/rtdata/images/themed/png/light/circle-gray-green-small.png b/rtdata/images/themed/png/light/circle-gray-green-small.png new file mode 100644 index 000000000..2290b708f Binary files /dev/null and b/rtdata/images/themed/png/light/circle-gray-green-small.png differ diff --git a/rtdata/images/themed/png/light/circle-gray-red-small.png b/rtdata/images/themed/png/light/circle-gray-red-small.png new file mode 100644 index 000000000..29afda33b Binary files /dev/null and b/rtdata/images/themed/png/light/circle-gray-red-small.png differ diff --git a/rtdata/images/themed/png/light/circle-gray-small.png b/rtdata/images/themed/png/light/circle-gray-small.png new file mode 100644 index 000000000..18ad6330a Binary files /dev/null and b/rtdata/images/themed/png/light/circle-gray-small.png differ diff --git a/rtdata/images/themed/png/light/circle-green-blue-small.png b/rtdata/images/themed/png/light/circle-green-blue-small.png new file mode 100644 index 000000000..1d6e60252 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-green-blue-small.png differ diff --git a/rtdata/images/themed/png/light/circle-green-red-small.png b/rtdata/images/themed/png/light/circle-green-red-small.png new file mode 100644 index 000000000..96f86b1b9 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-green-red-small.png differ diff --git a/rtdata/images/themed/png/light/circle-green-small.png b/rtdata/images/themed/png/light/circle-green-small.png new file mode 100644 index 000000000..88270e0cb Binary files /dev/null and b/rtdata/images/themed/png/light/circle-green-small.png differ diff --git a/rtdata/images/themed/png/light/circle-magenta-small.png b/rtdata/images/themed/png/light/circle-magenta-small.png new file mode 100644 index 000000000..cce26e1f2 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-magenta-small.png differ diff --git a/rtdata/images/themed/png/light/circle-orange-small.png b/rtdata/images/themed/png/light/circle-orange-small.png new file mode 100644 index 000000000..5894f0987 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-orange-small.png differ diff --git a/rtdata/images/themed/png/light/circle-purple-small.png b/rtdata/images/themed/png/light/circle-purple-small.png new file mode 100644 index 000000000..9fe4eb0d6 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-purple-small.png differ diff --git a/rtdata/images/themed/png/light/circle-red-blue-small.png b/rtdata/images/themed/png/light/circle-red-blue-small.png new file mode 100644 index 000000000..e70ef22f6 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-red-blue-small.png differ diff --git a/rtdata/images/themed/png/light/circle-red-cyan-small.png b/rtdata/images/themed/png/light/circle-red-cyan-small.png new file mode 100644 index 000000000..92b03b953 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-red-cyan-small.png differ diff --git a/rtdata/images/themed/png/light/circle-red-green-small.png b/rtdata/images/themed/png/light/circle-red-green-small.png new file mode 100644 index 000000000..4572e019f Binary files /dev/null and b/rtdata/images/themed/png/light/circle-red-green-small.png differ diff --git a/rtdata/images/themed/png/light/circle-red-small.png b/rtdata/images/themed/png/light/circle-red-small.png new file mode 100644 index 000000000..a8c9cecec Binary files /dev/null and b/rtdata/images/themed/png/light/circle-red-small.png differ diff --git a/rtdata/images/themed/png/light/circle-white-small.png b/rtdata/images/themed/png/light/circle-white-small.png new file mode 100644 index 000000000..acf4f8b76 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-white-small.png differ diff --git a/rtdata/images/themed/png/light/circle-yellow-blue-small.png b/rtdata/images/themed/png/light/circle-yellow-blue-small.png new file mode 100644 index 000000000..1f7aec9f2 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-yellow-blue-small.png differ diff --git a/rtdata/images/themed/png/light/circle-yellow-small.png b/rtdata/images/themed/png/light/circle-yellow-small.png new file mode 100644 index 000000000..1c5678ac2 Binary files /dev/null and b/rtdata/images/themed/png/light/circle-yellow-small.png differ diff --git a/rtdata/images/themed/png/light/color-circles.png b/rtdata/images/themed/png/light/color-circles.png new file mode 100644 index 000000000..0be8fdacc Binary files /dev/null and b/rtdata/images/themed/png/light/color-circles.png differ diff --git a/rtdata/images/themed/png/light/color-picker-add-hicontrast.png b/rtdata/images/themed/png/light/color-picker-add-hicontrast.png new file mode 100644 index 000000000..5dcdacf1f Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker-add-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/color-picker-add.png b/rtdata/images/themed/png/light/color-picker-add.png new file mode 100644 index 000000000..593e69b3d Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker-add.png differ diff --git a/rtdata/images/themed/png/light/color-picker-bars.png b/rtdata/images/themed/png/light/color-picker-bars.png new file mode 100644 index 000000000..a7a9b0f07 Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker-bars.png differ diff --git a/rtdata/images/themed/png/light/color-picker-hicontrast.png b/rtdata/images/themed/png/light/color-picker-hicontrast.png new file mode 100644 index 000000000..c7bfb850b Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/color-picker-hide.png b/rtdata/images/themed/png/light/color-picker-hide.png new file mode 100644 index 000000000..418b5b929 Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker-hide.png differ diff --git a/rtdata/images/themed/png/light/color-picker.png b/rtdata/images/themed/png/light/color-picker.png new file mode 100644 index 000000000..0d01785a0 Binary files /dev/null and b/rtdata/images/themed/png/light/color-picker.png differ diff --git a/rtdata/images/themed/png/light/contrastmask-off.png b/rtdata/images/themed/png/light/contrastmask-off.png new file mode 100644 index 000000000..b3df60148 Binary files /dev/null and b/rtdata/images/themed/png/light/contrastmask-off.png differ diff --git a/rtdata/images/themed/png/light/contrastmask-on.png b/rtdata/images/themed/png/light/contrastmask-on.png new file mode 100644 index 000000000..064ed7e9b Binary files /dev/null and b/rtdata/images/themed/png/light/contrastmask-on.png differ diff --git a/rtdata/images/themed/png/light/copy.png b/rtdata/images/themed/png/light/copy.png new file mode 100644 index 000000000..bd4523ea2 Binary files /dev/null and b/rtdata/images/themed/png/light/copy.png differ diff --git a/rtdata/images/themed/png/light/crop-auto-small.png b/rtdata/images/themed/png/light/crop-auto-small.png new file mode 100644 index 000000000..bc3de2dc2 Binary files /dev/null and b/rtdata/images/themed/png/light/crop-auto-small.png differ diff --git a/rtdata/images/themed/png/light/crop-auto.png b/rtdata/images/themed/png/light/crop-auto.png new file mode 100644 index 000000000..5499df93f Binary files /dev/null and b/rtdata/images/themed/png/light/crop-auto.png differ diff --git a/rtdata/images/themed/png/light/crop-point-hicontrast.png b/rtdata/images/themed/png/light/crop-point-hicontrast.png new file mode 100644 index 000000000..65aa29856 Binary files /dev/null and b/rtdata/images/themed/png/light/crop-point-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/crop-small.png b/rtdata/images/themed/png/light/crop-small.png new file mode 100644 index 000000000..9f345a6ef Binary files /dev/null and b/rtdata/images/themed/png/light/crop-small.png differ diff --git a/rtdata/images/themed/png/light/crop.png b/rtdata/images/themed/png/light/crop.png new file mode 100644 index 000000000..83ef5a955 Binary files /dev/null and b/rtdata/images/themed/png/light/crop.png differ diff --git a/rtdata/images/themed/png/light/crossed-arrows-in.png b/rtdata/images/themed/png/light/crossed-arrows-in.png new file mode 100644 index 000000000..f10a4a058 Binary files /dev/null and b/rtdata/images/themed/png/light/crossed-arrows-in.png differ diff --git a/rtdata/images/themed/png/light/crossed-arrows-out.png b/rtdata/images/themed/png/light/crossed-arrows-out.png new file mode 100644 index 000000000..410e65f3d Binary files /dev/null and b/rtdata/images/themed/png/light/crossed-arrows-out.png differ diff --git a/rtdata/images/themed/png/light/crosshair-adjust.png b/rtdata/images/themed/png/light/crosshair-adjust.png new file mode 100644 index 000000000..b8b17dfa1 Binary files /dev/null and b/rtdata/images/themed/png/light/crosshair-adjust.png differ diff --git a/rtdata/images/themed/png/light/crosshair-hicontrast.png b/rtdata/images/themed/png/light/crosshair-hicontrast.png new file mode 100644 index 000000000..078512803 Binary files /dev/null and b/rtdata/images/themed/png/light/crosshair-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/crosshair-node-curve.png b/rtdata/images/themed/png/light/crosshair-node-curve.png new file mode 100644 index 000000000..0af7379c2 Binary files /dev/null and b/rtdata/images/themed/png/light/crosshair-node-curve.png differ diff --git a/rtdata/images/themed/png/light/crosshair-small.png b/rtdata/images/themed/png/light/crosshair-small.png new file mode 100644 index 000000000..a898a2fdb Binary files /dev/null and b/rtdata/images/themed/png/light/crosshair-small.png differ diff --git a/rtdata/images/themed/png/light/curve-controlpoints-small.png b/rtdata/images/themed/png/light/curve-controlpoints-small.png new file mode 100644 index 000000000..2be1333ff Binary files /dev/null and b/rtdata/images/themed/png/light/curve-controlpoints-small.png differ diff --git a/rtdata/images/themed/png/light/curve-controlpoints.png b/rtdata/images/themed/png/light/curve-controlpoints.png new file mode 100644 index 000000000..cdd7cdd3a Binary files /dev/null and b/rtdata/images/themed/png/light/curve-controlpoints.png differ diff --git a/rtdata/images/themed/png/light/curve-flat-small.png b/rtdata/images/themed/png/light/curve-flat-small.png new file mode 100644 index 000000000..17959e6ac Binary files /dev/null and b/rtdata/images/themed/png/light/curve-flat-small.png differ diff --git a/rtdata/images/themed/png/light/curve-flat.png b/rtdata/images/themed/png/light/curve-flat.png new file mode 100644 index 000000000..976281d49 Binary files /dev/null and b/rtdata/images/themed/png/light/curve-flat.png differ diff --git a/rtdata/images/themed/png/light/curve-linear-small.png b/rtdata/images/themed/png/light/curve-linear-small.png new file mode 100644 index 000000000..53b07f616 Binary files /dev/null and b/rtdata/images/themed/png/light/curve-linear-small.png differ diff --git a/rtdata/images/themed/png/light/curve-linear.png b/rtdata/images/themed/png/light/curve-linear.png new file mode 100644 index 000000000..a3d9105dd Binary files /dev/null and b/rtdata/images/themed/png/light/curve-linear.png differ diff --git a/rtdata/images/themed/png/light/curve-nurbs-small.png b/rtdata/images/themed/png/light/curve-nurbs-small.png new file mode 100644 index 000000000..f970852b5 Binary files /dev/null and b/rtdata/images/themed/png/light/curve-nurbs-small.png differ diff --git a/rtdata/images/themed/png/light/curve-nurbs.png b/rtdata/images/themed/png/light/curve-nurbs.png new file mode 100644 index 000000000..ad9b3eb87 Binary files /dev/null and b/rtdata/images/themed/png/light/curve-nurbs.png differ diff --git a/rtdata/images/themed/png/light/curve-parametric-small.png b/rtdata/images/themed/png/light/curve-parametric-small.png new file mode 100644 index 000000000..2acba010c Binary files /dev/null and b/rtdata/images/themed/png/light/curve-parametric-small.png differ diff --git a/rtdata/images/themed/png/light/curve-parametric.png b/rtdata/images/themed/png/light/curve-parametric.png new file mode 100644 index 000000000..a29a7529b Binary files /dev/null and b/rtdata/images/themed/png/light/curve-parametric.png differ diff --git a/rtdata/images/themed/png/light/curve-spline-small.png b/rtdata/images/themed/png/light/curve-spline-small.png new file mode 100644 index 000000000..6ea7b93c9 Binary files /dev/null and b/rtdata/images/themed/png/light/curve-spline-small.png differ diff --git a/rtdata/images/themed/png/light/curve-spline.png b/rtdata/images/themed/png/light/curve-spline.png new file mode 100644 index 000000000..c7318df5a Binary files /dev/null and b/rtdata/images/themed/png/light/curve-spline.png differ diff --git a/rtdata/images/themed/png/light/detail.png b/rtdata/images/themed/png/light/detail.png new file mode 100644 index 000000000..45ef517d0 Binary files /dev/null and b/rtdata/images/themed/png/light/detail.png differ diff --git a/rtdata/images/themed/png/light/device-floppy.png b/rtdata/images/themed/png/light/device-floppy.png new file mode 100644 index 000000000..bc0ec8c30 Binary files /dev/null and b/rtdata/images/themed/png/light/device-floppy.png differ diff --git a/rtdata/images/themed/png/light/device-hdd.png b/rtdata/images/themed/png/light/device-hdd.png new file mode 100644 index 000000000..4477bfb21 Binary files /dev/null and b/rtdata/images/themed/png/light/device-hdd.png differ diff --git a/rtdata/images/themed/png/light/device-network.png b/rtdata/images/themed/png/light/device-network.png new file mode 100644 index 000000000..3d2f69efe Binary files /dev/null and b/rtdata/images/themed/png/light/device-network.png differ diff --git a/rtdata/images/themed/png/light/device-optical.png b/rtdata/images/themed/png/light/device-optical.png new file mode 100644 index 000000000..ca6c5bd32 Binary files /dev/null and b/rtdata/images/themed/png/light/device-optical.png differ diff --git a/rtdata/images/themed/png/light/device-usb.png b/rtdata/images/themed/png/light/device-usb.png new file mode 100644 index 000000000..30a43f7fe Binary files /dev/null and b/rtdata/images/themed/png/light/device-usb.png differ diff --git a/rtdata/images/themed/png/light/distortion-auto-small.png b/rtdata/images/themed/png/light/distortion-auto-small.png new file mode 100644 index 000000000..385c37307 Binary files /dev/null and b/rtdata/images/themed/png/light/distortion-auto-small.png differ diff --git a/rtdata/images/themed/png/light/distortion-auto.png b/rtdata/images/themed/png/light/distortion-auto.png new file mode 100644 index 000000000..242791d1b Binary files /dev/null and b/rtdata/images/themed/png/light/distortion-auto.png differ diff --git a/rtdata/images/themed/png/light/distortion-barrel-small.png b/rtdata/images/themed/png/light/distortion-barrel-small.png new file mode 100644 index 000000000..5ec7c232b Binary files /dev/null and b/rtdata/images/themed/png/light/distortion-barrel-small.png differ diff --git a/rtdata/images/themed/png/light/distortion-barrel.png b/rtdata/images/themed/png/light/distortion-barrel.png new file mode 100644 index 000000000..ab04051ea Binary files /dev/null and b/rtdata/images/themed/png/light/distortion-barrel.png differ diff --git a/rtdata/images/themed/png/light/distortion-pincushion-small.png b/rtdata/images/themed/png/light/distortion-pincushion-small.png new file mode 100644 index 000000000..12bbe630d Binary files /dev/null and b/rtdata/images/themed/png/light/distortion-pincushion-small.png differ diff --git a/rtdata/images/themed/png/light/distortion-pincushion.png b/rtdata/images/themed/png/light/distortion-pincushion.png new file mode 100644 index 000000000..a927e90c2 Binary files /dev/null and b/rtdata/images/themed/png/light/distortion-pincushion.png differ diff --git a/rtdata/images/themed/png/light/edit-point.png b/rtdata/images/themed/png/light/edit-point.png new file mode 100644 index 000000000..b75f3670a Binary files /dev/null and b/rtdata/images/themed/png/light/edit-point.png differ diff --git a/rtdata/images/themed/png/light/equilizer-narrow.png b/rtdata/images/themed/png/light/equilizer-narrow.png new file mode 100644 index 000000000..3e40c173c Binary files /dev/null and b/rtdata/images/themed/png/light/equilizer-narrow.png differ diff --git a/rtdata/images/themed/png/light/equilizer-wide.png b/rtdata/images/themed/png/light/equilizer-wide.png new file mode 100644 index 000000000..41b0f72f0 Binary files /dev/null and b/rtdata/images/themed/png/light/equilizer-wide.png differ diff --git a/rtdata/images/themed/png/light/expander-closed-small.png b/rtdata/images/themed/png/light/expander-closed-small.png new file mode 100644 index 000000000..23fcef4a1 Binary files /dev/null and b/rtdata/images/themed/png/light/expander-closed-small.png differ diff --git a/rtdata/images/themed/png/light/expander-open-small.png b/rtdata/images/themed/png/light/expander-open-small.png new file mode 100644 index 000000000..d4ab66ab6 Binary files /dev/null and b/rtdata/images/themed/png/light/expander-open-small.png differ diff --git a/rtdata/images/themed/png/light/exposure.png b/rtdata/images/themed/png/light/exposure.png new file mode 100644 index 000000000..1259b9a5c Binary files /dev/null and b/rtdata/images/themed/png/light/exposure.png differ diff --git a/rtdata/images/themed/png/light/filetype-hdr.png b/rtdata/images/themed/png/light/filetype-hdr.png new file mode 100644 index 000000000..7365fb560 Binary files /dev/null and b/rtdata/images/themed/png/light/filetype-hdr.png differ diff --git a/rtdata/images/themed/png/light/filetype-ps.png b/rtdata/images/themed/png/light/filetype-ps.png new file mode 100644 index 000000000..982ed9736 Binary files /dev/null and b/rtdata/images/themed/png/light/filetype-ps.png differ diff --git a/rtdata/images/themed/png/light/filter-clear.png b/rtdata/images/themed/png/light/filter-clear.png new file mode 100644 index 000000000..f07e3a901 Binary files /dev/null and b/rtdata/images/themed/png/light/filter-clear.png differ diff --git a/rtdata/images/themed/png/light/filter-original.png b/rtdata/images/themed/png/light/filter-original.png new file mode 100644 index 000000000..5de915274 Binary files /dev/null and b/rtdata/images/themed/png/light/filter-original.png differ diff --git a/rtdata/images/themed/png/light/filter-original2.png b/rtdata/images/themed/png/light/filter-original2.png new file mode 100644 index 000000000..c20c214aa Binary files /dev/null and b/rtdata/images/themed/png/light/filter-original2.png differ diff --git a/rtdata/images/themed/png/light/filter.png b/rtdata/images/themed/png/light/filter.png new file mode 100644 index 000000000..4a0c95916 Binary files /dev/null and b/rtdata/images/themed/png/light/filter.png differ diff --git a/rtdata/images/themed/png/light/flip-horizontal.png b/rtdata/images/themed/png/light/flip-horizontal.png new file mode 100644 index 000000000..9d5993527 Binary files /dev/null and b/rtdata/images/themed/png/light/flip-horizontal.png differ diff --git a/rtdata/images/themed/png/light/flip-vertical.png b/rtdata/images/themed/png/light/flip-vertical.png new file mode 100644 index 000000000..6249c98b4 Binary files /dev/null and b/rtdata/images/themed/png/light/flip-vertical.png differ diff --git a/rtdata/images/themed/png/light/focusscreen-off.png b/rtdata/images/themed/png/light/focusscreen-off.png new file mode 100644 index 000000000..106ec4035 Binary files /dev/null and b/rtdata/images/themed/png/light/focusscreen-off.png differ diff --git a/rtdata/images/themed/png/light/focusscreen-on.png b/rtdata/images/themed/png/light/focusscreen-on.png new file mode 100644 index 000000000..f9c418b92 Binary files /dev/null and b/rtdata/images/themed/png/light/focusscreen-on.png differ diff --git a/rtdata/images/themed/png/light/folder-closed-home-small.png b/rtdata/images/themed/png/light/folder-closed-home-small.png new file mode 100644 index 000000000..fff07d768 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-closed-home-small.png differ diff --git a/rtdata/images/themed/png/light/folder-closed-home.png b/rtdata/images/themed/png/light/folder-closed-home.png new file mode 100644 index 000000000..27eb6d355 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-closed-home.png differ diff --git a/rtdata/images/themed/png/light/folder-closed-recent-small.png b/rtdata/images/themed/png/light/folder-closed-recent-small.png new file mode 100644 index 000000000..400f79a67 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-closed-recent-small.png differ diff --git a/rtdata/images/themed/png/light/folder-closed-recent.png b/rtdata/images/themed/png/light/folder-closed-recent.png new file mode 100644 index 000000000..4f3755700 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-closed-recent.png differ diff --git a/rtdata/images/themed/png/light/folder-closed-small.png b/rtdata/images/themed/png/light/folder-closed-small.png new file mode 100644 index 000000000..89939d9d0 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-closed-small.png differ diff --git a/rtdata/images/themed/png/light/folder-closed.png b/rtdata/images/themed/png/light/folder-closed.png new file mode 100644 index 000000000..3f14b84fc Binary files /dev/null and b/rtdata/images/themed/png/light/folder-closed.png differ diff --git a/rtdata/images/themed/png/light/folder-open-recent-small.png b/rtdata/images/themed/png/light/folder-open-recent-small.png new file mode 100644 index 000000000..48aed8e40 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-open-recent-small.png differ diff --git a/rtdata/images/themed/png/light/folder-open-recent.png b/rtdata/images/themed/png/light/folder-open-recent.png new file mode 100644 index 000000000..25eabe0d8 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-open-recent.png differ diff --git a/rtdata/images/themed/png/light/folder-open-small.png b/rtdata/images/themed/png/light/folder-open-small.png new file mode 100644 index 000000000..6cb4fb877 Binary files /dev/null and b/rtdata/images/themed/png/light/folder-open-small.png differ diff --git a/rtdata/images/themed/png/light/folder-open.png b/rtdata/images/themed/png/light/folder-open.png new file mode 100644 index 000000000..0a857b1fd Binary files /dev/null and b/rtdata/images/themed/png/light/folder-open.png differ diff --git a/rtdata/images/themed/png/light/fullscreen-enter.png b/rtdata/images/themed/png/light/fullscreen-enter.png new file mode 100644 index 000000000..b8f52bda8 Binary files /dev/null and b/rtdata/images/themed/png/light/fullscreen-enter.png differ diff --git a/rtdata/images/themed/png/light/fullscreen-leave.png b/rtdata/images/themed/png/light/fullscreen-leave.png new file mode 100644 index 000000000..3a96de2dd Binary files /dev/null and b/rtdata/images/themed/png/light/fullscreen-leave.png differ diff --git a/rtdata/images/themed/png/light/gamut-hist.png b/rtdata/images/themed/png/light/gamut-hist.png new file mode 100644 index 000000000..c1faf7b2e Binary files /dev/null and b/rtdata/images/themed/png/light/gamut-hist.png differ diff --git a/rtdata/images/themed/png/light/gamut-plus.png b/rtdata/images/themed/png/light/gamut-plus.png new file mode 100644 index 000000000..c41e5a39b Binary files /dev/null and b/rtdata/images/themed/png/light/gamut-plus.png differ diff --git a/rtdata/images/themed/png/light/gamut-softproof.png b/rtdata/images/themed/png/light/gamut-softproof.png new file mode 100644 index 000000000..832b231fe Binary files /dev/null and b/rtdata/images/themed/png/light/gamut-softproof.png differ diff --git a/rtdata/images/themed/png/light/gamut-warning.png b/rtdata/images/themed/png/light/gamut-warning.png new file mode 100644 index 000000000..882a59530 Binary files /dev/null and b/rtdata/images/themed/png/light/gamut-warning.png differ diff --git a/rtdata/images/themed/png/light/gamut_srgb_prophoto_xy.png b/rtdata/images/themed/png/light/gamut_srgb_prophoto_xy.png new file mode 100644 index 000000000..46e8becb9 Binary files /dev/null and b/rtdata/images/themed/png/light/gamut_srgb_prophoto_xy.png differ diff --git a/rtdata/images/themed/png/light/gears-pause.png b/rtdata/images/themed/png/light/gears-pause.png new file mode 100644 index 000000000..ef10159f4 Binary files /dev/null and b/rtdata/images/themed/png/light/gears-pause.png differ diff --git a/rtdata/images/themed/png/light/gears-play.png b/rtdata/images/themed/png/light/gears-play.png new file mode 100644 index 000000000..c7d534f55 Binary files /dev/null and b/rtdata/images/themed/png/light/gears-play.png differ diff --git a/rtdata/images/themed/png/light/gears-small.png b/rtdata/images/themed/png/light/gears-small.png new file mode 100644 index 000000000..84b70358b Binary files /dev/null and b/rtdata/images/themed/png/light/gears-small.png differ diff --git a/rtdata/images/themed/png/light/gears.png b/rtdata/images/themed/png/light/gears.png new file mode 100644 index 000000000..ff76d0cb0 Binary files /dev/null and b/rtdata/images/themed/png/light/gears.png differ diff --git a/rtdata/images/themed/png/light/goto-end-small.png b/rtdata/images/themed/png/light/goto-end-small.png new file mode 100644 index 000000000..29d81c231 Binary files /dev/null and b/rtdata/images/themed/png/light/goto-end-small.png differ diff --git a/rtdata/images/themed/png/light/goto-start-small.png b/rtdata/images/themed/png/light/goto-start-small.png new file mode 100644 index 000000000..671666740 Binary files /dev/null and b/rtdata/images/themed/png/light/goto-start-small.png differ diff --git a/rtdata/images/themed/png/light/hand-closed-hicontrast.png b/rtdata/images/themed/png/light/hand-closed-hicontrast.png new file mode 100644 index 000000000..590d95096 Binary files /dev/null and b/rtdata/images/themed/png/light/hand-closed-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/hand-open-hicontrast.png b/rtdata/images/themed/png/light/hand-open-hicontrast.png new file mode 100644 index 000000000..2ee26e375 Binary files /dev/null and b/rtdata/images/themed/png/light/hand-open-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/hand-open.png b/rtdata/images/themed/png/light/hand-open.png new file mode 100644 index 000000000..bb01eac88 Binary files /dev/null and b/rtdata/images/themed/png/light/hand-open.png differ diff --git a/rtdata/images/themed/png/light/histogram-bar-off-small.png b/rtdata/images/themed/png/light/histogram-bar-off-small.png new file mode 100644 index 000000000..b7f022a0a Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-bar-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-bar-on-small.png b/rtdata/images/themed/png/light/histogram-bar-on-small.png new file mode 100644 index 000000000..e38fe436f Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-bar-on-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-bayer-off-small.png b/rtdata/images/themed/png/light/histogram-bayer-off-small.png new file mode 100644 index 000000000..af1369145 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-bayer-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-bayer-on-small.png b/rtdata/images/themed/png/light/histogram-bayer-on-small.png new file mode 100644 index 000000000..44e23b51b Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-bayer-on-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-blue-off-small.png b/rtdata/images/themed/png/light/histogram-blue-off-small.png new file mode 100644 index 000000000..8b368ed63 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-blue-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-blue-on-small.png b/rtdata/images/themed/png/light/histogram-blue-on-small.png new file mode 100644 index 000000000..537153043 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-blue-on-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-gold-off-small.png b/rtdata/images/themed/png/light/histogram-gold-off-small.png new file mode 100644 index 000000000..4272c3ff7 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-gold-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-gold-on-small.png b/rtdata/images/themed/png/light/histogram-gold-on-small.png new file mode 100644 index 000000000..8f32203fd Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-gold-on-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-green-off-small.png b/rtdata/images/themed/png/light/histogram-green-off-small.png new file mode 100644 index 000000000..395fcac9e Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-green-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-green-on-small.png b/rtdata/images/themed/png/light/histogram-green-on-small.png new file mode 100644 index 000000000..db3f89ef5 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-green-on-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-mode-linear-small.png b/rtdata/images/themed/png/light/histogram-mode-linear-small.png new file mode 100644 index 000000000..4eafc3c15 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-mode-linear-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-mode-logx-small.png b/rtdata/images/themed/png/light/histogram-mode-logx-small.png new file mode 100644 index 000000000..2e33b16d7 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-mode-logx-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-mode-logxy-small.png b/rtdata/images/themed/png/light/histogram-mode-logxy-small.png new file mode 100644 index 000000000..29431e3b4 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-mode-logxy-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-red-off-small.png b/rtdata/images/themed/png/light/histogram-red-off-small.png new file mode 100644 index 000000000..7d5ea5352 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-red-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-red-on-small.png b/rtdata/images/themed/png/light/histogram-red-on-small.png new file mode 100644 index 000000000..deee136a2 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-red-on-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-silver-off-small.png b/rtdata/images/themed/png/light/histogram-silver-off-small.png new file mode 100644 index 000000000..d88e879bc Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-silver-off-small.png differ diff --git a/rtdata/images/themed/png/light/histogram-silver-on-small.png b/rtdata/images/themed/png/light/histogram-silver-on-small.png new file mode 100644 index 000000000..bdef06144 Binary files /dev/null and b/rtdata/images/themed/png/light/histogram-silver-on-small.png differ diff --git a/rtdata/images/themed/png/light/info.png b/rtdata/images/themed/png/light/info.png new file mode 100644 index 000000000..10235714f Binary files /dev/null and b/rtdata/images/themed/png/light/info.png differ diff --git a/rtdata/images/themed/png/light/intent-absolute.png b/rtdata/images/themed/png/light/intent-absolute.png new file mode 100644 index 000000000..ee04d0a11 Binary files /dev/null and b/rtdata/images/themed/png/light/intent-absolute.png differ diff --git a/rtdata/images/themed/png/light/intent-perceptual.png b/rtdata/images/themed/png/light/intent-perceptual.png new file mode 100644 index 000000000..1c1e0c283 Binary files /dev/null and b/rtdata/images/themed/png/light/intent-perceptual.png differ diff --git a/rtdata/images/themed/png/light/intent-relative.png b/rtdata/images/themed/png/light/intent-relative.png new file mode 100644 index 000000000..4d212b6ab Binary files /dev/null and b/rtdata/images/themed/png/light/intent-relative.png differ diff --git a/rtdata/images/themed/png/light/intent-saturation.png b/rtdata/images/themed/png/light/intent-saturation.png new file mode 100644 index 000000000..26ab655dc Binary files /dev/null and b/rtdata/images/themed/png/light/intent-saturation.png differ diff --git a/rtdata/images/themed/png/light/magnifier-1to1-small.png b/rtdata/images/themed/png/light/magnifier-1to1-small.png new file mode 100644 index 000000000..cfd75532a Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-1to1-small.png differ diff --git a/rtdata/images/themed/png/light/magnifier-1to1.png b/rtdata/images/themed/png/light/magnifier-1to1.png new file mode 100644 index 000000000..b547f0944 Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-1to1.png differ diff --git a/rtdata/images/themed/png/light/magnifier-crop.png b/rtdata/images/themed/png/light/magnifier-crop.png new file mode 100644 index 000000000..7f4f906f0 Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-crop.png differ diff --git a/rtdata/images/themed/png/light/magnifier-fit.png b/rtdata/images/themed/png/light/magnifier-fit.png new file mode 100644 index 000000000..fdc0bef5f Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-fit.png differ diff --git a/rtdata/images/themed/png/light/magnifier-minus-small.png b/rtdata/images/themed/png/light/magnifier-minus-small.png new file mode 100644 index 000000000..76b55f975 Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-minus-small.png differ diff --git a/rtdata/images/themed/png/light/magnifier-minus.png b/rtdata/images/themed/png/light/magnifier-minus.png new file mode 100644 index 000000000..22db961c3 Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-minus.png differ diff --git a/rtdata/images/themed/png/light/magnifier-plus-small.png b/rtdata/images/themed/png/light/magnifier-plus-small.png new file mode 100644 index 000000000..54d989e63 Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-plus-small.png differ diff --git a/rtdata/images/themed/png/light/magnifier-plus.png b/rtdata/images/themed/png/light/magnifier-plus.png new file mode 100644 index 000000000..e45ce8d81 Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier-plus.png differ diff --git a/rtdata/images/themed/png/light/magnifier.png b/rtdata/images/themed/png/light/magnifier.png new file mode 100644 index 000000000..a7fbdbeda Binary files /dev/null and b/rtdata/images/themed/png/light/magnifier.png differ diff --git a/rtdata/images/themed/png/light/metadata.png b/rtdata/images/themed/png/light/metadata.png new file mode 100644 index 000000000..ba114f5c1 Binary files /dev/null and b/rtdata/images/themed/png/light/metadata.png differ diff --git a/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png b/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png new file mode 100644 index 000000000..b802c5849 Binary files /dev/null and b/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png b/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png new file mode 100644 index 000000000..2e51e88a3 Binary files /dev/null and b/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/node-move-x-hicontrast.png b/rtdata/images/themed/png/light/node-move-x-hicontrast.png new file mode 100644 index 000000000..1cc871dbb Binary files /dev/null and b/rtdata/images/themed/png/light/node-move-x-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/node-move-xy-hicontrast.png b/rtdata/images/themed/png/light/node-move-xy-hicontrast.png new file mode 100644 index 000000000..8b843958d Binary files /dev/null and b/rtdata/images/themed/png/light/node-move-xy-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/node-move-y-hicontrast.png b/rtdata/images/themed/png/light/node-move-y-hicontrast.png new file mode 100644 index 000000000..f80690851 Binary files /dev/null and b/rtdata/images/themed/png/light/node-move-y-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/one-to-one-small.png b/rtdata/images/themed/png/light/one-to-one-small.png new file mode 100644 index 000000000..8c506609c Binary files /dev/null and b/rtdata/images/themed/png/light/one-to-one-small.png differ diff --git a/rtdata/images/themed/png/light/ornament1.png b/rtdata/images/themed/png/light/ornament1.png new file mode 100644 index 000000000..71b3f1c78 Binary files /dev/null and b/rtdata/images/themed/png/light/ornament1.png differ diff --git a/rtdata/images/themed/png/light/padlock-locked-small.png b/rtdata/images/themed/png/light/padlock-locked-small.png new file mode 100644 index 000000000..1b1198f01 Binary files /dev/null and b/rtdata/images/themed/png/light/padlock-locked-small.png differ diff --git a/rtdata/images/themed/png/light/padlock-unlocked-small.png b/rtdata/images/themed/png/light/padlock-unlocked-small.png new file mode 100644 index 000000000..96b75f093 Binary files /dev/null and b/rtdata/images/themed/png/light/padlock-unlocked-small.png differ diff --git a/rtdata/images/themed/png/light/palette-brush.png b/rtdata/images/themed/png/light/palette-brush.png new file mode 100644 index 000000000..bd208f059 Binary files /dev/null and b/rtdata/images/themed/png/light/palette-brush.png differ diff --git a/rtdata/images/themed/png/light/panel-to-bottom.png b/rtdata/images/themed/png/light/panel-to-bottom.png new file mode 100644 index 000000000..e2d532a16 Binary files /dev/null and b/rtdata/images/themed/png/light/panel-to-bottom.png differ diff --git a/rtdata/images/themed/png/light/panel-to-left.png b/rtdata/images/themed/png/light/panel-to-left.png new file mode 100644 index 000000000..196fed3c9 Binary files /dev/null and b/rtdata/images/themed/png/light/panel-to-left.png differ diff --git a/rtdata/images/themed/png/light/panel-to-right.png b/rtdata/images/themed/png/light/panel-to-right.png new file mode 100644 index 000000000..a9e3b7667 Binary files /dev/null and b/rtdata/images/themed/png/light/panel-to-right.png differ diff --git a/rtdata/images/themed/png/light/panel-to-top.png b/rtdata/images/themed/png/light/panel-to-top.png new file mode 100644 index 000000000..dafa6b852 Binary files /dev/null and b/rtdata/images/themed/png/light/panel-to-top.png differ diff --git a/rtdata/images/themed/png/light/paste.png b/rtdata/images/themed/png/light/paste.png new file mode 100644 index 000000000..ffefcc323 Binary files /dev/null and b/rtdata/images/themed/png/light/paste.png differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-left-small.png b/rtdata/images/themed/png/light/perspective-horizontal-left-small.png new file mode 100644 index 000000000..f2832c607 Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-horizontal-left-small.png differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-left.png b/rtdata/images/themed/png/light/perspective-horizontal-left.png new file mode 100644 index 000000000..23b24f6aa Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-horizontal-left.png differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-right-small.png b/rtdata/images/themed/png/light/perspective-horizontal-right-small.png new file mode 100644 index 000000000..e555f0c1e Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-horizontal-right-small.png differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-right.png b/rtdata/images/themed/png/light/perspective-horizontal-right.png new file mode 100644 index 000000000..7a334ad81 Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-horizontal-right.png differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-bottom-small.png b/rtdata/images/themed/png/light/perspective-vertical-bottom-small.png new file mode 100644 index 000000000..12f776add Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-vertical-bottom-small.png differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-bottom.png b/rtdata/images/themed/png/light/perspective-vertical-bottom.png new file mode 100644 index 000000000..c6dbfcd51 Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-vertical-bottom.png differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-top-small.png b/rtdata/images/themed/png/light/perspective-vertical-top-small.png new file mode 100644 index 000000000..8202b0e75 Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-vertical-top-small.png differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-top.png b/rtdata/images/themed/png/light/perspective-vertical-top.png new file mode 100644 index 000000000..05c0a7fe1 Binary files /dev/null and b/rtdata/images/themed/png/light/perspective-vertical-top.png differ diff --git a/rtdata/images/themed/png/light/power-inconsistent-small.png b/rtdata/images/themed/png/light/power-inconsistent-small.png new file mode 100644 index 000000000..2805f8245 Binary files /dev/null and b/rtdata/images/themed/png/light/power-inconsistent-small.png differ diff --git a/rtdata/images/themed/png/light/power-off-small.png b/rtdata/images/themed/png/light/power-off-small.png new file mode 100644 index 000000000..6036813a9 Binary files /dev/null and b/rtdata/images/themed/png/light/power-off-small.png differ diff --git a/rtdata/images/themed/png/light/power-on-small.png b/rtdata/images/themed/png/light/power-on-small.png new file mode 100644 index 000000000..796aa16e2 Binary files /dev/null and b/rtdata/images/themed/png/light/power-on-small.png differ diff --git a/rtdata/images/themed/png/light/preferences.png b/rtdata/images/themed/png/light/preferences.png new file mode 100644 index 000000000..c18a5e2a6 Binary files /dev/null and b/rtdata/images/themed/png/light/preferences.png differ diff --git a/rtdata/images/themed/png/light/profile-filled.png b/rtdata/images/themed/png/light/profile-filled.png new file mode 100644 index 000000000..ba549ec63 Binary files /dev/null and b/rtdata/images/themed/png/light/profile-filled.png differ diff --git a/rtdata/images/themed/png/light/profile-partial.png b/rtdata/images/themed/png/light/profile-partial.png new file mode 100644 index 000000000..5baed296d Binary files /dev/null and b/rtdata/images/themed/png/light/profile-partial.png differ diff --git a/rtdata/images/themed/png/light/redo-all.png b/rtdata/images/themed/png/light/redo-all.png new file mode 100644 index 000000000..38551bf34 Binary files /dev/null and b/rtdata/images/themed/png/light/redo-all.png differ diff --git a/rtdata/images/themed/png/light/redo-small.png b/rtdata/images/themed/png/light/redo-small.png new file mode 100644 index 000000000..6671aa682 Binary files /dev/null and b/rtdata/images/themed/png/light/redo-small.png differ diff --git a/rtdata/images/themed/png/light/redo.png b/rtdata/images/themed/png/light/redo.png new file mode 100644 index 000000000..165f4ea29 Binary files /dev/null and b/rtdata/images/themed/png/light/redo.png differ diff --git a/rtdata/images/themed/png/light/refresh-red-small.png b/rtdata/images/themed/png/light/refresh-red-small.png new file mode 100644 index 000000000..296035883 Binary files /dev/null and b/rtdata/images/themed/png/light/refresh-red-small.png differ diff --git a/rtdata/images/themed/png/light/refresh-small.png b/rtdata/images/themed/png/light/refresh-small.png new file mode 100644 index 000000000..c6c827182 Binary files /dev/null and b/rtdata/images/themed/png/light/refresh-small.png differ diff --git a/rtdata/images/themed/png/light/refresh.png b/rtdata/images/themed/png/light/refresh.png new file mode 100644 index 000000000..cc062f1f5 Binary files /dev/null and b/rtdata/images/themed/png/light/refresh.png differ diff --git a/rtdata/images/themed/png/light/remove-small.png b/rtdata/images/themed/png/light/remove-small.png new file mode 100644 index 000000000..c9bdc8b83 Binary files /dev/null and b/rtdata/images/themed/png/light/remove-small.png differ diff --git a/rtdata/images/themed/png/light/remove.png b/rtdata/images/themed/png/light/remove.png new file mode 100644 index 000000000..5d030627a Binary files /dev/null and b/rtdata/images/themed/png/light/remove.png differ diff --git a/rtdata/images/themed/png/light/rotate-aroundnode-hicontrast.png b/rtdata/images/themed/png/light/rotate-aroundnode-hicontrast.png new file mode 100644 index 000000000..d8929ac42 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-aroundnode-hicontrast.png differ diff --git a/rtdata/images/themed/png/light/rotate-aroundnode.png b/rtdata/images/themed/png/light/rotate-aroundnode.png new file mode 100644 index 000000000..5da406b64 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-aroundnode.png differ diff --git a/rtdata/images/themed/png/light/rotate-left-90.png b/rtdata/images/themed/png/light/rotate-left-90.png new file mode 100644 index 000000000..7904c82f5 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-left-90.png differ diff --git a/rtdata/images/themed/png/light/rotate-left-small.png b/rtdata/images/themed/png/light/rotate-left-small.png new file mode 100644 index 000000000..f3c94f65a Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-left-small.png differ diff --git a/rtdata/images/themed/png/light/rotate-left.png b/rtdata/images/themed/png/light/rotate-left.png new file mode 100644 index 000000000..5e2b0a201 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-left.png differ diff --git a/rtdata/images/themed/png/light/rotate-right-90.png b/rtdata/images/themed/png/light/rotate-right-90.png new file mode 100644 index 000000000..52fd331dd Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-right-90.png differ diff --git a/rtdata/images/themed/png/light/rotate-right-small.png b/rtdata/images/themed/png/light/rotate-right-small.png new file mode 100644 index 000000000..4fa8f8d19 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-right-small.png differ diff --git a/rtdata/images/themed/png/light/rotate-right.png b/rtdata/images/themed/png/light/rotate-right.png new file mode 100644 index 000000000..c819cbe73 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-right.png differ diff --git a/rtdata/images/themed/png/light/rotate-straighten-small.png b/rtdata/images/themed/png/light/rotate-straighten-small.png new file mode 100644 index 000000000..67190d31a Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-straighten-small.png differ diff --git a/rtdata/images/themed/png/light/rotate-straighten.png b/rtdata/images/themed/png/light/rotate-straighten.png new file mode 100644 index 000000000..a9c2e0805 Binary files /dev/null and b/rtdata/images/themed/png/light/rotate-straighten.png differ diff --git a/rtdata/images/themed/png/light/save-small.png b/rtdata/images/themed/png/light/save-small.png new file mode 100644 index 000000000..c296fdb72 Binary files /dev/null and b/rtdata/images/themed/png/light/save-small.png differ diff --git a/rtdata/images/themed/png/light/save.png b/rtdata/images/themed/png/light/save.png new file mode 100644 index 000000000..f71542230 Binary files /dev/null and b/rtdata/images/themed/png/light/save.png differ diff --git a/rtdata/images/themed/png/light/saved-no-small.png b/rtdata/images/themed/png/light/saved-no-small.png new file mode 100644 index 000000000..68021eda4 Binary files /dev/null and b/rtdata/images/themed/png/light/saved-no-small.png differ diff --git a/rtdata/images/themed/png/light/saved-yes-small.png b/rtdata/images/themed/png/light/saved-yes-small.png new file mode 100644 index 000000000..4557ef905 Binary files /dev/null and b/rtdata/images/themed/png/light/saved-yes-small.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-black-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-black-off-narrow.png new file mode 100644 index 000000000..ff6adb675 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-black-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-black-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-black-on-narrow.png new file mode 100644 index 000000000..5d6e35c3d Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-black-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-blue-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-blue-off-narrow.png new file mode 100644 index 000000000..2a9741c0f Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-blue-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-blue-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-blue-on-narrow.png new file mode 100644 index 000000000..e52337d33 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-blue-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-gray-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-gray-off-narrow.png new file mode 100644 index 000000000..7e009920f Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-gray-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-gray-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-gray-on-narrow.png new file mode 100644 index 000000000..64289008a Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-gray-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-green-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-green-off-narrow.png new file mode 100644 index 000000000..f55cbb8c3 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-green-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-green-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-green-on-narrow.png new file mode 100644 index 000000000..0c8b9522d Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-green-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-luminosity-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-luminosity-off-narrow.png new file mode 100644 index 000000000..c6dfe8410 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-luminosity-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-luminosity-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-luminosity-on-narrow.png new file mode 100644 index 000000000..b45b608d9 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-luminosity-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-red-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-red-off-narrow.png new file mode 100644 index 000000000..99730ee4b Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-red-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-red-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-red-on-narrow.png new file mode 100644 index 000000000..e0b91d8b3 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-red-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-theme-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-theme-off-narrow.png new file mode 100644 index 000000000..449946648 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-theme-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-theme-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-theme-on-narrow.png new file mode 100644 index 000000000..e59257824 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-theme-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-white-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-white-off-narrow.png new file mode 100644 index 000000000..b2e5e3611 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-white-off-narrow.png differ diff --git a/rtdata/images/themed/png/light/square-toggle-white-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-white-on-narrow.png new file mode 100644 index 000000000..7ff59d927 Binary files /dev/null and b/rtdata/images/themed/png/light/square-toggle-white-on-narrow.png differ diff --git a/rtdata/images/themed/png/light/star-gold-hollow-narrow.png b/rtdata/images/themed/png/light/star-gold-hollow-narrow.png new file mode 100644 index 000000000..b0ce704d6 Binary files /dev/null and b/rtdata/images/themed/png/light/star-gold-hollow-narrow.png differ diff --git a/rtdata/images/themed/png/light/star-gold-hollow-small.png b/rtdata/images/themed/png/light/star-gold-hollow-small.png new file mode 100644 index 000000000..478055c2b Binary files /dev/null and b/rtdata/images/themed/png/light/star-gold-hollow-small.png differ diff --git a/rtdata/images/themed/png/light/star-gold-narrow.png b/rtdata/images/themed/png/light/star-gold-narrow.png new file mode 100644 index 000000000..32710fb9d Binary files /dev/null and b/rtdata/images/themed/png/light/star-gold-narrow.png differ diff --git a/rtdata/images/themed/png/light/star-gold-small.png b/rtdata/images/themed/png/light/star-gold-small.png new file mode 100644 index 000000000..da02a823e Binary files /dev/null and b/rtdata/images/themed/png/light/star-gold-small.png differ diff --git a/rtdata/images/themed/png/light/star-hollow-narrow.png b/rtdata/images/themed/png/light/star-hollow-narrow.png new file mode 100644 index 000000000..4a15f0ba1 Binary files /dev/null and b/rtdata/images/themed/png/light/star-hollow-narrow.png differ diff --git a/rtdata/images/themed/png/light/star-hollow-small.png b/rtdata/images/themed/png/light/star-hollow-small.png new file mode 100644 index 000000000..8e5335410 Binary files /dev/null and b/rtdata/images/themed/png/light/star-hollow-small.png differ diff --git a/rtdata/images/themed/png/light/star-narrow.png b/rtdata/images/themed/png/light/star-narrow.png new file mode 100644 index 000000000..78c8eea8a Binary files /dev/null and b/rtdata/images/themed/png/light/star-narrow.png differ diff --git a/rtdata/images/themed/png/light/star-small.png b/rtdata/images/themed/png/light/star-small.png new file mode 100644 index 000000000..2bb54647a Binary files /dev/null and b/rtdata/images/themed/png/light/star-small.png differ diff --git a/rtdata/images/themed/png/light/template-16.png b/rtdata/images/themed/png/light/template-16.png new file mode 100644 index 000000000..1c50ead9e Binary files /dev/null and b/rtdata/images/themed/png/light/template-16.png differ diff --git a/rtdata/images/themed/png/light/template-24.png b/rtdata/images/themed/png/light/template-24.png new file mode 100644 index 000000000..7ab9e8c0f Binary files /dev/null and b/rtdata/images/themed/png/light/template-24.png differ diff --git a/rtdata/images/themed/png/light/template-narrow.png b/rtdata/images/themed/png/light/template-narrow.png new file mode 100644 index 000000000..78c374503 Binary files /dev/null and b/rtdata/images/themed/png/light/template-narrow.png differ diff --git a/rtdata/images/themed/png/light/tick-green-hollow-small.png b/rtdata/images/themed/png/light/tick-green-hollow-small.png new file mode 100644 index 000000000..176bf5489 Binary files /dev/null and b/rtdata/images/themed/png/light/tick-green-hollow-small.png differ diff --git a/rtdata/images/themed/png/light/tick-green-hollow.png b/rtdata/images/themed/png/light/tick-green-hollow.png new file mode 100644 index 000000000..7cac33dc0 Binary files /dev/null and b/rtdata/images/themed/png/light/tick-green-hollow.png differ diff --git a/rtdata/images/themed/png/light/tick-green-small.png b/rtdata/images/themed/png/light/tick-green-small.png new file mode 100644 index 000000000..54cf5d024 Binary files /dev/null and b/rtdata/images/themed/png/light/tick-green-small.png differ diff --git a/rtdata/images/themed/png/light/tick-green.png b/rtdata/images/themed/png/light/tick-green.png new file mode 100644 index 000000000..2458734b2 Binary files /dev/null and b/rtdata/images/themed/png/light/tick-green.png differ diff --git a/rtdata/images/themed/png/light/tick-hollow-small.png b/rtdata/images/themed/png/light/tick-hollow-small.png new file mode 100644 index 000000000..9a0973962 Binary files /dev/null and b/rtdata/images/themed/png/light/tick-hollow-small.png differ diff --git a/rtdata/images/themed/png/light/tick-small.png b/rtdata/images/themed/png/light/tick-small.png new file mode 100644 index 000000000..73438bed0 Binary files /dev/null and b/rtdata/images/themed/png/light/tick-small.png differ diff --git a/rtdata/images/themed/png/light/tick.png b/rtdata/images/themed/png/light/tick.png new file mode 100644 index 000000000..7bb629789 Binary files /dev/null and b/rtdata/images/themed/png/light/tick.png differ diff --git a/rtdata/images/themed/png/light/transform.png b/rtdata/images/themed/png/light/transform.png new file mode 100644 index 000000000..ec1c6642a Binary files /dev/null and b/rtdata/images/themed/png/light/transform.png differ diff --git a/rtdata/images/themed/png/light/trash-delete.png b/rtdata/images/themed/png/light/trash-delete.png new file mode 100644 index 000000000..7d0c422f7 Binary files /dev/null and b/rtdata/images/themed/png/light/trash-delete.png differ diff --git a/rtdata/images/themed/png/light/trash-empty-show.png b/rtdata/images/themed/png/light/trash-empty-show.png new file mode 100644 index 000000000..9e4ade318 Binary files /dev/null and b/rtdata/images/themed/png/light/trash-empty-show.png differ diff --git a/rtdata/images/themed/png/light/trash-empty.png b/rtdata/images/themed/png/light/trash-empty.png new file mode 100644 index 000000000..7a8345109 Binary files /dev/null and b/rtdata/images/themed/png/light/trash-empty.png differ diff --git a/rtdata/images/themed/png/light/trash-full-show.png b/rtdata/images/themed/png/light/trash-full-show.png new file mode 100644 index 000000000..8061c5070 Binary files /dev/null and b/rtdata/images/themed/png/light/trash-full-show.png differ diff --git a/rtdata/images/themed/png/light/trash-full.png b/rtdata/images/themed/png/light/trash-full.png new file mode 100644 index 000000000..a43d6f3e5 Binary files /dev/null and b/rtdata/images/themed/png/light/trash-full.png differ diff --git a/rtdata/images/themed/png/light/trash-hide-deleted.png b/rtdata/images/themed/png/light/trash-hide-deleted.png new file mode 100644 index 000000000..319a0dd4a Binary files /dev/null and b/rtdata/images/themed/png/light/trash-hide-deleted.png differ diff --git a/rtdata/images/themed/png/light/trash-remove-small.png b/rtdata/images/themed/png/light/trash-remove-small.png new file mode 100644 index 000000000..df70891fb Binary files /dev/null and b/rtdata/images/themed/png/light/trash-remove-small.png differ diff --git a/rtdata/images/themed/png/light/trash-remove.png b/rtdata/images/themed/png/light/trash-remove.png new file mode 100644 index 000000000..8c0c45aad Binary files /dev/null and b/rtdata/images/themed/png/light/trash-remove.png differ diff --git a/rtdata/images/themed/png/light/trash-small.png b/rtdata/images/themed/png/light/trash-small.png new file mode 100644 index 000000000..7e3183942 Binary files /dev/null and b/rtdata/images/themed/png/light/trash-small.png differ diff --git a/rtdata/images/themed/png/light/undo-all.png b/rtdata/images/themed/png/light/undo-all.png new file mode 100644 index 000000000..04170e26f Binary files /dev/null and b/rtdata/images/themed/png/light/undo-all.png differ diff --git a/rtdata/images/themed/png/light/undo-small.png b/rtdata/images/themed/png/light/undo-small.png new file mode 100644 index 000000000..6d16726ac Binary files /dev/null and b/rtdata/images/themed/png/light/undo-small.png differ diff --git a/rtdata/images/themed/png/light/undo.png b/rtdata/images/themed/png/light/undo.png new file mode 100644 index 000000000..6451ce0dd Binary files /dev/null and b/rtdata/images/themed/png/light/undo.png differ diff --git a/rtdata/images/themed/png/light/warning-highlights.png b/rtdata/images/themed/png/light/warning-highlights.png new file mode 100644 index 000000000..5426a14a3 Binary files /dev/null and b/rtdata/images/themed/png/light/warning-highlights.png differ diff --git a/rtdata/images/themed/png/light/warning-shadows.png b/rtdata/images/themed/png/light/warning-shadows.png new file mode 100644 index 000000000..86b6c06a6 Binary files /dev/null and b/rtdata/images/themed/png/light/warning-shadows.png differ diff --git a/rtdata/images/themed/png/light/wavelets.png b/rtdata/images/themed/png/light/wavelets.png new file mode 100644 index 000000000..3907c255e Binary files /dev/null and b/rtdata/images/themed/png/light/wavelets.png differ diff --git a/rtdata/images/themed/png/light/wb-auto-small.png b/rtdata/images/themed/png/light/wb-auto-small.png new file mode 100644 index 000000000..e7995b4ce Binary files /dev/null and b/rtdata/images/themed/png/light/wb-auto-small.png differ diff --git a/rtdata/images/themed/png/light/wb-auto.png b/rtdata/images/themed/png/light/wb-auto.png new file mode 100644 index 000000000..d1b60e8ad Binary files /dev/null and b/rtdata/images/themed/png/light/wb-auto.png differ diff --git a/rtdata/images/themed/png/light/wb-camera-small.png b/rtdata/images/themed/png/light/wb-camera-small.png new file mode 100644 index 000000000..72d03db7b Binary files /dev/null and b/rtdata/images/themed/png/light/wb-camera-small.png differ diff --git a/rtdata/images/themed/png/light/wb-camera.png b/rtdata/images/themed/png/light/wb-camera.png new file mode 100644 index 000000000..8034b85d2 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-camera.png differ diff --git a/rtdata/images/themed/png/light/wb-cloudy-small.png b/rtdata/images/themed/png/light/wb-cloudy-small.png new file mode 100644 index 000000000..131b28287 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-cloudy-small.png differ diff --git a/rtdata/images/themed/png/light/wb-cloudy.png b/rtdata/images/themed/png/light/wb-cloudy.png new file mode 100644 index 000000000..04e6e3418 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-cloudy.png differ diff --git a/rtdata/images/themed/png/light/wb-custom-small.png b/rtdata/images/themed/png/light/wb-custom-small.png new file mode 100644 index 000000000..c0d2ebf09 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-custom-small.png differ diff --git a/rtdata/images/themed/png/light/wb-custom.png b/rtdata/images/themed/png/light/wb-custom.png new file mode 100644 index 000000000..fdc7258cd Binary files /dev/null and b/rtdata/images/themed/png/light/wb-custom.png differ diff --git a/rtdata/images/themed/png/light/wb-flash-small.png b/rtdata/images/themed/png/light/wb-flash-small.png new file mode 100644 index 000000000..cf44f0357 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-flash-small.png differ diff --git a/rtdata/images/themed/png/light/wb-flash.png b/rtdata/images/themed/png/light/wb-flash.png new file mode 100644 index 000000000..8c602dc88 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-flash.png differ diff --git a/rtdata/images/themed/png/light/wb-fluorescent-small.png b/rtdata/images/themed/png/light/wb-fluorescent-small.png new file mode 100644 index 000000000..0362ebf02 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-fluorescent-small.png differ diff --git a/rtdata/images/themed/png/light/wb-fluorescent.png b/rtdata/images/themed/png/light/wb-fluorescent.png new file mode 100644 index 000000000..4acc5e767 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-fluorescent.png differ diff --git a/rtdata/images/themed/png/light/wb-lamp-small.png b/rtdata/images/themed/png/light/wb-lamp-small.png new file mode 100644 index 000000000..4c8516d30 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-lamp-small.png differ diff --git a/rtdata/images/themed/png/light/wb-lamp.png b/rtdata/images/themed/png/light/wb-lamp.png new file mode 100644 index 000000000..57da8265c Binary files /dev/null and b/rtdata/images/themed/png/light/wb-lamp.png differ diff --git a/rtdata/images/themed/png/light/wb-led-small.png b/rtdata/images/themed/png/light/wb-led-small.png new file mode 100644 index 000000000..7b3d8504f Binary files /dev/null and b/rtdata/images/themed/png/light/wb-led-small.png differ diff --git a/rtdata/images/themed/png/light/wb-led.png b/rtdata/images/themed/png/light/wb-led.png new file mode 100644 index 000000000..5c2d363c6 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-led.png differ diff --git a/rtdata/images/themed/png/light/wb-shade-small.png b/rtdata/images/themed/png/light/wb-shade-small.png new file mode 100644 index 000000000..397fcfdd4 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-shade-small.png differ diff --git a/rtdata/images/themed/png/light/wb-shade.png b/rtdata/images/themed/png/light/wb-shade.png new file mode 100644 index 000000000..7603de77e Binary files /dev/null and b/rtdata/images/themed/png/light/wb-shade.png differ diff --git a/rtdata/images/themed/png/light/wb-sun-small.png b/rtdata/images/themed/png/light/wb-sun-small.png new file mode 100644 index 000000000..70c139ab2 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-sun-small.png differ diff --git a/rtdata/images/themed/png/light/wb-sun.png b/rtdata/images/themed/png/light/wb-sun.png new file mode 100644 index 000000000..da7271078 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-sun.png differ diff --git a/rtdata/images/themed/png/light/wb-tungsten-small.png b/rtdata/images/themed/png/light/wb-tungsten-small.png new file mode 100644 index 000000000..3dcbf947d Binary files /dev/null and b/rtdata/images/themed/png/light/wb-tungsten-small.png differ diff --git a/rtdata/images/themed/png/light/wb-tungsten.png b/rtdata/images/themed/png/light/wb-tungsten.png new file mode 100644 index 000000000..9c3793852 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-tungsten.png differ diff --git a/rtdata/images/themed/png/light/wb-water-small.png b/rtdata/images/themed/png/light/wb-water-small.png new file mode 100644 index 000000000..59e7bb836 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-water-small.png differ diff --git a/rtdata/images/themed/png/light/wb-water.png b/rtdata/images/themed/png/light/wb-water.png new file mode 100644 index 000000000..593516563 Binary files /dev/null and b/rtdata/images/themed/png/light/wb-water.png differ diff --git a/rtdata/images/themed/png/light/window-add.png b/rtdata/images/themed/png/light/window-add.png new file mode 100644 index 000000000..6ccacd678 Binary files /dev/null and b/rtdata/images/themed/png/light/window-add.png differ diff --git a/rtdata/images/themed/svg/add-small.svg b/rtdata/images/themed/svg/add-small.svg new file mode 100644 index 000000000..13abbdc25 --- /dev/null +++ b/rtdata/images/themed/svg/add-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/add.svg b/rtdata/images/themed/svg/add.svg new file mode 100644 index 000000000..c45f9f584 --- /dev/null +++ b/rtdata/images/themed/svg/add.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/aperture.svg b/rtdata/images/themed/svg/aperture.svg new file mode 100644 index 000000000..5820ee283 --- /dev/null +++ b/rtdata/images/themed/svg/aperture.svg @@ -0,0 +1,395 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow-down-small.svg b/rtdata/images/themed/svg/arrow-down-small.svg new file mode 100644 index 000000000..d17ba4329 --- /dev/null +++ b/rtdata/images/themed/svg/arrow-down-small.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow-left-small.svg b/rtdata/images/themed/svg/arrow-left-small.svg new file mode 100644 index 000000000..54eafbc29 --- /dev/null +++ b/rtdata/images/themed/svg/arrow-left-small.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow-right-small.svg b/rtdata/images/themed/svg/arrow-right-small.svg new file mode 100644 index 000000000..43bfdd4e8 --- /dev/null +++ b/rtdata/images/themed/svg/arrow-right-small.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow-up-small.svg b/rtdata/images/themed/svg/arrow-up-small.svg new file mode 100644 index 000000000..b5609c5d7 --- /dev/null +++ b/rtdata/images/themed/svg/arrow-up-small.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow-updown.svg b/rtdata/images/themed/svg/arrow-updown.svg new file mode 100644 index 000000000..d5b6c22a5 --- /dev/null +++ b/rtdata/images/themed/svg/arrow-updown.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow2-left.svg b/rtdata/images/themed/svg/arrow2-left.svg new file mode 100644 index 000000000..f71ee83e3 --- /dev/null +++ b/rtdata/images/themed/svg/arrow2-left.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/arrow2-right.svg b/rtdata/images/themed/svg/arrow2-right.svg new file mode 100644 index 000000000..8c3f60554 --- /dev/null +++ b/rtdata/images/themed/svg/arrow2-right.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/atom.svg b/rtdata/images/themed/svg/atom.svg new file mode 100644 index 000000000..72fb97532 --- /dev/null +++ b/rtdata/images/themed/svg/atom.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/bayer.svg b/rtdata/images/themed/svg/bayer.svg new file mode 100644 index 000000000..1718ce5c4 --- /dev/null +++ b/rtdata/images/themed/svg/bayer.svg @@ -0,0 +1,196 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/beforeafter.svg b/rtdata/images/themed/svg/beforeafter.svg new file mode 100644 index 000000000..8c4eaab48 --- /dev/null +++ b/rtdata/images/themed/svg/beforeafter.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/cancel-small.svg b/rtdata/images/themed/svg/cancel-small.svg new file mode 100644 index 000000000..3bbe99bc1 --- /dev/null +++ b/rtdata/images/themed/svg/cancel-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/cancel.svg b/rtdata/images/themed/svg/cancel.svg new file mode 100644 index 000000000..c42837e61 --- /dev/null +++ b/rtdata/images/themed/svg/cancel.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-black-small.svg b/rtdata/images/themed/svg/circle-black-small.svg new file mode 100644 index 000000000..2b314c556 --- /dev/null +++ b/rtdata/images/themed/svg/circle-black-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-blue-green-small.svg b/rtdata/images/themed/svg/circle-blue-green-small.svg new file mode 100644 index 000000000..5068447b3 --- /dev/null +++ b/rtdata/images/themed/svg/circle-blue-green-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-blue-red-small.svg b/rtdata/images/themed/svg/circle-blue-red-small.svg new file mode 100644 index 000000000..6445577c1 --- /dev/null +++ b/rtdata/images/themed/svg/circle-blue-red-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-blue-small.svg b/rtdata/images/themed/svg/circle-blue-small.svg new file mode 100644 index 000000000..b92577051 --- /dev/null +++ b/rtdata/images/themed/svg/circle-blue-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-blue-yellow-small.svg b/rtdata/images/themed/svg/circle-blue-yellow-small.svg new file mode 100644 index 000000000..5f2e7f04d --- /dev/null +++ b/rtdata/images/themed/svg/circle-blue-yellow-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-cyan-red-small.svg b/rtdata/images/themed/svg/circle-cyan-red-small.svg new file mode 100644 index 000000000..6b34c50ec --- /dev/null +++ b/rtdata/images/themed/svg/circle-cyan-red-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-cyan-small.svg b/rtdata/images/themed/svg/circle-cyan-small.svg new file mode 100644 index 000000000..b376821cb --- /dev/null +++ b/rtdata/images/themed/svg/circle-cyan-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-darkgray-small.svg b/rtdata/images/themed/svg/circle-darkgray-small.svg new file mode 100644 index 000000000..8183c820f --- /dev/null +++ b/rtdata/images/themed/svg/circle-darkgray-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-blue-small.svg b/rtdata/images/themed/svg/circle-empty-blue-small.svg new file mode 100644 index 000000000..e9004ae63 --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-blue-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-darkgray-small.svg b/rtdata/images/themed/svg/circle-empty-darkgray-small.svg new file mode 100644 index 000000000..21b4db7ab --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-darkgray-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-gray-small.svg b/rtdata/images/themed/svg/circle-empty-gray-small.svg new file mode 100644 index 000000000..9bca30ae1 --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-gray-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-green-small.svg b/rtdata/images/themed/svg/circle-empty-green-small.svg new file mode 100644 index 000000000..b99c6d43e --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-green-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-purple-small.svg b/rtdata/images/themed/svg/circle-empty-purple-small.svg new file mode 100644 index 000000000..751525ff2 --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-purple-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-red-small.svg b/rtdata/images/themed/svg/circle-empty-red-small.svg new file mode 100644 index 000000000..fcb7123cf --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-red-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-empty-yellow-small.svg b/rtdata/images/themed/svg/circle-empty-yellow-small.svg new file mode 100644 index 000000000..65d9fd4cf --- /dev/null +++ b/rtdata/images/themed/svg/circle-empty-yellow-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-gray-blue-small.svg b/rtdata/images/themed/svg/circle-gray-blue-small.svg new file mode 100644 index 000000000..0804edcd7 --- /dev/null +++ b/rtdata/images/themed/svg/circle-gray-blue-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-gray-green-small.svg b/rtdata/images/themed/svg/circle-gray-green-small.svg new file mode 100644 index 000000000..609f6d0e7 --- /dev/null +++ b/rtdata/images/themed/svg/circle-gray-green-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-gray-red-small.svg b/rtdata/images/themed/svg/circle-gray-red-small.svg new file mode 100644 index 000000000..6e203cdbb --- /dev/null +++ b/rtdata/images/themed/svg/circle-gray-red-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-gray-small.svg b/rtdata/images/themed/svg/circle-gray-small.svg new file mode 100644 index 000000000..6ed1fd51d --- /dev/null +++ b/rtdata/images/themed/svg/circle-gray-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-green-blue-small.svg b/rtdata/images/themed/svg/circle-green-blue-small.svg new file mode 100644 index 000000000..650f9fc44 --- /dev/null +++ b/rtdata/images/themed/svg/circle-green-blue-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-green-red-small.svg b/rtdata/images/themed/svg/circle-green-red-small.svg new file mode 100644 index 000000000..21e153062 --- /dev/null +++ b/rtdata/images/themed/svg/circle-green-red-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-green-small.svg b/rtdata/images/themed/svg/circle-green-small.svg new file mode 100644 index 000000000..dc1b0217a --- /dev/null +++ b/rtdata/images/themed/svg/circle-green-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-magenta-small.svg b/rtdata/images/themed/svg/circle-magenta-small.svg new file mode 100644 index 000000000..9f2e485f9 --- /dev/null +++ b/rtdata/images/themed/svg/circle-magenta-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-orange-small.svg b/rtdata/images/themed/svg/circle-orange-small.svg new file mode 100644 index 000000000..addf840d1 --- /dev/null +++ b/rtdata/images/themed/svg/circle-orange-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-purple-small.svg b/rtdata/images/themed/svg/circle-purple-small.svg new file mode 100644 index 000000000..2c4a3f225 --- /dev/null +++ b/rtdata/images/themed/svg/circle-purple-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-red-blue-small.svg b/rtdata/images/themed/svg/circle-red-blue-small.svg new file mode 100644 index 000000000..274cb68fa --- /dev/null +++ b/rtdata/images/themed/svg/circle-red-blue-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-red-cyan-small.svg b/rtdata/images/themed/svg/circle-red-cyan-small.svg new file mode 100644 index 000000000..e2feb97e1 --- /dev/null +++ b/rtdata/images/themed/svg/circle-red-cyan-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-red-green-small.svg b/rtdata/images/themed/svg/circle-red-green-small.svg new file mode 100644 index 000000000..96cc892dd --- /dev/null +++ b/rtdata/images/themed/svg/circle-red-green-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-red-small.svg b/rtdata/images/themed/svg/circle-red-small.svg new file mode 100644 index 000000000..a56b0d328 --- /dev/null +++ b/rtdata/images/themed/svg/circle-red-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-white-small.svg b/rtdata/images/themed/svg/circle-white-small.svg new file mode 100644 index 000000000..5a485d954 --- /dev/null +++ b/rtdata/images/themed/svg/circle-white-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-yellow-blue-small.svg b/rtdata/images/themed/svg/circle-yellow-blue-small.svg new file mode 100644 index 000000000..f6e134941 --- /dev/null +++ b/rtdata/images/themed/svg/circle-yellow-blue-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/circle-yellow-small.svg b/rtdata/images/themed/svg/circle-yellow-small.svg new file mode 100644 index 000000000..7d86fdb19 --- /dev/null +++ b/rtdata/images/themed/svg/circle-yellow-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-circles.svg b/rtdata/images/themed/svg/color-circles.svg new file mode 100644 index 000000000..f7f6ad657 --- /dev/null +++ b/rtdata/images/themed/svg/color-circles.svg @@ -0,0 +1,215 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-add-hicontrast.svg b/rtdata/images/themed/svg/color-picker-add-hicontrast.svg new file mode 100644 index 000000000..09870ff48 --- /dev/null +++ b/rtdata/images/themed/svg/color-picker-add-hicontrast.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-add.svg b/rtdata/images/themed/svg/color-picker-add.svg new file mode 100644 index 000000000..b42b8371d --- /dev/null +++ b/rtdata/images/themed/svg/color-picker-add.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-bars.svg b/rtdata/images/themed/svg/color-picker-bars.svg new file mode 100644 index 000000000..f6c57ea40 --- /dev/null +++ b/rtdata/images/themed/svg/color-picker-bars.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-hicontrast.svg b/rtdata/images/themed/svg/color-picker-hicontrast.svg new file mode 100644 index 000000000..20ece03b7 --- /dev/null +++ b/rtdata/images/themed/svg/color-picker-hicontrast.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-picker-hide.svg b/rtdata/images/themed/svg/color-picker-hide.svg new file mode 100644 index 000000000..be180885e --- /dev/null +++ b/rtdata/images/themed/svg/color-picker-hide.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/color-picker.svg b/rtdata/images/themed/svg/color-picker.svg new file mode 100644 index 000000000..d52d96633 --- /dev/null +++ b/rtdata/images/themed/svg/color-picker.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/contrastmask-off.svg b/rtdata/images/themed/svg/contrastmask-off.svg new file mode 100644 index 000000000..ed76efbbb --- /dev/null +++ b/rtdata/images/themed/svg/contrastmask-off.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/contrastmask-on.svg b/rtdata/images/themed/svg/contrastmask-on.svg new file mode 100644 index 000000000..9e3504128 --- /dev/null +++ b/rtdata/images/themed/svg/contrastmask-on.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/copy.svg b/rtdata/images/themed/svg/copy.svg new file mode 100644 index 000000000..9471e1ea7 --- /dev/null +++ b/rtdata/images/themed/svg/copy.svg @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crop-auto-small.svg b/rtdata/images/themed/svg/crop-auto-small.svg new file mode 100644 index 000000000..6d8ac3ea7 --- /dev/null +++ b/rtdata/images/themed/svg/crop-auto-small.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crop-auto.svg b/rtdata/images/themed/svg/crop-auto.svg new file mode 100644 index 000000000..bc662e9ea --- /dev/null +++ b/rtdata/images/themed/svg/crop-auto.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crop-point-hicontrast.svg b/rtdata/images/themed/svg/crop-point-hicontrast.svg new file mode 100644 index 000000000..4a06bfcba --- /dev/null +++ b/rtdata/images/themed/svg/crop-point-hicontrast.svg @@ -0,0 +1,176 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crop-small.svg b/rtdata/images/themed/svg/crop-small.svg new file mode 100644 index 000000000..94c0b43df --- /dev/null +++ b/rtdata/images/themed/svg/crop-small.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crop.svg b/rtdata/images/themed/svg/crop.svg new file mode 100644 index 000000000..8fd598f60 --- /dev/null +++ b/rtdata/images/themed/svg/crop.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crossed-arrows-in.svg b/rtdata/images/themed/svg/crossed-arrows-in.svg new file mode 100644 index 000000000..8a4c71dc8 --- /dev/null +++ b/rtdata/images/themed/svg/crossed-arrows-in.svg @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crossed-arrows-out.svg b/rtdata/images/themed/svg/crossed-arrows-out.svg new file mode 100644 index 000000000..5eb5ba4b1 --- /dev/null +++ b/rtdata/images/themed/svg/crossed-arrows-out.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crosshair-adjust.svg b/rtdata/images/themed/svg/crosshair-adjust.svg new file mode 100644 index 000000000..4cde3415a --- /dev/null +++ b/rtdata/images/themed/svg/crosshair-adjust.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crosshair-hicontrast.svg b/rtdata/images/themed/svg/crosshair-hicontrast.svg new file mode 100644 index 000000000..a4dcc2592 --- /dev/null +++ b/rtdata/images/themed/svg/crosshair-hicontrast.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crosshair-node-curve.svg b/rtdata/images/themed/svg/crosshair-node-curve.svg new file mode 100644 index 000000000..d72c2a929 --- /dev/null +++ b/rtdata/images/themed/svg/crosshair-node-curve.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/crosshair-small.svg b/rtdata/images/themed/svg/crosshair-small.svg new file mode 100644 index 000000000..2e5e6596a --- /dev/null +++ b/rtdata/images/themed/svg/crosshair-small.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-controlpoints-small.svg b/rtdata/images/themed/svg/curve-controlpoints-small.svg new file mode 100644 index 000000000..fc85b8774 --- /dev/null +++ b/rtdata/images/themed/svg/curve-controlpoints-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-controlpoints.svg b/rtdata/images/themed/svg/curve-controlpoints.svg new file mode 100644 index 000000000..2d432264c --- /dev/null +++ b/rtdata/images/themed/svg/curve-controlpoints.svg @@ -0,0 +1,192 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-flat-small.svg b/rtdata/images/themed/svg/curve-flat-small.svg new file mode 100644 index 000000000..59585c64a --- /dev/null +++ b/rtdata/images/themed/svg/curve-flat-small.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-flat.svg b/rtdata/images/themed/svg/curve-flat.svg new file mode 100644 index 000000000..89888b4d1 --- /dev/null +++ b/rtdata/images/themed/svg/curve-flat.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-linear-small.svg b/rtdata/images/themed/svg/curve-linear-small.svg new file mode 100644 index 000000000..c2a3f7915 --- /dev/null +++ b/rtdata/images/themed/svg/curve-linear-small.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-linear.svg b/rtdata/images/themed/svg/curve-linear.svg new file mode 100644 index 000000000..b016121aa --- /dev/null +++ b/rtdata/images/themed/svg/curve-linear.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-nurbs-small.svg b/rtdata/images/themed/svg/curve-nurbs-small.svg new file mode 100644 index 000000000..1ff3a1a76 --- /dev/null +++ b/rtdata/images/themed/svg/curve-nurbs-small.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-nurbs.svg b/rtdata/images/themed/svg/curve-nurbs.svg new file mode 100644 index 000000000..1d7ef10ce --- /dev/null +++ b/rtdata/images/themed/svg/curve-nurbs.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-parametric-small.svg b/rtdata/images/themed/svg/curve-parametric-small.svg new file mode 100644 index 000000000..2334def2d --- /dev/null +++ b/rtdata/images/themed/svg/curve-parametric-small.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-parametric.svg b/rtdata/images/themed/svg/curve-parametric.svg new file mode 100644 index 000000000..88a1f0389 --- /dev/null +++ b/rtdata/images/themed/svg/curve-parametric.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-spline-small.svg b/rtdata/images/themed/svg/curve-spline-small.svg new file mode 100644 index 000000000..990df0c0d --- /dev/null +++ b/rtdata/images/themed/svg/curve-spline-small.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/curve-spline.svg b/rtdata/images/themed/svg/curve-spline.svg new file mode 100644 index 000000000..f0a28a1a9 --- /dev/null +++ b/rtdata/images/themed/svg/curve-spline.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/detail.svg b/rtdata/images/themed/svg/detail.svg new file mode 100644 index 000000000..4bdc2fb9b --- /dev/null +++ b/rtdata/images/themed/svg/detail.svg @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/device-floppy.svg b/rtdata/images/themed/svg/device-floppy.svg new file mode 100644 index 000000000..29b855e4b --- /dev/null +++ b/rtdata/images/themed/svg/device-floppy.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/device-hdd.svg b/rtdata/images/themed/svg/device-hdd.svg new file mode 100644 index 000000000..b93a1d698 --- /dev/null +++ b/rtdata/images/themed/svg/device-hdd.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/device-network.svg b/rtdata/images/themed/svg/device-network.svg new file mode 100644 index 000000000..d17821545 --- /dev/null +++ b/rtdata/images/themed/svg/device-network.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/device-optical.svg b/rtdata/images/themed/svg/device-optical.svg new file mode 100644 index 000000000..de73e9422 --- /dev/null +++ b/rtdata/images/themed/svg/device-optical.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/device-usb.svg b/rtdata/images/themed/svg/device-usb.svg new file mode 100644 index 000000000..116a6e1f5 --- /dev/null +++ b/rtdata/images/themed/svg/device-usb.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/distortion-auto-small.svg b/rtdata/images/themed/svg/distortion-auto-small.svg new file mode 100644 index 000000000..6a8ac0a03 --- /dev/null +++ b/rtdata/images/themed/svg/distortion-auto-small.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/distortion-auto.svg b/rtdata/images/themed/svg/distortion-auto.svg new file mode 100644 index 000000000..8cfadb130 --- /dev/null +++ b/rtdata/images/themed/svg/distortion-auto.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/distortion-barrel-small.svg b/rtdata/images/themed/svg/distortion-barrel-small.svg new file mode 100644 index 000000000..b769bd0aa --- /dev/null +++ b/rtdata/images/themed/svg/distortion-barrel-small.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/distortion-barrel.svg b/rtdata/images/themed/svg/distortion-barrel.svg new file mode 100644 index 000000000..012651e87 --- /dev/null +++ b/rtdata/images/themed/svg/distortion-barrel.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/distortion-pincushion-small.svg b/rtdata/images/themed/svg/distortion-pincushion-small.svg new file mode 100644 index 000000000..8c26277d2 --- /dev/null +++ b/rtdata/images/themed/svg/distortion-pincushion-small.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/distortion-pincushion.svg b/rtdata/images/themed/svg/distortion-pincushion.svg new file mode 100644 index 000000000..c893eb99a --- /dev/null +++ b/rtdata/images/themed/svg/distortion-pincushion.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/edit-point.svg b/rtdata/images/themed/svg/edit-point.svg new file mode 100644 index 000000000..9f686d6e9 --- /dev/null +++ b/rtdata/images/themed/svg/edit-point.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/equilizer-narrow.svg b/rtdata/images/themed/svg/equilizer-narrow.svg new file mode 100644 index 000000000..52dcaed4b --- /dev/null +++ b/rtdata/images/themed/svg/equilizer-narrow.svg @@ -0,0 +1,358 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/equilizer-wide.svg b/rtdata/images/themed/svg/equilizer-wide.svg new file mode 100644 index 000000000..594cca2ab --- /dev/null +++ b/rtdata/images/themed/svg/equilizer-wide.svg @@ -0,0 +1,263 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/expander-closed-small.svg b/rtdata/images/themed/svg/expander-closed-small.svg new file mode 100644 index 000000000..e9cea3b4d --- /dev/null +++ b/rtdata/images/themed/svg/expander-closed-small.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/expander-open-small.svg b/rtdata/images/themed/svg/expander-open-small.svg new file mode 100644 index 000000000..8355bc2f3 --- /dev/null +++ b/rtdata/images/themed/svg/expander-open-small.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/exposure.svg b/rtdata/images/themed/svg/exposure.svg new file mode 100644 index 000000000..c0edc9e9b --- /dev/null +++ b/rtdata/images/themed/svg/exposure.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/filetype-hdr.svg b/rtdata/images/themed/svg/filetype-hdr.svg new file mode 100644 index 000000000..86729442d --- /dev/null +++ b/rtdata/images/themed/svg/filetype-hdr.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + Arial Black, normal, 6pt. Resize manually to fit. + + + + + + + diff --git a/rtdata/images/themed/svg/filetype-ps.svg b/rtdata/images/themed/svg/filetype-ps.svg new file mode 100644 index 000000000..c0dc6069c --- /dev/null +++ b/rtdata/images/themed/svg/filetype-ps.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + Arial Black, normal, 6pt. Resize manually to fit. + + + + + + diff --git a/rtdata/images/themed/svg/filter-clear.svg b/rtdata/images/themed/svg/filter-clear.svg new file mode 100644 index 000000000..27af953db --- /dev/null +++ b/rtdata/images/themed/svg/filter-clear.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/filter-original.svg b/rtdata/images/themed/svg/filter-original.svg new file mode 100644 index 000000000..c14a57a99 --- /dev/null +++ b/rtdata/images/themed/svg/filter-original.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/filter-original2.svg b/rtdata/images/themed/svg/filter-original2.svg new file mode 100644 index 000000000..ce761302a --- /dev/null +++ b/rtdata/images/themed/svg/filter-original2.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/filter.svg b/rtdata/images/themed/svg/filter.svg new file mode 100644 index 000000000..684ffc35e --- /dev/null +++ b/rtdata/images/themed/svg/filter.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/flip-horizontal.svg b/rtdata/images/themed/svg/flip-horizontal.svg new file mode 100644 index 000000000..67465657f --- /dev/null +++ b/rtdata/images/themed/svg/flip-horizontal.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/flip-vertical.svg b/rtdata/images/themed/svg/flip-vertical.svg new file mode 100644 index 000000000..39771286a --- /dev/null +++ b/rtdata/images/themed/svg/flip-vertical.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/focusscreen-off.svg b/rtdata/images/themed/svg/focusscreen-off.svg new file mode 100644 index 000000000..0197b8b5d --- /dev/null +++ b/rtdata/images/themed/svg/focusscreen-off.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/focusscreen-on.svg b/rtdata/images/themed/svg/focusscreen-on.svg new file mode 100644 index 000000000..b6a6149f7 --- /dev/null +++ b/rtdata/images/themed/svg/focusscreen-on.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-closed-home-small.svg b/rtdata/images/themed/svg/folder-closed-home-small.svg new file mode 100644 index 000000000..e2988a681 --- /dev/null +++ b/rtdata/images/themed/svg/folder-closed-home-small.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-closed-home.svg b/rtdata/images/themed/svg/folder-closed-home.svg new file mode 100644 index 000000000..d4bf64e15 --- /dev/null +++ b/rtdata/images/themed/svg/folder-closed-home.svg @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-closed-recent-small.svg b/rtdata/images/themed/svg/folder-closed-recent-small.svg new file mode 100644 index 000000000..e412e386c --- /dev/null +++ b/rtdata/images/themed/svg/folder-closed-recent-small.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-closed-recent.svg b/rtdata/images/themed/svg/folder-closed-recent.svg new file mode 100644 index 000000000..84da8e236 --- /dev/null +++ b/rtdata/images/themed/svg/folder-closed-recent.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-closed-small.svg b/rtdata/images/themed/svg/folder-closed-small.svg new file mode 100644 index 000000000..f86f2157f --- /dev/null +++ b/rtdata/images/themed/svg/folder-closed-small.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-closed.svg b/rtdata/images/themed/svg/folder-closed.svg new file mode 100644 index 000000000..74166166c --- /dev/null +++ b/rtdata/images/themed/svg/folder-closed.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-open-recent-small.svg b/rtdata/images/themed/svg/folder-open-recent-small.svg new file mode 100644 index 000000000..dc2f2ec3f --- /dev/null +++ b/rtdata/images/themed/svg/folder-open-recent-small.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-open-recent.svg b/rtdata/images/themed/svg/folder-open-recent.svg new file mode 100644 index 000000000..c0baf0ccf --- /dev/null +++ b/rtdata/images/themed/svg/folder-open-recent.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-open-small.svg b/rtdata/images/themed/svg/folder-open-small.svg new file mode 100644 index 000000000..f25394737 --- /dev/null +++ b/rtdata/images/themed/svg/folder-open-small.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/folder-open.svg b/rtdata/images/themed/svg/folder-open.svg new file mode 100644 index 000000000..324a4bb9e --- /dev/null +++ b/rtdata/images/themed/svg/folder-open.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/fullscreen-enter.svg b/rtdata/images/themed/svg/fullscreen-enter.svg new file mode 100644 index 000000000..33e8bf568 --- /dev/null +++ b/rtdata/images/themed/svg/fullscreen-enter.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/fullscreen-leave.svg b/rtdata/images/themed/svg/fullscreen-leave.svg new file mode 100644 index 000000000..3eee818a9 --- /dev/null +++ b/rtdata/images/themed/svg/fullscreen-leave.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gamut-hist.svg b/rtdata/images/themed/svg/gamut-hist.svg new file mode 100644 index 000000000..289dbf396 --- /dev/null +++ b/rtdata/images/themed/svg/gamut-hist.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gamut-plus.svg b/rtdata/images/themed/svg/gamut-plus.svg new file mode 100644 index 000000000..c27796b70 --- /dev/null +++ b/rtdata/images/themed/svg/gamut-plus.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gamut-softproof.svg b/rtdata/images/themed/svg/gamut-softproof.svg new file mode 100644 index 000000000..ca37ca2a0 --- /dev/null +++ b/rtdata/images/themed/svg/gamut-softproof.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gamut-warning.svg b/rtdata/images/themed/svg/gamut-warning.svg new file mode 100644 index 000000000..83cdb85cb --- /dev/null +++ b/rtdata/images/themed/svg/gamut-warning.svg @@ -0,0 +1,124 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + ! + + diff --git a/rtdata/images/themed/svg/gamut_srgb_prophoto_xy.svg b/rtdata/images/themed/svg/gamut_srgb_prophoto_xy.svg new file mode 100644 index 000000000..951b6611d --- /dev/null +++ b/rtdata/images/themed/svg/gamut_srgb_prophoto_xy.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gears-pause.svg b/rtdata/images/themed/svg/gears-pause.svg new file mode 100644 index 000000000..b472a82f4 --- /dev/null +++ b/rtdata/images/themed/svg/gears-pause.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gears-play.svg b/rtdata/images/themed/svg/gears-play.svg new file mode 100644 index 000000000..83c23557d --- /dev/null +++ b/rtdata/images/themed/svg/gears-play.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gears-small.svg b/rtdata/images/themed/svg/gears-small.svg new file mode 100644 index 000000000..60cfdc609 --- /dev/null +++ b/rtdata/images/themed/svg/gears-small.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/gears.svg b/rtdata/images/themed/svg/gears.svg new file mode 100644 index 000000000..3a7785a6f --- /dev/null +++ b/rtdata/images/themed/svg/gears.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/goto-end-small.svg b/rtdata/images/themed/svg/goto-end-small.svg new file mode 100644 index 000000000..26d805c5d --- /dev/null +++ b/rtdata/images/themed/svg/goto-end-small.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/goto-start-small.svg b/rtdata/images/themed/svg/goto-start-small.svg new file mode 100644 index 000000000..35b4e9f8c --- /dev/null +++ b/rtdata/images/themed/svg/goto-start-small.svg @@ -0,0 +1,130 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/hand-closed-hicontrast.svg b/rtdata/images/themed/svg/hand-closed-hicontrast.svg new file mode 100644 index 000000000..0d6b00f95 --- /dev/null +++ b/rtdata/images/themed/svg/hand-closed-hicontrast.svg @@ -0,0 +1,143 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/hand-open-hicontrast.svg b/rtdata/images/themed/svg/hand-open-hicontrast.svg new file mode 100644 index 000000000..310eda2d1 --- /dev/null +++ b/rtdata/images/themed/svg/hand-open-hicontrast.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/hand-open.svg b/rtdata/images/themed/svg/hand-open.svg new file mode 100644 index 000000000..a7597b482 --- /dev/null +++ b/rtdata/images/themed/svg/hand-open.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-bar-off-small.svg b/rtdata/images/themed/svg/histogram-bar-off-small.svg new file mode 100644 index 000000000..76016bf46 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-bar-off-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-bar-on-small.svg b/rtdata/images/themed/svg/histogram-bar-on-small.svg new file mode 100644 index 000000000..858569703 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-bar-on-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-bayer-off-small.svg b/rtdata/images/themed/svg/histogram-bayer-off-small.svg new file mode 100644 index 000000000..5d6c439fb --- /dev/null +++ b/rtdata/images/themed/svg/histogram-bayer-off-small.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-bayer-on-small.svg b/rtdata/images/themed/svg/histogram-bayer-on-small.svg new file mode 100644 index 000000000..d9ef178a5 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-bayer-on-small.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-blue-off-small.svg b/rtdata/images/themed/svg/histogram-blue-off-small.svg new file mode 100644 index 000000000..e78f3c19c --- /dev/null +++ b/rtdata/images/themed/svg/histogram-blue-off-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-blue-on-small.svg b/rtdata/images/themed/svg/histogram-blue-on-small.svg new file mode 100644 index 000000000..d0bbe35db --- /dev/null +++ b/rtdata/images/themed/svg/histogram-blue-on-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-gold-off-small.svg b/rtdata/images/themed/svg/histogram-gold-off-small.svg new file mode 100644 index 000000000..ed7d82521 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-gold-off-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-gold-on-small.svg b/rtdata/images/themed/svg/histogram-gold-on-small.svg new file mode 100644 index 000000000..601a15165 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-gold-on-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-green-off-small.svg b/rtdata/images/themed/svg/histogram-green-off-small.svg new file mode 100644 index 000000000..462b1b45f --- /dev/null +++ b/rtdata/images/themed/svg/histogram-green-off-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-green-on-small.svg b/rtdata/images/themed/svg/histogram-green-on-small.svg new file mode 100644 index 000000000..6c06531c6 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-green-on-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-mode-linear-small.svg b/rtdata/images/themed/svg/histogram-mode-linear-small.svg new file mode 100644 index 000000000..52b914762 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-mode-linear-small.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-mode-logx-small.svg b/rtdata/images/themed/svg/histogram-mode-logx-small.svg new file mode 100644 index 000000000..0eb016d00 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-mode-logx-small.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-mode-logxy-small.svg b/rtdata/images/themed/svg/histogram-mode-logxy-small.svg new file mode 100644 index 000000000..e0b69c4e5 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-mode-logxy-small.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-red-off-small.svg b/rtdata/images/themed/svg/histogram-red-off-small.svg new file mode 100644 index 000000000..ec4200483 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-red-off-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-red-on-small.svg b/rtdata/images/themed/svg/histogram-red-on-small.svg new file mode 100644 index 000000000..082813853 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-red-on-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-silver-off-small.svg b/rtdata/images/themed/svg/histogram-silver-off-small.svg new file mode 100644 index 000000000..200bbd0b7 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-silver-off-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/histogram-silver-on-small.svg b/rtdata/images/themed/svg/histogram-silver-on-small.svg new file mode 100644 index 000000000..414d5f4f0 --- /dev/null +++ b/rtdata/images/themed/svg/histogram-silver-on-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/info.svg b/rtdata/images/themed/svg/info.svg new file mode 100644 index 000000000..8805fcad4 --- /dev/null +++ b/rtdata/images/themed/svg/info.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + i + + diff --git a/rtdata/images/themed/svg/intent-absolute.svg b/rtdata/images/themed/svg/intent-absolute.svg new file mode 100644 index 000000000..055759ad1 --- /dev/null +++ b/rtdata/images/themed/svg/intent-absolute.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/intent-perceptual.svg b/rtdata/images/themed/svg/intent-perceptual.svg new file mode 100644 index 000000000..2e845cd39 --- /dev/null +++ b/rtdata/images/themed/svg/intent-perceptual.svg @@ -0,0 +1,303 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/intent-relative.svg b/rtdata/images/themed/svg/intent-relative.svg new file mode 100644 index 000000000..04e553796 --- /dev/null +++ b/rtdata/images/themed/svg/intent-relative.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/intent-saturation.svg b/rtdata/images/themed/svg/intent-saturation.svg new file mode 100644 index 000000000..569c54962 --- /dev/null +++ b/rtdata/images/themed/svg/intent-saturation.svg @@ -0,0 +1,305 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-1to1-small.svg b/rtdata/images/themed/svg/magnifier-1to1-small.svg new file mode 100644 index 000000000..68aa7d6c2 --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-1to1-small.svg @@ -0,0 +1,148 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-1to1.svg b/rtdata/images/themed/svg/magnifier-1to1.svg new file mode 100644 index 000000000..5272cf2ed --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-1to1.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-crop.svg b/rtdata/images/themed/svg/magnifier-crop.svg new file mode 100644 index 000000000..54d6e3e9e --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-crop.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-fit.svg b/rtdata/images/themed/svg/magnifier-fit.svg new file mode 100644 index 000000000..1d531e2d7 --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-fit.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-minus-small.svg b/rtdata/images/themed/svg/magnifier-minus-small.svg new file mode 100644 index 000000000..08871ed77 --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-minus-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-minus.svg b/rtdata/images/themed/svg/magnifier-minus.svg new file mode 100644 index 000000000..567845d57 --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-minus.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-plus-small.svg b/rtdata/images/themed/svg/magnifier-plus-small.svg new file mode 100644 index 000000000..a93e8cd8e --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-plus-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier-plus.svg b/rtdata/images/themed/svg/magnifier-plus.svg new file mode 100644 index 000000000..a98c19bad --- /dev/null +++ b/rtdata/images/themed/svg/magnifier-plus.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/magnifier.svg b/rtdata/images/themed/svg/magnifier.svg new file mode 100644 index 000000000..3b7ae2fd2 --- /dev/null +++ b/rtdata/images/themed/svg/magnifier.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/metadata.svg b/rtdata/images/themed/svg/metadata.svg new file mode 100644 index 000000000..695d2af1a --- /dev/null +++ b/rtdata/images/themed/svg/metadata.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg b/rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg new file mode 100644 index 000000000..375c8ea27 --- /dev/null +++ b/rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg b/rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg new file mode 100644 index 000000000..fdda47505 --- /dev/null +++ b/rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/node-move-x-hicontrast.svg b/rtdata/images/themed/svg/node-move-x-hicontrast.svg new file mode 100644 index 000000000..a24af10ef --- /dev/null +++ b/rtdata/images/themed/svg/node-move-x-hicontrast.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/node-move-xy-hicontrast.svg b/rtdata/images/themed/svg/node-move-xy-hicontrast.svg new file mode 100644 index 000000000..05d291870 --- /dev/null +++ b/rtdata/images/themed/svg/node-move-xy-hicontrast.svg @@ -0,0 +1,171 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/node-move-y-hicontrast.svg b/rtdata/images/themed/svg/node-move-y-hicontrast.svg new file mode 100644 index 000000000..615f3f94a --- /dev/null +++ b/rtdata/images/themed/svg/node-move-y-hicontrast.svg @@ -0,0 +1,131 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/one-to-one-small.svg b/rtdata/images/themed/svg/one-to-one-small.svg new file mode 100644 index 000000000..8b08f99d0 --- /dev/null +++ b/rtdata/images/themed/svg/one-to-one-small.svg @@ -0,0 +1,271 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/ornament1.svg b/rtdata/images/themed/svg/ornament1.svg new file mode 100644 index 000000000..af3d729e5 --- /dev/null +++ b/rtdata/images/themed/svg/ornament1.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/padlock-locked-small.svg b/rtdata/images/themed/svg/padlock-locked-small.svg new file mode 100644 index 000000000..27f1bc510 --- /dev/null +++ b/rtdata/images/themed/svg/padlock-locked-small.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/padlock-unlocked-small.svg b/rtdata/images/themed/svg/padlock-unlocked-small.svg new file mode 100644 index 000000000..0c282c8cf --- /dev/null +++ b/rtdata/images/themed/svg/padlock-unlocked-small.svg @@ -0,0 +1,127 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/palette-brush.svg b/rtdata/images/themed/svg/palette-brush.svg new file mode 100644 index 000000000..30eaac0d6 --- /dev/null +++ b/rtdata/images/themed/svg/palette-brush.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/panel-to-bottom.svg b/rtdata/images/themed/svg/panel-to-bottom.svg new file mode 100644 index 000000000..8e63c0309 --- /dev/null +++ b/rtdata/images/themed/svg/panel-to-bottom.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/panel-to-left.svg b/rtdata/images/themed/svg/panel-to-left.svg new file mode 100644 index 000000000..d987f54f7 --- /dev/null +++ b/rtdata/images/themed/svg/panel-to-left.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/panel-to-right.svg b/rtdata/images/themed/svg/panel-to-right.svg new file mode 100644 index 000000000..52fc38529 --- /dev/null +++ b/rtdata/images/themed/svg/panel-to-right.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/panel-to-top.svg b/rtdata/images/themed/svg/panel-to-top.svg new file mode 100644 index 000000000..5b1cccfe5 --- /dev/null +++ b/rtdata/images/themed/svg/panel-to-top.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/paste.svg b/rtdata/images/themed/svg/paste.svg new file mode 100644 index 000000000..83d82617a --- /dev/null +++ b/rtdata/images/themed/svg/paste.svg @@ -0,0 +1,260 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-horizontal-left-small.svg b/rtdata/images/themed/svg/perspective-horizontal-left-small.svg new file mode 100644 index 000000000..c4797a6a2 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-horizontal-left-small.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-horizontal-left.svg b/rtdata/images/themed/svg/perspective-horizontal-left.svg new file mode 100644 index 000000000..18ce37ea3 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-horizontal-left.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-horizontal-right-small.svg b/rtdata/images/themed/svg/perspective-horizontal-right-small.svg new file mode 100644 index 000000000..4721117c8 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-horizontal-right-small.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-horizontal-right.svg b/rtdata/images/themed/svg/perspective-horizontal-right.svg new file mode 100644 index 000000000..809e94123 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-horizontal-right.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-vertical-bottom-small.svg b/rtdata/images/themed/svg/perspective-vertical-bottom-small.svg new file mode 100644 index 000000000..80f023b74 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-vertical-bottom-small.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-vertical-bottom.svg b/rtdata/images/themed/svg/perspective-vertical-bottom.svg new file mode 100644 index 000000000..4cc5bf0f3 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-vertical-bottom.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-vertical-top-small.svg b/rtdata/images/themed/svg/perspective-vertical-top-small.svg new file mode 100644 index 000000000..1ec0fafa7 --- /dev/null +++ b/rtdata/images/themed/svg/perspective-vertical-top-small.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/perspective-vertical-top.svg b/rtdata/images/themed/svg/perspective-vertical-top.svg new file mode 100644 index 000000000..34f75fe7f --- /dev/null +++ b/rtdata/images/themed/svg/perspective-vertical-top.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/power-inconsistent-small.svg b/rtdata/images/themed/svg/power-inconsistent-small.svg new file mode 100644 index 000000000..305f504cd --- /dev/null +++ b/rtdata/images/themed/svg/power-inconsistent-small.svg @@ -0,0 +1,120 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/power-off-small.svg b/rtdata/images/themed/svg/power-off-small.svg new file mode 100644 index 000000000..d04115bb9 --- /dev/null +++ b/rtdata/images/themed/svg/power-off-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/power-on-small.svg b/rtdata/images/themed/svg/power-on-small.svg new file mode 100644 index 000000000..caaf7992d --- /dev/null +++ b/rtdata/images/themed/svg/power-on-small.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/preferences.svg b/rtdata/images/themed/svg/preferences.svg new file mode 100644 index 000000000..db6794736 --- /dev/null +++ b/rtdata/images/themed/svg/preferences.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/profile-filled.svg b/rtdata/images/themed/svg/profile-filled.svg new file mode 100644 index 000000000..d31352f11 --- /dev/null +++ b/rtdata/images/themed/svg/profile-filled.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/profile-partial.svg b/rtdata/images/themed/svg/profile-partial.svg new file mode 100644 index 000000000..90d22c74a --- /dev/null +++ b/rtdata/images/themed/svg/profile-partial.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/redo-all.svg b/rtdata/images/themed/svg/redo-all.svg new file mode 100644 index 000000000..f9dbaad23 --- /dev/null +++ b/rtdata/images/themed/svg/redo-all.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/redo-small.svg b/rtdata/images/themed/svg/redo-small.svg new file mode 100644 index 000000000..be05d9592 --- /dev/null +++ b/rtdata/images/themed/svg/redo-small.svg @@ -0,0 +1,119 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/redo.svg b/rtdata/images/themed/svg/redo.svg new file mode 100644 index 000000000..14f9f7c00 --- /dev/null +++ b/rtdata/images/themed/svg/redo.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/refresh-red-small.svg b/rtdata/images/themed/svg/refresh-red-small.svg new file mode 100644 index 000000000..498faafe8 --- /dev/null +++ b/rtdata/images/themed/svg/refresh-red-small.svg @@ -0,0 +1,140 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/refresh-small.svg b/rtdata/images/themed/svg/refresh-small.svg new file mode 100644 index 000000000..d9ca603ef --- /dev/null +++ b/rtdata/images/themed/svg/refresh-small.svg @@ -0,0 +1,138 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/refresh.svg b/rtdata/images/themed/svg/refresh.svg new file mode 100644 index 000000000..3b0b0cb72 --- /dev/null +++ b/rtdata/images/themed/svg/refresh.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/remove-small.svg b/rtdata/images/themed/svg/remove-small.svg new file mode 100644 index 000000000..1bffa469c --- /dev/null +++ b/rtdata/images/themed/svg/remove-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/remove.svg b/rtdata/images/themed/svg/remove.svg new file mode 100644 index 000000000..bccfdb160 --- /dev/null +++ b/rtdata/images/themed/svg/remove.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-aroundnode-hicontrast.svg b/rtdata/images/themed/svg/rotate-aroundnode-hicontrast.svg new file mode 100644 index 000000000..fda645c55 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-aroundnode-hicontrast.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-aroundnode.svg b/rtdata/images/themed/svg/rotate-aroundnode.svg new file mode 100644 index 000000000..67ac406fa --- /dev/null +++ b/rtdata/images/themed/svg/rotate-aroundnode.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-left-90.svg b/rtdata/images/themed/svg/rotate-left-90.svg new file mode 100644 index 000000000..394c88c29 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-left-90.svg @@ -0,0 +1,149 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + 90° + + + + + + diff --git a/rtdata/images/themed/svg/rotate-left-small.svg b/rtdata/images/themed/svg/rotate-left-small.svg new file mode 100644 index 000000000..d85b5e8ea --- /dev/null +++ b/rtdata/images/themed/svg/rotate-left-small.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-left.svg b/rtdata/images/themed/svg/rotate-left.svg new file mode 100644 index 000000000..c66020379 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-left.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-right-90.svg b/rtdata/images/themed/svg/rotate-right-90.svg new file mode 100644 index 000000000..eca331bc8 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-right-90.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + 90° + + + + + + diff --git a/rtdata/images/themed/svg/rotate-right-small.svg b/rtdata/images/themed/svg/rotate-right-small.svg new file mode 100644 index 000000000..89e6d4ac2 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-right-small.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-right.svg b/rtdata/images/themed/svg/rotate-right.svg new file mode 100644 index 000000000..26a46a3f6 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-right.svg @@ -0,0 +1,139 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-straighten-small.svg b/rtdata/images/themed/svg/rotate-straighten-small.svg new file mode 100644 index 000000000..00da936f8 --- /dev/null +++ b/rtdata/images/themed/svg/rotate-straighten-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/rotate-straighten.svg b/rtdata/images/themed/svg/rotate-straighten.svg new file mode 100644 index 000000000..34765aa2b --- /dev/null +++ b/rtdata/images/themed/svg/rotate-straighten.svg @@ -0,0 +1,237 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + 90° + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/save-small.svg b/rtdata/images/themed/svg/save-small.svg new file mode 100644 index 000000000..3398e27c8 --- /dev/null +++ b/rtdata/images/themed/svg/save-small.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/save.svg b/rtdata/images/themed/svg/save.svg new file mode 100644 index 000000000..eae40ed09 --- /dev/null +++ b/rtdata/images/themed/svg/save.svg @@ -0,0 +1,456 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/saved-no-small.svg b/rtdata/images/themed/svg/saved-no-small.svg new file mode 100644 index 000000000..02b245aa1 --- /dev/null +++ b/rtdata/images/themed/svg/saved-no-small.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/saved-yes-small.svg b/rtdata/images/themed/svg/saved-yes-small.svg new file mode 100644 index 000000000..f545e9b18 --- /dev/null +++ b/rtdata/images/themed/svg/saved-yes-small.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-black-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-black-off-narrow.svg new file mode 100644 index 000000000..23d835032 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-black-off-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-black-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-black-on-narrow.svg new file mode 100644 index 000000000..431f8bd58 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-black-on-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-blue-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-blue-off-narrow.svg new file mode 100644 index 000000000..4da563f36 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-blue-off-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-blue-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-blue-on-narrow.svg new file mode 100644 index 000000000..6aa7e2cb1 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-blue-on-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-gray-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-gray-off-narrow.svg new file mode 100644 index 000000000..3bc716d8e --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-gray-off-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-gray-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-gray-on-narrow.svg new file mode 100644 index 000000000..6e3ddb2ed --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-gray-on-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-green-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-green-off-narrow.svg new file mode 100644 index 000000000..814feedf6 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-green-off-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-green-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-green-on-narrow.svg new file mode 100644 index 000000000..ed178b3b0 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-green-on-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-luminosity-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-luminosity-off-narrow.svg new file mode 100644 index 000000000..c5758afa0 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-luminosity-off-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + L + + diff --git a/rtdata/images/themed/svg/square-toggle-luminosity-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-luminosity-on-narrow.svg new file mode 100644 index 000000000..9db291ba3 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-luminosity-on-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + L + + diff --git a/rtdata/images/themed/svg/square-toggle-red-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-red-off-narrow.svg new file mode 100644 index 000000000..b05b91ae5 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-red-off-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-red-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-red-on-narrow.svg new file mode 100644 index 000000000..52382d0df --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-red-on-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-theme-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-theme-off-narrow.svg new file mode 100644 index 000000000..9b3bc4a2a --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-theme-off-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + T + + diff --git a/rtdata/images/themed/svg/square-toggle-theme-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-theme-on-narrow.svg new file mode 100644 index 000000000..e7b1f00bd --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-theme-on-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + T + + diff --git a/rtdata/images/themed/svg/square-toggle-white-off-narrow.svg b/rtdata/images/themed/svg/square-toggle-white-off-narrow.svg new file mode 100644 index 000000000..99e675f83 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-white-off-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/square-toggle-white-on-narrow.svg b/rtdata/images/themed/svg/square-toggle-white-on-narrow.svg new file mode 100644 index 000000000..97b5e5e41 --- /dev/null +++ b/rtdata/images/themed/svg/square-toggle-white-on-narrow.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-gold-hollow-narrow.svg b/rtdata/images/themed/svg/star-gold-hollow-narrow.svg new file mode 100644 index 000000000..82ab83a4a --- /dev/null +++ b/rtdata/images/themed/svg/star-gold-hollow-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-gold-hollow-small.svg b/rtdata/images/themed/svg/star-gold-hollow-small.svg new file mode 100644 index 000000000..ecdcf65f7 --- /dev/null +++ b/rtdata/images/themed/svg/star-gold-hollow-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-gold-narrow.svg b/rtdata/images/themed/svg/star-gold-narrow.svg new file mode 100644 index 000000000..ee54c8214 --- /dev/null +++ b/rtdata/images/themed/svg/star-gold-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-gold-small.svg b/rtdata/images/themed/svg/star-gold-small.svg new file mode 100644 index 000000000..48694c3f1 --- /dev/null +++ b/rtdata/images/themed/svg/star-gold-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-hollow-narrow.svg b/rtdata/images/themed/svg/star-hollow-narrow.svg new file mode 100644 index 000000000..66b1c233c --- /dev/null +++ b/rtdata/images/themed/svg/star-hollow-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-hollow-small.svg b/rtdata/images/themed/svg/star-hollow-small.svg new file mode 100644 index 000000000..6d63a6e8b --- /dev/null +++ b/rtdata/images/themed/svg/star-hollow-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-narrow.svg b/rtdata/images/themed/svg/star-narrow.svg new file mode 100644 index 000000000..90add16d5 --- /dev/null +++ b/rtdata/images/themed/svg/star-narrow.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/star-small.svg b/rtdata/images/themed/svg/star-small.svg new file mode 100644 index 000000000..cd7a9b8ef --- /dev/null +++ b/rtdata/images/themed/svg/star-small.svg @@ -0,0 +1,128 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/template-16.svg b/rtdata/images/themed/svg/template-16.svg new file mode 100644 index 000000000..d38151609 --- /dev/null +++ b/rtdata/images/themed/svg/template-16.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/template-24.svg b/rtdata/images/themed/svg/template-24.svg new file mode 100644 index 000000000..88d934fc5 --- /dev/null +++ b/rtdata/images/themed/svg/template-24.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/template-narrow.svg b/rtdata/images/themed/svg/template-narrow.svg new file mode 100644 index 000000000..9a6321317 --- /dev/null +++ b/rtdata/images/themed/svg/template-narrow.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick-green-hollow-small.svg b/rtdata/images/themed/svg/tick-green-hollow-small.svg new file mode 100644 index 000000000..fcac2954d --- /dev/null +++ b/rtdata/images/themed/svg/tick-green-hollow-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick-green-hollow.svg b/rtdata/images/themed/svg/tick-green-hollow.svg new file mode 100644 index 000000000..9b1eca47d --- /dev/null +++ b/rtdata/images/themed/svg/tick-green-hollow.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick-green-small.svg b/rtdata/images/themed/svg/tick-green-small.svg new file mode 100644 index 000000000..edf2dd4b4 --- /dev/null +++ b/rtdata/images/themed/svg/tick-green-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick-green.svg b/rtdata/images/themed/svg/tick-green.svg new file mode 100644 index 000000000..fa250d9fe --- /dev/null +++ b/rtdata/images/themed/svg/tick-green.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick-hollow-small.svg b/rtdata/images/themed/svg/tick-hollow-small.svg new file mode 100644 index 000000000..010fba31e --- /dev/null +++ b/rtdata/images/themed/svg/tick-hollow-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick-small.svg b/rtdata/images/themed/svg/tick-small.svg new file mode 100644 index 000000000..943c61d76 --- /dev/null +++ b/rtdata/images/themed/svg/tick-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/tick.svg b/rtdata/images/themed/svg/tick.svg new file mode 100644 index 000000000..8ab7a2e27 --- /dev/null +++ b/rtdata/images/themed/svg/tick.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/transform.svg b/rtdata/images/themed/svg/transform.svg new file mode 100644 index 000000000..09b55309d --- /dev/null +++ b/rtdata/images/themed/svg/transform.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-delete.svg b/rtdata/images/themed/svg/trash-delete.svg new file mode 100644 index 000000000..7593e6001 --- /dev/null +++ b/rtdata/images/themed/svg/trash-delete.svg @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-empty-show.svg b/rtdata/images/themed/svg/trash-empty-show.svg new file mode 100644 index 000000000..366b15bd6 --- /dev/null +++ b/rtdata/images/themed/svg/trash-empty-show.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-empty.svg b/rtdata/images/themed/svg/trash-empty.svg new file mode 100644 index 000000000..47ceae609 --- /dev/null +++ b/rtdata/images/themed/svg/trash-empty.svg @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-full-show.svg b/rtdata/images/themed/svg/trash-full-show.svg new file mode 100644 index 000000000..8ec3f9092 --- /dev/null +++ b/rtdata/images/themed/svg/trash-full-show.svg @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-full.svg b/rtdata/images/themed/svg/trash-full.svg new file mode 100644 index 000000000..eae5920e3 --- /dev/null +++ b/rtdata/images/themed/svg/trash-full.svg @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-hide-deleted.svg b/rtdata/images/themed/svg/trash-hide-deleted.svg new file mode 100644 index 000000000..e70aa21e1 --- /dev/null +++ b/rtdata/images/themed/svg/trash-hide-deleted.svg @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-remove-small.svg b/rtdata/images/themed/svg/trash-remove-small.svg new file mode 100644 index 000000000..a58bafd39 --- /dev/null +++ b/rtdata/images/themed/svg/trash-remove-small.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-remove.svg b/rtdata/images/themed/svg/trash-remove.svg new file mode 100644 index 000000000..31ca65a56 --- /dev/null +++ b/rtdata/images/themed/svg/trash-remove.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/trash-small.svg b/rtdata/images/themed/svg/trash-small.svg new file mode 100644 index 000000000..3d2e674c6 --- /dev/null +++ b/rtdata/images/themed/svg/trash-small.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/undo-all.svg b/rtdata/images/themed/svg/undo-all.svg new file mode 100644 index 000000000..e648588ef --- /dev/null +++ b/rtdata/images/themed/svg/undo-all.svg @@ -0,0 +1,126 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/undo-small.svg b/rtdata/images/themed/svg/undo-small.svg new file mode 100644 index 000000000..83b4663a0 --- /dev/null +++ b/rtdata/images/themed/svg/undo-small.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/undo.svg b/rtdata/images/themed/svg/undo.svg new file mode 100644 index 000000000..bc4282693 --- /dev/null +++ b/rtdata/images/themed/svg/undo.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/warning-highlights.svg b/rtdata/images/themed/svg/warning-highlights.svg new file mode 100644 index 000000000..c7aaf80ce --- /dev/null +++ b/rtdata/images/themed/svg/warning-highlights.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/warning-shadows.svg b/rtdata/images/themed/svg/warning-shadows.svg new file mode 100644 index 000000000..f9baa36c1 --- /dev/null +++ b/rtdata/images/themed/svg/warning-shadows.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wavelets.svg b/rtdata/images/themed/svg/wavelets.svg new file mode 100644 index 000000000..1d6de039c --- /dev/null +++ b/rtdata/images/themed/svg/wavelets.svg @@ -0,0 +1,157 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-auto-small.svg b/rtdata/images/themed/svg/wb-auto-small.svg new file mode 100644 index 000000000..23e55f560 --- /dev/null +++ b/rtdata/images/themed/svg/wb-auto-small.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-auto.svg b/rtdata/images/themed/svg/wb-auto.svg new file mode 100644 index 000000000..5914ee63e --- /dev/null +++ b/rtdata/images/themed/svg/wb-auto.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-camera-small.svg b/rtdata/images/themed/svg/wb-camera-small.svg new file mode 100644 index 000000000..2521d513e --- /dev/null +++ b/rtdata/images/themed/svg/wb-camera-small.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-camera.svg b/rtdata/images/themed/svg/wb-camera.svg new file mode 100644 index 000000000..f83342b6b --- /dev/null +++ b/rtdata/images/themed/svg/wb-camera.svg @@ -0,0 +1,108 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-cloudy-small.svg b/rtdata/images/themed/svg/wb-cloudy-small.svg new file mode 100644 index 000000000..0197eab4e --- /dev/null +++ b/rtdata/images/themed/svg/wb-cloudy-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-cloudy.svg b/rtdata/images/themed/svg/wb-cloudy.svg new file mode 100644 index 000000000..5762fa37b --- /dev/null +++ b/rtdata/images/themed/svg/wb-cloudy.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-custom-small.svg b/rtdata/images/themed/svg/wb-custom-small.svg new file mode 100644 index 000000000..f176458a8 --- /dev/null +++ b/rtdata/images/themed/svg/wb-custom-small.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-custom.svg b/rtdata/images/themed/svg/wb-custom.svg new file mode 100644 index 000000000..f1d2ec8f7 --- /dev/null +++ b/rtdata/images/themed/svg/wb-custom.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-flash-small.svg b/rtdata/images/themed/svg/wb-flash-small.svg new file mode 100644 index 000000000..634912538 --- /dev/null +++ b/rtdata/images/themed/svg/wb-flash-small.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-flash.svg b/rtdata/images/themed/svg/wb-flash.svg new file mode 100644 index 000000000..fb4b0ca66 --- /dev/null +++ b/rtdata/images/themed/svg/wb-flash.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-fluorescent-small.svg b/rtdata/images/themed/svg/wb-fluorescent-small.svg new file mode 100644 index 000000000..67c86ec71 --- /dev/null +++ b/rtdata/images/themed/svg/wb-fluorescent-small.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-fluorescent.svg b/rtdata/images/themed/svg/wb-fluorescent.svg new file mode 100644 index 000000000..8746978e1 --- /dev/null +++ b/rtdata/images/themed/svg/wb-fluorescent.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-lamp-small.svg b/rtdata/images/themed/svg/wb-lamp-small.svg new file mode 100644 index 000000000..32c172d7f --- /dev/null +++ b/rtdata/images/themed/svg/wb-lamp-small.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-lamp.svg b/rtdata/images/themed/svg/wb-lamp.svg new file mode 100644 index 000000000..39f2ccb94 --- /dev/null +++ b/rtdata/images/themed/svg/wb-lamp.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-led-small.svg b/rtdata/images/themed/svg/wb-led-small.svg new file mode 100644 index 000000000..7e20c4576 --- /dev/null +++ b/rtdata/images/themed/svg/wb-led-small.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-led.svg b/rtdata/images/themed/svg/wb-led.svg new file mode 100644 index 000000000..952f5f77f --- /dev/null +++ b/rtdata/images/themed/svg/wb-led.svg @@ -0,0 +1,151 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-shade-small.svg b/rtdata/images/themed/svg/wb-shade-small.svg new file mode 100644 index 000000000..78ed1e6c6 --- /dev/null +++ b/rtdata/images/themed/svg/wb-shade-small.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-shade.svg b/rtdata/images/themed/svg/wb-shade.svg new file mode 100644 index 000000000..3ac24bd80 --- /dev/null +++ b/rtdata/images/themed/svg/wb-shade.svg @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-sun-small.svg b/rtdata/images/themed/svg/wb-sun-small.svg new file mode 100644 index 000000000..94abad681 --- /dev/null +++ b/rtdata/images/themed/svg/wb-sun-small.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-sun.svg b/rtdata/images/themed/svg/wb-sun.svg new file mode 100644 index 000000000..b9c71a3dc --- /dev/null +++ b/rtdata/images/themed/svg/wb-sun.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-tungsten-small.svg b/rtdata/images/themed/svg/wb-tungsten-small.svg new file mode 100644 index 000000000..dc4b62beb --- /dev/null +++ b/rtdata/images/themed/svg/wb-tungsten-small.svg @@ -0,0 +1,163 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-tungsten.svg b/rtdata/images/themed/svg/wb-tungsten.svg new file mode 100644 index 000000000..0dabc0935 --- /dev/null +++ b/rtdata/images/themed/svg/wb-tungsten.svg @@ -0,0 +1,158 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-water-small.svg b/rtdata/images/themed/svg/wb-water-small.svg new file mode 100644 index 000000000..2cb62298a --- /dev/null +++ b/rtdata/images/themed/svg/wb-water-small.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/wb-water.svg b/rtdata/images/themed/svg/wb-water.svg new file mode 100644 index 000000000..55a98f099 --- /dev/null +++ b/rtdata/images/themed/svg/wb-water.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/window-add.svg b/rtdata/images/themed/svg/window-add.svg new file mode 100644 index 000000000..da0651444 --- /dev/null +++ b/rtdata/images/themed/svg/window-add.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/toleftend.png b/rtdata/images/toleftend.png deleted file mode 100644 index 4dfd61fec..000000000 Binary files a/rtdata/images/toleftend.png and /dev/null differ diff --git a/rtdata/images/torightend.png b/rtdata/images/torightend.png deleted file mode 100644 index 2c5204f74..000000000 Binary files a/rtdata/images/torightend.png and /dev/null differ diff --git a/rtdata/images/transform.png b/rtdata/images/transform.png deleted file mode 100644 index fc2f66cef..000000000 Binary files a/rtdata/images/transform.png and /dev/null differ diff --git a/rtdata/images/trash-show-empty.png b/rtdata/images/trash-show-empty.png deleted file mode 100644 index 08fcdfc93..000000000 Binary files a/rtdata/images/trash-show-empty.png and /dev/null differ diff --git a/rtdata/images/trash-show-full.png b/rtdata/images/trash-show-full.png deleted file mode 100644 index c9bd50e51..000000000 Binary files a/rtdata/images/trash-show-full.png and /dev/null differ diff --git a/rtdata/images/trash.png b/rtdata/images/trash.png deleted file mode 100644 index 08fcdfc93..000000000 Binary files a/rtdata/images/trash.png and /dev/null differ diff --git a/rtdata/images/warnhl.png b/rtdata/images/warnhl.png deleted file mode 100644 index 98dddeb92..000000000 Binary files a/rtdata/images/warnhl.png and /dev/null differ diff --git a/rtdata/images/warnsh.png b/rtdata/images/warnsh.png deleted file mode 100644 index ee2c31e08..000000000 Binary files a/rtdata/images/warnsh.png and /dev/null differ diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 8f928ebc7..a8d381a8e 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -999,7 +999,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1011,9 +1011,11 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !GENERAL_CLOSE;Close !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_174;CIECAM02 @@ -1319,10 +1321,16 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1334,9 +1342,56 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1366,6 +1421,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). @@ -1379,6 +1435,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1406,20 +1463,17 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PARTIALPASTE_PCVIGNETTE;Vignette filter !PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' @@ -1448,11 +1502,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FLUOF2;Fluorescent F2 !PREFERENCES_FLUOF7;Fluorescent F7 !PREFERENCES_FLUOF11;Fluorescent F11 @@ -1477,23 +1528,18 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1506,34 +1552,22 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font !PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_GLOBALPROFILES;Bundled profiles !PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. !PROFILEPANEL_MYPROFILES;My profiles @@ -1552,6 +1586,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. @@ -1845,6 +1880,12 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. !TP_LABCURVE_CURVEEDITOR_CL;CL !TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) @@ -1885,6 +1926,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1894,13 +1937,16 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RAWEXPOS_BLACK_GREEN;Green !TP_RAWEXPOS_BLACK_RED;Red !TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1949,10 +1995,12 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1968,7 +2016,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2039,6 +2087,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2111,7 +2161,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index b4404728f..78667ee02 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -488,13 +488,7 @@ PARTIALPASTE_WAVELETGROUP;小波变换等级 PARTIALPASTE_WHITEBALANCE;白平衡 PREFERENCES_ADD;添加 PREFERENCES_APPLNEXTSTARTUP;下次启动生效 -PREFERENCES_AUTLISLOW;低 -PREFERENCES_AUTLISMAX;最大 - 所有块平均值 -PREFERENCES_AUTLISSTD;高 -PREFERENCES_AUTLISVLOW;无 -PREFERENCES_AUTLOW;低 PREFERENCES_AUTOMONPROFILE;使用操作系统主显示器的色彩档案 -PREFERENCES_AUTSTD;标准 PREFERENCES_BATCH_PROCESSING;批处理 PREFERENCES_BEHADDALL;全 '添加' PREFERENCES_BEHAVIOR;行为 @@ -536,8 +530,6 @@ PREFERENCES_DARKFRAMESHOTS;张 PREFERENCES_DARKFRAMETEMPLATES;模板 PREFERENCES_DATEFORMAT;日期格式 PREFERENCES_DATEFORMATHINT;可以使用下列控制符:\n%y : 年\n%m : 月h\n%d : 日\n\n例如, 中文日期格式:\n%y/%m/%d -PREFERENCES_DAUB_LABEL;使用 Daubechies D6 小波变换而不是 D4 -PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and 小波变换等级 tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. PREFERENCES_DIRDARKFRAMES;暗场图像路径 PREFERENCES_DIRHOME;用户文件路径 PREFERENCES_DIRLAST;上次访问路径 @@ -545,7 +537,6 @@ PREFERENCES_DIROTHER;其他 PREFERENCES_DIRSELECTDLG;启动时选择图片路径... PREFERENCES_DIRSOFTWARE;软件安装路径 PREFERENCES_EDITORLAYOUT;编辑器布局 -PREFERENCES_EXPAUT;进阶 PREFERENCES_EXTERNALEDITOR;外部编辑器 PREFERENCES_FBROWSEROPTS;文件浏览选项 PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) @@ -591,12 +582,7 @@ PREFERENCES_INTENT_SATURATION;饱和度 PREFERENCES_INTERNALTHUMBIFUNTOUCHED;如果RAW文件没有修改, 显示内嵌JPEG缩略图 PREFERENCES_LANG;语言 PREFERENCES_LANGAUTODETECT;使用系统语言 -PREFERENCES_LEVAUTDN;降噪等级 -PREFERENCES_LEVDN;单元尺寸 -PREFERENCES_LISS;自动多区域平滑 -PREFERENCES_MAX;最大 (Tile) PREFERENCES_MAXRECENTFOLDERS;最近访问路径历史记录数 -PREFERENCES_MED;中等 (Tile/2) PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -604,7 +590,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" PREFERENCES_MENUGROUPRANK;组 "评价" PREFERENCES_MENUOPTIONS;子菜单选项 PREFERENCES_METADATA;元数据 -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;默认渲染意图 PREFERENCES_MONITOR;显示器 PREFERENCES_MONPROFILE;默认色彩配置文件 @@ -613,7 +598,6 @@ PREFERENCES_MULTITAB;多编辑器标签模式 PREFERENCES_MULTITABDUALMON;多编辑器标签独立模式 PREFERENCES_NAVGUIDEBRUSH;导航器引导颜色 PREFERENCES_NAVIGATIONFRAME;导航器 -PREFERENCES_NOISE;降噪 PREFERENCES_OUTDIR;输出路径 PREFERENCES_OUTDIRFOLDER;保存至文件夹 PREFERENCES_OUTDIRFOLDERHINT;将已寸图片放至所选文件夹 @@ -649,8 +633,6 @@ PREFERENCES_PRTPROFILE;色彩配置文件 PREFERENCES_PSPATH;Adobe Photoshop安装路径 PREFERENCES_REMEMBERZOOMPAN;记忆缩放和位置 PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -PREFERENCES_RGBDTL_LABEL;降噪和小波变换等级可用的最大线程数 -PREFERENCES_RGBDTL_TOOLTIP;"0"表示自动选择最大可用线程数 线程越多处理越快, 同时消耗更多内存 PREFERENCES_SELECTFONT;设置主要字体 PREFERENCES_SELECTFONT_COLPICKER;设置色彩选择器字体 PREFERENCES_SELECTLANG;选择语言 @@ -664,37 +646,26 @@ PREFERENCES_SHOWDATETIME;显示时间日期 PREFERENCES_SHOWEXPOSURECOMPENSATION;附加曝光补偿 PREFERENCES_SHOWFILMSTRIPTOOLBAR;显示图像胶片栏 PREFERENCES_SHTHRESHOLD;阴影过暗阈值 -PREFERENCES_SIMPLAUT;工具模式 PREFERENCES_SINGLETAB;单编辑器栏模式 PREFERENCES_SINGLETABVERTAB;单编辑器栏模式, 标签栏垂直 -PREFERENCES_SMA;小 (250x287) PREFERENCES_SND_BATCHQUEUEDONE;队列处理完成 PREFERENCES_SND_HELP;输入完整路径来指定声音文件, 或者留空表示无声 \nWindows系统声音可以使用 "SystemDefault", "SystemAsterisk" 等 Linux则可以使用 "complete", "window-attention" 等 PREFERENCES_SND_LNGEDITPROCDONE;编辑器处理完成 PREFERENCES_SND_THRESHOLDSECS;几秒之后 PREFERENCES_STARTUPIMDIR;启动时路径 -PREFERENCES_STDAUT;标准 PREFERENCES_TAB_BROWSER;文件浏览器 PREFERENCES_TAB_COLORMGR;色彩管理 PREFERENCES_TAB_DYNAMICPROFILE;动态预设规则 PREFERENCES_TAB_GENERAL;一般 PREFERENCES_TAB_IMPROC;图片处理 -PREFERENCES_TAB_PERFORMANCE;性能和品质 PREFERENCES_TAB_SOUND;音效 PREFERENCES_THEME;主题 -PREFERENCES_TIMAX;高 -PREFERENCES_TINB;块数量 -PREFERENCES_TISTD;标准 PREFERENCES_TP_LABEL;工具栏 PREFERENCES_TP_USEICONORTEXT;标签使用图标而不是文本 PREFERENCES_TP_VSCROLLBAR;隐藏垂直滚动栏 PREFERENCES_TUNNELMETADATA;无损复制 Exif/IPTC/XMP 到输出文件 PREFERENCES_USEBUNDLEDPROFILES;启用内置预设 PREFERENCES_VIEW;输出设备白平衡 (显示器、电视、投影仪等) -PREFERENCES_WAVLEV;在质量为"高"时增加小波变换等级 -PREFERENCES_WLONE;一级 -PREFERENCES_WLTWO;二级 -PREFERENCES_WLZER;无 PREFERENCES_WORKFLOW;排版 PROFILEPANEL_LABEL;处理参数配置 PROFILEPANEL_LOADDLGLABEL;加载处理参数为... @@ -1060,11 +1031,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_86;RGB Curves - Luminosity mode @@ -1426,10 +1398,16 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1441,8 +1419,55 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1472,6 +1497,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). @@ -1491,6 +1517,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1498,7 +1525,10 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PARTIALPASTE_ADVANCEDGROUP;Advanced Settings !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!PARTIALPASTE_RAW_BORDER;Raw border +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALLHINT;Set all parameters to the Set mode.\nAdjustments of parameters in the batch tool panel will be absolute, the actual values will be displayed. @@ -1511,7 +1541,10 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !PREFERENCES_CUSTPROFBUILDHINT;Executable (or script) file called when a new initial processing profile should be generated for an image.\n\nThe path of the communication file (*.ini style, a.k.a. "Keyfile") is added as a command line parameter. It contains various parameters required for the scripts and image Exif to allow a rules-based processing profile generation.\n\nWARNING: You are responsible for using double quotes where necessary if you're using paths containing spaces. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1538,6 +1571,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SHCSELECTOR_TOOLTIP;Click right mouse button to reset the position of those 3 sliders. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. @@ -1795,6 +1829,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. !TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated !TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel @@ -1854,6 +1894,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACKS;Black Levels !TP_RAWEXPOS_BLACK_0;Green 1 (lead) @@ -1867,15 +1909,18 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD;Method !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... @@ -1927,10 +1972,12 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* @@ -1947,7 +1994,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2017,6 +2064,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2106,7 +2155,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Chinese (Traditional) b/rtdata/languages/Chinese (Traditional) index cdb0bc822..6e7698f9a 100644 --- a/rtdata/languages/Chinese (Traditional) +++ b/rtdata/languages/Chinese (Traditional) @@ -565,7 +565,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -579,12 +579,13 @@ TP_WBALANCE_TEMPERATURE;色溫 !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -981,10 +982,16 @@ TP_WBALANCE_TEMPERATURE;色溫 !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -996,9 +1003,56 @@ TP_WBALANCE_TEMPERATURE;色溫 !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1029,11 +1083,12 @@ TP_WBALANCE_TEMPERATURE;色溫 !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1069,6 +1124,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1123,6 +1179,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1130,6 +1187,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1141,17 +1199,12 @@ TP_WBALANCE_TEMPERATURE;色溫 !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1189,13 +1242,10 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1228,12 +1278,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1241,7 +1286,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1250,13 +1294,14 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1270,8 +1315,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1281,36 +1324,26 @@ TP_WBALANCE_TEMPERATURE;色溫 !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1338,6 +1371,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1663,10 +1697,6 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1713,6 +1743,12 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1800,6 +1836,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1815,15 +1853,18 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD;Method !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... @@ -1875,10 +1916,12 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1899,7 +1942,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1983,6 +2026,8 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2076,7 +2121,7 @@ TP_WBALANCE_TEMPERATURE;色溫 !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 4b88d089c..671fde250 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -982,14 +982,8 @@ PARTIALPASTE_VIGNETTING;Korekce vinětace PARTIALPASTE_WHITEBALANCE;Nastavení bílé PREFERENCES_ADD;Přidat PREFERENCES_APPLNEXTSTARTUP;vyžaduje restart aplikace -PREFERENCES_AUTLISLOW;Nízké -PREFERENCES_AUTLISMAX;Maximální - průměr všech dlaždic -PREFERENCES_AUTLISSTD;Vysoké -PREFERENCES_AUTLISVLOW;Ne -PREFERENCES_AUTLOW;Nízká PREFERENCES_AUTOMONPROFILE;Použít barevný profil hlavního monitoru z operačního systému PREFERENCES_AUTOSAVE_TP_OPEN;Před ukončením automaticky uložit\nstav sbalení/rozbalení nástrojů. -PREFERENCES_AUTSTD;Běžná PREFERENCES_BATCH_PROCESSING;Dávkové zpracování PREFERENCES_BEHADDALL;Vše do 'Přidat' PREFERENCES_BEHADDALLHINT;Nastaví všechny parametry do módu Přidat.\nZměna parametrů v panelu dávkového zpracování se aplikuje jako rozdíl k uloženým hodnotám. @@ -1036,8 +1030,6 @@ PREFERENCES_DARKFRAMESHOTS;snímků PREFERENCES_DARKFRAMETEMPLATES;šablony PREFERENCES_DATEFORMAT;Formát data PREFERENCES_DATEFORMATHINT;Lze použít následující formátovací řetězce:\n%y\t- rok (year)\n%m\t- měsíc (month)\n%d\t- den (day)\n\nNapříklad český formát data:\n%d. %m. %y -PREFERENCES_DAUB_LABEL;Použít D6 Daubechiesové vlnky namísto D4 -PREFERENCES_DAUB_TOOLTIP;Nástroje Redukce šumu a Úrovně vlnky používají Daubechiesové mateřskou vlnku. Pokud místo D4 vyberete D6 zvýší se počet ortogonálních Daubechiesové koeficientů a pravděpodobně zvýší kvalitu úrovní malého měřítka. Není zde rozdíl ve spotřebě paměti nebo délce zpracování. PREFERENCES_DIRDARKFRAMES;Složka tmavých snímků PREFERENCES_DIRECTORIES;Složky PREFERENCES_DIRHOME;Domovská složka @@ -1047,7 +1039,6 @@ PREFERENCES_DIRSELECTDLG;Zvolte složku s obrázky při spuštění... PREFERENCES_DIRSOFTWARE;Instalační složka PREFERENCES_EDITORCMDLINE;Vlastní příkazová řádka PREFERENCES_EDITORLAYOUT;Rozvržení editoru -PREFERENCES_EXPAUT;Expert PREFERENCES_EXTERNALEDITOR;Externí editor PREFERENCES_FBROWSEROPTS;Volby prohlížeče souborů / náhledů PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Jednořádková lišta nástrojů v prohlížeči souborů\n(vypněte na nízkých rozlišeních) @@ -1093,12 +1084,7 @@ PREFERENCES_INTENT_SATURATION;Nasycení PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Ukázat vložené JPEG náhledy u needitovaných snímků PREFERENCES_LANG;Jazyk PREFERENCES_LANGAUTODETECT;Použít systémový jazyk -PREFERENCES_LEVAUTDN;Úroveň odšumění -PREFERENCES_LEVDN;Velikost buňky -PREFERENCES_LISS;Automatické více zónové vyhlazení -PREFERENCES_MAX;Velká (dlaždice) PREFERENCES_MAXRECENTFOLDERS;Maximální počet nedávných složek -PREFERENCES_MED;Střední (Poloviční dlaždice) PREFERENCES_MENUGROUPEXTPROGS;Skupina "Otevřít pomocí" PREFERENCES_MENUGROUPFILEOPERATIONS;Skupina "Souborové operace" PREFERENCES_MENUGROUPLABEL;Skupina "Barevné štítky" @@ -1106,7 +1092,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Skupina "Operace s profily zpracování" PREFERENCES_MENUGROUPRANK;Skupina "Hodnocení" PREFERENCES_MENUOPTIONS;Volby místní nabídky PREFERENCES_METADATA;Metadata -PREFERENCES_MIN;Velmi malá (100x115) PREFERENCES_MONINTENT;Výchozí reprodukční záměr PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Výchozí barevný profil @@ -1115,7 +1100,6 @@ PREFERENCES_MULTITAB;Mód více karet editoru PREFERENCES_MULTITABDUALMON;Mód více karet editoru ve vlastním okně PREFERENCES_NAVGUIDEBRUSH;Barva vodítek navigátoru PREFERENCES_NAVIGATIONFRAME;Navigátor -PREFERENCES_NOISE;Redukce šumu PREFERENCES_OUTDIR;Výstupní složka PREFERENCES_OUTDIRFOLDER;Ulož do souboru PREFERENCES_OUTDIRFOLDERHINT;Uložit obrázky do vybrané složky. @@ -1151,8 +1135,6 @@ PREFERENCES_PRTPROFILE;Barevný profil PREFERENCES_PSPATH;Instalační složka Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Zapamatovat si procento přiblížení a posun obrázku PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Zapamatovat si procento přiblížení a posun aktuálního obrázku a použít tyto hodnoty při otevírání nového obrázku.\n\nTato volba funguje pouze v režimu "Mód jedné karty editoru" a volba "Metoda demozajkování pro náhled při přiblížení menším než 100%" je nastavena na "Stejně jako v PP3". -PREFERENCES_RGBDTL_LABEL;Maximální počet vláken pro redukci šumu a úrovně vlnky -PREFERENCES_RGBDTL_TOOLTIP;Pro automatické nastavení maximálního možného počtu vláken ponechte nastaveno na "0". Čím více vláken běží paralelně, tím rychlejší je výpočet. Paměťové nároky najdete na RawPedii. PREFERENCES_SAVE_TP_OPEN_NOW;Uložit stav sbalení/rozbalení nástrojů hned PREFERENCES_SELECTFONT;Vyberte hlavní písmo PREFERENCES_SELECTFONT_COLPICKER;Vybrat písmo pro Průzkumníka barev @@ -1167,41 +1149,30 @@ PREFERENCES_SHOWDATETIME;Zobrazovat datum a čas PREFERENCES_SHOWEXPOSURECOMPENSATION;Přidat kompenzaci expozice PREFERENCES_SHOWFILMSTRIPTOOLBAR;Zobrazit lištu s filmovým pásem PREFERENCES_SHTHRESHOLD;Práh oříznutých stínů -PREFERENCES_SIMPLAUT;Režim nástrojů PREFERENCES_SINGLETAB;Mód jedné karty editoru PREFERENCES_SINGLETABVERTAB;Mód jedné karty editoru, svislé karty -PREFERENCES_SMA;Malá (250x287) PREFERENCES_SND_BATCHQUEUEDONE;Zpracování fronty dokončeno PREFERENCES_SND_HELP;Vložte cestu k souboru pro nastavení zvuku nebo ponechte prázdné (bez zvuku).\nVe Windows zadejte "SystemDefault", "SystemAsterisk" a podobně.\nNa Linuxu použijte "complete", "window-attention" a další. PREFERENCES_SND_LNGEDITPROCDONE;Zpracování v editoru dokončeno PREFERENCES_SND_THRESHOLDSECS;Po sekundách PREFERENCES_STARTUPIMDIR;Složka obrázků při spuštění -PREFERENCES_STDAUT;Běžný PREFERENCES_TAB_BROWSER;Prohlížeč souborů PREFERENCES_TAB_COLORMGR;Správa barev PREFERENCES_TAB_DYNAMICPROFILE;Pravidla dynamických profilů PREFERENCES_TAB_GENERAL;Obecné PREFERENCES_TAB_IMPROC;Zpracování obrázku -PREFERENCES_TAB_PERFORMANCE;Výkon a kvalita PREFERENCES_TAB_SOUND;Zvuky PREFERENCES_THEME;Vzhled PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Vložený JPEG náhled PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Obrázek k zobrazení PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutrální vykreslení raw PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Vložený JPEG náhled pokud je v plné velikosti, jinak neutrální raw -PREFERENCES_TIMAX;Vysoký -PREFERENCES_TINB;Počet dlaždic -PREFERENCES_TISTD;Běžný PREFERENCES_TP_LABEL;Panel nástrojů: PREFERENCES_TP_USEICONORTEXT;V záhlaví karty zobrazit ikonu namísto textu PREFERENCES_TP_VSCROLLBAR;Skrýt svislou posuvnou lištu PREFERENCES_TUNNELMETADATA;Zkopírovat nezměněná Exif/IPTC/XMP metadata do výstupního souboru PREFERENCES_USEBUNDLEDPROFILES;Použít přiložené profily PREFERENCES_VIEW;Nastavení vyvážení bílé výstupních zařízení (monitor, TV, projektor, rámeček a jiné) -PREFERENCES_WAVLEV;Zvýšit úroveň vlnkové transformace v nejvyšší kvalitě -PREFERENCES_WLONE;Jedna úroveň -PREFERENCES_WLTWO;Dvě úrovně -PREFERENCES_WLZER;Ne PREFERENCES_WORKFLOW;Rozvržení PROFILEPANEL_COPYPPASTE;Parametry pro kopírování PROFILEPANEL_GLOBALPROFILES;Přiložené profily @@ -1870,7 +1841,6 @@ TP_RETINEX_FREEGAMMA;Volná gama TP_RETINEX_GAIN;Zisk TP_RETINEX_GAINOFFS;Zisk a posun (jasu) TP_RETINEX_GAINTRANSMISSION;Přenos zisku -TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Zesílí nebo zeslabí mapu přenosu pro dosažení jasu.\nÚsečka: přenos -min od 0. průměr. a hodnot (max).\nPořadnice: zisk. TP_RETINEX_GAIN_TOOLTIP;Působí na obnovený obrázek.\n\nToto je velmi odlišné od ostatních nastavení. Použito pro černé nebo bílé pixely a pro vyvážení histogramu. TP_RETINEX_GAMMA;Gama TP_RETINEX_GAMMA_FREE;Volná @@ -2226,6 +2196,8 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_235;B&W - CM - Auto !HISTORY_MSG_237;B&W - CM !HISTORY_MSG_273;CT - Color Balance SMH @@ -2234,22 +2206,100 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !HISTORY_MSG_489;DRC - Threshold !HISTORY_MSG_490;DRC - Amount !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold !HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!PARTIALPASTE_RAW_BORDER;Raw border +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) +!PREFERENCES_TAB_PERFORMANCE;Performance !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !TP_BWMIX_MIXC;Channel Mixer !TP_BWMIX_NEUTRAL;Reset -!TP_RAW_4PASS;4-Pass +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion +!TP_RAW_RCDVNG4;RCD+VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression diff --git a/rtdata/languages/Dansk b/rtdata/languages/Dansk index 48871b32a..9e1d79191 100644 --- a/rtdata/languages/Dansk +++ b/rtdata/languages/Dansk @@ -557,7 +557,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -573,13 +573,14 @@ TP_WBALANCE_TEMPERATURE;Temperatur !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -976,10 +977,16 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -991,9 +998,56 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1024,11 +1078,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1065,6 +1120,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1120,6 +1176,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1127,6 +1184,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1138,17 +1196,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1186,13 +1239,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1225,12 +1275,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1238,7 +1283,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1247,13 +1291,14 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1267,8 +1312,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1278,36 +1321,26 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1335,6 +1368,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1660,10 +1694,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1710,6 +1740,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1797,6 +1833,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1812,15 +1850,18 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1870,10 +1911,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1897,7 +1940,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1981,6 +2024,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2074,7 +2119,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index d696da4dd..d9488295e 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -36,7 +36,7 @@ #35 2017-02-18 AWB bias (TooWaBoo) RT 5.0 r1 #36 2017-02-23 Korrekturen (TooWaBoo) RT 5.0 r1 #37 2017-03-06 Dynamisches Profil (TooWaBoo) RT 5.0 r1 -#38 2017-03-26 Pixel Shift (TooWaBoo) RT 5.0 r1 +#38 2017-03-26 Pixel-Shift (TooWaBoo) RT 5.0 r1 #39 06.04.2017 Fast Export (TooWaBoo) RT 5.0 r1 #40 30.04.2017 Erweiterung/Korrekturen (TooWaBoo) RT 5.0 r1 #41 03.05.2017 Erweiterung/Korrekturen (TooWaBoo) RT 5.0 r1 @@ -58,6 +58,17 @@ #57 17.05.2018 Erweiterung (TooWaBoo) RT 5.4 #58 19.05.2018 Erweiterung (TooWaBoo) RT 5.4 #59 29.05.2018 Erweiterung (TooWaBoo) RT 5.4 +#60 14.06.2018 Erweiterung (TooWaBoo) RT 5.4 +#61 14.06.2018 Korrektur (TooWaBoo) RT 5.4 +#62 22.06.2018 Korrektur (TooWaBoo) RT 5.4 +#63 24.06.2018 DCB/RCD+VNG4 (TooWaBoo) RT 5.4 +#64 24.06.2018 Erweiterung/Korrektur (TooWaBoo) RT 5.4 +#65 25.06.2018 Korrekturen (TooWaBoo) RT 5.4 +#66 04.07.2018 Erweiterung (TooWaBoo) RT 5.4 +#67 05.07.2018 Erweiterung (TooWaBoo) RT 5.4 +#68 05.07.2018 Erweiterung (TooWaBoo) RT 5.4 +#69 25.07.2018 Erweiterung (TooWaBoo) RT 5.4 +#70 25.07.2018 Korrekturen (TooWaBoo) RT 5.4 ABOUT_TAB_BUILD;Version ABOUT_TAB_CREDITS;Danksagungen @@ -88,11 +99,11 @@ CURVEEDITOR_NURBS;NURBS-Kurve CURVEEDITOR_PARAMETRIC;Parametrisch CURVEEDITOR_SAVEDLGLABEL;Kurve speichern... CURVEEDITOR_SHADOWS;Schatten -CURVEEDITOR_TOOLTIPCOPY;Kurve in Zwischenablage kopieren -CURVEEDITOR_TOOLTIPLINEAR;Kurve zurücksetzen -CURVEEDITOR_TOOLTIPLOAD;Kurve laden -CURVEEDITOR_TOOLTIPPASTE;Kurve aus Zwischenablage einfügen -CURVEEDITOR_TOOLTIPSAVE;Kurve speichern +CURVEEDITOR_TOOLTIPCOPY;Kurve in Zwischenablage kopieren. +CURVEEDITOR_TOOLTIPLINEAR;Kurve zurücksetzen. +CURVEEDITOR_TOOLTIPLOAD;Kurve laden. +CURVEEDITOR_TOOLTIPPASTE;Kurve aus Zwischenablage einfügen. +CURVEEDITOR_TOOLTIPSAVE;Kurve speichern. CURVEEDITOR_TYPE;Typ: DIRBROWSER_FOLDERS;Ordner DONT_SHOW_AGAIN;Meldung nicht mehr anzeigen. @@ -106,7 +117,7 @@ DYNPROFILEEDITOR_NEW;Neu DYNPROFILEEDITOR_NEW_RULE;Profilregel erstellen DYNPROFILEEDITOR_PROFILE;Profil EDITWINDOW_TITLE;Bildbearbeitung -EDIT_OBJECT_TOOLTIP;Schaltet das Einstellungswerkzeug\nim Vorschaubild ein/aus +EDIT_OBJECT_TOOLTIP;Schaltet das Einstellungswerkzeug\nim Vorschaubild ein/aus. EDIT_PIPETTE_TOOLTIP;Um einen Punkt der Kurve hinzuzufügen, halten Sie die Strg-Taste gedrückt und klicken mit der linke Maustaste auf die gewünschte Stelle in der Vorschau.\nUm den Punkt anzupassen, halten Sie die Strg-Taste gedrückt und klicken Sie mit der linken Maustaste auf den entsprechenden Bereich in der Vorschau. Dann lassen Sie die Strg-Taste los (es sei denn, Sie möchten eine Feineinstellung vornehmen) und bewegen die Maus bei gedrückter linker Maustaste nach oben oder unten, um den Punkt auf der Kurve zu bewegen. EXIFFILTER_APERTURE;Blende EXIFFILTER_CAMERA;Kamera @@ -244,7 +255,7 @@ FILEBROWSER_SHOWCOLORLABEL5HINT;Nur violett markierte Bilder anzeigen\nTaste: d FILEBROWSER_SHOWEDITEDHINT;Nur bearbeitete Bilder anzeigen\nTaste: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Nur unbearbeitete Bilder anzeigen\nTaste: 6 -FILEBROWSER_SHOWEXIFINFO;Bildinformationen ein-/ausblenden\n\nIm Multi-Reitermodus:\nTaste: i\nIm Ein-Reitermodus:\nTaste: Alt + i +FILEBROWSER_SHOWEXIFINFO;Bildinformationen ein-/ausblenden.\n\nIm Multi-Reitermodus:\nTaste: i\nIm Ein-Reitermodus:\nTaste: Alt + i FILEBROWSER_SHOWNOTTRASHHINT;Nur nicht gelöschte Bilder anzeigen FILEBROWSER_SHOWORIGINALHINT;Zeige nur das Originalbild.\n\nWenn mehrere Bilder mit dem gleichen Dateinamen und unterschiedlichen Dateitypen existieren, ist das Originalbild das Bild, welches in der Liste "Dateitypen anzeigen" unter Einstellungen > Dateiverwaltung als erstes gefunden wird. FILEBROWSER_SHOWRANK1HINT;Nur mit 1 Stern bewertete Bilder anzeigen\nTaste: 1 @@ -281,7 +292,7 @@ GENERAL_DISABLED;Deaktiviert GENERAL_ENABLE;Aktivieren GENERAL_ENABLED;Aktiviert GENERAL_FILE;Datei: -GENERAL_LANDSCAPE;Quer +GENERAL_LANDSCAPE;Landschaft GENERAL_NA;n/a GENERAL_NO;Nein GENERAL_NONE;Keine @@ -290,17 +301,19 @@ GENERAL_OPEN;Öffnen GENERAL_PORTRAIT;Portrait GENERAL_RESET;Zurücksetzen GENERAL_SAVE;Speichern +GENERAL_SAVE_AS;Speichern GENERAL_SLIDER;Regler GENERAL_UNCHANGED;(Unverändert) GENERAL_WARNING;Warnung GIMP_PLUGIN_INFO;Willkommen zum RawTherapee GIMP-Plugin!\nNach den Änderungen bitte das RawTherapee-Fenster schließen.\nDas Bild wird dann automatisch in GIMP importiert. -HISTOGRAM_TOOLTIP_B;Blau-Histogramm ein-/ausblenden -HISTOGRAM_TOOLTIP_BAR;RGB-Anzeigeleiste ein-/ausblenden\n\nZum Fixieren/Lösen der Anzeige muss mit der\nrechten Maustaste ins Bildfenster geklickt werden. -HISTOGRAM_TOOLTIP_CHRO;Chromatizität-Histogramm ein/ausblenden -HISTOGRAM_TOOLTIP_FULL;Skaliertes Histogramm ein/ausschalten -HISTOGRAM_TOOLTIP_G;Grün-Histogramm ein-/ausblenden -HISTOGRAM_TOOLTIP_L;CIELab-Luminanz-Histogramm ein-/ausblenden -HISTOGRAM_TOOLTIP_R;Rot-Histogramm ein-/ausblenden +HISTOGRAM_TOOLTIP_B;Blau-Histogramm ein-/ausblenden. +HISTOGRAM_TOOLTIP_BAR;RGB-Anzeigeleiste ein-/ausblenden. +HISTOGRAM_TOOLTIP_CHRO;Chromatizität-Histogramm ein/ausblenden. +HISTOGRAM_TOOLTIP_FULL;Skaliertes Histogramm ein/ausschalten. +HISTOGRAM_TOOLTIP_G;Grün-Histogramm ein-/ausblenden. +HISTOGRAM_TOOLTIP_L;CIELab-Luminanz-Histogramm ein-/ausblenden. +HISTOGRAM_TOOLTIP_MODE;Schaltet zwischen linearer, logarithmischer-linearer und\nlogarithmischer-logarithmischer Skalierung um. +HISTOGRAM_TOOLTIP_R;Rot-Histogramm ein-/ausblenden. HISTOGRAM_TOOLTIP_RAW;Zwischen normalen Histogrammen und\nRAW-Histogrammen umschalten. HISTORY_CHANGED;Geändert HISTORY_CUSTOMCURVE;Benutzerdefiniert @@ -601,7 +614,7 @@ HISTORY_MSG_293;(Filmsimulation) HISTORY_MSG_294;(Filmsimulation)\nIntensität HISTORY_MSG_295;(Filmsimulation) - Film HISTORY_MSG_296;(Rauschreduzierung)\nLuminanzkurve -HISTORY_MSG_297;(Rauschreduzierung)\nQualität +HISTORY_MSG_297;(Rauschreduzierung)\nModus HISTORY_MSG_298;(Vorverarbeitung)\nDead-Pixel-Filter HISTORY_MSG_299;(Rauschreduzierung)\nChrominanzkurve HISTORY_MSG_300;- @@ -731,7 +744,7 @@ HISTORY_MSG_423;(Retinex) - Einstellungen\nGammasteigung HISTORY_MSG_424;(Retinex) - Einstellungen\nHL-Schwelle HISTORY_MSG_425;(Retinex) - Einstellungen\nBasis-Logarithmus HISTORY_MSG_426;(Retinex) - Einstellungen\nKorrekturen - Farbton (H) -HISTORY_MSG_427;Ausgabe-Rendering-Intent +HISTORY_MSG_427;(Farbmanagement)\nAusgabeprofil\nRendering-Intent HISTORY_MSG_428;Monitor-Rendering-Intent HISTORY_MSG_429;(Retinex) - Einstellungen\nDynamikkompression\nIterationen HISTORY_MSG_430;(Retinex) - Einstellungen\nDynamikkompression\nTransmission Gradient @@ -750,20 +763,20 @@ HISTORY_MSG_442;(Retinex) - Einstellungen\nTransmission - Skalierung HISTORY_MSG_443;(Farbmanagement)\nAusgabeprofil\nSchwarzpunkt-Kompensation HISTORY_MSG_444;(Weißabgleich)\nAWB-Temperatur-Korrektur HISTORY_MSG_445;(Sensor-Matrix)\nFarbinterpolation\nUnterbild -HISTORY_MSG_449;(Sensor-Matrix)\nFarbinterpolation\nISO-Anpassung -HISTORY_MSG_452;(Sensor-Matrix)\nFarbinterpolation\nBewegungsmaske\nanzeigen -HISTORY_MSG_453;(Sensor-Matrix)\nFarbinterpolation\nNur Maske anzeigen -HISTORY_MSG_457;(Sensor-Matrix)\nFarbinterpolation\nBewegung im Rot/Blau-\nKanal erkennen -HISTORY_MSG_462;(Sensor-Matrix)\nFarbinterpolation\nBewegung im Grün-\nKanal erkennen -HISTORY_MSG_464;(Sensor-Matrix)\nFarbinterpolation\nUnschärfebewegungsmaske -HISTORY_MSG_465;(Sensor-Matrix)\nFarbinterpolation\nUnschärferadius -HISTORY_MSG_468;(Sensor-Matrix)\nFarbinterpolation\nLücken in der Bewegungs-\nmaske erkennen -HISTORY_MSG_469;(Sensor-Matrix)\nFarbinterpolation\nMedian -HISTORY_MSG_471;(Sensor-Matrix)\nFarbinterpolation\nBewegungskorrektur -HISTORY_MSG_472;(Sensor-Matrix)\nFarbinterpolation\nWeicher Übergang -HISTORY_MSG_473;(Sensor-Matrix)\nFarbinterpolation\nLMMSE für Bewegungs-\nteile verwenden -HISTORY_MSG_474;(Sensor-Matrix)\nFarbinterpolation\nFrame-Helligkeit angleichen -HISTORY_MSG_475;(Sensor-Matrix)\nFarbinterpolation)\nAusgleich pro Kanal +HISTORY_MSG_449;(Sensor-Matrix)\nFarbinterpolation - PS\nISO-Anpassung +HISTORY_MSG_452;(Sensor-Matrix)\nFarbinterpolation - PS\nBewegungsmaske\nanzeigen +HISTORY_MSG_453;(Sensor-Matrix)\nFarbinterpolation - PS\nNur Maske anzeigen +HISTORY_MSG_457;(Sensor-Matrix)\nFarbinterpolation - PS\nBewegung im Rot/Blau-\nKanal erkennen +HISTORY_MSG_462;(Sensor-Matrix)\nFarbinterpolation - PS\nBewegung im Grün-\nKanal erkennen +HISTORY_MSG_464;(Sensor-Matrix)\nFarbinterpolation - PS\nUnschärfebewegungsmaske +HISTORY_MSG_465;(Sensor-Matrix)\nFarbinterpolation - PS\nUnschärferadius +HISTORY_MSG_468;(Sensor-Matrix)\nFarbinterpolation - PS\nLücken in der Bewegungs-\nmaske erkennen +HISTORY_MSG_469;(Sensor-Matrix)\nFarbinterpolation - PS\nMedian +HISTORY_MSG_471;(Sensor-Matrix)\nFarbinterpolation - PS\nBewegungskorrektur +HISTORY_MSG_472;(Sensor-Matrix)\nFarbinterpolation - PS\nWeicher Übergang +HISTORY_MSG_473;(Sensor-Matrix)\nFarbinterpolation - PS\nLMMSE für Bewegungs-\nteile verwenden +HISTORY_MSG_474;(Sensor-Matrix)\nFarbinterpolation - PS\nFrame-Helligkeit angleichen +HISTORY_MSG_475;(Sensor-Matrix)\nFarbinterpolation - PS\nAusgleich pro Kanal HISTORY_MSG_476;(CIECAM02)\nBetrachtungsbed.\nFarbtemperatur HISTORY_MSG_477;(CIECAM02)\nBetrachtungsbed.\nTönung HISTORY_MSG_478;(CIECAM02)\nBetrachtungsbed.\nYb% (Ø Luminanz) @@ -784,7 +797,14 @@ 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_DUALDEMOSAIC_CONTRAST;(Sensor-Matrix)\nFarbinterpolation\nKontrastschwelle HISTORY_MSG_HISTMATCHING;(Belichtung)\nAuto-Tonwertkurve +HISTORY_MSG_ICM_OUTPUT_PRIMARIES;(Farbmanagement)\nAusgabeprofil\nVorlagen +HISTORY_MSG_ICM_OUTPUT_TEMP;(Farbmanagement)\nAusgabeprofil\nIccV4-Illuminant D +HISTORY_MSG_ICM_OUTPUT_TYPE;(Farbmanagement)\nAusgabeprofil\nTyp +HISTORY_MSG_ICM_WORKING_GAMMA;(Farbmanagement)\nArbeitsfarbraum\nGamma +HISTORY_MSG_ICM_WORKING_SLOPE;(Farbmanagement)\nArbeitsfarbraum\nSteigung +HISTORY_MSG_ICM_WORKING_TRC_METHOD;(Farbmanagement)\nArbeitsfarbraum\nFarbtonkennlinie HISTORY_MSG_LOCALCONTRAST_AMOUNT;(Lokaler Kontrast)\nIntensität HISTORY_MSG_LOCALCONTRAST_DARKNESS;(Lokaler Kontrast)\nDunkle Bereiche HISTORY_MSG_LOCALCONTRAST_ENABLED;(Lokaler Kontrast) @@ -792,15 +812,61 @@ HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;(Lokaler Kontrast)\nHelle Bereiche HISTORY_MSG_LOCALCONTRAST_RADIUS;(Lokaler Kontrast)\nRadius HISTORY_MSG_METADATA_MODE;(Metadaten)\nKopiermodus HISTORY_MSG_MICROCONTRAST_CONTRAST;(Mikrokontrast)\nKontrastschwelle +HISTORY_MSG_PIXELSHIFT_DEMOSAIC;(Sensor-Matrix)\nFarbinterpolation - PS\nBewegungsmethode HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;(Sensor-Matrix)\nVorverarbeitung\nRichtung HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;(Sensor-Matrix)\nVorverarbeitung\nPDAF-Zeilenfilter HISTORY_MSG_PRSHARPEN_CONTRAST;(Skalieren) - Schärfen\nKontrastschwelle +HISTORY_MSG_RAW_BORDER;(Sensor-Matrix)\nFarbinterpolation\nBildrand +HISTORY_MSG_RESIZE_ALLOWUPSCALING;(Skalieren)\nHochskalieren zulassen HISTORY_MSG_SHARPENING_CONTRAST;(Schärfung)\nKontrastschwelle +HISTORY_MSG_SOFTLIGHT_ENABLED;(Weiches Licht) +HISTORY_MSG_SOFTLIGHT_STRENGTH;(Weiches Licht)\nIntensität HISTORY_MSG_TM_FATTAL_ANCHOR;(Dynamikkompression)\nHelligkeitsverschiebung HISTORY_NEWSNAPSHOT;Hinzufügen HISTORY_NEWSNAPSHOT_TOOLTIP;Taste: Alt + s HISTORY_SNAPSHOT;Schnappschuss HISTORY_SNAPSHOTS;Schnappschüsse +ICCPROFCREATOR_COPYRIGHT;Copyright: +ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Auf den vorgegebenen Copyright-Text zurücksetzen. +ICCPROFCREATOR_CUSTOM;Benutzerdefiniert +ICCPROFCREATOR_DESCRIPTION;Beschreibung: +ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Füge Gamma- und Steigungswerte der Beschreibung hinzu +ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Wenn leer, wird die Standardbeschreibung verwendet. +ICCPROFCREATOR_GAMMA;Gamma +ICCPROFCREATOR_ICCVERSION;ICC-Version: +ICCPROFCREATOR_ILL;Illuminant: +ICCPROFCREATOR_ILL_41;D41 +ICCPROFCREATOR_ILL_50;D50 +ICCPROFCREATOR_ILL_55;D55 +ICCPROFCREATOR_ILL_60;D60 +ICCPROFCREATOR_ILL_65;D65 +ICCPROFCREATOR_ILL_80;D80 +ICCPROFCREATOR_ILL_DEF;Vorgabe +ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_ILL_TOOLTIP;Illuminant kann nur bei ICC-v4-Profilen\nverwendet werden. +ICCPROFCREATOR_PRIMARIES;Vorlage: +ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +ICCPROFCREATOR_PRIM_BEST;BestRGB +ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BLUX;Blau X +ICCPROFCREATOR_PRIM_BLUY;Blau Y +ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_GREX;Grün X +ICCPROFCREATOR_PRIM_GREY;Grün Y +ICCPROFCREATOR_PRIM_PROPH;Prophoto +ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_REDX;Rot X +ICCPROFCREATOR_PRIM_REDY;Rot Y +ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PRIM_TOOLTIP;Benutzerdefinierte Vorlagen können nur\nbei ICC-v4-Profilen verwendet werden. +ICCPROFCREATOR_PRIM_WIDEG;Widegamut +ICCPROFCREATOR_PROF_V2;ICC v2 +ICCPROFCREATOR_PROF_V4;ICC v4 +ICCPROFCREATOR_SAVEDIALOG_TITLE;ICC-Profile speichern unter ... +ICCPROFCREATOR_SLOPE;Steigung +ICCPROFCREATOR_TRC_PRESET;Farbtonkennlinie: IPTCPANEL_CATEGORY;Kategorie IPTCPANEL_CATEGORYHINT;Beschreibt das Thema des Bildes nach\nMeinung des Anbieters. IPTCPANEL_CITY;Stadt @@ -848,16 +914,17 @@ LENSPROFILE_CORRECTION_LCPFILE;LCP-Datei LENSPROFILE_CORRECTION_MANUAL;Benutzerdefiniert (Lensfun) LENSPROFILE_LENS_WARNING;Warnung: Der Cropfaktor des Profils entspricht nicht dem des Objektivs.\nDies kann zu einem fehlerhaften Ergebnis führen. MAIN_BUTTON_FULLSCREEN;Vollbild\nTaste: F11 +MAIN_BUTTON_ICCPROFCREATOR;ICC-Profil erstellen MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigiert zum nächsten Miniaturbild in der\nDateiverwaltung oder Filmstreifen bezogen\nauf das ausgewählte Miniaturbild.\nTaste: F4\n\nNavigiert zum nächsten Miniaturbild in der\nDateiverwaltung oder Filmstreifen bezogen\nauf auf das im Editor geöffnete Bild.\nTaste: Umschalt + F4 MAIN_BUTTON_NAVPREV_TOOLTIP;Navigiert zum vorherigen Miniaturbild in der\nDateiverwaltung oder Filmstreifen bezogen\nauf das ausgewählte Miniaturbild.\nTaste: F3\n\nNavigiert zum vorherigen Miniaturbild in der\nDateiverwaltung oder Filmstreifen bezogen\nauf auf das im Editor geöffnete Bild.\nTaste: Umschalt + F3 MAIN_BUTTON_NAVSYNC_TOOLTIP;Selektiert das Miniaturbild des aktuell geöffneten\nBildes in der Dateiverwaltung und des Filmstreifens.\nEs werden alle aktiven Filter gelöscht.\nTaste: x\n\nWie oben, jedoch ohne Löschung aktiver Filter. Das\nMiniaturbild des geöffneten Bildes wird nicht angezeigt,\nwenn es herausgefiltert wurde.\nTaste: y MAIN_BUTTON_PREFERENCES;Einstellungen -MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Bild zur Warteschlange hinzufügen\nTaste: Strg + b -MAIN_BUTTON_SAVE_TOOLTIP;Bild speichern\nTaste: Strg + s +MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Bild zur Warteschlange hinzufügen.\nTaste: Strg + b +MAIN_BUTTON_SAVE_TOOLTIP;Bild speichern.\nTaste: Strg + s\nProfil (.pp3) speichern.\nTaste: Strg + Umschalt + s MAIN_BUTTON_SENDTOEDITOR;Bild im externen Editor öffnen -MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Bild im externen Editor öffnen\nTaste: Strg + e -MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Alle seitlichen Bedienfelder ein-/ausblenden\nTaste: m -MAIN_BUTTON_UNFULLSCREEN;Vollbild beenden\nTaste: F11 +MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Bild im externen Editor öffnen.\nTaste: Strg + e +MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Alle seitlichen Bedienfelder ein-/ausblenden.\nTaste: m +MAIN_BUTTON_UNFULLSCREEN;Vollbild beenden.\nTaste: F11 MAIN_FRAME_BATCHQUEUE;Warteschlange MAIN_FRAME_BATCHQUEUE_TOOLTIP;Warteschlange\nTaste: Strg + F3 MAIN_FRAME_EDITOR;Editor @@ -904,25 +971,26 @@ MAIN_TAB_TRANSFORM;Transformieren MAIN_TAB_TRANSFORM_TOOLTIP;Taste: Alt + t MAIN_TAB_WAVELET;Wavelet MAIN_TAB_WAVELET_TOOLTIP;Taste: Alt + w -MAIN_TOOLTIP_BACKCOLOR0;Hintergrundfarbe der Vorschau basierend auf dem: Oberflächendesign\nTaste: 9 +MAIN_TOOLTIP_BACKCOLOR0;Hintergrundfarbe der Vorschau basierend auf dem Oberflächendesign.\nTaste: 9 MAIN_TOOLTIP_BACKCOLOR1;Hintergrundfarbe der Vorschau: Schwarz\nTaste: 9 MAIN_TOOLTIP_BACKCOLOR2;Hintergrundfarbe der Vorschau: Weiß\nTaste: 9 MAIN_TOOLTIP_BACKCOLOR3;Hintergrundfarbe der Vorschau: Mittleres Grau\nTaste: 9 MAIN_TOOLTIP_BEFOREAFTERLOCK;Vorher-Ansicht: Sperren / Entsperren\n\nGesperrt: Friert die Vorher-Ansicht ein, so\ndass sich die Gesamtwirkung mehrerer\nBearbeitungsschritte beurteilen lässt.\n\nEntsperrt: Die Vorher-Ansicht hinkt dem\naktuellen Bild immer einen Bearbeitungs-\nschritt hinterher. -MAIN_TOOLTIP_HIDEHP;Linkes Bedienfeld ein-/ausblenden\nTaste: l -MAIN_TOOLTIP_INDCLIPPEDH;Anzeige zu heller Bereiche ein-/ausschalten\nTaste: < -MAIN_TOOLTIP_INDCLIPPEDS;Anzeige zu dunkler Bereiche ein-/ausschalten\nTaste: > +MAIN_TOOLTIP_HIDEHP;Linkes Bedienfeld ein-/ausblenden.\nTaste: l +MAIN_TOOLTIP_INDCLIPPEDH;Anzeige zu heller Bereiche ein-/ausschalten.\nTaste: < +MAIN_TOOLTIP_INDCLIPPEDS;Anzeige zu dunkler Bereiche ein-/ausschalten.\nTaste: > MAIN_TOOLTIP_PREVIEWB;Vorschau Blau-Kanal\nTaste: b MAIN_TOOLTIP_PREVIEWFOCUSMASK;Vorschau Fokusmaske\nTaste: Umschalt + f\n\nPräziser bei Bildern mit geringer Tiefenschärfe,\nniedrigem Rauschen und bei hoher Vergrößerung. MAIN_TOOLTIP_PREVIEWG;Vorschau Grün-Kanal\nTaste: g MAIN_TOOLTIP_PREVIEWL;Vorschau Helligkeit\nTaste: v\n\n0.299·R + 0.587·G + 0.114·B MAIN_TOOLTIP_PREVIEWR;Vorschau Rot-Kanal\nTaste: r -MAIN_TOOLTIP_QINFO;Bildinformationen ein-/ausblenden\nTaste: i -MAIN_TOOLTIP_SHOWHIDELP1;Linkes Bedienfeld ein-/ausblenden\nTaste: l -MAIN_TOOLTIP_SHOWHIDERP1;Rechtes Bedienfeld ein-/ausblenden\nTaste: Alt + l -MAIN_TOOLTIP_SHOWHIDETP1;Oberes Bedienfeld ein-/ausblenden\nTaste: Umschalt + l +MAIN_TOOLTIP_PREVIEWSHARPMASK;Schärfungs-Kontroll-Maske ein-/ausschalten.\n\nFunktioniert nur bei aktivierter Schärfung\nund Zoom >= 100%. +MAIN_TOOLTIP_QINFO;Bildinformationen ein-/ausblenden.\nTaste: i +MAIN_TOOLTIP_SHOWHIDELP1;Linkes Bedienfeld ein-/ausblenden.\nTaste: l +MAIN_TOOLTIP_SHOWHIDERP1;Rechtes Bedienfeld ein-/ausblenden.\nTaste: Alt + l +MAIN_TOOLTIP_SHOWHIDETP1;Oberes Bedienfeld ein-/ausblenden.\nTaste: Umschalt + l MAIN_TOOLTIP_THRESHOLD;Schwelle -MAIN_TOOLTIP_TOGGLE;Vorher/Nachher-Ansicht ein-/ausschalten\nTaste: Umschalt + b +MAIN_TOOLTIP_TOGGLE;Vorher/Nachher-Ansicht ein-/ausschalten.\nTaste: Umschalt + b MONITOR_PROFILE_SYSTEM;Systemvorgabe NAVIGATOR_B;B: NAVIGATOR_G;G: @@ -960,7 +1028,7 @@ PARTIALPASTE_DIRPYRDENOISE;Rauschreduzierung PARTIALPASTE_DIRPYREQUALIZER;Detailebenenkontrast PARTIALPASTE_DISTORTION;Verzeichnungskorrektur PARTIALPASTE_EPD;Tonwertkorrektur -PARTIALPASTE_EQUALIZER;Anzahl der Ebenen +PARTIALPASTE_EQUALIZER;Wavelet PARTIALPASTE_EVERYTHING;Alle Parameter aktivieren / deaktivieren PARTIALPASTE_EXIFCHANGES;Änderungen an Exif-Daten PARTIALPASTE_EXPOSURE;Belichtung @@ -987,6 +1055,7 @@ PARTIALPASTE_PREPROCESS_DEADPIXFILT;Vorverarbeitung: Dead-Pixel-Filter PARTIALPASTE_PREPROCESS_GREENEQUIL;Vorverarbeitung: Grün-Ausgleich PARTIALPASTE_PREPROCESS_HOTPIXFILT;Vorverarbeitung: Hot-Pixel-Filter PARTIALPASTE_PREPROCESS_LINEDENOISE;Vorverarbeitung: Zeilenrauschfilter +PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;Vorverarbeitung: PDAF-Zeilenfilter PARTIALPASTE_PRSHARPENING;Schärfung nach Größenänderung PARTIALPASTE_RAWCACORR_AUTO;Chromatische Aberration: Automatische Korrektur PARTIALPASTE_RAWCACORR_CAREDBLUE;Chromatische Aberration: Rot & Blau @@ -994,13 +1063,14 @@ PARTIALPASTE_RAWEXPOS_BLACK;Weißpunkt: Schwarzpegel PARTIALPASTE_RAWEXPOS_LINEAR;Weißpunkt: Korrekturfaktor PARTIALPASTE_RAWEXPOS_PRESER;Weißpunkt: Lichter schützen (EV) PARTIALPASTE_RAWGROUP;RAW +PARTIALPASTE_RAW_BORDER;Farbinterpolation: Bildrand PARTIALPASTE_RAW_DCBENHANCE;Farbinterpolation: DCB-Verbesserung PARTIALPASTE_RAW_DCBITERATIONS;Farbinterpolation: Anzahl der DCB-Iterationen PARTIALPASTE_RAW_DMETHOD;Farbinterpolation: Methode PARTIALPASTE_RAW_FALSECOLOR;Farbinterpolation: Falschfarbenreduzierung PARTIALPASTE_RAW_IMAGENUM;Farbinterpolation: Unterbild PARTIALPASTE_RAW_LMMSEITERATIONS;Farbinterpolation: LMMSE-Verbesserungsstufen -PARTIALPASTE_RAW_PIXELSHIFT;Farbinterpolation: Pixel Shift +PARTIALPASTE_RAW_PIXELSHIFT;Farbinterpolation: Pixel-Shift PARTIALPASTE_RESIZE;Skalieren PARTIALPASTE_RETINEX;Retinex (Bildschleier entfernen) PARTIALPASTE_RGBCURVES;RGB-Kurven @@ -1009,6 +1079,7 @@ PARTIALPASTE_SHADOWSHIGHLIGHTS;Schatten/Lichter PARTIALPASTE_SHARPENEDGE;Kantenschärfung PARTIALPASTE_SHARPENING;Schärfung PARTIALPASTE_SHARPENMICRO;Mikrokontrast +PARTIALPASTE_SOFTLIGHT;Weiches Licht PARTIALPASTE_TM_FATTAL;Dynamikkompression PARTIALPASTE_VIBRANCE;Dynamik PARTIALPASTE_VIGNETTING;Vignettierungskorrektur @@ -1016,14 +1087,8 @@ PARTIALPASTE_WAVELETGROUP;Wavelet PARTIALPASTE_WHITEBALANCE;Weißabgleich PREFERENCES_ADD;HINZU PREFERENCES_APPLNEXTSTARTUP;erfordert Neustart -PREFERENCES_AUTLISLOW;Niedrig -PREFERENCES_AUTLISMAX;Max.-Durchschnitt aller Kacheln -PREFERENCES_AUTLISSTD;Hoch -PREFERENCES_AUTLISVLOW;Keine -PREFERENCES_AUTLOW;Niedrig -PREFERENCES_AUTOMONPROFILE;Automatisch das für den aktuellen Monitor festgelegte Profil verwenden. +PREFERENCES_AUTOMONPROFILE;Automatisch das für den aktuellen Monitor festgelegte Profil verwenden PREFERENCES_AUTOSAVE_TP_OPEN;Werkzeugstatus vor dem Beenden automatisch speichern -PREFERENCES_AUTSTD;Standard PREFERENCES_BATCH_PROCESSING;Stapelverarbeitung PREFERENCES_BEHADDALL;Alle hinzufügen PREFERENCES_BEHADDALLHINT;Setzt alle Parameter auf Hinzufügen.\nAnpassungen der Parameter in der Hintergrundstapelverarbeitung werden als Deltas zu den gespeicherten Werten interpretiert. @@ -1074,8 +1139,6 @@ PREFERENCES_DARKFRAMESHOTS;Aufnahmen PREFERENCES_DARKFRAMETEMPLATES;Vorlagen PREFERENCES_DATEFORMAT;Format PREFERENCES_DATEFORMATHINT;Die folgenden Variablen können verwendet werden:\n%y : Jahr\n%m : Monat\n%d : Tag\n\nBeispiele:\n%d.%m.%y (übliche deutsche Datumsschreibweise)\n%y-%m-%d (Datumsformat nach ISO 8601 und EN 28601) -PREFERENCES_DAUB_LABEL;Benutze Daubechies D6-Wavelets anstatt D4 -PREFERENCES_DAUB_TOOLTIP;Rauschreduzierung und Waveletebenen verwenden ein Debauchies Mutter-Wavelet. Wenn Sie D6 statt D4 wählen, erhöhen Sie die Anzahl der orthogonalen Daubechies-Koeffizienten, was die Qualität bei niedrigen Ebenen verbessern kann. Es gibt keinen Unterschied zwischen D4 und D6 im Speicherverbrauch oder in der Verarbeitungszeit. PREFERENCES_DIRDARKFRAMES;Dunkelbild-Verzeichnis PREFERENCES_DIRECTORIES;Verzeichnisse PREFERENCES_DIRHOME;Benutzer-Verzeichnis @@ -1085,7 +1148,6 @@ PREFERENCES_DIRSELECTDLG;Wähle das Bild-Verzeichnis beim Programmstart... PREFERENCES_DIRSOFTWARE;Installationsverzeichnis PREFERENCES_EDITORCMDLINE;Benutzerdefinierte Befehlszeile PREFERENCES_EDITORLAYOUT;Editor-Layout -PREFERENCES_EXPAUT;Experte PREFERENCES_EXTERNALEDITOR;Externer Editor PREFERENCES_FBROWSEROPTS;Bildinformationen und Miniaturbilder PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Einzeilige Toolbar\n(Bei geringer Bildschirmauflösung deaktivieren) @@ -1116,7 +1178,7 @@ PREFERENCES_GREYSC18;Yb = 18 CIE L#49 PREFERENCES_GREYSCA;Automatisch PREFERENCES_HISTOGRAMPOSITIONLEFT;Histogramm linksseitig PREFERENCES_HISTOGRAMWORKING;Das Arbeitsprofil zur Darstellung des Haupthistogramms verwenden -PREFERENCES_HISTOGRAM_TOOLTIP;Wenn aktiviert wird das Arbeitsprofil für die Darstellung des\nHaupthistogramms, andernfalls das des gammakorrigierten\nAusgangsprofil, verwendet. +PREFERENCES_HISTOGRAM_TOOLTIP;Wenn aktiviert wird das Arbeitsprofil für die Darstellung\ndes Haupthistogramms verwendet, andernfalls das des\ngammakorrigierten Ausgangsprofil. PREFERENCES_HLTHRESHOLD;Lichter - Schwelle PREFERENCES_ICCDIR;ICC-Profile-Verzeichnis PREFERENCES_IMG_RELOAD_NEEDED;Änderungen werden nur auf neu geöffnete Bilder angewendet @@ -1131,12 +1193,7 @@ PREFERENCES_INTENT_SATURATION;Sättigung PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Zeige das eingebettete JPEG als Miniaturbild, wenn die RAW-Datei noch nicht editiert wurde PREFERENCES_LANG;Sprache PREFERENCES_LANGAUTODETECT;Systemsprache verwenden -PREFERENCES_LEVAUTDN;Rauschreduzierungsstufe -PREFERENCES_LEVDN;Zellengröße -PREFERENCES_LISS;Automatische Glättung bei Mehrfachzonen -PREFERENCES_MAX;Maxi (Kachel) PREFERENCES_MAXRECENTFOLDERS;Maximale Anzahl der letzten Dateien -PREFERENCES_MED;Medium (Kachel/2) PREFERENCES_MENUGROUPEXTPROGS;Untermenü "Öffnen mit" PREFERENCES_MENUGROUPFILEOPERATIONS;Untermenü Dateioperationen PREFERENCES_MENUGROUPLABEL;Untermenü Farbmarkierung @@ -1144,7 +1201,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Untermenü Profiloperationen PREFERENCES_MENUGROUPRANK;Untermenü Bewertung PREFERENCES_MENUOPTIONS;Menüoptionen PREFERENCES_METADATA;Metadaten -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;Standard-Rendering-Intent PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Standardfarbprofil @@ -1153,9 +1209,8 @@ PREFERENCES_MULTITAB;Multi-Reitermodus PREFERENCES_MULTITABDUALMON;Multi-Reitermodus (auf zweitem Monitor, wenn verfügbar) PREFERENCES_NAVGUIDEBRUSH;Farbe der Navigationshilfe PREFERENCES_NAVIGATIONFRAME;Navigation -PREFERENCES_NOISE;Rauschreduzierung PREFERENCES_OUTDIR;Ausgabeverzeichnis -PREFERENCES_OUTDIRFOLDER;In dieses Verzeichnis speichern +PREFERENCES_OUTDIRFOLDER;In dieses Verzeichnis speichern. PREFERENCES_OUTDIRFOLDERHINT;Alle Dateien im ausgewählten Verzeichnis speichern. PREFERENCES_OUTDIRTEMPLATE;Dynamisches Verzeichnis verwenden PREFERENCES_OUTDIRTEMPLATEHINT;Die folgenden Variablen können verwendet werden:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nDiese Variablen beinhalten bestimmte Teile des Verzeichnispfades, in welchem sich das Bild befindet, oder Attribute des Bildes.\n\nWenn zum Beispiel /home/tom/photos/2010-10-31/dsc0042.nef geöffnet wurde, dann haben die Variablen den folgenden Inhalt:\n%d4 = home\n%d3 = tom\n%d2 = photos\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31\n%p2 = /home/tom/photos\n%p3 = /home/tom\n%p4 = /home\n\nWenn Sie die Ausgabedatei in dasselbe Verzeichnis wie das Originalbild speichern wollen, dann wählen Sie:\n%p1/%f\n\nWenn Sie die Ausgabedatei in ein Unterverzeichnis mit dem Namen "converted" schreiben wollen, dann wählen Sie:\n%p1/converted/%f\n\nWenn Sie die Ausgabedatei im Verzeichnispfad "/home/tom/photos/converted" speichern wollen, dort jedoch in einem mit dem Namen des Ursprungsverzeichnisses betitelten Unterverzeichnis, dann wählen Sie:\n%p2/converted/%d1/%f\n\nDie Variable %r enthält die Bewertung des Bildes. @@ -1177,10 +1232,10 @@ PREFERENCES_PRINTER;Drucker (Soft-Proofing) PREFERENCES_PROFILEHANDLING;Behandlung der Bearbeitungsprofile PREFERENCES_PROFILELOADPR;Priorität der Profile beim Laden PREFERENCES_PROFILEPRCACHE;Bearbeitungsprofil im Festplatten-Cache -PREFERENCES_PROFILEPRFILE;Bearbeitungsprofil, welches geladener Datei beiliegt (Sidecar) -PREFERENCES_PROFILESAVEBOTH;Verarbeitungsparameter im Festplatten-Cache und zusammen mit der Datei speichern +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 Datei speichern (Sidecar) +PREFERENCES_PROFILESAVEINPUT;Verarbeitungsparameter zusammen mit dem Bild speichern (Sidecar) PREFERENCES_PROFILESAVELOCATION;Speicherort der Profile PREFERENCES_PROFILE_NONE;Kein Farbprofil PREFERENCES_PROPERTY;Eigenschaft @@ -1189,8 +1244,6 @@ PREFERENCES_PRTPROFILE;Farbprofil PREFERENCES_PSPATH;Adobe Photoshop Installationsverzeichnis PREFERENCES_REMEMBERZOOMPAN;Zoom und Bildposition merken PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Öffnen eines neuen Bildes mit den Zoom- und Positionswerten\ndes vorangegangenen Bildes.\n\nFunktioniert nur unter folgenden Bedingungen:\nEin-Reitermodus aktiv\n“Demosaikmethode für 100%-Ansicht“ muss auf “Wie im Bild-\nverarbeitungsprofil vorgegeben“ eingestellt sein. -PREFERENCES_RGBDTL_LABEL;Maximale Anzahl Threads für Rauschreduzierung -PREFERENCES_RGBDTL_TOOLTIP;Die Rauschreduzierung benötigt mindestens 128MB RAM für ein 10 Megapixel-Bild oder 512MB für ein 40 Megapixel-Bild, und zusätzlich 128MB RAM pro Thread. Je mehr Threads parallel ablaufen, desto schneller ist die Berechnung. Bei Einstellung "0" werden so viele Threads wie möglich benutzt. PREFERENCES_SAVE_TP_OPEN_NOW;Werkzeugstatus jetzt speichern PREFERENCES_SELECTFONT;Schriftart PREFERENCES_SELECTFONT_COLPICKER;Schriftart für die Farbwähler @@ -1205,41 +1258,30 @@ PREFERENCES_SHOWDATETIME;Datum und Uhrzeit anzeigen PREFERENCES_SHOWEXPOSURECOMPENSATION;Belichtungskorrektur anfügen PREFERENCES_SHOWFILMSTRIPTOOLBAR;Toolbar oberhalb des Filmstreifens anzeigen PREFERENCES_SHTHRESHOLD;Schatten - Schwelle -PREFERENCES_SIMPLAUT;Werkzeugmodus PREFERENCES_SINGLETAB;Ein-Reitermodus PREFERENCES_SINGLETABVERTAB;Ein-Reitermodus (vertikale Reiter) -PREFERENCES_SMA;Klein (250x287) PREFERENCES_SND_BATCHQUEUEDONE;Warteschlange abgearbeitet PREFERENCES_SND_HELP;Geben Sie einen Pfad zu einer Sounddatei oder einen Systemklang ein.\n\nBeispiel Systemklänge:\nWindows: SystemDefault, SystemAsterisk ...\nLinux: complete, window-attention ...\n PREFERENCES_SND_LNGEDITPROCDONE;Bearbeitung abgeschlossen PREFERENCES_SND_THRESHOLDSECS;Verzögerung in Sekunden PREFERENCES_STARTUPIMDIR;Bildverzeichnis beim Programmstart -PREFERENCES_STDAUT;Standard PREFERENCES_TAB_BROWSER;Dateiverwaltung PREFERENCES_TAB_COLORMGR;Farbmanagement PREFERENCES_TAB_DYNAMICPROFILE;Dynamisches Profil PREFERENCES_TAB_GENERAL;Allgemein PREFERENCES_TAB_IMPROC;Bildbearbeitung -PREFERENCES_TAB_PERFORMANCE;Performance & Qualität PREFERENCES_TAB_SOUND;Klänge PREFERENCES_THEME;Oberflächendesign PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Eingebundenes JPEG PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Bildanzeige PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutrales RAW-Bild PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Eingebundenes JPEG wenn in Originalgröße, sonst neutrales RAW-Bild -PREFERENCES_TIMAX;Hoch -PREFERENCES_TINB;Anzahl Kacheln -PREFERENCES_TISTD;Standard PREFERENCES_TP_LABEL;Werkzeugbereich: PREFERENCES_TP_USEICONORTEXT;Symbole statt Text in Karteireitern PREFERENCES_TP_VSCROLLBAR;Keine vertikale Scrollbar PREFERENCES_TUNNELMETADATA;Exif/XMP unverändert in die Ausgabedatei übernehmen. PREFERENCES_USEBUNDLEDPROFILES;Standardprofile verwenden PREFERENCES_VIEW;Weißabgleich-Einstellung des Ausgabegerätes (Monitor, TV, Projektor, usw.) -PREFERENCES_WAVLEV;Die Qualität von Waveletebenen erhöhen -PREFERENCES_WLONE;Eine Ebene -PREFERENCES_WLTWO;Zwei Ebenen -PREFERENCES_WLZER;Nein PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Zu kopierende Parameter PROFILEPANEL_GLOBALPROFILES;Standardprofile @@ -1256,10 +1298,10 @@ PROFILEPANEL_PINTERNAL;Neutral PROFILEPANEL_PLASTSAVED;Zuletzt gespeichert PROFILEPANEL_SAVEDLGLABEL;Bearbeitungsprofil speichern... PROFILEPANEL_SAVEPPASTE;Zu speichernde Parameter -PROFILEPANEL_TOOLTIPCOPY;Profil in Zwischenablage kopieren\n\nStrg-Taste beim Klicken festhalten, um\nzu kopierende Parameter auszuwählen. -PROFILEPANEL_TOOLTIPLOAD;Profil aus Datei laden\n\nStrg-Taste beim Klicken festhalten, um\nzu ladende Parameter auszuwählen. -PROFILEPANEL_TOOLTIPPASTE;Profil aus Zwischenablage einfügen\n\nStrg-Taste beim Klicken festhalten, um\neinzufügende Parameter auszuwählen. -PROFILEPANEL_TOOLTIPSAVE;Profil speichern\n\nStrg-Taste beim Klicken festhalten, um\nzu speichernde Parameter auszuwählen. +PROFILEPANEL_TOOLTIPCOPY;Profil in Zwischenablage kopieren.\n\nStrg-Taste beim Klicken festhalten, um\nzu kopierende Parameter auszuwählen. +PROFILEPANEL_TOOLTIPLOAD;Profil aus Datei laden.\n\nStrg-Taste beim Klicken festhalten, um\nzu ladende Parameter auszuwählen. +PROFILEPANEL_TOOLTIPPASTE;Profil aus Zwischenablage einfügen.\n\nStrg-Taste beim Klicken festhalten, um\neinzufügende Parameter auszuwählen. +PROFILEPANEL_TOOLTIPSAVE;Profil speichern.\n\nStrg-Taste beim Klicken festhalten, um\nzu speichernde Parameter auszuwählen. PROGRESSBAR_LOADING;Lade Bild... PROGRESSBAR_LOADINGTHUMBS;Lade Miniaturbilder... PROGRESSBAR_LOADJPEG;Lade JPEG... @@ -1278,7 +1320,7 @@ QINFO_FRAMECOUNT;%2 Frames QINFO_HDR;HDR / %2 Frame(s) QINFO_ISO;ISO QINFO_NOEXIF;Keine Exif-Daten vorhanden. -QINFO_PIXELSHIFT;Pixel Shift / %2 Frame(s) +QINFO_PIXELSHIFT;Pixel-Shift / %2 Frame(s) SAMPLEFORMAT_0;Unbekanntes Datenformat SAMPLEFORMAT_1;8 Bit ohne Vorzeichen SAMPLEFORMAT_2;16 Bit ohne Vorzeichen @@ -1314,18 +1356,18 @@ THRESHOLDSELECTOR_HINT;Umschalt-Taste halten, um individuelle\nKontrollpu THRESHOLDSELECTOR_T;Oben THRESHOLDSELECTOR_TL;Oben-Links THRESHOLDSELECTOR_TR;Oben-Rechts -TOOLBAR_TOOLTIP_COLORPICKER;Farbwähler\n\nWenn eingeschaltet:\n- Mit der linken Maustaste können Sie einen Farbwähler setzen.\n- Zum Verschieben, linke Maustaste festhalten.\n- Umschalttaste + Rechts-Klick entfernt alle Farbwähler.\n- Rechts-Klick auf den Farbwählerbutton blendet die Farbwähler ein/aus\n- Rechts-Klick in einen freien Bereich schaltet auf das Hand-Werkzeug zurück. -TOOLBAR_TOOLTIP_CROP;Ausschnitt wählen\nTaste: c\n\nZum Verschieben des Ausschnitts,\nUmschalttaste festhalten. +TOOLBAR_TOOLTIP_COLORPICKER;Farbwähler\n\nWenn eingeschaltet:\n- Mit der linken Maustaste können Sie einen Farbwähler setzen.\n- Zum Verschieben, linke Maustaste festhalten.\n- Umschalttaste + Rechts-Klick entfernt alle Farbwähler.\n- Rechts-Klick auf den Farbwählerbutton blendet die Farbwähler ein/aus\n- Rechts-Klick in einen freien Bereich schaltet auf das Hand-Werkzeug zurück. +TOOLBAR_TOOLTIP_CROP;Ausschnitt wählen.\nTaste: c\n\nZum Verschieben des Ausschnitts,\nUmschalttaste festhalten. TOOLBAR_TOOLTIP_HAND;Hand-Werkzeug\nTaste: h TOOLBAR_TOOLTIP_STRAIGHTEN;Ausrichten / Drehen\nTaste: s\n\nRichtet das Bild entlang einer Leitlinie aus. -TOOLBAR_TOOLTIP_WB;Weißabgleich manuell setzen\nTaste: w +TOOLBAR_TOOLTIP_WB;Weißabgleich manuell setzen.\nTaste: w TP_BWMIX_ALGO;OYCPM-Algorithmus TP_BWMIX_ALGO_LI;Linear TP_BWMIX_ALGO_SP;Spezialeffekte -TP_BWMIX_ALGO_TOOLTIP;Linear liefert ein lineares Ergebnis\nSpezialeffekte liefert einen speziellen Effekt durch Mischen von Kanälen. +TP_BWMIX_ALGO_TOOLTIP;Linear liefert ein lineares Ergebnis.\nSpezialeffekte liefert einen speziellen Effekt durch Mischen von Kanälen. TP_BWMIX_AUTOCH;Auto TP_BWMIX_CC_ENABLED;Komplemantärfarbe anpassen -TP_BWMIX_CC_TOOLTIP;Aktiviert die automatische Anpassung der\nKomplementärfarbe im ROYGCBPM-Modus +TP_BWMIX_CC_TOOLTIP;Aktiviert die automatische Anpassung der\nKomplementärfarbe im ROYGCBPM-Modus. TP_BWMIX_CHANNEL;Luminanzequalizer TP_BWMIX_CURVEEDITOR1;“Bevor“-Kurve TP_BWMIX_CURVEEDITOR2;“Danach“-Kurve @@ -1389,36 +1431,36 @@ TP_CHMIXER_GREEN;Grün-Kanal TP_CHMIXER_LABEL;RGB-Kanalmixer TP_CHMIXER_RED;Rot-Kanal TP_CHROMATABERR_LABEL;Chromatische Aberration -TP_COARSETRAF_TOOLTIP_HFLIP;Horizontal spiegeln -TP_COARSETRAF_TOOLTIP_ROTLEFT;Nach links drehen\nTaste: [ -TP_COARSETRAF_TOOLTIP_ROTRIGHT;Nach rechts drehen\nTaste: ] -TP_COARSETRAF_TOOLTIP_VFLIP;Vertikal spiegeln +TP_COARSETRAF_TOOLTIP_HFLIP;Horizontal spiegeln. +TP_COARSETRAF_TOOLTIP_ROTLEFT;Nach links drehen.\nTaste: [ +TP_COARSETRAF_TOOLTIP_ROTRIGHT;Nach rechts drehen.\nTaste: ] +TP_COARSETRAF_TOOLTIP_VFLIP;Vertikal spiegeln. TP_COLORAPP_ADAPTSCENE;Luminanz (cd/m²) -TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolute Luminanz der Szenenleuchstärket\n(normalerweise 2000cd/m²) +TP_COLORAPP_ADAPTSCENE_TOOLTIP;Absolute Luminanz der Szenenleuchstärket\n(normalerweise 2000cd/m²). TP_COLORAPP_ADAPTVIEWING;Luminanz (cd/m²) -TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolute Luminanz der Betrachtungsumgebung\n(normalerweise 16cd/m²) +TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Absolute Luminanz der Betrachtungsumgebung\n(normalerweise 16cd/m²). TP_COLORAPP_ADAP_AUTO_TOOLTIP;Wenn aktiviert (empfohlen), werden die optimalen\nWerte aus den Exif-Daten automatisch berechnet. TP_COLORAPP_ALGO;Algorithmus TP_COLORAPP_ALGO_ALL;Alle TP_COLORAPP_ALGO_JC;Helligkeit + Buntheit (JH) TP_COLORAPP_ALGO_JS;Helligkeit + Sättigung (JS) TP_COLORAPP_ALGO_QM;Helligkeit + Farbigkeit (QM) -TP_COLORAPP_ALGO_TOOLTIP;Auswahl zwischen Parameter-Teilmengen\nund allen Parametern +TP_COLORAPP_ALGO_TOOLTIP;Auswahl zwischen Parameter-Teilmengen\nund allen Parametern. 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_BRIGHT_TOOLTIP;Helligkeit in CIECAM02 berücksichtigt die Weißintensität und unterscheidet sich von L*a*b* und RGB-Helligkeit. 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 +TP_COLORAPP_CHROMA_M_TOOLTIP;Die Farbigkeit in CIECAM02 unterscheidet sich\nvon L*a*b*- und RGB-Farbigkeit. TP_COLORAPP_CHROMA_S;Sättigung (S) -TP_COLORAPP_CHROMA_S_TOOLTIP;Sättigung in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB Sättigung -TP_COLORAPP_CHROMA_TOOLTIP;Buntheit in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB-Buntheit +TP_COLORAPP_CHROMA_S_TOOLTIP;Sättigung in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB Sättigung. +TP_COLORAPP_CHROMA_TOOLTIP;Buntheit in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB-Buntheit. TP_COLORAPP_CIECAT_DEGREE;CAT02 Adaptation TP_COLORAPP_CONTRAST;Kontrast (J) TP_COLORAPP_CONTRAST_Q;Kontrast (Q) -TP_COLORAPP_CONTRAST_Q_TOOLTIP;Kontrast (Q) in CIECAM02 unterscheidet sich\nvom L*a*b*- und RGB-Kontrast -TP_COLORAPP_CONTRAST_TOOLTIP;Kontrast (J) in CIECAM02 unterscheidet sich\nvom L*a*b*- und RGB-Kontrast +TP_COLORAPP_CONTRAST_Q_TOOLTIP;Kontrast (Q) in CIECAM02 unterscheidet sich\nvom L*a*b*- und RGB-Kontrast. +TP_COLORAPP_CONTRAST_TOOLTIP;Kontrast (J) in CIECAM02 unterscheidet sich\nvom L*a*b*- und RGB-Kontrast. TP_COLORAPP_CURVEEDITOR1;Tonwertkurve 1 TP_COLORAPP_CURVEEDITOR1_TOOLTIP;Zeigt das Histogramm von L (L*a*b*) vor CIECAM02.\nWenn "CIECAM02-Ausgabe-Histogramm in Kurven anzeigen" aktiviert ist, wird das Histogramm von J oder Q nach CIECAM02-Anpassungen angezeigt.\n\nJ und Q werden nicht im Haupt-Histogramm angezeigt.\nFür die endgültige Ausgabe verwenden Sie das Haupt-Histogramm. TP_COLORAPP_CURVEEDITOR2;Tonwertkurve 2 @@ -1428,18 +1470,18 @@ TP_COLORAPP_CURVEEDITOR3_TOOLTIP;Korrigiert Buntheit, Sättigung oder Farbigkeit TP_COLORAPP_DATACIE;CIECAM02-Ausgabe-Histogramm in\nKurven anzeigen TP_COLORAPP_DATACIE_TOOLTIP;Wenn aktiviert, zeigen die Histogramme\nder CIECAM02-Kurven die angenäherten\nWerte/Bereiche für J oder Q und C, S oder M\nNACH den CIECAM02-Anpassungen an. Das\nbetrifft nicht das Haupt-Histogramm.\n\nWenn deaktiviert, zeigen die Histogramme\nder CIECAM02-Kurven die L*a*b*-Werte\nVOR den CIECAM02-Anpassungen an. TP_COLORAPP_DEGREE_AUTO_TOOLTIP;Wenn aktiviert (empfohlen), wird ein optimaler\nWert berechnet, der von CAT02 und CIECAM02\nverwendet wird.\nUm den Wert manuell zu setzen, muss die Option\ndeaktiviert sein (Werte über 64 sind empfohlen). -TP_COLORAPP_DEGREE_TOOLTIP;Umfang der “CIE Chromatic Adaptation Transform 2002“ +TP_COLORAPP_DEGREE_TOOLTIP;Umfang der “CIE Chromatic Adaptation Transform 2002“. TP_COLORAPP_FREE;Farbtemperatur + Tönung + CAT02 + [Ausgabe] TP_COLORAPP_GAMUT;Gamutkontrolle (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Gamutkontrolle im L*a*b*-Modus erlauben. TP_COLORAPP_HUE;Farbton (H) -TP_COLORAPP_HUE_TOOLTIP;Farbton (H) - Winkel zwischen 0° und 360° +TP_COLORAPP_HUE_TOOLTIP;Farbton (H) - Winkel zwischen 0° und 360°. TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 TP_COLORAPP_LABEL_CAM02;Bildanpassungen 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_LIGHT_TOOLTIP;Helligkeit in CIECAM02 unterscheidet sich\nvon L*a*b* und RGB Helligkeit. TP_COLORAPP_MODEL;Weißpunktmodell TP_COLORAPP_MODEL_TOOLTIP;Weißabgleich [RT] + [Ausgabe]:\nRT's Weißabgleich wird für die Szene verwendet,\nCIECAM02 auf D50 gesetzt und der Weißabgleich\ndes Ausgabegerätes kann unter:\nEinstellungen > Farb-Management\neingestellt werden.\n\nWeißabgleich [RT+CAT02] + [Ausgabe]:\nRT's Weißabgleich wird für CAT02 verwendet und\nder Weißabgleich des Ausgabegerätes kann unter\nEinstellungen > Farb-Management\neingestellt werden. TP_COLORAPP_NEUTRAL;Zurücksetzen @@ -1478,7 +1520,7 @@ TP_COLORTONING_BALANCE;Farbausgleich TP_COLORTONING_BY;o C/L TP_COLORTONING_CHROMAC;Deckkraft TP_COLORTONING_COLOR;Farbe -TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Buntheitsdeckkraft als Funktion der Luminanz oB = f(L) +TP_COLORTONING_CURVEEDITOR_CL_TOOLTIP;Buntheitsdeckkraft als Funktion der Luminanz oB = f(L). TP_COLORTONING_HIGHLIGHT;Lichter TP_COLORTONING_HUE;Farbton TP_COLORTONING_LAB;L*a*b*-Überlagerung @@ -1508,7 +1550,7 @@ TP_COLORTONING_STRENGTH;Intensität TP_COLORTONING_TWO2;Spezial-Farbe (2 Farben) TP_COLORTONING_TWOALL;Spezial-Farbe TP_COLORTONING_TWOBY;Spezial a* und b* -TP_COLORTONING_TWOCOLOR_TOOLTIP;Standardfarbe:\nLinearer Verlauf, a* = b*.\n\nSpezial-Farbe:\nLinearer Verlauf, a* = b*, aber nicht verbunden\n\nSpezial a* und b*:\nLinearer Verlauf, nicht verbunden, mit unterschiedlichen\nKurven für a* und b*. Bevorzugt für spezielle Effekte.\n\nSpezial-Farbe (2 Farben):\nBesser vorhersehbar +TP_COLORTONING_TWOCOLOR_TOOLTIP;Standardfarbe:\nLinearer Verlauf, a* = b*.\n\nSpezial-Farbe:\nLinearer Verlauf, a* = b*, aber nicht verbunden\n\nSpezial a* und b*:\nLinearer Verlauf, nicht verbunden, mit unterschiedlichen\nKurven für a* und b*. Bevorzugt für spezielle Effekte.\n\nSpezial-Farbe (2 Farben):\nBesser vorhersehbar. TP_COLORTONING_TWOSTD;Standardfarbe TP_CROP_FIXRATIO;Format TP_CROP_GTDIAGONALS;Diagonalregel @@ -1524,7 +1566,7 @@ 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_SELECTCROP;Ausschnitt wählen. TP_CROP_W;Breite TP_CROP_X;x TP_CROP_Y;y @@ -1568,10 +1610,10 @@ TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Für RAW-Bilder kann entweder die RGB-\noder L*a*b*-Methode verwendet werden.\n\nFür andere Bilder wird unabhängig von der\nAuswahl immer die L*a*b*-Methode verwendet. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Mit Gamma kann die Intensität der\nRauschreduzierung über den Farbbereich\nvariiert werden. Bei kleinen Werten sind\nnur dunkle Farbtöne betroffen, bei\ngrößeren Werten wird der Effekt auf\nhellere Töne ausgeweitet. -TP_DIRPYRDENOISE_MAIN_MODE;Qualität -TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Hoch -TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standard -TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Einstellung der Qualität der Rauschreduzierung.\nDie Einstellung “Hoch“ verbessert die Rausch-\nreduzierung auf Kosten der Verarbeitungszeit. +TP_DIRPYRDENOISE_MAIN_MODE;Modus +TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressiv +TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Konservativ +TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;"Konservativ" bewahrt Tieffrequenz-Chroma-Muster,\nwährend "Aggressiv" sie entfernt. TP_DIRPYRDENOISE_MEDIAN_METHOD;Methode TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Nur Farbe TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* @@ -1636,8 +1678,8 @@ TP_EXPOSURE_HISTMATCHING_TOOLTIP;Passt Regler und Kurven (mit Ausnahme der Belic TP_EXPOSURE_LABEL;Belichtung TP_EXPOSURE_SATURATION;Sättigung TP_EXPOSURE_TCMODE_FILMLIKE;Filmähnlich -TP_EXPOSURE_TCMODE_LABEL1;Tonwertkurve 1 Modus -TP_EXPOSURE_TCMODE_LABEL2;Tonwertkurve 2 Modus +TP_EXPOSURE_TCMODE_LABEL1;Tonwertkurve 1: Modus +TP_EXPOSURE_TCMODE_LABEL2;Tonwertkurve 2: Modus TP_EXPOSURE_TCMODE_LUMINANCE;Luminanz TP_EXPOSURE_TCMODE_PERCEPTUAL;Wahrnehmungsabhängig TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Sättigung und Überlagerung @@ -1670,12 +1712,12 @@ TP_GRADIENT_CENTER_X_TOOLTIP;Ankerpunkt der Rotationsachse X:\n-100 = linker Bil TP_GRADIENT_CENTER_Y;Rotationsachse Y TP_GRADIENT_CENTER_Y_TOOLTIP;Ankerpunkt der Rotationsachse Y:\n-100 = oberer Bildrand\n0 = Bildmitte\n+100 = unterer Bildrand TP_GRADIENT_DEGREE;Rotationswinkel -TP_GRADIENT_DEGREE_TOOLTIP;Rotationswinkel in Grad +TP_GRADIENT_DEGREE_TOOLTIP;Rotationswinkel in Grad. TP_GRADIENT_FEATHER;Bereich -TP_GRADIENT_FEATHER_TOOLTIP;Bereich des Verlaufs in Prozent der Bilddiagonalen +TP_GRADIENT_FEATHER_TOOLTIP;Bereich des Verlaufs in Prozent der Bilddiagonalen. TP_GRADIENT_LABEL;Grauverlaufsfilter TP_GRADIENT_STRENGTH;Intensität -TP_GRADIENT_STRENGTH_TOOLTIP;Filterstärke in Blendenstufen +TP_GRADIENT_STRENGTH_TOOLTIP;Filterstärke in Blendenstufen. TP_HLREC_BLEND;Überlagerung TP_HLREC_CIELAB;CIELab-Überlagerung TP_HLREC_COLOR;Farbübertragung @@ -1702,20 +1744,20 @@ TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpoliert TP_ICM_DCPILLUMINANT_TOOLTIP;DCP-Illumination auswählen. Vorgabe ist\nInterpoliert. Die Einstellung ist nur verfügbar\nwenn sie vom Eingangsfarbprofil unterstützt\nwird. TP_ICM_INPUTCAMERA;Kamera-Standard TP_ICM_INPUTCAMERAICC;Kameraspezifisches Profil -TP_ICM_INPUTCAMERAICC_TOOLTIP;Verwendet RawTherapees kameraspezifisches\nDCP/ICC-Eingangsfarbprofil, welches präziser als\neine einfache Matrix ist +TP_ICM_INPUTCAMERAICC_TOOLTIP;Verwendet RawTherapees kameraspezifisches\nDCP/ICC-Eingangsfarbprofil, welches präziser als\neine einfache Matrix ist. TP_ICM_INPUTCAMERA_TOOLTIP;Benutzt eine einfache Farbmatrix von DCRAW,\neine erweiterte RawTherapee-Version oder eine\naus einem DNG. TP_ICM_INPUTCUSTOM;DCP/ICC-Profil -TP_ICM_INPUTCUSTOM_TOOLTIP;Eigenes DCP/ICC-Farbprofil verwenden +TP_ICM_INPUTCUSTOM_TOOLTIP;Eigenes DCP/ICC-Farbprofil verwenden. TP_ICM_INPUTDLGLABEL;DCP/ICC-Profil wählen... TP_ICM_INPUTEMBEDDED;Eingebettetes Profil verwenden -TP_ICM_INPUTEMBEDDED_TOOLTIP;Farbprofil verwenden, das in Nicht-RAW-Bildern\neingebettet ist +TP_ICM_INPUTEMBEDDED_TOOLTIP;Farbprofil verwenden, das in Nicht-RAW-Bildern\neingebettet ist. TP_ICM_INPUTNONE;Kein Profil -TP_ICM_INPUTNONE_TOOLTIP;Kein Eingangsfarbprofil verwenden +TP_ICM_INPUTNONE_TOOLTIP;Kein Eingangsfarbprofil verwenden. TP_ICM_INPUTPROFILE;Eingangsfarbprofil TP_ICM_LABEL;Farbmanagement TP_ICM_NOICM;Kein ICM: sRGB-Ausgabe TP_ICM_OUTPUTPROFILE;Ausgabeprofil -TP_ICM_PROFILEINTENT;Rendering Intent +TP_ICM_PROFILEINTENT;Rendering-Intent TP_ICM_SAVEREFERENCE;Referenzbild speichern TP_ICM_SAVEREFERENCE_APPLYWB;Weißabgleich anwenden TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Um ICC-Profile zu erstellen, den Weißabgleich beim Speichern anwenden. Um DCP-Profile zu erstellen, den Weißabgleich NICHT beim Speichern anwenden. @@ -1723,6 +1765,12 @@ TP_ICM_SAVEREFERENCE_TOOLTIP;Speichert das lineare TIFF-Bild bevor das\nEingangs TP_ICM_TONECURVE;Tonwertkurve TP_ICM_TONECURVE_TOOLTIP;Eingebettete DCP-Tonwertkurve verwenden.\nDie Einstellung ist nur verfügbar wenn sie\nvom Eingangsfarbprofil unterstützt wird. TP_ICM_WORKINGPROFILE;Arbeitsfarbraum +TP_ICM_WORKING_TRC;Farbtonkennlinie: +TP_ICM_WORKING_TRC_CUSTOM;Benutzerdefiniert +TP_ICM_WORKING_TRC_GAMMA;Gamma +TP_ICM_WORKING_TRC_NONE;Keine +TP_ICM_WORKING_TRC_SLOPE;Steigung +TP_ICM_WORKING_TRC_TOOLTIP;Nur für die mitgelieferten\nProfile möglich. TP_IMPULSEDENOISE_LABEL;Impulsrauschreduzierung TP_IMPULSEDENOISE_THRESH;Schwelle TP_LABCURVE_AVOIDCOLORSHIFT;Farbverschiebungen vermeiden @@ -1779,24 +1827,24 @@ TP_METADATA_MODE;Kopiermodus TP_METADATA_STRIP;Keine TP_METADATA_TUNNEL;Unveränderte Daten TP_NEUTRAL;Zurücksetzen -TP_NEUTRAL_TIP;Belichtungseinstellungen auf\nneutrale Werte zurücksetzen +TP_NEUTRAL_TIP;Belichtungseinstellungen auf\nneutrale Werte zurücksetzen. TP_PCVIGNETTE_FEATHER;Bereich TP_PCVIGNETTE_FEATHER_TOOLTIP;Bereich:\n0 = nur Bildecken\n50 = halbe Strecke zum Mittelpunkt\n100 = bis zum Mittelpunkt TP_PCVIGNETTE_LABEL;Vignettierungsfilter TP_PCVIGNETTE_ROUNDNESS;Form TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Form:\n0 = Rechteck\n50 = Ellipse\n100 = Kreis TP_PCVIGNETTE_STRENGTH;Intensität -TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filterstärke in Blendenstufen (bezogen auf die Bildecken) +TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filterstärke in Blendenstufen (bezogen auf die Bildecken). TP_PERSPECTIVE_HORIZONTAL;Horizontal TP_PERSPECTIVE_LABEL;Perspektive TP_PERSPECTIVE_VERTICAL;Vertikal TP_PFCURVE_CURVEEDITOR_CH;Farbton TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Regelt die Intensität der Farbsaumentfernung\nnach Farben. Je höher die Kurve desto stärker\nist der Effekt. TP_PREPROCESS_DEADPIXFILT;Dead-Pixel-Filter -TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Entfernt tote Pixel +TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Entfernt tote Pixel. TP_PREPROCESS_GREENEQUIL;Grün-Ausgleich TP_PREPROCESS_HOTPIXFILT;Hot-Pixel-Filter -TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Entfernt Hot-Pixel +TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Entfernt Hot-Pixel. TP_PREPROCESS_LABEL;Vorverarbeitung TP_PREPROCESS_LINEDENOISE;Zeilenrauschfilter TP_PREPROCESS_LINEDENOISE_DIRECTION;Richtung @@ -1825,17 +1873,23 @@ TP_RAWEXPOS_LINEAR;Korrekturfaktor TP_RAWEXPOS_PRESER;Weißpunkt: Lichter schützen TP_RAWEXPOS_RGB;Rot, Grün, Blau TP_RAWEXPOS_TWOGREEN;Grün-Werte automatisch angleichen -TP_RAW_1PASSMEDIUM;1-Pass (Medium) -TP_RAW_3PASSBEST;3-Pass (Beste) +TP_RAW_1PASSMEDIUM;1-Pass (Markesteijn) +TP_RAW_2PASS;1-Pass + schnell +TP_RAW_3PASSBEST;3-Pass (Markesteijn) +TP_RAW_4PASS;3-Pass + schnell TP_RAW_AHD;AHD TP_RAW_AMAZE;AMaZE +TP_RAW_AMAZEVNG4;AMaZE + VNG4 +TP_RAW_BORDER;Bildrand TP_RAW_DCB;DCB TP_RAW_DCBENHANCE;DCB-Verbesserung TP_RAW_DCBITERATIONS;Anzahl der DCB-Iterationen +TP_RAW_DCBVNG4;DCB + VNG4 TP_RAW_DMETHOD;Methode TP_RAW_DMETHOD_PROGRESSBAR;%1 verarbeitet TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaikoptimierung -TP_RAW_DMETHOD_TOOLTIP;IGV und LMMSE 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\nPixel Shift ist für “Pentax Pixel Shift“-Dateien. Für "Nicht-Pixel-\nShift"-Dateien wird automatisch AMaZE verwendet. +TP_RAW_DMETHOD_TOOLTIP;IGV und LMMSE 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\nPixel-Shift ist für “Pentax Pixel-Shift“-Dateien. Für "Nicht-Pixel-\nShift"-Dateien wird automatisch AMaZE verwendet. +TP_RAW_DUALDEMOSAICCONTRAST;Kontrastschwelle TP_RAW_EAHD;EAHD TP_RAW_FALSECOLOR;Falschfarbenreduzierung TP_RAW_FAST;Schnell @@ -1844,16 +1898,17 @@ TP_RAW_HD_TOOLTIP;Je niedriger der Wert, umso empfindlicher reagiert\ndie “Hot TP_RAW_HPHD;HPHD TP_RAW_IGV;IGV TP_RAW_IMAGENUM;Unterbild -TP_RAW_IMAGENUM_TOOLTIP;Einige RAW-Formate enthalten mehrere Unterbilder (Pentax Pixel Shift,\nPentax 3-in-1 HDR, Canon Dual Pixel).\n\n> Auswahl des zu verwendenden Unterbildes (nicht bei Pixel Shift).\n\n> Legt das Unterbild für die Bewegungsbereiche bei Pixel Shift fest. +TP_RAW_IMAGENUM_TOOLTIP;Einige RAW-Formate enthalten mehrere Unterbilder (Pentax Pixel-Shift,\nPentax 3-in-1 HDR, Canon Dual Pixel).\n\n> Auswahl des zu verwendenden Unterbildes (nicht bei Pixel-Shift).\n\n> Legt das Unterbild für die Bewegungsbereiche bei Pixel-Shift fest. TP_RAW_LABEL;Farbinterpolation TP_RAW_LMMSE;LMMSE TP_RAW_LMMSEITERATIONS;LMMSE-Verbesserungsstufen TP_RAW_LMMSE_TOOLTIP;Fügt Gamma (Stufe 1), Median (Stufe 2-4)\nund Optimierung (Stufe 5-6) zur Minimierung\nvon Artefakten hinzu und verbessert das\nSignalrauschverhältnis. TP_RAW_MONO;Mono TP_RAW_NONE;Keine -TP_RAW_PIXELSHIFT;Pixel Shift +TP_RAW_PIXELSHIFT;Pixel-Shift TP_RAW_PIXELSHIFTADAPTIVE;Adaptive Erkennung TP_RAW_PIXELSHIFTBLUR;Unschärfebewegungsmaske +TP_RAW_PIXELSHIFTDMETHOD;Bewegungsmethode TP_RAW_PIXELSHIFTEPERISO;Empfindlichkeit TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;Der Standardwert 0 wird für die Basis-ISO empfohlen.\nHöhere Werte erhöhen die Empfindlichkeit der Bewegungserkennung.\nVerändern Sie den Wert in kleinen Schritten und beobachten Sie die\nBewegungsmaske. Erhöhen Sie die Empfindlichkeit für unterbelichtete\noder High-ISO-Bilder. TP_RAW_PIXELSHIFTEQUALBRIGHT;Frame-Helligkeit angleichen @@ -1863,7 +1918,7 @@ TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Gleicht die Helligkeit der Frames an den ak TP_RAW_PIXELSHIFTEXP0;Experimentell TP_RAW_PIXELSHIFTGREEN;Bewegung im Grün-Kanal erkennen TP_RAW_PIXELSHIFTHOLEFILL;Lücken in der Bewegungsmaske erkennen -TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Lücken in der Bewegungsmaske erkennen +TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Lücken in der Bewegungsmaske erkennen. TP_RAW_PIXELSHIFTLMMSE;LMMSE für Bewegungsbereiche verwenden TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;LMMSE anstatt AMaZE für bewegte Bildbereiche verwenden.\nSinnvoll bei High-ISO-Aufnahmen. TP_RAW_PIXELSHIFTMASKTHRESHOLD;3x3 new threshold @@ -1900,10 +1955,12 @@ TP_RAW_PIXELSHIFTSTDDEVFACTORBLUE;StdDev factor Blue TP_RAW_PIXELSHIFTSTDDEVFACTORGREEN;StdDev factor Green TP_RAW_PIXELSHIFTSTDDEVFACTORRED;StdDev factor Red TP_RAW_RCD;RCD +TP_RAW_RCDVNG4;RCD + VNG4 TP_RAW_SENSOR_BAYER_LABEL;Sensor mit Bayer-Matrix -TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Mit “3-Pass“ erzielt man die besten Ergebnisse\n(empfohlen bei Bildern mit niedrigen ISO-Werten).\n\nBei hohen ISO-Werten unterscheidet sich “1-Pass“\nkaum gegenüber “3-Pass“, ist aber deutlich schneller. +TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Mit “3-Pass“ erzielt man die besten Ergebnisse\n(empfohlen bei Bildern mit niedrigen ISO-Werten).\n\nBei hohen ISO-Werten unterscheidet sich “1-Pass“\nkaum gegenüber “3-Pass“, ist aber deutlich schneller.\n\n"+ schnell" erzeugt weniger Artefakte in kontrast-\narmen Bereichen. TP_RAW_SENSOR_XTRANS_LABEL;Sensor mit X-Trans-Matrix TP_RAW_VNG4;VNG4 +TP_RESIZE_ALLOW_UPSCALING;Hochskalieren zulassen TP_RESIZE_APPLIESTO;Anwenden auf: TP_RESIZE_CROPPEDAREA;Ausschnitt TP_RESIZE_FITBOX;Begrenzungsrahmen @@ -1969,7 +2026,7 @@ TP_RETINEX_MEDIAN;Medianfilter TP_RETINEX_METHOD;Methode TP_RETINEX_METHOD_TOOLTIP;Schatten wirkt sich auf dunkle Bereiche aus.\n\nSchatten / Lichter wirkt sich auf dunkle und helle Bereiche aus.\n\nLichter wirkt sich auf helle Bereiche aus.\n\nSpitzlichter wirkt sich auf sehr helle Bereiche aus und reduziert\nMagenta-Falschfarben. TP_RETINEX_MLABEL;Schleierred: Min = %1, Max = %2 -TP_RETINEX_MLABEL_TOOLTIP;Sollte nahe bei Min = 0 und Max = 32768 sein +TP_RETINEX_MLABEL_TOOLTIP;Sollte nahe bei Min = 0 und Max = 32768 sein. TP_RETINEX_NEIGHBOR;Radius TP_RETINEX_NEUTRAL;Zurücksetzen TP_RETINEX_NEUTRAL_TIP;Setzt alle Regler und Kurven\nauf ihre Standardwerte zurück. @@ -2007,7 +2064,7 @@ TP_RGBCURVES_LUMAMODE_TOOLTIP;Der Helligkeitsmodus ändert die Helligkeit TP_RGBCURVES_RED;R TP_ROTATE_DEGREE;Winkel TP_ROTATE_LABEL;Drehen -TP_ROTATE_SELECTLINE;Leitlinie wählen +TP_ROTATE_SELECTLINE;Leitlinie wählen. TP_SAVEDIALOG_OK_TIP;Taste: Strg + Enter TP_SHADOWSHLIGHTS_HIGHLIGHTS;Lichter TP_SHADOWSHLIGHTS_HLTONALW;Tonwertbreite Lichter @@ -2042,6 +2099,8 @@ TP_SHARPENMICRO_CONTRAST;Kontrastschwelle TP_SHARPENMICRO_LABEL;Mikrokontrast TP_SHARPENMICRO_MATRIX;3×3-Matrix statt 5×5-Matrix TP_SHARPENMICRO_UNIFORMITY;Gleichmäßigkeit +TP_SOFTLIGHT_LABEL;Weiches Licht +TP_SOFTLIGHT_STRENGTH;Intensität TP_TM_FATTAL_AMOUNT;Intensität TP_TM_FATTAL_ANCHOR;Helligkeitsverschiebung TP_TM_FATTAL_LABEL;Dynamikkompression @@ -2053,7 +2112,7 @@ TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Rot / Violett TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Rot TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Rot / Gelb TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Gelb -TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Farbton als Funktion des Farbtons H = f(H) +TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Farbton als Funktion des Farbtons H = f(H). TP_VIBRANCE_LABEL;Dynamik TP_VIBRANCE_PASTELS;Pastelltöne TP_VIBRANCE_PASTSATTOG;Pastell und gesättigte Töne koppeln @@ -2103,7 +2162,7 @@ TP_WAVELET_CHCU;Kurve TP_WAVELET_CHR;Farb-Kontrast-Verknüpfung TP_WAVELET_CHRO;Ebenengrenze Gesättigte/Pastellfarben TP_WAVELET_CHRO_TOOLTIP;Waveletebene (n) die, die Grenze zwischen gesättigten und Pastellfarben bestimmt.\n1-n: Gesättigte Farben\nn-9: Pastellfarben\n\nIst der Wert größer als die vorgegebene Anzahl an Waveletebenen werden diese ignoriert. -TP_WAVELET_CHR_TOOLTIP;Farbton als Funktion des Kontrasts und der Farb-Kontrast-Verknüpfung +TP_WAVELET_CHR_TOOLTIP;Farbton als Funktion des Kontrasts und der Farb-Kontrast-Verknüpfung. TP_WAVELET_CHSL;Regler TP_WAVELET_CHTYPE;Chrominanzmethode TP_WAVELET_COLORT;Deckkraft Rot / Grün @@ -2116,15 +2175,15 @@ TP_WAVELET_CONTR;Gamut TP_WAVELET_CONTRA;Kontrast TP_WAVELET_CONTRAST_MINUS;Kontrast - TP_WAVELET_CONTRAST_PLUS;Kontrast + -TP_WAVELET_CONTRA_TOOLTIP;Ändert den Kontrast des Restbildes +TP_WAVELET_CONTRA_TOOLTIP;Ändert den Kontrast des Restbildes. TP_WAVELET_CTYPE;Chrominanzkontrolle TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Lokaler Kontrast als Funktion des ursprünglichen Kontrasts.\n\nNiedrige Werte: Wenig lokaler Kontrast (Werte zwischen 10 - 20)\n50%: Durchschnittlicher lokaler Kontrast (Werte zwischen 100 - 300)\n66%: Standardabweichung des Lokalen Kontrasts (Werte zwischen 300 - 800)\n100%: Maximaler lokaler Kontrast (Werte zwischen 3000 - 8000)\n TP_WAVELET_CURVEEDITOR_CH;Kontrast = f(H) TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Kontrast als Funktion des Farbtons.\nAchten Sie darauf, dass Sie die Werte beim\nGamut-Farbton nicht überschreiben\n\nDie Kurve hat nur Auswirkung, wenn die Wavelet-\nKontrastregler nicht auf “0“ stehen. TP_WAVELET_CURVEEDITOR_CL;L -TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Wendet eine Kontrasthelligkeitskurve\nam Ende der Waveletverarbeitung an.\n +TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Wendet eine Kontrasthelligkeitskurve\nam Ende der Waveletverarbeitung an. TP_WAVELET_CURVEEDITOR_HH;HH -TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Farbton als Funktion des Farbtons H = f(H) +TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Farbton als Funktion des Farbtons H = f(H). TP_WAVELET_DALL;Alle Richtungen TP_WAVELET_DAUB;Kantenperformance TP_WAVELET_DAUB2;D2 - niedrig @@ -2199,7 +2258,7 @@ TP_WAVELET_NPTYPE_TOOLTIP;Dieser Algorithmus verwendet ein Pixel und acht\nseine TP_WAVELET_OPACITY;Deckkraft Blau / Gelb TP_WAVELET_OPACITYW;Kontrastausgleichskurve TP_WAVELET_OPACITYWL;Lokale Kontrastkurve -TP_WAVELET_OPACITYWL_TOOLTIP;Wendet eine lokale Kontrastkurve am\nEnde der Wavelet-Verarbeitung an.\n\nLinks stellt den niedrigsten, rechts den\nhöchsten Kontrast dar.\n +TP_WAVELET_OPACITYWL_TOOLTIP;Wendet eine lokale Kontrastkurve am\nEnde der Wavelet-Verarbeitung an.\n\nLinks stellt den niedrigsten, rechts den\nhöchsten Kontrast dar. TP_WAVELET_PASTEL;Pastellfarben TP_WAVELET_PROC;Verarbeitung TP_WAVELET_RE1;Schärfung verstärken @@ -2293,9 +2352,11 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion -!TP_RAW_4PASS;4-Pass -!TP_RAW_AMAZEVNG4;AMaZE+VNG4 -!TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold -!TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) +!PREFERENCES_TAB_PERFORMANCE;Performance +!SAVEDLG_FILEFORMAT_FLOAT; floating-point +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 9ba753ef5..9fdef1914 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -2,7 +2,7 @@ EXPORT_BYPASS_RAW_CCSTEPS;Bypass [raw] False Colour Suppression FILEBROWSER_COLORLABEL_TOOLTIP;Colour label.\n\nUse dropdown menu or shortcuts:\nShift-Ctrl-0 No Colour\nShift-Ctrl-1 Red\nShift-Ctrl-2 Yellow\nShift-Ctrl-3 Green\nShift-Ctrl-4 Blue\nShift-Ctrl-5 Purple FILEBROWSER_POPUPCOLORLABEL;Colour label FILEBROWSER_SHOWUNCOLORHINT;Show images without a colour label.\nShortcut: Alt-0 -FILECHOOSER_FILTER_COLPROF;Colour profiles +FILECHOOSER_FILTER_COLPROF;Colour profiles (*.icc) HISTORY_MSG_46;Colour denoising HISTORY_MSG_69;Working colour space HISTORY_MSG_70;Output colour space @@ -24,8 +24,9 @@ HISTORY_MSG_322;W - Gamut - Avoid colour shift HISTORY_MSG_385;W - Residual - Colour Balance HISTORY_MSG_392;W - Residual - Colour Balance HISTORY_MSG_419;Retinex - Colour space -HISTORY_MSG_CLAMPOOG;Out-of-gamut colour clipping +HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colours HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Colour correction +HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid colour shift MAIN_TAB_COLOR;Colour MAIN_TOOLTIP_BACKCOLOR0;Background colour of the preview: Theme-based\nShortcut: 9 MAIN_TOOLTIP_BACKCOLOR1;Background colour of the preview: Black\nShortcut: 9 @@ -99,6 +100,7 @@ TP_LABCURVE_AVOIDCOLORSHIFT;Avoid colour shift TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colours into gamut of the working colour space and apply Munsell correction. TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to centre,\n100 = to centre. TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by colour.\nHigher = more,\nLower = less. +TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid colour shift TP_RAW_FALSECOLOR;False colour suppression steps TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to the brightness of the selected frame.\nIf there are overexposed areas in the frames select the brightest frame to avoid magenta colour cast in overexposed areas or enable motion correction. TP_RGBCURVES_LUMAMODE_TOOLTIP;Luminosity mode allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image colour. @@ -343,16 +345,17 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !GENERAL_PORTRAIT;Portrait !GENERAL_RESET;Reset !GENERAL_SAVE;Save +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. !HISTOGRAM_TOOLTIP_G;Show/Hide green histogram. !HISTOGRAM_TOOLTIP_L;Show/Hide CIELab luminance histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_R;Show/Hide red histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_CHANGED;Changed @@ -815,7 +818,13 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -827,12 +836,58 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !HISTORY_SNAPSHOT;Snapshot !HISTORY_SNAPSHOTS;Snapshots +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORY;Category !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITY;City @@ -880,12 +935,13 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PREFERENCES;Preferences !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m @@ -942,6 +998,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: i !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l @@ -1009,6 +1066,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1016,6 +1074,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1030,19 +1089,14 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENING;Sharpening (USM/RL) !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PARTIALPASTE_VIGNETTING;Vignetting correction !PARTIALPASTE_WHITEBALANCE;White balance !PREFERENCES_ADD;Add !PREFERENCES_APPLNEXTSTARTUP;restart required -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1087,8 +1141,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_DARKFRAMETEMPLATES;templates !PREFERENCES_DATEFORMAT;Date format !PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y - year\n%m - month\n%d - day\n\nFor example, the ISO 8601 standard dictates the date format as follows:\n%y-%m-%d -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_DIRHOME;Home directory @@ -1098,7 +1150,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_DIRSOFTWARE;Installation directory !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) @@ -1141,26 +1192,19 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_MULTITAB;Multiple Editor Tabs Mode !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OUTDIR;Output Directory !PREFERENCES_OUTDIRFOLDER;Save to folder !PREFERENCES_OUTDIRFOLDERHINT;Save images to the selected folder. @@ -1176,6 +1220,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list. !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1195,8 +1241,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_PSPATH;Adobe Photoshop installation directory !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTLANG;Select language @@ -1210,40 +1254,30 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds !PREFERENCES_STARTUPIMDIR;Image Directory at Startup -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_BROWSER;File Browser !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_GENERAL;General !PREFERENCES_TAB_IMPROC;Image Processing -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1293,6 +1327,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists !SAVEDLG_FILEFORMAT;File format +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_JPEGQUAL;JPEG quality !SAVEDLG_PUTTOQUEUE;Put into processing queue @@ -1623,10 +1658,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_FLATFIELD_BT_VERTICAL;Vertical !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER_X_TOOLTIP;Shift gradient to the left (negative values) or right (positive values). !TP_GRADIENT_CENTER_Y_TOOLTIP;Shift gradient up (negative values) or down (positive values). @@ -1677,6 +1708,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. !TP_ICM_WORKINGPROFILE;Working Profile +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_BRIGHTNESS;Lightness @@ -1760,6 +1797,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1775,15 +1813,18 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD;Method !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... @@ -1833,10 +1874,12 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1866,7 +1909,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1974,6 +2017,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2062,7 +2107,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity @@ -2195,7 +2240,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_WBALANCE_SOLUX41;Solux 4100K !TP_WBALANCE_SOLUX47;Solux 4700K (vendor) !TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) -!TP_WBALANCE_SPOTWB;Spot WB +!TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !TP_WBALANCE_TEMPERATURE;Temperature diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 88254c317..944457486 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -206,7 +206,7 @@ !FILEBROWSER_ZOOMINHINT;Increase thumbnail size.\n\nShortcuts:\n+ - Multiple Editor Tabs Mode,\nAlt-+ - Single Editor Tab Mode. !FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size.\n\nShortcuts:\n- - Multiple Editor Tabs Mode,\nAlt-- - Single Editor Tab Mode. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -234,16 +234,17 @@ !GENERAL_PORTRAIT;Portrait !GENERAL_RESET;Reset !GENERAL_SAVE;Save +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. !HISTOGRAM_TOOLTIP_G;Show/Hide green histogram. !HISTOGRAM_TOOLTIP_L;Show/Hide CIELab luminance histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_R;Show/Hide red histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_CHANGED;Changed @@ -726,10 +727,16 @@ !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -741,12 +748,59 @@ !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !HISTORY_SNAPSHOT;Snapshot !HISTORY_SNAPSHOTS;Snapshots +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORY;Category !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITY;City @@ -794,12 +848,13 @@ !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PREFERENCES;Preferences !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m @@ -861,6 +916,7 @@ !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: i !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l @@ -931,6 +987,7 @@ !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -938,6 +995,7 @@ !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -953,20 +1011,15 @@ !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENING;Sharpening (USM/RL) !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PARTIALPASTE_VIGNETTING;Vignetting correction !PARTIALPASTE_WHITEBALANCE;White balance !PREFERENCES_ADD;Add !PREFERENCES_APPLNEXTSTARTUP;restart required -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1013,8 +1066,6 @@ !PREFERENCES_DARKFRAMETEMPLATES;templates !PREFERENCES_DATEFORMAT;Date format !PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y - year\n%m - month\n%d - day\n\nFor example, the ISO 8601 standard dictates the date format as follows:\n%y-%m-%d -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_DIRHOME;Home directory @@ -1024,7 +1075,6 @@ !PREFERENCES_DIRSOFTWARE;Installation directory !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_EXTERNALEDITOR;External Editor !PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) @@ -1070,12 +1120,7 @@ !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1083,7 +1128,6 @@ !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1092,7 +1136,6 @@ !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OUTDIR;Output Directory !PREFERENCES_OUTDIRFOLDER;Save to folder !PREFERENCES_OUTDIRFOLDERHINT;Save images to the selected folder. @@ -1108,6 +1151,8 @@ !PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list. !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1128,8 +1173,6 @@ !PREFERENCES_PSPATH;Adobe Photoshop installation directory !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1144,41 +1187,31 @@ !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar !PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds !PREFERENCES_STARTUPIMDIR;Image Directory at Startup -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_BROWSER;File Browser !PREFERENCES_TAB_COLORMGR;Color Management !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_TAB_GENERAL;General !PREFERENCES_TAB_IMPROC;Image Processing -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1228,6 +1261,7 @@ !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists !SAVEDLG_FILEFORMAT;File format +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_JPEGQUAL;JPEG quality !SAVEDLG_PUTTOQUEUE;Put into processing queue @@ -1596,10 +1630,6 @@ !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1660,6 +1690,12 @@ !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. !TP_ICM_WORKINGPROFILE;Working Profile +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1747,6 +1783,8 @@ !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1762,15 +1800,18 @@ !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD;Method !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... @@ -1822,10 +1863,12 @@ !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1855,7 +1898,7 @@ !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1964,6 +2007,8 @@ !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2060,7 +2105,7 @@ !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity @@ -2195,7 +2240,7 @@ !TP_WBALANCE_SOLUX41;Solux 4100K !TP_WBALANCE_SOLUX47;Solux 4700K (vendor) !TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) -!TP_WBALANCE_SPOTWB;Spot WB +!TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". !TP_WBALANCE_TEMPERATURE;Temperature diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 5f4866261..8560fd93c 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -821,8 +821,6 @@ PREFERENCES_PROFILESAVECACHE;Guardar perfiles de procesamiento en memoria interm PREFERENCES_PROFILESAVEINPUT;Guardar perfiles de procesamiento junto con imagen de entrada PREFERENCES_PROPERTY;Propiedad PREFERENCES_PSPATH;Carpeta de instalación de Adobe Photoshop -PREFERENCES_RGBDTL_LABEL;Número máximo de hilos para reducción de ruido -PREFERENCES_RGBDTL_TOOLTIP;La Reducción de Ruido requiere como base 128MB de RAM para una imagen de 10MPix o 512MB para una imagen de 40MPix; más 128MB RAM por hilo de proceso.\nMientras más hilos corren en paralelo, más rápido es el procesamiento. Coloque “0” para que automáticamente se use tantos hilos como sea posible según la capacidad de su equipo. PREFERENCES_SELECTFONT;Seleccionar fuente PREFERENCES_SELECTLANG;Seleccionar idioma PREFERENCES_SELECTTHEME;Seleccionar tema @@ -842,7 +840,6 @@ PREFERENCES_TAB_BROWSER;Explorador de archivos PREFERENCES_TAB_COLORMGR;Gestión del color PREFERENCES_TAB_GENERAL;General PREFERENCES_TAB_IMPROC;Procesamiento de imágenes -PREFERENCES_TAB_PERFORMANCE;Rendimiento PREFERENCES_TAB_SOUND;Sonidos PREFERENCES_TP_LABEL;Panel de herramientas: PREFERENCES_TP_USEICONORTEXT;Usar iconos de pestaña en lugar de texto @@ -1507,7 +1504,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1517,8 +1514,10 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -1706,10 +1705,16 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1721,8 +1726,55 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1752,11 +1804,13 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1775,19 +1829,16 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PARTIALPASTE_GRADIENT;Graduated filter !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation @@ -1803,11 +1854,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right !PREFERENCES_D50_OLD;5000K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1819,22 +1867,17 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1853,23 +1896,14 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1882,6 +1916,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. @@ -1956,6 +1991,12 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LABCURVE_CURVEEDITOR_CC;CC !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level @@ -1976,14 +2017,19 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2027,7 +2073,9 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -2043,7 +2091,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2110,6 +2158,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2182,7 +2232,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nAtajo: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Euskara b/rtdata/languages/Euskara index 59a73eee7..e3559ff98 100644 --- a/rtdata/languages/Euskara +++ b/rtdata/languages/Euskara @@ -558,7 +558,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -574,13 +574,14 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -977,10 +978,16 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -992,9 +999,56 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1025,11 +1079,12 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1066,6 +1121,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1121,6 +1177,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1128,6 +1185,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1139,17 +1197,12 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1187,13 +1240,10 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1226,12 +1276,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1239,7 +1284,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1248,13 +1292,14 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1268,8 +1313,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1279,36 +1322,26 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1336,6 +1369,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1661,10 +1695,6 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1711,6 +1741,12 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1798,6 +1834,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1813,15 +1851,18 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1871,10 +1912,12 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1898,7 +1941,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1982,6 +2025,8 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2075,7 +2120,7 @@ TP_WBALANCE_TEMPERATURE;Tenperatura !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 8ab919cc2..a20f9251d 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -201,7 +201,7 @@ FILEBROWSER_UNRANK_TOOLTIP;Effacer le rang\nRaccourci: Shift-0 FILEBROWSER_ZOOMINHINT;Augmenter la taille des vignettes.\nRaccourci: +\n\nRaccourcis dans le mode Éditeur Unique: Alt-+ FILEBROWSER_ZOOMOUTHINT;Diminuer la taille des vignettes.\nRaccourci: -\n\nRaccourcis dans le mode Éditeur Unique: Alt-- FILECHOOSER_FILTER_ANY;Tous les fichiers -FILECHOOSER_FILTER_COLPROF;Profils couleur +FILECHOOSER_FILTER_COLPROF;Profils couleur (*.icc) FILECHOOSER_FILTER_CURVE;Fichiers de courbe FILECHOOSER_FILTER_LCP;Profils de correction d'objectif FILECHOOSER_FILTER_PP;Fichiers de traitement @@ -228,6 +228,7 @@ GENERAL_OK;OK GENERAL_OPEN;Ouvrir GENERAL_PORTRAIT;Portrait GENERAL_SAVE;Enregistrer +GENERAL_SAVE_AS;Enregistrer sous... GENERAL_SLIDER;Curseur GENERAL_UNCHANGED;(Inchangé) GENERAL_WARNING;Attention @@ -725,6 +726,46 @@ HISTORY_NEWSNAPSHOT;Ajouter HISTORY_NEWSNAPSHOT_TOOLTIP;Raccourci: Alt-s HISTORY_SNAPSHOT;Capture HISTORY_SNAPSHOTS;Captures +ICCPROFCREATOR_ADD_PARAM_IN_DESC;Ajoute le paramètre Gamma et Pente (Slope) à la fin de la description +ICCPROFCREATOR_COPYRIGHT;Copyright: +ICCPROFCREATOR_CUSTOM;Personnalisé +ICCPROFCREATOR_DESCRIPTION;Description: +ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Laisser vide pour que mettre la description par défaut +ICCPROFCREATOR_GAMMA;Gamma +ICCPROFCREATOR_ICCVERSION;Version du profil généré: +ICCPROFCREATOR_ILL;Illuminant: +ICCPROFCREATOR_ILL_41;D41 +ICCPROFCREATOR_ILL_50;D50 +ICCPROFCREATOR_ILL_55;D55 +ICCPROFCREATOR_ILL_60;D60 +ICCPROFCREATOR_ILL_65;D65 +ICCPROFCREATOR_ILL_80;D80 +ICCPROFCREATOR_ILL_DEF;Valeur par défaut +ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_ILL_TOOLTIP;Vous ne pouvez régler l'Illuminant que pour les profils ICC v4 +ICCPROFCREATOR_PRIMARIES;Primaires: +ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +ICCPROFCREATOR_PRIM_BEST;BestRGB +ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BLUX;Bleu X +ICCPROFCREATOR_PRIM_BLUY;Bleu Y +ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_GREX;Vert X +ICCPROFCREATOR_PRIM_GREY;Vert Y +ICCPROFCREATOR_PRIM_PROPH;Prophoto +ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_REDX;Rouge X +ICCPROFCREATOR_PRIM_REDY;Rouge Y +ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PRIM_TOOLTIP;Vous ne pouvez régler des Primaires personnalisées que pour les profils ICC v4 +ICCPROFCREATOR_PRIM_WIDEG;Widegamut +ICCPROFCREATOR_PROF_V2;ICC v2 +ICCPROFCREATOR_PROF_V4;ICC v4 +ICCPROFCREATOR_SAVEDIALOG_TITLE;Enregistrer le profil ICC sous... +ICCPROFCREATOR_SLOPE;Pente +ICCPROFCREATOR_TRC_PRESET;Courbe de réponse tonale: IPTCPANEL_CATEGORY;Catégorie IPTCPANEL_CATEGORYHINT;Identifie le sujet de l'image selon l'opinion du fournisseur. IPTCPANEL_CITY;Ville @@ -772,6 +813,7 @@ LENSPROFILE_CORRECTION_LCPFILE;Fichier LCP LENSPROFILE_CORRECTION_MANUAL;Paramètres de correction manuel LENSPROFILE_LENS_WARNING;Attention: la taille du capteur utilisé pour le profilage de l'objectif est plus grand que celui de l'appareil sélectionné, le résultat peut être faux. MAIN_BUTTON_FULLSCREEN;Plein écran +MAIN_BUTTON_ICCPROFCREATOR;Créateur de Profil ICC MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigue à l'image Suivante relativement à l'image ouverte dans l'Éditeur\nRaccourci: Shift-F4\n\nPour naviguer à l'image Suivante relativement à la vignette sélectionnée dans le Navigateur de fichiers\nRaccourci: F4 MAIN_BUTTON_NAVPREV_TOOLTIP;Navigue à l'image Précédente relativement à l'image ouverte dans l'Éditeur\nRaccourci: Shift-F3\n\nPour naviguer à l'image Précédente relativement à la vignette sélectionnée dans le Navigateur de fichiers\nRaccourci: F3 MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronise le Navigateur de fichiers avec l'Éditeur pour révéler la vignette de l'image actuellement ouverte, et efface les filtres dans le Navigateur de fichiers\nRaccourci: x\n\nComme ci-dessus, mais sans effacer les filtres dans le Navigateur de fichiers\nRaccourci: y\n(Notez que la vignette ne sera pas visible si elle a été filtrée). @@ -860,7 +902,7 @@ NAVIGATOR_S;S: NAVIGATOR_V;V: NAVIGATOR_XY_FULL;Largeur = %1, Hauteur = %2 NAVIGATOR_XY_NA;x = n/d, y = n/d -OPTIONS_BUNDLED_MISSING;Le profile fourni "%1" n'a pas été trouvé!\n\nVotre installation peut être endomagé.\n\nLes valeurs internes par défaut seront utilisées à la place. +OPTIONS_BUNDLED_MISSING;Le profil fourni "%1" n'a pas été trouvé!\n\nVotre installation peut être endomagé.\n\nLes valeurs internes par défaut seront utilisées à la place. OPTIONS_DEFIMG_MISSING;Le profil par défaut pour les images standards n'a pas été trouvé ou n'a pas été réglé.\n\nVérifiez le dossier de vos profils, il peut être manquant ou endommagé\n\n"%1" sera utilisé à la place. OPTIONS_DEFRAW_MISSING;Le profil par défaut pour les images Raw n'a pas été trouvé ou n'a pas été réglé.\n\nVérifiez le dossier de vos profils, il peut être manquant ou endommagé\n\n"%1" sera utilisé à la place. PARTIALPASTE_ADVANCEDGROUP;Réglages Avancés @@ -939,14 +981,8 @@ PARTIALPASTE_WAVELETGROUP;Niveaux d'ondelette PARTIALPASTE_WHITEBALANCE;Balance des blancs PREFERENCES_ADD;Ajoute PREFERENCES_APPLNEXTSTARTUP;appliqué au prochain lancement -PREFERENCES_AUTLISLOW;Bas -PREFERENCES_AUTLISMAX;Max - Moyenne de toutes les tuiles -PREFERENCES_AUTLISSTD;Haut -PREFERENCES_AUTLISVLOW;Aucun -PREFERENCES_AUTLOW;Bas PREFERENCES_AUTOMONPROFILE;Utiliser automatiquement le profil de l'écran principal PREFERENCES_AUTOSAVE_TP_OPEN;Sauver automatiquement l'état ouvert/fermé\n des outils avant de fermer -PREFERENCES_AUTSTD;Standard PREFERENCES_BATCH_PROCESSING;Traitement par lot PREFERENCES_BEHADDALL;Tout à 'Ajoute' PREFERENCES_BEHADDALLHINT;Règle tous les paramètres sur le mode Ajoute.\nLa modification des paramètres dans le panneau d'édition en par lot sera des deltas par-rapport aux valeurs existantes @@ -997,8 +1033,6 @@ PREFERENCES_DARKFRAMESHOTS;image(s) PREFERENCES_DARKFRAMETEMPLATES;modèle(s) PREFERENCES_DATEFORMAT;Format PREFERENCES_DATEFORMATHINT;Vous pouvez utiliser les paramètres de chaînes formatées suivants:\n%y : année\n%m : mois\n%d : jour\n\nPar exemple, le format de date française est:\n%d/%m/%y -PREFERENCES_DAUB_LABEL;Utiliser les ondelettes de Daubechies D6 au lieu de D4 -PREFERENCES_DAUB_TOOLTIP;Les outils de Réduction de Bruit et de Niveaux d'Ondelettes utilisent une ondelette de Debauchie mère. Si vous choisissez D6 au lieu de D4 vous augmentez le nombre de coéf. orthogonaux de Daubechies et augmentez probablement la qualité des niveaux de taille moyenne. Il n'y a pas de différence de consommation mémoire ou de temps de traitement entre les deux. PREFERENCES_DIRDARKFRAMES;Dossier des images de Trame Noire PREFERENCES_DIRECTORIES;Dossiers PREFERENCES_DIRHOME;Racine de mes documents personnels @@ -1008,7 +1042,6 @@ PREFERENCES_DIRSELECTDLG;Choix du dossier Image au lancement... PREFERENCES_DIRSOFTWARE;Dossier d'installation PREFERENCES_EDITORCMDLINE;Ligne de commande personnelle PREFERENCES_EDITORLAYOUT;Disposition de l'éditeur -PREFERENCES_EXPAUT;Expert PREFERENCES_EXTERNALEDITOR;Éditeur externe PREFERENCES_FBROWSEROPTS;Options du navigateur de fichiers et de vignettes PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barre de menu de l'explorateur de fichiers uni-ligne\n(à désactiver pour les écrans de faible résolution) @@ -1054,12 +1087,7 @@ PREFERENCES_INTENT_SATURATION;Saturation PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Afficher vignette incluse dans fichier RAW si non édité PREFERENCES_LANG;Langage PREFERENCES_LANGAUTODETECT;Utiliser les paramètres linguistiques de l'OS -PREFERENCES_LEVAUTDN;Niveau de débruitage -PREFERENCES_LEVDN;Taille de la cellule -PREFERENCES_LISS;Adoucissement auto multi-zone -PREFERENCES_MAX;Maxi (Tuile) PREFERENCES_MAXRECENTFOLDERS;Nombre maximum de dossiers récents -PREFERENCES_MED;Moyen (Tuile/2) PREFERENCES_MENUGROUPEXTPROGS;Groupe "Ouvrir avec" PREFERENCES_MENUGROUPFILEOPERATIONS;Opérations sur les fichiers PREFERENCES_MENUGROUPLABEL;Label @@ -1067,7 +1095,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Opérations sur les profils PREFERENCES_MENUGROUPRANK;Classement PREFERENCES_MENUOPTIONS;Options du menu PREFERENCES_METADATA;Metadonnées -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;Intention de rendu par défaut PREFERENCES_MONITOR;Moniteur PREFERENCES_MONPROFILE;Profil couleur par défaut @@ -1076,7 +1103,6 @@ PREFERENCES_MULTITAB;Éditeurs multiple PREFERENCES_MULTITABDUALMON;Éditeurs multiple, si possible sur un second moniteur PREFERENCES_NAVGUIDEBRUSH;Couleur du cadre dans le Navigateur PREFERENCES_NAVIGATIONFRAME;Navigation -PREFERENCES_NOISE;Réduction de Bruit PREFERENCES_OUTDIR;Dossier de sortie PREFERENCES_OUTDIRFOLDER;Dossier de sauvegarde PREFERENCES_OUTDIRFOLDERHINT;Place les images traitées dans le dossier selectionné @@ -1112,8 +1138,6 @@ PREFERENCES_PRTPROFILE;Profil couleur PREFERENCES_PSPATH;Dossier d'installation d'Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Se souvenir de niveau de zoom et de la position de l'image PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Retient le niveau de zoom et la position de l'image courante lors de l'ouverture d'une nouvelle image.\n\nCette option ne fonctionne que dans le mode "Éditeur unique" et quand "Méthode de dématriçage utilisé pour l'aperçu à un zoom <100%" is set to "Idem PP3". -PREFERENCES_RGBDTL_LABEL;Nombre maximum d'unités de calcul pour la Réduction du bruit -PREFERENCES_RGBDTL_TOOLTIP;La réduction du bruit nécessite un minimum d'à peu près 128Mo de RAM pour une image de 10MPix ou 512Mo pour une image de 40MPix, ainsi que 128Mo de RAM supplémentaire par unité de calcul. Plus il y aura d'unités de calcul travaillant en parallèle, plus ce sera rapide. Laissez la valeur à "0" pour utiliser automatiquement autant d'unités de calcul que possible. PREFERENCES_SAVE_TP_OPEN_NOW;Sauver l'état ouvert/fermé maintenant PREFERENCES_SELECTFONT;Police principale PREFERENCES_SELECTFONT_COLPICKER;Police des pipette à couleur @@ -1128,37 +1152,26 @@ PREFERENCES_SHOWDATETIME;Voir la date et l'heure PREFERENCES_SHOWEXPOSURECOMPENSATION;Ajoute la compensation d'exposition PREFERENCES_SHOWFILMSTRIPTOOLBAR;Montrer la barre d'outil de la pellicule d'image ("filmstrip") PREFERENCES_SHTHRESHOLD;Seuil pour le dépassement de domaine inférieur -PREFERENCES_SIMPLAUT;Mode de l'outil PREFERENCES_SINGLETAB;Éditeur unique PREFERENCES_SINGLETABVERTAB;Éditeur unique, onglets verticaux -PREFERENCES_SMA;Petit (250x287) PREFERENCES_SND_BATCHQUEUEDONE;File de traitement terminée PREFERENCES_SND_HELP;Saisissez un chemin de fichier ou rien du tout (pour ne pas avoir de son). Pour Windows,\nsaisissez "SystemDefault", "SystemAsterisk" etc. pour utiliser les sons systèmes. PREFERENCES_SND_LNGEDITPROCDONE;Traitement de la zone de prévisualisation terminé PREFERENCES_SND_THRESHOLDSECS;après (s) PREFERENCES_STARTUPIMDIR;Répertoire Image au démarrage -PREFERENCES_STDAUT;Standard PREFERENCES_TAB_BROWSER;Navigateur de fichiers PREFERENCES_TAB_COLORMGR;Gestion des couleurs PREFERENCES_TAB_DYNAMICPROFILE;Règles de Profil Dynamique PREFERENCES_TAB_GENERAL;Général PREFERENCES_TAB_IMPROC;Traitement de l'image -PREFERENCES_TAB_PERFORMANCE;Performance PREFERENCES_TAB_SOUND;Sons PREFERENCES_THEME;Thème -PREFERENCES_TIMAX;Haut -PREFERENCES_TINB;Nombre de tuiles -PREFERENCES_TISTD;Standard PREFERENCES_TP_LABEL;Panneau des outils: PREFERENCES_TP_USEICONORTEXT;Utiliser des icônes au lieu de textes PREFERENCES_TP_VSCROLLBAR;Cacher la barre de défilement verticale PREFERENCES_TUNNELMETADATA;Copier les données Exif/IPTC/XMP tel quel dans le fichier de sortie PREFERENCES_USEBUNDLEDPROFILES;Utiliser les profils fournis PREFERENCES_VIEW;Point blanc du périphérique sortie (moniteur, TV, projecteur,...) -PREFERENCES_WAVLEV;Augmenter le nombre de niveau d'ondelette en qualité "haute" -PREFERENCES_WLONE;Un niveau -PREFERENCES_WLTWO;Deux niveaux -PREFERENCES_WLZER;Non PREFERENCES_WORKFLOW;Habitudes de travail PROFILEPANEL_COPYPPASTE;Paramètres à copier PROFILEPANEL_GLOBALPROFILES;Profils fournis @@ -1208,6 +1221,7 @@ SAMPLEFORMAT_32;24 bits à virgule flottante SAMPLEFORMAT_64;32 bits à virgule flottante SAVEDLG_AUTOSUFFIX;Ajouter automatiquement un suffixe si le fichier existe déjà SAVEDLG_FILEFORMAT;Format de fichier +SAVEDLG_FILEFORMAT_FLOAT; virgule flottante SAVEDLG_FORCEFORMATOPTS;Forcer les options d'enregistrement SAVEDLG_JPEGQUAL;Qualité JPEG SAVEDLG_PNGCOMPR;Compression PNG @@ -1576,10 +1590,10 @@ TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_CLIPCONTROL;Control de l'écrêtage TP_FLATFIELD_CLIPCONTROL_TOOLTIP;"Contrôle de l'écrêtage" évite les hautes lumière brûlées dûs à l'application du champ uniforme. S'il y a déjà des hautes lumières brûlées avant l'application du champ uniforme, "Contrôle de l'écrêtage" peut conduire à une dérive couleur. TP_FLATFIELD_LABEL;Champ Uniforme -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Manuel -TP_GAMMA_OUTPUT;Gamma de sortie -TP_GAMMA_SLOP;Pente (linéaire) +TP_GAMMA_CURV;Gamma: +TP_GAMMA_CUSTOM;Manuel +TP_GAMMA_OUTPUT_TRC_PRESET;Courbe de réponse tonale (TRC): +TP_GAMMA_SLOP;Pente (linéaire): TP_GENERAL_11SCALE_TOOLTIP;Les effets de cet outil ne sont visible ou fiable qu'avec un aperçu à l'échelle 1:1. TP_GRADIENT_CENTER;Centre TP_GRADIENT_CENTER_X;Centre X @@ -1640,6 +1654,12 @@ TP_ICM_SAVEREFERENCE_TOOLTIP;Sauvegarde une image TIFF linéaire avant que le pr TP_ICM_TONECURVE;Utiliser la courbe tonale du profil DCP TP_ICM_TONECURVE_TOOLTIP;Utilise la courbe tonale DCP incluse. Ce paramètre ne sera actif que si le profil DCP contient une courbe tonale TP_ICM_WORKINGPROFILE;Profil de Travail +TP_ICM_WORKING_TRC;Courbe de réponse tonale: +TP_ICM_WORKING_TRC_CUSTOM;Personnalisé +TP_ICM_WORKING_TRC_GAMMA;Gamma +TP_ICM_WORKING_TRC_NONE;Aucune +TP_ICM_WORKING_TRC_SLOPE;Pente +TP_ICM_WORKING_TRC_TOOLTIP;Seulement pour les profils internes TP_IMPULSEDENOISE_LABEL;Réduction du bruit d'impulsion TP_IMPULSEDENOISE_THRESH;Seuil TP_LABCURVE_AVOIDCOLORSHIFT;Éviter les dérives de teinte @@ -2197,6 +2217,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. !EXIFFILTER_IMAGETYPE;Image type !GENERAL_RESET;Reset +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_235;B&W - CM - Auto !HISTORY_MSG_237;B&W - CM !HISTORY_MSG_273;CT - Color Balance SMH @@ -2204,16 +2225,37 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !HISTORY_MSG_488;Dynamic Range Compression !HISTORY_MSG_489;DRC - Threshold !HISTORY_MSG_490;DRC - Amount -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold !HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!PARTIALPASTE_RAW_BORDER;Raw border +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -2228,15 +2270,24 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. -!TP_RAW_4PASS;4-Pass +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion !TP_RAW_PIXELSHIFTEPERISO;Sensitivity !TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nHigher values increase sensitivity of motion detection.\nChange in small steps and watch the motion mask while changing.\nIncrease sensitivity for underexposed or high ISO images. !TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. +!TP_RAW_RCDVNG4;RCD+VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression diff --git a/rtdata/languages/Greek b/rtdata/languages/Greek index 8d9cd5815..9c7c024f9 100644 --- a/rtdata/languages/Greek +++ b/rtdata/languages/Greek @@ -557,7 +557,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -573,13 +573,14 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -976,10 +977,16 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -991,9 +998,56 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1024,11 +1078,12 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1065,6 +1120,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1120,6 +1176,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1127,6 +1184,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1138,17 +1196,12 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1186,13 +1239,10 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1225,12 +1275,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1238,7 +1283,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1247,13 +1291,14 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1267,8 +1312,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1278,36 +1321,26 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1335,6 +1368,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1660,10 +1694,6 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1710,6 +1740,12 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1797,6 +1833,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1812,15 +1850,18 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1870,10 +1911,12 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1897,7 +1940,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1981,6 +2024,8 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2074,7 +2119,7 @@ TP_WBALANCE_TEMPERATURE;Θερμοκρασία !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Hebrew b/rtdata/languages/Hebrew index 223d2e45c..85bc43c05 100644 --- a/rtdata/languages/Hebrew +++ b/rtdata/languages/Hebrew @@ -558,7 +558,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -574,13 +574,14 @@ TP_WBALANCE_TEMPERATURE;מידת חום !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -977,10 +978,16 @@ TP_WBALANCE_TEMPERATURE;מידת חום !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -992,9 +999,56 @@ TP_WBALANCE_TEMPERATURE;מידת חום !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1025,11 +1079,12 @@ TP_WBALANCE_TEMPERATURE;מידת חום !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1066,6 +1121,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1121,6 +1177,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1128,6 +1185,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1139,17 +1197,12 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1187,13 +1240,10 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1226,12 +1276,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1239,7 +1284,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1248,13 +1292,14 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1268,8 +1313,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1279,36 +1322,26 @@ TP_WBALANCE_TEMPERATURE;מידת חום !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1336,6 +1369,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1661,10 +1695,6 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1711,6 +1741,12 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1798,6 +1834,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1813,15 +1851,18 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1871,10 +1912,12 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1898,7 +1941,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1982,6 +2025,8 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2075,7 +2120,7 @@ TP_WBALANCE_TEMPERATURE;מידת חום !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 9a7db12e9..9ee5e607a 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -726,8 +726,6 @@ PREFERENCES_PROFILESAVECACHE;Salva il profilo di sviluppo nella memoria PREFERENCES_PROFILESAVEINPUT;Salva il profilo di sviluppo a fianco del file originario PREFERENCES_PROPERTY;Proprietà PREFERENCES_PSPATH;Cartella d'installazione di Adobe Photoshop -PREFERENCES_RGBDTL_LABEL;Numero massimo di thread per la Riduzione Rumore -PREFERENCES_RGBDTL_TOOLTIP;La Riduzione Rumore richiede un minimo di circa 128MB di RAM per un'immagine di 10MPixel o 512MB per una di 40MPixel più 128MB di RAM per ogni thread. Più thread vengono eseguiti in parallelo, più rapida sarà l'elaborazione. Lascia l'impostazione a "0" per usare automaticamente quanti più thread possibili. PREFERENCES_SELECTFONT;Seleziona il carattere PREFERENCES_SELECTLANG;Seleziona la lingua PREFERENCES_SELECTTHEME;Seleziona il tema @@ -747,7 +745,6 @@ PREFERENCES_TAB_BROWSER;Navigatore PREFERENCES_TAB_COLORMGR;Gestione Colore PREFERENCES_TAB_GENERAL;Generale PREFERENCES_TAB_IMPROC;Elaborazione immagine -PREFERENCES_TAB_PERFORMANCE;Prestazioni PREFERENCES_TAB_SOUND;Suoni PREFERENCES_TP_LABEL;Pannello Strumenti: PREFERENCES_TP_USEICONORTEXT;Utilizza le icone delle schede anziché il testo @@ -1342,7 +1339,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1352,8 +1349,10 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -1581,10 +1580,16 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1596,8 +1601,55 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1627,12 +1679,14 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1646,19 +1700,16 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PARTIALPASTE_METADATA;Metadata mode !PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory @@ -1675,11 +1726,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right !PREFERENCES_D50_OLD;5000K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1691,22 +1739,17 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1725,23 +1768,14 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1754,6 +1788,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. @@ -1883,6 +1918,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1906,6 +1947,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1915,13 +1958,16 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RAWEXPOS_BLACK_GREEN;Green !TP_RAWEXPOS_BLACK_RED;Red !TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1965,10 +2011,12 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1984,7 +2032,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2051,6 +2099,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2123,7 +2173,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 540b59521..038548deb 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -264,6 +264,7 @@ GENERAL_OPEN;開く GENERAL_PORTRAIT;縦 GENERAL_RESET;リセット GENERAL_SAVE;保存 +GENERAL_SAVE_AS;...で保存 GENERAL_SLIDER;スライダー GENERAL_UNCHANGED;(変更なし) GENERAL_WARNING;警告 @@ -274,6 +275,7 @@ HISTOGRAM_TOOLTIP_CHRO;色度・ヒストグラム 表示/非表示 HISTOGRAM_TOOLTIP_FULL;完全/縮尺調整の表示切り替え HISTOGRAM_TOOLTIP_G;グリーン・ヒストグラム 表示/非表示 HISTOGRAM_TOOLTIP_L;CIEL*a*b* 輝度・ヒストグラム 表示/非表示 +HISTOGRAM_TOOLTIP_MODE;ヒストグラムの尺度を線形、対数-線形、対数-対数でトグルします HISTOGRAM_TOOLTIP_R;レッド・ヒストグラム 表示/非表示 HISTOGRAM_TOOLTIP_RAW;rawヒストグラム 表示/非表示 HISTORY_CHANGED;変更されました @@ -348,9 +350,9 @@ HISTORY_MSG_65;色収差補正 HISTORY_MSG_66;ハイライト復元 HISTORY_MSG_67;ハイライト復元 量 HISTORY_MSG_68;ハイライト復元 方式 -HISTORY_MSG_69;作業カラースペース -HISTORY_MSG_70;出力カラースペース -HISTORY_MSG_71;入力カラースペース +HISTORY_MSG_69;作業色空間 +HISTORY_MSG_70;出力色空間 +HISTORY_MSG_71;入力色空間 HISTORY_MSG_72;周辺光量補正 HISTORY_MSG_73;チャンネルミキサー HISTORY_MSG_74;リサイズ スケール @@ -758,7 +760,14 @@ HISTORY_MSG_492;RGBカーブ HISTORY_MSG_493;L*a*b*調整 HISTORY_MSG_CLAMPOOG;色域外の色を切り取る HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - カラー補正 +HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - コントラストのしきい値 HISTORY_MSG_HISTMATCHING;トーンカーブの自動調節 +HISTORY_MSG_ICM_OUTPUT_PRIMARIES;出力 - プライマリ +HISTORY_MSG_ICM_OUTPUT_TEMP;出力 - ICC-v4 光源 D +HISTORY_MSG_ICM_OUTPUT_TYPE;出力 - タイプ +HISTORY_MSG_ICM_WORKING_GAMMA;作業色空間 - ガンマ +HISTORY_MSG_ICM_WORKING_SLOPE;作業色空間 - 勾配 +HISTORY_MSG_ICM_WORKING_TRC_METHOD;作業色空間 - TRCの方式 HISTORY_MSG_LOCALCONTRAST_AMOUNT;ローカルコントラスト - 量 HISTORY_MSG_LOCALCONTRAST_DARKNESS;ローカルコントラスト - 暗い部分 HISTORY_MSG_LOCALCONTRAST_ENABLED;ローカルコントラスト @@ -766,15 +775,63 @@ HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;ローカルコントラスト - 明るい HISTORY_MSG_LOCALCONTRAST_RADIUS;ローカルコントラスト - 半径 HISTORY_MSG_METADATA_MODE;メタデータ コピーモード HISTORY_MSG_MICROCONTRAST_CONTRAST;マイクロコントラスト - コントラストのしきい値 +HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - 振れに対するデモザイクの方式 HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;ラインノイズフィルタの方向 HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAFラインフィルタ HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - コントラストのしきい値 +HISTORY_MSG_RAWCACORR_AUTOIT;Rawの色順応補正 - 繰り返し +HISTORY_MSG_RAWCACORR_COLOURSHIFT;Rawの色順応補正 - 色ずれを回避 +HISTORY_MSG_RAW_BORDER;Rawの境界 +HISTORY_MSG_RESIZE_ALLOWUPSCALING;リサイズ - アップスケーリングを可能にする HISTORY_MSG_SHARPENING_CONTRAST;シャープ化 - コントラストのしきい値 +HISTORY_MSG_SOFTLIGHT_ENABLED;ソフトライト +HISTORY_MSG_SOFTLIGHT_STRENGTH;ソフトライト - 強さ HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - アンカー HISTORY_NEWSNAPSHOT;追加 HISTORY_NEWSNAPSHOT_TOOLTIP;ショートカット: Alt-s HISTORY_SNAPSHOT;スナップショット HISTORY_SNAPSHOTS;スナップショット +ICCPROFCREATOR_COPYRIGHT;著作権: +ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;デフォルトの著作権にリセットする、”RawTherapee CC0”を承諾する +ICCPROFCREATOR_CUSTOM;カスタム +ICCPROFCREATOR_DESCRIPTION;記述: +ICCPROFCREATOR_DESCRIPTION_ADDPARAM;ガンマと勾配の値を記述に加える +ICCPROFCREATOR_DESCRIPTION_TOOLTIP;デフォルトの記述をセットするために空にしておく +ICCPROFCREATOR_GAMMA;ガンマ +ICCPROFCREATOR_ICCVERSION;ICCのバージョン: +ICCPROFCREATOR_ILL;光源: +ICCPROFCREATOR_ILL_41;D41 +ICCPROFCREATOR_ILL_50;D50 +ICCPROFCREATOR_ILL_55;D55 +ICCPROFCREATOR_ILL_60;D60 +ICCPROFCREATOR_ILL_65;D65 +ICCPROFCREATOR_ILL_80;D80 +ICCPROFCREATOR_ILL_DEF;デフォルト +ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_ILL_TOOLTIP;ICC v4プロファイルに関する光源だけを設定することができます +ICCPROFCREATOR_PRIMARIES;プライマリ: +ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +ICCPROFCREATOR_PRIM_BEST;BestRGB +ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BLUX;ブルー X +ICCPROFCREATOR_PRIM_BLUY;ブルー Y +ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_GREX;グリーン X +ICCPROFCREATOR_PRIM_GREY;グリーン Y +ICCPROFCREATOR_PRIM_PROPH;Prophoto +ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_REDX;レッド X +ICCPROFCREATOR_PRIM_REDY;レッド Y +ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PRIM_TOOLTIP;ICC v4プロファイルに関するカスタムプライマリーを設定することが出来ます +ICCPROFCREATOR_PRIM_WIDEG;Widegamut +ICCPROFCREATOR_PROF_V2;ICC v2 +ICCPROFCREATOR_PROF_V4;ICC v4 +ICCPROFCREATOR_SAVEDIALOG_TITLE;...でICCプロファイルを保存 +ICCPROFCREATOR_SLOPE;勾配 +ICCPROFCREATOR_TRC_PRESET;トーン再現カーブ: IPTCPANEL_CATEGORY;カテゴリ IPTCPANEL_CATEGORYHINT;画像の意図 IPTCPANEL_CITY;都市 @@ -822,6 +879,7 @@ LENSPROFILE_CORRECTION_LCPFILE;LCPファイル LENSPROFILE_CORRECTION_MANUAL;手動でパラメータを補正する LENSPROFILE_LENS_WARNING;注意:レンズプロファイルに関する切り抜きの因数がカメラの因数より大きいと、誤った結果になるかもしれません MAIN_BUTTON_FULLSCREEN;フルスクリーン +MAIN_BUTTON_ICCPROFCREATOR;ICCプロファイルクリエーター MAIN_BUTTON_NAVNEXT_TOOLTIP;エディタで開いている画像に対応する次の画像に移動します\nショートカット: Shift-F4\n\nファイルブラウザで選択したサムネイルに対応する次の画像に移動するには\nショートカット: F4 MAIN_BUTTON_NAVPREV_TOOLTIP;エディタで開いている画像に対応する前の画像に移動します\nショートカット: Shift-F3\n\nファイルブラウザで選択したサムネイルに対応する前の画像に移動するには\nショートカット: F3 MAIN_BUTTON_NAVSYNC_TOOLTIP;現在開いている画像のサムネイルを明示しエディタとファイルブラウザを同期させ、ファイルブラウザでのフィルタをクリアします \nショートカット: x\n\n上記と同じですが、ファイルブラウザでのフィルタをクリアしません\nショートカット: y\n(除外する場合、開いているファイルのサムネイルが表示されませんので注意してください). @@ -862,9 +920,9 @@ MAIN_TAB_COLOR;カラー MAIN_TAB_COLOR_TOOLTIP;ショートカット: Alt-c MAIN_TAB_DETAIL;ディテール MAIN_TAB_DETAIL_TOOLTIP;ショートカット: Alt-d -MAIN_TAB_DEVELOP;現像 +MAIN_TAB_DEVELOP;一括編集 MAIN_TAB_EXIF;Exif -MAIN_TAB_EXPORT; 書き出し +MAIN_TAB_EXPORT;高速書き出し MAIN_TAB_EXPOSURE;露光 MAIN_TAB_EXPOSURE_TOOLTIP;ショートカット: Alt-e MAIN_TAB_FILTER;絞り込み @@ -876,8 +934,6 @@ MAIN_TAB_RAW;raw MAIN_TAB_RAW_TOOLTIP;ショートカット: Alt-r MAIN_TAB_TRANSFORM;変形 MAIN_TAB_TRANSFORM_TOOLTIP;ショートカット: Alt-t -MAIN_TAB_WAVELET;ウェーブレット -MAIN_TAB_WAVELET_TOOLTIP;ショートカット: Alt-w MAIN_TOOLTIP_BACKCOLOR0;プレビューの背景色を指定します: テーマに基づく\nショートカット: 9 MAIN_TOOLTIP_BACKCOLOR1;プレビューの背景色を指定します: \nショートカットt: 9 MAIN_TOOLTIP_BACKCOLOR2;プレビューの背景色を指定します: \nショートカット: 9 @@ -891,6 +947,7 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;フォーカス・マスク表示\nショ MAIN_TOOLTIP_PREVIEWG;グリーン チャンネル表示\nショートカット: g MAIN_TOOLTIP_PREVIEWL;輝度表示\nショートカット: v\n\n0.299*R + 0.587*G + 0.114*B MAIN_TOOLTIP_PREVIEWR;レッド チャンネル表示\nショートカット: r +MAIN_TOOLTIP_PREVIEWSHARPMASK;プレビューで見るシャープ化機能のコントラストマスク\nショートカット: なし\n\nこの機能が使えるのはシャープ化機能が有効で、画像が100%以上に拡大されている場合だけ MAIN_TOOLTIP_QINFO;画像の情報\nショートカット: i MAIN_TOOLTIP_SHOWHIDELP1;表示/非表示 左パネル\nショートカット: l MAIN_TOOLTIP_SHOWHIDERP1;表示/非表示 右パネル\nショートカット: Alt-l @@ -909,7 +966,7 @@ NAVIGATOR_R;R: NAVIGATOR_S;S: NAVIGATOR_V;V: NAVIGATOR_XY_FULL;幅 = %1, 高さ = %2 -NAVIGATOR_XY_NA;x = n/a, y = n/a +NAVIGATOR_XY_NA;x: --, y: -- OPTIONS_BUNDLED_MISSING;付属のプロファイル "%1"が見つかりません\n\nインストールされたプロファイルが損傷しているかもしれません\n\nその場合はデフォルトの値が使われます OPTIONS_DEFIMG_MISSING;rawではない画像のデフォルプロファイルが見つからないか、設定されていません\n\nプロファイル・ディレクトリを確認してください、存在しないか破損しているかもしれません\n\nデフォルト設定値が使用されます OPTIONS_DEFRAW_MISSING;raw画像のデフォル・プロファイルが見つからないか、設定されていません\n\nプロファイル・ディレクトリを確認してください、存在しないか破損しているかもしれません\n\nデフォルト設定値が使用されます @@ -934,7 +991,7 @@ PARTIALPASTE_DIRPYRDENOISE;ノイズ低減 PARTIALPASTE_DIRPYREQUALIZER;ディテール・レベルのコントラスト PARTIALPASTE_DISTORTION;歪曲補正 PARTIALPASTE_EPD;トーンマッピング -PARTIALPASTE_EQUALIZER;ウェーブレットイコライザ +PARTIALPASTE_EQUALIZER;ウェーブレット PARTIALPASTE_EVERYTHING;すべて PARTIALPASTE_EXIFCHANGES;exifデータを変える PARTIALPASTE_EXPOSURE;露光量 @@ -961,6 +1018,7 @@ PARTIALPASTE_PREPROCESS_DEADPIXFILT;デッドピクセルフィルターを適 PARTIALPASTE_PREPROCESS_GREENEQUIL;グリーン 平衡化 PARTIALPASTE_PREPROCESS_HOTPIXFILT;ホットピクセルフィルターを適用 PARTIALPASTE_PREPROCESS_LINEDENOISE;ラインノイズ フィルタ +PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF ラインフィルタ PARTIALPASTE_PRSHARPENING;リサイズ後のシャープ化 PARTIALPASTE_RAWCACORR_AUTO;自動色収差補正 PARTIALPASTE_RAWCACORR_CAREDBLUE;色収差 レッドとブルー @@ -968,6 +1026,7 @@ PARTIALPASTE_RAWEXPOS_BLACK;黒レベル PARTIALPASTE_RAWEXPOS_LINEAR;raw ホワイトポイント リニア補正係数 PARTIALPASTE_RAWEXPOS_PRESER;raw ホワイトポイント ハイライトを保持したまま補正 (EV) PARTIALPASTE_RAWGROUP;raw 設定 +PARTIALPASTE_RAW_BORDER;Rawの境界 PARTIALPASTE_RAW_DCBENHANCE;DCB 拡張処理適用 PARTIALPASTE_RAW_DCBITERATIONS;DCB反復の数 PARTIALPASTE_RAW_DMETHOD;デモザイクの方法 @@ -983,21 +1042,15 @@ PARTIALPASTE_SHADOWSHIGHLIGHTS;シャドウ/ハイライト PARTIALPASTE_SHARPENEDGE;エッジ PARTIALPASTE_SHARPENING;シャープ化 (USM/RL) PARTIALPASTE_SHARPENMICRO;マイクロコントラスト +PARTIALPASTE_SOFTLIGHT;ソフトな明るさ PARTIALPASTE_TM_FATTAL;ダイナミックレンジ圧縮 PARTIALPASTE_VIBRANCE;自然な彩度 PARTIALPASTE_VIGNETTING;周辺光量補正 -PARTIALPASTE_WAVELETGROUP;ウェーブレット処理 PARTIALPASTE_WHITEBALANCE;ホワイトバランス PREFERENCES_ADD;追加 PREFERENCES_APPLNEXTSTARTUP;要再起動 -PREFERENCES_AUTLISLOW;低 -PREFERENCES_AUTLISMAX;最大 - 全タイルの平均 -PREFERENCES_AUTLISSTD;高 -PREFERENCES_AUTLISVLOW;なし -PREFERENCES_AUTLOW;低 PREFERENCES_AUTOMONPROFILE;OSのメインモニター・プロファイルを使用 PREFERENCES_AUTOSAVE_TP_OPEN;プログラム終了の前に、機能パネルの開閉状態を自動的に保存する -PREFERENCES_AUTSTD;標準 PREFERENCES_BATCH_PROCESSING;バッチ処理 PREFERENCES_BEHADDALL;すべて '追加' PREFERENCES_BEHADDALLHINT;すべてのパラメータを 追加モードにします\nバッチツールパネルで設定される調整値が、各画像の既定値に加算されます @@ -1011,10 +1064,6 @@ PREFERENCES_CACHECLEARTHUMBS;サムネイルのクリア PREFERENCES_CACHEMAXENTRIES;キャッシュエントリーの最大数 PREFERENCES_CACHEOPTS;cache オプション PREFERENCES_CACHETHUMBHEIGHT;サムネイル縦の最大値 -PREFERENCES_CIEART;CIECAM02 最適化 -PREFERENCES_CIEART_FRAME;CIECAM02-特定の設定 -PREFERENCES_CIEART_LABEL;倍精度の代わりに単精度浮動小数点を使用 -PREFERENCES_CIEART_TOOLTIP;有効にした場合、 CIECAM02は倍精度浮動小数点形式の代わりに単精度で実行されます。これは品質を少し犠牲にし、速度を少し増加させます PREFERENCES_CLIPPINGIND;クリッピング領域の表示 PREFERENCES_CLUTSCACHE;HaldCLUT cache PREFERENCES_CLUTSCACHE_LABEL;cacheに置けるHaldCLUTの最大数 @@ -1048,8 +1097,6 @@ PREFERENCES_DARKFRAMESHOTS;ショット PREFERENCES_DARKFRAMETEMPLATES;テンプレート PREFERENCES_DATEFORMAT;日付の形式 PREFERENCES_DATEFORMATHINT;次の書式を使用することができます:\n%y : 年\n%m : 月\n%d : 日\n\n例として, ハンガリアン記法の日付:\n%y/%m/%d -PREFERENCES_DAUB_LABEL;ドビッシー関数のタイプ D4の代わりにD6を使う -PREFERENCES_DAUB_TOOLTIP;ノイズ低減とウェーブレットのレベルツールはマザーウェーブレットにドビッシーを使っています。このタイプでD4の代わりにD6を選択すると、直交系であるドビッシーの係数が増えるので、恐らくスケールの小さいレベルは質が向上するでしょう。タイプを変えても処理時間やメモリー使用量に影響はありません。 PREFERENCES_DIRDARKFRAMES;ダークフレーム・ディレクトリ PREFERENCES_DIRECTORIES;ディレクトリ PREFERENCES_DIRHOME;ホーム・ディレクトリ @@ -1059,7 +1106,6 @@ PREFERENCES_DIRSELECTDLG;起動時の画像ディレクトリ選択... PREFERENCES_DIRSOFTWARE;インストール・ディレクトリ PREFERENCES_EDITORCMDLINE;カスタムコマンドライン PREFERENCES_EDITORLAYOUT;編集 レイアウト -PREFERENCES_EXPAUT;高度 PREFERENCES_EXTERNALEDITOR;外部エディタ PREFERENCES_FBROWSEROPTS;ファイルブラウザ/サムネイルのオプション PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;ファイルブラウザでの一行のツールバー (低解像度表示用に選択解除) @@ -1105,12 +1151,7 @@ PREFERENCES_INTENT_SATURATION;彩度 PREFERENCES_INTERNALTHUMBIFUNTOUCHED;rawファイルが未編集の場合 JPEGのサムネイルを表示 PREFERENCES_LANG;言語 PREFERENCES_LANGAUTODETECT;OSの言語設定を使用 -PREFERENCES_LEVAUTDN;ノイズ低減のレベル -PREFERENCES_LEVDN;セルのサイズ -PREFERENCES_LISS;自動(多分割スムージング) -PREFERENCES_MAX;最大(タイル) PREFERENCES_MAXRECENTFOLDERS;直近のフォルダーの最大数 -PREFERENCES_MED;中 (タイルの半分) PREFERENCES_MENUGROUPEXTPROGS;"..で開く"のグループ PREFERENCES_MENUGROUPFILEOPERATIONS;"ファイル操作"のグループ PREFERENCES_MENUGROUPLABEL;"カラーラベル"のグループ @@ -1118,7 +1159,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;"処理プロファイル操作"のグル PREFERENCES_MENUGROUPRANK;"ランキング"のグループ PREFERENCES_MENUOPTIONS;メニューオプションの状況 PREFERENCES_METADATA;メタデータ -PREFERENCES_MIN;最小 (100x115) PREFERENCES_MONINTENT;デフォルトのモニターインテント PREFERENCES_MONITOR;モニター PREFERENCES_MONPROFILE;デフォルトのモニタープロファイル @@ -1127,7 +1167,6 @@ PREFERENCES_MULTITAB;マルチ編集タブモード PREFERENCES_MULTITABDUALMON;独自のウィンドウモードによるマルチ編集タブ PREFERENCES_NAVGUIDEBRUSH;ナビゲーターのガイドカラー PREFERENCES_NAVIGATIONFRAME;ナビゲーション -PREFERENCES_NOISE;ノイズ低減 PREFERENCES_OUTDIR;出力ディレクトリ PREFERENCES_OUTDIRFOLDER;フォルダに保存 PREFERENCES_OUTDIRFOLDERHINT;選択したフォルダに画像を保存します @@ -1143,6 +1182,8 @@ PREFERENCES_PARSEDEXTADDHINT;拡張子を記入し このボタンでリスト PREFERENCES_PARSEDEXTDELHINT;選択した拡張子をリストから削除します PREFERENCES_PARSEDEXTDOWNHINT;選択した拡張子をリストの下に移動 PREFERENCES_PARSEDEXTUPHINT;選択した拡張子をリストの上に移動 +PREFERENCES_PERFORMANCE_THREADS;スレッド +PREFERENCES_PERFORMANCE_THREADS_LABEL;ノイズ低減とウェーブレットレベルに関するスレッドの最大数(0 = 自動) PREFERENCES_PREVDEMO;プレビューのデモザイク方式 PREFERENCES_PREVDEMO_FAST;Fast PREFERENCES_PREVDEMO_LABEL;プレビューのズームレベルが100%以下の場合に使うデモザイクアルゴリズム: @@ -1163,8 +1204,6 @@ PREFERENCES_PRTPROFILE;カラープロファイル PREFERENCES_PSPATH;Adobe Photoshop のインストール・ディレクトリ PREFERENCES_REMEMBERZOOMPAN;ズームレベルとパン速度を記憶する PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;現在の画像のズームレベルとパン速度を記憶し、新しく開く画像に適用\n\nこのオプションが使えるのは、編集画面のモードが“シングル編集”で、“プレビューのズームレベルが100%以下の場合に使うデモザイク”が“pp3に従う”と設定されている場合だけです。 -PREFERENCES_RGBDTL_LABEL;ノイズ低減とウェーブレットのための最大スレッド数 -PREFERENCES_RGBDTL_TOOLTIP;ノイズ低減は、10メガピクセル画像では128MB程度、40メガピクセル画像では512MBを必要とします、そして更にスレッドごとに128MBが必要です。複数のスレッドを同時に実行すると演算が速くなります。自動的にできる限り多くのスレッドを使用するには"0"の設定のままにします PREFERENCES_SAVE_TP_OPEN_NOW;機能パネルの今の開閉状態を保存する PREFERENCES_SELECTFONT;フォント選択 PREFERENCES_SELECTFONT_COLPICKER;カラーピッカーのフォントを選択 @@ -1179,41 +1218,31 @@ PREFERENCES_SHOWDATETIME;日付表示 PREFERENCES_SHOWEXPOSURECOMPENSATION;露光補正追加 PREFERENCES_SHOWFILMSTRIPTOOLBAR;画像スライドのツールバーを表示する PREFERENCES_SHTHRESHOLD;シャドウ・クリッピング領域のしきい値 -PREFERENCES_SIMPLAUT;ツールのモード PREFERENCES_SINGLETAB;シングルタブモードモード PREFERENCES_SINGLETABVERTAB;シングル編集タブモード, 垂直タブ -PREFERENCES_SMA;小 (250x287) PREFERENCES_SND_BATCHQUEUEDONE;キュー処理 終了 PREFERENCES_SND_HELP;ファイルパスを入力 または空欄(無音).\nWindowsはシステムサウンドの "SystemDefault", "SystemAsterisk"など..\nLinuxはシステムサウンドの "complete", "window-attention"などを使用します PREFERENCES_SND_LNGEDITPROCDONE;編集処理 終了 PREFERENCES_SND_THRESHOLDSECS;秒後 PREFERENCES_STARTUPIMDIR;起動時の画像・ディレクトリ -PREFERENCES_STDAUT;標準 PREFERENCES_TAB_BROWSER;ファイルブラウザ PREFERENCES_TAB_COLORMGR;カラーマネジメント PREFERENCES_TAB_DYNAMICPROFILE;ダイナミックプロファイルの規定 PREFERENCES_TAB_GENERAL;一般 PREFERENCES_TAB_IMPROC;画像処理 -PREFERENCES_TAB_PERFORMANCE;パフォーマンスとクォリティ +PREFERENCES_TAB_PERFORMANCE;パフォーマンス PREFERENCES_TAB_SOUND;サウンド PREFERENCES_THEME;テーマ PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;埋め込まれているJPEGのプレビュー PREFERENCES_THUMBNAIL_INSPECTOR_MODE;表示する画像 PREFERENCES_THUMBNAIL_INSPECTOR_RAW;ニュートラルなrawレンダリング PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;埋め込まれているJPEGがフルサイズの場合、指定がなければニュートラルなrawレンダリングで表示 -PREFERENCES_TIMAX;多数 -PREFERENCES_TINB;タイル数 -PREFERENCES_TISTD;標準 PREFERENCES_TP_LABEL;ツール パネル: PREFERENCES_TP_USEICONORTEXT;テキストの代わりにタブアイコンを使用 PREFERENCES_TP_VSCROLLBAR;ツールパネルの垂直スクロールバーを隠す PREFERENCES_TUNNELMETADATA;Exif/IPTC/XMPを変更を加えずに出力ファイルにコピー PREFERENCES_USEBUNDLEDPROFILES;付属のプロファイルを使用 PREFERENCES_VIEW;出力デバイスのホワイトバランス設定 (モニター, TV, プロジェクター,観視...) -PREFERENCES_WAVLEV;’高い’質の場合、ウェーブレット変換のレベルを上げる -PREFERENCES_WLONE;レベル1 -PREFERENCES_WLTWO;レベル2 -PREFERENCES_WLZER;上げない PREFERENCES_WORKFLOW;レイアウト PROFILEPANEL_COPYPPASTE;コピーするパラメータ PROFILEPANEL_GLOBALPROFILES;付属のプロファイル @@ -1263,18 +1292,18 @@ SAMPLEFORMAT_32;24ビット浮動小数点 SAMPLEFORMAT_64;32ビット浮動小数点 SAVEDLG_AUTOSUFFIX;ファイルが存在する場合、自動的に末尾に文字を加える SAVEDLG_FILEFORMAT;ファイル形式 +SAVEDLG_FILEFORMAT_FLOAT;浮動小数点 SAVEDLG_FORCEFORMATOPTS;強制保存オプション SAVEDLG_JPEGQUAL;JPEG 品質 -SAVEDLG_PNGCOMPR;PNG 圧縮 SAVEDLG_PUTTOQUEUE;キュー処理に追加 SAVEDLG_PUTTOQUEUEHEAD;キュー処理の最初に追加 SAVEDLG_PUTTOQUEUETAIL;キュー処理の最後に追加 SAVEDLG_SAVEIMMEDIATELY;すぐに保存 SAVEDLG_SAVESPP;設定値も保存する SAVEDLG_SUBSAMP;サブ・サンプリング -SAVEDLG_SUBSAMP_1;高圧縮 +SAVEDLG_SUBSAMP_1;最適な圧縮 SAVEDLG_SUBSAMP_2;バランス -SAVEDLG_SUBSAMP_3;高画質 +SAVEDLG_SUBSAMP_3;最適な画質 SAVEDLG_SUBSAMP_TOOLTIP;最適な圧縮率:\nJ:a:b 4:2:0\nh/v 2/2\n色度は水平方向・垂直方向で半分になります\n\nバランスを重視した圧縮率:\nJ:a:b 4:2:2\nh/v 2/1\n色度は水平方向で半分になります\n\n質を重視した圧縮率:\nJ:a:b 4:4:4\nh/v 1/1\n色度のサブサンプリングはありません. SAVEDLG_TIFFUNCOMPRESSED;非圧縮 TIFF SAVEDLG_WARNFILENAME;ファイルに名前が付けられます @@ -1507,12 +1536,6 @@ TP_DARKFRAME_LABEL;ダークフレーム TP_DEFRINGE_LABEL;フリンジ低減 TP_DEFRINGE_RADIUS;半径 TP_DEFRINGE_THRESHOLD;しきい値 -TP_DIRPYRDENOISE_3X3;3×3 -TP_DIRPYRDENOISE_3X3_SOFT;3×3 ソフト -TP_DIRPYRDENOISE_5X5;5×5 -TP_DIRPYRDENOISE_5X5_SOFT;5×5 ソフト -TP_DIRPYRDENOISE_7X7;7×7 -TP_DIRPYRDENOISE_9X9;9×9 TP_DIRPYRDENOISE_CHROMINANCE_AMZ;自動(多分割方式) TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;自動(分割方式) TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL_TOOLTIP;色ノイズ低減の効果を確認して下さい\n注意:設定値の計算はあくまで平均的なもので、かなり主観的でです @@ -1543,7 +1566,6 @@ TP_DIRPYRDENOISE_LUMINANCE_FRAME;輝度ノイズ TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;輝度 TP_DIRPYRDENOISE_MAIN_COLORSPACE;色空間 TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -TP_DIRPYRDENOISE_MAIN_COLORSPACE_LABEL;ノイズ低減 TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;raw画像は、RGBまたはL*a*b*方式のいずれかを使用することができます。\n\nraw以外の画像は、選択にかかわらずL*a*b*方式が採用されます TP_DIRPYRDENOISE_MAIN_GAMMA;ガンマ @@ -1639,10 +1661,6 @@ TP_FLATFIELD_BT_VERTICAL;垂直 TP_FLATFIELD_CLIPCONTROL;クリップコントロール TP_FLATFIELD_CLIPCONTROL_TOOLTIP;クリップコントロールは、フラットフィールドを使った時に白飛びが発生するのを避けるために使います。適用する元画像に既に白飛びがある場合は、クリップコントロールの適用で色被りが起こる可能性があります。 TP_FLATFIELD_LABEL;フラットフィールド -TP_GAMMA_CURV;ガンマ -TP_GAMMA_FREE;フリーなガンマ -TP_GAMMA_OUTPUT;出力 ガンマ -TP_GAMMA_SLOP;勾配(リニア) TP_GENERAL_11SCALE_TOOLTIP;この機能の効果や、そのサブコンポーネントの確認には、プレビューで1:1以上のスケールが必要です。 TP_GRADIENT_CENTER;中央位置 TP_GRADIENT_CENTER_X;中央 X軸 @@ -1663,7 +1681,7 @@ TP_HLREC_ENA_TOOLTIP;自動露光でも動作可 TP_HLREC_LABEL;ハイライト復元 TP_HLREC_LUMINANCE;輝度復元 TP_HLREC_METHOD;方式: -TP_HSVEQUALIZER_CHANNEL;HSV チャンネル +TP_HSVEQUALIZER_CHANNEL;チャンネル TP_HSVEQUALIZER_HUE;H TP_HSVEQUALIZER_LABEL;HSV イコライザ TP_HSVEQUALIZER_SAT;S @@ -1703,6 +1721,12 @@ TP_ICM_SAVEREFERENCE_TOOLTIP;入力プロファイルが適用される前のリ TP_ICM_TONECURVE;DCPトーンカーブ使用 TP_ICM_TONECURVE_TOOLTIP;DCPのプロファイルに含まれているトーンカーブを使用することができます TP_ICM_WORKINGPROFILE;作業プロファイル +TP_ICM_WORKING_TRC;トーン再現カーブ: +TP_ICM_WORKING_TRC_CUSTOM;カスタム +TP_ICM_WORKING_TRC_GAMMA;ガンマ +TP_ICM_WORKING_TRC_NONE;なし +TP_ICM_WORKING_TRC_SLOPE;勾配 +TP_ICM_WORKING_TRC_TOOLTIP;組み込まれたプロファイルだけ TP_IMPULSEDENOISE_LABEL;インパルスノイズ低減 TP_IMPULSEDENOISE_THRESH;しきい値 TP_LABCURVE_AVOIDCOLORSHIFT;色ずれを回避 @@ -1790,6 +1814,8 @@ TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Sonyのミラーレスカメラの一部 TP_PRSHARPENING_LABEL;リサイズ後のシャープ化 TP_PRSHARPENING_TOOLTIP;リサイズ後の画像をシャープ化します。但し、リサイズの方式がランチョスの場合に限ります。プレビュー画面でこの機能の効果を見ることは出来ません。使用法に関してはRawPediaを参照して下さい。 TP_RAWCACORR_AUTO;自動補正 +TP_RAWCACORR_AUTOIT;繰り返し +TP_RAWCACORR_AVOIDCOLORSHIFT;色ずれを回避 TP_RAWCACORR_CABLUE;ブルー TP_RAWCACORR_CARED;レッド TP_RAWCACORR_CASTR;強さ @@ -1805,17 +1831,23 @@ TP_RAWEXPOS_LINEAR;ホワイトポイント補正 TP_RAWEXPOS_PRESER;ハイライトを保持 TP_RAWEXPOS_RGB;レッド、グリーン、ブルー TP_RAWEXPOS_TWOGREEN;2つのグリーンを連動 -TP_RAW_1PASSMEDIUM;1-パス (ミディアム) -TP_RAW_3PASSBEST;3-Pass (最良) +TP_RAW_1PASSMEDIUM;1-パス (Markesteijn) +TP_RAW_2PASS;1-パス+fast +TP_RAW_3PASSBEST;3-Pass (Markesteijn) +TP_RAW_4PASS;3-パス+fast TP_RAW_AHD;AHD TP_RAW_AMAZE;AMaZE +TP_RAW_AMAZEVNG4;AMaZE+VNG4 +TP_RAW_BORDER;境界 TP_RAW_DCB;DCB TP_RAW_DCBENHANCE;DCB 拡張処理 TP_RAW_DCBITERATIONS;DCB 反復の数 +TP_RAW_DCBVNG4;DCB+VNG4 TP_RAW_DMETHOD;方式 TP_RAW_DMETHOD_PROGRESSBAR;%1 デモザイク中... TP_RAW_DMETHOD_PROGRESSBAR_REFINE;デモザイク・リファイン中... TP_RAW_DMETHOD_TOOLTIP;注: IGVとLMMSEは高ISO画像に適しています +TP_RAW_DUALDEMOSAICCONTRAST;コントラストのしきい値 TP_RAW_EAHD;EAHD TP_RAW_FALSECOLOR;偽色抑制処理の回数 TP_RAW_FAST;Fast @@ -1833,6 +1865,7 @@ TP_RAW_MONO;Mono TP_RAW_NONE;なし (センサーのパターンを表示) TP_RAW_PIXELSHIFT;ピクセルシフト TP_RAW_PIXELSHIFTBLUR;振れマスクのぼかし +TP_RAW_PIXELSHIFTDMETHOD;振れに対するデモザイクの方式 TP_RAW_PIXELSHIFTEPERISO;ISOの適合 TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;通常のISOに関してはデフォルトの0で十分だと思われます。\n高いISOの場合は、振れの検知を良くするために設定値を上げます。\n少しづつ増加させ、振れのマスクの変化を見ます。 TP_RAW_PIXELSHIFTEQUALBRIGHT;構成画像の明るさを均等にする @@ -1861,10 +1894,12 @@ TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;デフォルトで設定している値1.0で基 TP_RAW_PIXELSHIFTSMOOTH;境界部分を滑らかにする TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;これは振れのある領域と振れがない領域の境を滑らかに補正するものです。\n0に設定すると機能の働きはありません。\n1に設定すると、選択された構成画像にAMaZEかLMMSEが使われた結果が得られます("LMMSEを使う"というオプション次第)、或いは"メディアンを使う"が選択されていれば全ての構成画像にメディアンが使われます。 TP_RAW_RCD;RCD +TP_RAW_RCDVNG4;RCD+VNG4 TP_RAW_SENSOR_BAYER_LABEL;ベイヤー配列を使ったセンサー TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-passが最適です(低ISO画像には奨められます)\n高ISO画像の場合、1-passと3-passの違いは殆どありません、処理速度は前者の方が速いです。 TP_RAW_SENSOR_XTRANS_LABEL;X-Transマトリクスを使ったセンサー TP_RAW_VNG4;VNG4 +TP_RESIZE_ALLOW_UPSCALING;アップスケーリングを可能にする TP_RESIZE_APPLIESTO;適用領域: TP_RESIZE_CROPPEDAREA;切り抜き画像 TP_RESIZE_FITBOX;バウンディング・ボックス @@ -2003,6 +2038,8 @@ TP_SHARPENMICRO_CONTRAST;コントラストのしきい値 TP_SHARPENMICRO_LABEL;マイクロコントラスト TP_SHARPENMICRO_MATRIX;3×3マトリクスの代わりに 5×5 TP_SHARPENMICRO_UNIFORMITY;均等 +TP_SOFTLIGHT_LABEL;ソフトライト +TP_SOFTLIGHT_STRENGTH;強さ TP_TM_FATTAL_AMOUNT;量 TP_TM_FATTAL_ANCHOR;アンカー TP_TM_FATTAL_LABEL;ダイナミックレンジ圧縮 @@ -2250,13 +2287,3 @@ ZOOMPANEL_ZOOMFITSCREEN;画像全体を画面に合わせる\nショートカッ ZOOMPANEL_ZOOMIN;ズームイン\nショートカット: + ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion -!TP_RAW_4PASS;4-Pass -!TP_RAW_AMAZEVNG4;AMaZE+VNG4 -!TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold -!TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion diff --git a/rtdata/languages/Latvian b/rtdata/languages/Latvian index d951d2461..212330c9c 100644 --- a/rtdata/languages/Latvian +++ b/rtdata/languages/Latvian @@ -558,7 +558,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -574,13 +574,14 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -977,10 +978,16 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -992,9 +999,56 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1025,11 +1079,12 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1066,6 +1121,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1121,6 +1177,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1128,6 +1185,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1139,17 +1197,12 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1187,13 +1240,10 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1226,12 +1276,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1239,7 +1284,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1248,13 +1292,14 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1268,8 +1313,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1279,36 +1322,26 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1336,6 +1369,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1661,10 +1695,6 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1711,6 +1741,12 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1798,6 +1834,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1813,15 +1851,18 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1871,10 +1912,12 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1898,7 +1941,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1982,6 +2025,8 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2075,7 +2120,7 @@ TP_WBALANCE_TEMPERATURE;Temperatūra !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 70489ded5..00dc4d800 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -922,7 +922,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -934,11 +934,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !GENERAL_CLOSE;Close !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_167;Demosaicing method !HISTORY_MSG_168;L*a*b* - CC curve @@ -1250,10 +1251,16 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1265,9 +1272,56 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1297,6 +1351,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). @@ -1313,6 +1368,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 !MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1342,20 +1398,17 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PARTIALPASTE_PCVIGNETTE;Vignette filter !PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_LMMSEITERATIONS;LMMSE enhancement steps !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' @@ -1384,11 +1437,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_D55;5500K !PREFERENCES_D60;6000K !PREFERENCES_D65;6500K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FLUOF2;Fluorescent F2 !PREFERENCES_FLUOF7;Fluorescent F7 !PREFERENCES_FLUOF11;Fluorescent F11 @@ -1413,24 +1463,19 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1443,34 +1488,22 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font !PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_GLOBALPROFILES;Bundled profiles !PROFILEPANEL_MODE_TIP;Processing profile fill mode.\n\nButton pressed: partial profiles will be converted to full profiles; the missing values will be replaced with hard-coded defaults.\n\nButton released: profiles will be applied as they are, altering only those values which they contain. !PROFILEPANEL_MYPROFILES;My profiles @@ -1490,6 +1523,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1809,6 +1843,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift !TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. !TP_LABCURVE_CHROMATICITY;Chromaticity @@ -1878,6 +1918,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1887,13 +1929,16 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RAWEXPOS_BLACK_GREEN;Green !TP_RAWEXPOS_BLACK_RED;Red !TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1942,10 +1987,12 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1961,7 +2008,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2032,6 +2079,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2114,7 +2163,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index aa96073a4..d002263bc 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -906,13 +906,7 @@ PARTIALPASTE_WAVELETGROUP;Wavelet verwerking PARTIALPASTE_WHITEBALANCE;Witbalans PREFERENCES_ADD;Toevoegen PREFERENCES_APPLNEXTSTARTUP;herstart vereist -PREFERENCES_AUTLISLOW;Laag -PREFERENCES_AUTLISMAX;Max - Gemiddelde van alle tegels -PREFERENCES_AUTLISSTD;Hoog -PREFERENCES_AUTLISVLOW;Geen -PREFERENCES_AUTLOW;Laag PREFERENCES_AUTOMONPROFILE;Gebruik automatisch het standaard monitorprofiel \nvan het besturingsysteem -PREFERENCES_AUTSTD;Standaard PREFERENCES_BATCH_PROCESSING;Batch-verwerking PREFERENCES_BEHADDALL;Alles op 'Toevoegen' PREFERENCES_BEHADDALLHINT;Zet alle parameters in de Toevoegen mode.\nWijzigingen van parameters in de batch tool zijn deltas op de opgeslagen waarden. @@ -956,8 +950,6 @@ PREFERENCES_DARKFRAMESHOTS;foto's PREFERENCES_DARKFRAMETEMPLATES;sjablonen PREFERENCES_DATEFORMAT;Datumformaat PREFERENCES_DATEFORMATHINT;U kunt de volgende formaten gebruiken:\n%y : jaar\n%m : maand\n%d : dag\n\nHet Nederlandse datumformaat is bijvoorbeeld:\n%d/%m/%y -PREFERENCES_DAUB_LABEL;Gebruik Daubechies D6 wavelets in plaats van D4 -PREFERENCES_DAUB_TOOLTIP;De Ruisonderdrukking en Wavelet niveaus gebruiken de Debauchies moeder wavelet. Als je D6 gebruikt in plaats van D4 vergroot het aantal orthogonale Daubechies coëfficiënten en dit verbeterd waarschijnlijk de kwaliteit van de lage niveaus. PREFERENCES_DIRDARKFRAMES;Map met donkerframes PREFERENCES_DIRHOME;Standaardmap PREFERENCES_DIRLAST;Laatst bezochte map @@ -965,7 +957,6 @@ PREFERENCES_DIROTHER;Anders PREFERENCES_DIRSELECTDLG;Selecteer standaardmap bij opstarten... PREFERENCES_DIRSOFTWARE;Installatiemap PREFERENCES_EDITORLAYOUT;Bewerkingsvenster -PREFERENCES_EXPAUT;Expert PREFERENCES_EXTERNALEDITOR;Externe editor PREFERENCES_FBROWSEROPTS;Opties bestandsnavigator PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Enkele rij navigator werkbalk (de-activeer voor lage resolutie) @@ -1009,12 +1000,7 @@ PREFERENCES_INTENT_RELATIVE;Relatieve colorimetrie PREFERENCES_INTENT_SATURATION;Verzadiging PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Toon interne JPEG-miniatuur indien onbewerkt PREFERENCES_LANGAUTODETECT;Gebruik taalinstellingen pc -PREFERENCES_LEVAUTDN;Ruisonderdrukking niveau -PREFERENCES_LEVDN;Cell grootte -PREFERENCES_LISS;Auto multi-zone verzachten -PREFERENCES_MAX;Maxi (Tegel) PREFERENCES_MAXRECENTFOLDERS;Maximum aantal recente mappen -PREFERENCES_MED;Gemiddeld (Tegel/2) PREFERENCES_MENUGROUPEXTPROGS;Groepeer open met PREFERENCES_MENUGROUPFILEOPERATIONS;Groepeer bestandsbewerkingen PREFERENCES_MENUGROUPLABEL;Groepeer labelen @@ -1022,7 +1008,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Groepeer profielbewerkingen PREFERENCES_MENUGROUPRANK;Groepeer markering PREFERENCES_MENUOPTIONS;Menu-opties PREFERENCES_METADATA;Metadata -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;Standaard monitor weergave PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Standaard kleurprofiel @@ -1031,7 +1016,6 @@ PREFERENCES_MULTITAB;Multi-tab: elke foto opent in nieuw tabvenster PREFERENCES_MULTITABDUALMON;Multi-tab, indien beschikbaar op tweede monitor PREFERENCES_NAVGUIDEBRUSH;Navigator randkleur PREFERENCES_NAVIGATIONFRAME;Navigatie -PREFERENCES_NOISE;Ruisonderdrukking PREFERENCES_OUTDIR;Uitvoermap PREFERENCES_OUTDIRFOLDER;Sla op in map PREFERENCES_OUTDIRFOLDERHINT;Sla foto's op in andere map @@ -1065,8 +1049,6 @@ PREFERENCES_PRTPROFILE;Kleurprofiel PREFERENCES_PSPATH;Installatiemap Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Onthoud zoom % en pan startpunt PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Onthoud het zoom % en pan startpunt van de huidige afbeelding als er een nieuwe afbeelding wordt geopend.\n\nDeze optie werkt alleen in "Single Editor Tab Mode" en wanneer "Demozaïekmethode van het voorbeeld <100% zoom" hetzelfde is als "Gelijk aan PP3". -PREFERENCES_RGBDTL_LABEL;Maximum aantal 'threads' voor Ruisonderdrukking en Wavelet (gedeeld door 2) -PREFERENCES_RGBDTL_TOOLTIP;Ruisonderdrukking en Wavelet gebruiken ongeveer 128MB RAM voor een 10MPix afbeelding, of 512MB voor een 40MPix afbeelding en additioneel 128MB RAM per thread. Hoe meer threads parallel worden gebruikt, hoe sneller de bewerking. Laat de instelling op "0" staan om automatisch het maximale aantal threads te gebruiken dat mogelijk is. PREFERENCES_SELECTFONT;Kies lettertype PREFERENCES_SELECTFONT_COLPICKER;Font van de Kleurkiezer PREFERENCES_SELECTLANG;Selecteer taal @@ -1080,36 +1062,25 @@ PREFERENCES_SHOWDATETIME;Toon datum en tijd PREFERENCES_SHOWEXPOSURECOMPENSATION;Toon belichtingscompensatie PREFERENCES_SHOWFILMSTRIPTOOLBAR;Toon filmstrip werkbalk PREFERENCES_SHTHRESHOLD;Grenswaarde onderbelichting -PREFERENCES_SIMPLAUT;Gereedschap PREFERENCES_SINGLETAB;Enkel-tab: foto's openen in zelfde tabvenster PREFERENCES_SINGLETABVERTAB;Enkel-tab ('filmstrip') modus met verticale tabs -PREFERENCES_SMA;Klein (250x287) PREFERENCES_SND_BATCHQUEUEDONE;Verwerkingsrij klaar PREFERENCES_SND_HELP;Typ bestandsnaam (of niets: geen geluid).\nWindows: gebruik 'SystemDefault', 'SystemAsterisk', etc. voor systeemgeluiden.\nLinux: gebruik "complete", "window-attention" etc. voor systeemgeluiden PREFERENCES_SND_LNGEDITPROCDONE;Bewerking klaar PREFERENCES_SND_THRESHOLDSECS;na seconden PREFERENCES_STARTUPIMDIR;Standaardmap bij opstarten -PREFERENCES_STDAUT;Standaard PREFERENCES_TAB_BROWSER;Bestandsnavigator PREFERENCES_TAB_COLORMGR;Kleurbeheer PREFERENCES_TAB_DYNAMICPROFILE;Dynamisch Profielregel PREFERENCES_TAB_GENERAL;Algemeen PREFERENCES_TAB_IMPROC;Beeldverwerking -PREFERENCES_TAB_PERFORMANCE;Prestaties en Kwaliteit PREFERENCES_TAB_SOUND;Geluiden -PREFERENCES_TIMAX;Hoog -PREFERENCES_TINB;Aantal tegles -PREFERENCES_TISTD;Standaard PREFERENCES_TP_LABEL;Gereedschapspaneel: PREFERENCES_TP_USEICONORTEXT;Gebruik iconen ipv. tekst voor de tabbladen PREFERENCES_TP_VSCROLLBAR;Verberg de schuifbalk van het gereedschapspaneel PREFERENCES_TUNNELMETADATA;Kopieer Exif/IPTC/XMP-data onveranderd naar uitvoerbestand PREFERENCES_USEBUNDLEDPROFILES;Gebruik gebundelde profielen PREFERENCES_VIEW;Witbalans instelling van het uitvoerapparaat (monitor, TV, projector...) -PREFERENCES_WAVLEV;Vergroot wavelet ninveau voor kwaliteit 'hoog' -PREFERENCES_WLONE;Eén niveau -PREFERENCES_WLTWO;Twee niveaus -PREFERENCES_WLZER;Nee PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Te kopiëren parameters PROFILEPANEL_GLOBALPROFILES;Gebundelde profielen @@ -2111,8 +2082,10 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !EXIFFILTER_IMAGETYPE;Image type !EXIFPANEL_SHOWALL;Show all !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space !HISTORY_MSG_235;B&W - CM - Auto @@ -2141,10 +2114,16 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -2156,23 +2135,75 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !LENSPROFILE_CORRECTION_AUTOMATCH;Auto-matched correction parameters !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !PARTIALPASTE_ADVANCEDGROUP;Advanced Settings !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +!PARTIALPASTE_RAW_BORDER;Raw border +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !PREFERENCES_CROP;Crop editing !PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop area @@ -2185,9 +2216,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_LANG;Language +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show @@ -2204,6 +2238,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !TP_BWMIX_MIXC;Channel Mixer @@ -2222,6 +2257,12 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors !TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve !TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2238,8 +2279,13 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. -!TP_RAW_4PASS;4-Pass +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. !TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion @@ -2249,11 +2295,15 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels. !TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression diff --git a/rtdata/languages/Norsk BM b/rtdata/languages/Norsk BM index b433dc902..f61fa7a88 100644 --- a/rtdata/languages/Norsk BM +++ b/rtdata/languages/Norsk BM @@ -557,7 +557,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -573,13 +573,14 @@ TP_WBALANCE_TEMPERATURE;Temperatur !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -976,10 +977,16 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -991,9 +998,56 @@ TP_WBALANCE_TEMPERATURE;Temperatur !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1024,11 +1078,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1065,6 +1120,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1120,6 +1176,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1127,6 +1184,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1138,17 +1196,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1186,13 +1239,10 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1225,12 +1275,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1238,7 +1283,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1247,13 +1291,14 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1267,8 +1312,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1278,36 +1321,26 @@ TP_WBALANCE_TEMPERATURE;Temperatur !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1335,6 +1368,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1660,10 +1694,6 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1710,6 +1740,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1797,6 +1833,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1812,15 +1850,18 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1870,10 +1911,12 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1897,7 +1940,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1981,6 +2024,8 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2074,7 +2119,7 @@ TP_WBALANCE_TEMPERATURE;Temperatur !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index b9b336f3f..3558870b8 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -776,8 +776,6 @@ PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamięci podręczn PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejściowego PREFERENCES_PROPERTY;Własność PREFERENCES_PSPATH;Katalog w którym zainstalowany jest Adobe Photoshop -PREFERENCES_RGBDTL_LABEL;Maksymalna ilość wątków redukcji szumów -PREFERENCES_RGBDTL_TOOLTIP;Redukcja szumów potrzebuje około 128MB RAMu dla zdjęcia 10Mpix oraz 512MB dla zdjęcia 40Mpix, i dodatkowo 128MB dla każdego wątku. Im większa liczba równoległych wątków, tym krótszy czas egzekucji. Zostawienie ustawienia na "0" automatycznie użyje tyle wątków, ile możliwe. PREFERENCES_SELECTFONT;Wybierz czcionkę PREFERENCES_SELECTLANG;Wybierz język PREFERENCES_SELECTTHEME;Wybierz temat @@ -797,7 +795,6 @@ PREFERENCES_TAB_BROWSER;Przeglądarka plików PREFERENCES_TAB_COLORMGR;Zarządzanie kolorami PREFERENCES_TAB_GENERAL;Ogólne PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu -PREFERENCES_TAB_PERFORMANCE;Wydajność PREFERENCES_TAB_SOUND;Dźwięki PREFERENCES_TP_LABEL;Panel narzędzi: PREFERENCES_TP_USEICONORTEXT;Uzyj ikon w zakładkach zamiast tekstowych etykiet @@ -1464,7 +1461,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1474,8 +1471,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -1663,10 +1662,16 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1678,8 +1683,55 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1709,12 +1761,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1723,19 +1777,16 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_EQUALIZER;Wavelet levels !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation @@ -1751,11 +1802,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right !PREFERENCES_D50_OLD;5000K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1767,22 +1815,17 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1801,23 +1844,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1830,6 +1864,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. @@ -1904,6 +1939,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1923,14 +1964,19 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1974,7 +2020,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1990,7 +2038,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2057,6 +2105,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2129,7 +2179,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Polish (Latin Characters) b/rtdata/languages/Polish (Latin Characters) index 19ca6a4dd..27740a48c 100644 --- a/rtdata/languages/Polish (Latin Characters) +++ b/rtdata/languages/Polish (Latin Characters) @@ -776,8 +776,6 @@ PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamieci podrecznej PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejsciowego PREFERENCES_PROPERTY;Wlasnosc PREFERENCES_PSPATH;Katalog w ktorym zainstalowany jest Adobe Photoshop -PREFERENCES_RGBDTL_LABEL;Maksymalna ilosc watkow redukcji szumow -PREFERENCES_RGBDTL_TOOLTIP;Redukcja szumow potrzebuje okolo 128MB RAMu dla zdjecia 10Mpix oraz 512MB dla zdjecia 40Mpix, i dodatkowo 128MB dla kazdego watku. Im wieksza liczba rownoleglych watkow, tym krotszy czas egzekucji. Zostawienie ustawienia na "0" automatycznie uzyje tyle watkow, ile mozliwe. PREFERENCES_SELECTFONT;Wybierz czcionke PREFERENCES_SELECTLANG;Wybierz jezyk PREFERENCES_SELECTTHEME;Wybierz temat @@ -797,7 +795,6 @@ PREFERENCES_TAB_BROWSER;Przegladarka plikow PREFERENCES_TAB_COLORMGR;Zarzadzanie kolorami PREFERENCES_TAB_GENERAL;Ogolne PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu -PREFERENCES_TAB_PERFORMANCE;Wydajnosc PREFERENCES_TAB_SOUND;Dzwieki PREFERENCES_TP_LABEL;Panel narzedzi: PREFERENCES_TP_USEICONORTEXT;Uzyj ikon w zakladkach zamiast tekstowych etykiet @@ -1464,7 +1461,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1474,8 +1471,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_166;Exposure - Reset !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space @@ -1663,10 +1662,16 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1678,8 +1683,55 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1709,12 +1761,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1723,19 +1777,16 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PARTIALPASTE_EQUALIZER;Wavelet levels !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CMMBPC;Black point compensation @@ -1751,11 +1802,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right !PREFERENCES_D50_OLD;5000K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1767,22 +1815,17 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1801,23 +1844,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1830,6 +1864,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. @@ -1904,6 +1939,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1923,14 +1964,19 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1974,7 +2020,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1990,7 +2038,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2057,6 +2105,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2129,7 +2179,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrot: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index 961b18455..ba33f8228 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -1,11 +1,11 @@ -#01 2018-05-17 Digitalpix58 +#01 2018-07-25 Digitalpix58 ABOUT_TAB_BUILD;Versão ABOUT_TAB_CREDITS;Créditos ABOUT_TAB_LICENSE;Licença ABOUT_TAB_RELEASENOTES;Nota de Lançamento ABOUT_TAB_SPLASH;Splash -ADJUSTER_RESET_TO_DEFAULT;Restaurar ao padrão +ADJUSTER_RESET_TO_DEFAULT;Clique - restaurar para o valor padrão.\nCtrl+clique - restaurar para o valor inicial. BATCHQUEUE_AUTOSTART;Início automático BATCHQUEUE_AUTOSTARTHINT;Começa a processar automaticamente um novo trabalho. BATCHQUEUE_DESTFILENAME;Caminho e nome do arquivo @@ -17,10 +17,10 @@ CURVEEDITOR_AXIS_OUT;O: CURVEEDITOR_AXIS_RIGHT_TAN;RT: CURVEEDITOR_CURVE;Curva CURVEEDITOR_CURVES;Curvas -CURVEEDITOR_CUSTOM;Personalizados +CURVEEDITOR_CUSTOM;Personalizado CURVEEDITOR_DARKS;Escuros CURVEEDITOR_EDITPOINT_HINT;Ativar edição dos valores de entrada/saída do nó.\n\nClique com o btão direito do mouse num nó para selecioná-lo.\nClique com o botão direito do mouse no espaço vazio para desmarcar o nó. -CURVEEDITOR_HIGHLIGHTS;Destaques +CURVEEDITOR_HIGHLIGHTS;Realces CURVEEDITOR_LIGHTS;Luzes CURVEEDITOR_LINEAR;Linear CURVEEDITOR_LOADDLGLABEL;Carregar curva... @@ -45,7 +45,7 @@ DYNPROFILEEDITOR_MOVE_DOWN;Mover para Baixo DYNPROFILEEDITOR_MOVE_UP;Mover para Cima DYNPROFILEEDITOR_NEW;Novo DYNPROFILEEDITOR_NEW_RULE;Nva Regra de Perfil Dinâmico -DYNPROFILEEDITOR_PROFILE;Processando Perfil +DYNPROFILEEDITOR_PROFILE;Perfil de Processamento EDITWINDOW_TITLE;Edição de Imagem EDIT_OBJECT_TOOLTIP;Exibe um widget na janela de visualização que permite ajustar essa ferramenta. EDIT_PIPETTE_TOOLTIP;Para adicionar um ponto de ajuste à curva, segure a tecla Ctrl enquanto clica com o botão esquerdo no ponto desejado na visualização da imagem.\nPara ajustar o ponto, Mantenha pressionada a tecla Ctrl enquanto clica com o botão esquerdo na área correspondente na visualização, então solte Ctrl (amenos que deseje um fino controle) e enquanto ainda mantém pressionado o botão esquerdo do mouse, mova o mouse para cima ou para baixo para mover esse ponto para cima ou para baixo na curva. @@ -89,7 +89,7 @@ EXPORT_BYPASS_RAW_FF;Ignorar [raw] Flat-Field EXPORT_BYPASS_RAW_GREENTHRESH;Ignorar [raw] Equilíbrio Verde EXPORT_BYPASS_RAW_LINENOISE;Ignorar [raw] Filtro de Ruído de Linha EXPORT_BYPASS_RAW_LMMSE_ITERATIONS;Ignorar [raw] LMMSE Etapas de Aprimoramento -EXPORT_BYPASS_SHARPENEDGE;Ignorar Afiação de Borda +EXPORT_BYPASS_SHARPENEDGE;Ignorar Nitidez de Borda EXPORT_BYPASS_SHARPENING;Ignorar Nitidez EXPORT_BYPASS_SHARPENMICRO;Ignorar Microcontraste EXPORT_BYPASS_SH_HQ;Ignorar Sombras/Realces da Máscara de Nitidez @@ -150,7 +150,7 @@ FILEBROWSER_POPUPOPEN;Abrir FILEBROWSER_POPUPOPENINEDITOR;Abrir no Editor FILEBROWSER_POPUPPROCESS;Coloque na fila FILEBROWSER_POPUPPROCESSFAST;Coloque na fila (Exportação rápida) -FILEBROWSER_POPUPPROFILEOPERATIONS;Processando operações de perfil +FILEBROWSER_POPUPPROFILEOPERATIONS;Operações de perfil de processamento FILEBROWSER_POPUPRANK;Classificar FILEBROWSER_POPUPRANK0;Desclassificar FILEBROWSER_POPUPRANK1;Rank 1 * @@ -206,7 +206,7 @@ FILECHOOSER_FILTER_ANY;Todos os arquivos FILECHOOSER_FILTER_COLPROF;Perfis de Cores FILECHOOSER_FILTER_CURVE;Arquivos de curvas FILECHOOSER_FILTER_LCP;Perfis de correção de lentes -FILECHOOSER_FILTER_PP;Processando perfis +FILECHOOSER_FILTER_PP;Perfis de processamento FILECHOOSER_FILTER_SAME;Mesmo formato da foto atual FILECHOOSER_FILTER_TIFF;Arquivos TIFF GENERAL_ABOUT;Sobre @@ -229,7 +229,9 @@ GENERAL_NONE;None GENERAL_OK;OK GENERAL_OPEN;Abrir GENERAL_PORTRAIT;Retrato +GENERAL_RESET;Restaurar GENERAL_SAVE;Salvar +GENERAL_SAVE_AS;Salvar como... GENERAL_SLIDER;Barra de volume GENERAL_UNCHANGED;(Inalterado) GENERAL_WARNING;Atenção @@ -250,7 +252,7 @@ HISTORY_MSG_1;Foto Carregada HISTORY_MSG_2;PP3 Perfil carregado HISTORY_MSG_3;PP3 Perfil alterado HISTORY_MSG_4;Histórico de navegação -HISTORY_MSG_5;Exposição - Luminosidade +HISTORY_MSG_5;Exposição - Claridade HISTORY_MSG_6;Exposição - Contraste HISTORY_MSG_7;Exposição - Preto HISTORY_MSG_8;Exposição - Compensação @@ -259,7 +261,7 @@ HISTORY_MSG_10;Exposição - Compressão de sombra HISTORY_MSG_11;Exposição - Curva de tom 1 HISTORY_MSG_12;Exposição - Níveis automáticos HISTORY_MSG_13;Exposição - Clip -HISTORY_MSG_14;L*a*b* - Luminosidade +HISTORY_MSG_14;L*a*b* - Claridade HISTORY_MSG_15;L*a*b* - Contraste HISTORY_MSG_16;- HISTORY_MSG_17;- @@ -268,8 +270,8 @@ HISTORY_MSG_19;L*a*b* - L* curva HISTORY_MSG_20;Nitidez HISTORY_MSG_21;USM - Raio HISTORY_MSG_22;USM - Montante -HISTORY_MSG_23;USM - Limiar -HISTORY_MSG_24;USM - Nitidez nas bordas +HISTORY_MSG_23;USM - Limite +HISTORY_MSG_24;USM - Nitidez somente nas bordas HISTORY_MSG_25;USM - Raio de detecção de borda HISTORY_MSG_26;USM - Tolerância de borda HISTORY_MSG_27;USM - Controle de halo @@ -298,7 +300,7 @@ HISTORY_MSG_49;DCP illuminante HISTORY_MSG_50;Sombras/Realces HISTORY_MSG_51;S/H - Realces HISTORY_MSG_52;S/H - Sombras -HISTORY_MSG_53;S/H - Largura tonal do realces +HISTORY_MSG_53;S/H - Largura tonal dos realces HISTORY_MSG_54;S/H - Largura tonal das sombras HISTORY_MSG_55;S/H - Contraste local HISTORY_MSG_56;S/H - Raio @@ -333,7 +335,7 @@ HISTORY_MSG_84;Correção de perspectiva HISTORY_MSG_85;Correção de Lente - Arquivo LCP HISTORY_MSG_86;RGB Curvas - Modo de lLuminosidade HISTORY_MSG_87;Redução de Ruído por Impulso -HISTORY_MSG_88;Limiar de Impulso NR +HISTORY_MSG_88;Limite de Impulso NR HISTORY_MSG_89;Redução de Ruído HISTORY_MSG_90;NR - Luminância HISTORY_MSG_91;NR - Crominância mestre @@ -352,8 +354,8 @@ HISTORY_MSG_103;HSV - Valor HISTORY_MSG_104;HSV Equalizador HISTORY_MSG_105;Defringe HISTORY_MSG_106;Defringe - Raio -HISTORY_MSG_107;Defringe - Limiar -HISTORY_MSG_108;Exposição - Limiar HLC +HISTORY_MSG_107;Defringe - Limite +HISTORY_MSG_108;Exposição - Limite HLC HISTORY_MSG_109;Redimensionar - Caixa delimitadora HISTORY_MSG_110;Redimensionar - Aplica-se a HISTORY_MSG_111;L*a*b* - Evite mudança de cor @@ -402,8 +404,8 @@ HISTORY_MSG_153;Vibração - Tons saturados HISTORY_MSG_154;Vibração - Protege os tons da película HISTORY_MSG_155;Vibração - Evita mudança de cor HISTORY_MSG_156;Vibração - Link pastel/saturado -HISTORY_MSG_157;Vibração - Limiar P/S -HISTORY_MSG_158;TM - Robustez +HISTORY_MSG_157;Vibração - Limite P/S +HISTORY_MSG_158;TM - Intensidade HISTORY_MSG_159;TM - Borda parando HISTORY_MSG_160;TM - Escala HISTORY_MSG_161;TM - Reponderar iteração @@ -425,7 +427,7 @@ HISTORY_MSG_176;CAM02 - Visualizando surround HISTORY_MSG_177;CAM02 - Luminosidade de cena HISTORY_MSG_178;CAM02 - Visualizando luminosidade HISTORY_MSG_179;CAM02 - Modelo de ponto branco -HISTORY_MSG_180;CAM02 - Luminosidade (J) +HISTORY_MSG_180;CAM02 - Claridade (J) HISTORY_MSG_181;CAM02 - Croma (C) HISTORY_MSG_182;CAM02 - Automático CAT02 HISTORY_MSG_183;CAM02 - Contraste (J) @@ -456,7 +458,7 @@ HISTORY_MSG_207;Defringe - Curva de matiz HISTORY_MSG_208;Equalizador WB - B/R HISTORY_MSG_210;GF - Ângulo HISTORY_MSG_211;Filtro Graduado -HISTORY_MSG_212;VF - Robustez +HISTORY_MSG_212;VF - Intensidade HISTORY_MSG_213;Filtro de Vinheta HISTORY_MSG_214;Preto-e-Branco HISTORY_MSG_215;P&B - CM - Vermelho @@ -482,18 +484,18 @@ HISTORY_MSG_234;P&B - Tipo de curva 'posterior' HISTORY_MSG_235;P&B - Misturador de canal automático HISTORY_MSG_236;--sem uso-- HISTORY_MSG_237;P&B - Misturador -HISTORY_MSG_238;GF - Pena -HISTORY_MSG_239;GF - Robustez +HISTORY_MSG_238;GF - Difusão +HISTORY_MSG_239;GF - Intensidade HISTORY_MSG_240;GF - Centro -HISTORY_MSG_241;VF - Pena +HISTORY_MSG_241;VF - Difusão HISTORY_MSG_242;VF - Arredondamento HISTORY_MSG_243;VC - Raio -HISTORY_MSG_244;VC - Robustez +HISTORY_MSG_244;VC - Intensidade HISTORY_MSG_245;VC - Centro HISTORY_MSG_246;L*a*b* - Curva CL HISTORY_MSG_247;L*a*b* - Curva LH HISTORY_MSG_248;L*a*b* - Curva HH -HISTORY_MSG_249;CbDL - Limiar +HISTORY_MSG_249;CbDL - Limite HISTORY_MSG_250;NR - Aprimorada HISTORY_MSG_251;P&B - Algorítimo HISTORY_MSG_252;CbDL - Película tar/prot @@ -525,9 +527,9 @@ HISTORY_MSG_277;--sem uso-- HISTORY_MSG_278;CT - Preserve luminância HISTORY_MSG_279;CT - Sombras HISTORY_MSG_280;CT - Realces -HISTORY_MSG_281;CT - Sat. robustez -HISTORY_MSG_282;CT - Sat. limiar -HISTORY_MSG_283;CT - Robustez +HISTORY_MSG_281;CT - Sat. intensidade +HISTORY_MSG_282;CT - Sat. limite +HISTORY_MSG_283;CT - Intensidade HISTORY_MSG_284;CT - Proteção automática sat. HISTORY_MSG_285;NR - Mediano - Método HISTORY_MSG_286;NR - Mediano - Tipo @@ -538,7 +540,7 @@ HISTORY_MSG_290;Nível de Preto - Vermelho HISTORY_MSG_291;Nível de Preto - Verde HISTORY_MSG_292;Nível de Preto - Azul HISTORY_MSG_293;Simulação de Filme -HISTORY_MSG_294;Simulação de Filme - Robustez +HISTORY_MSG_294;Simulação de Filme - Intensidade HISTORY_MSG_295;Simulação de Filme - Filme HISTORY_MSG_296;NR - Curva de luminância HISTORY_MSG_297;NR - Modo @@ -556,7 +558,7 @@ HISTORY_MSG_308;W - Direção do processo HISTORY_MSG_309;W - ES - Detalhe HISTORY_MSG_310;W - Residual - Céu tar/prot HISTORY_MSG_311;W - Níveis de Wavelet -HISTORY_MSG_312;W - Residual - Limiar de sombras +HISTORY_MSG_312;W - Residual - Limite de sombras HISTORY_MSG_313;W - Croma - Sat/past HISTORY_MSG_314;W - Gamut - Reduzir artefatos HISTORY_MSG_315;W - Residual - Contraste @@ -572,7 +574,7 @@ HISTORY_MSG_324;W - Croma - Pastel HISTORY_MSG_325;W - Croma - Saturado HISTORY_MSG_326;W - Croma - Método HISTORY_MSG_327;W - Contraste - Aplicar para -HISTORY_MSG_328;W - Croma - Robustez do link +HISTORY_MSG_328;W - Croma - Intensidade do link HISTORY_MSG_329;W - Tonificação - Opacidade RG HISTORY_MSG_330;W - Tonificação - Opacidade BY HISTORY_MSG_331;W - Níveis de contraste - Extra @@ -580,11 +582,11 @@ HISTORY_MSG_332;W - Método de ladrilhos HISTORY_MSG_333;W - Residual - Sombras HISTORY_MSG_334;W - Residual - Croma HISTORY_MSG_335;W - Residual - Realces -HISTORY_MSG_336;W - Residual - Limiar de realces +HISTORY_MSG_336;W - Residual - Limite de realces HISTORY_MSG_337;W - Residual - Tonalidade do céu HISTORY_MSG_338;W - ES - Raio -HISTORY_MSG_339;W - ES - Robustez -HISTORY_MSG_340;W - Robustez +HISTORY_MSG_339;W - ES - Intensidade +HISTORY_MSG_340;W - Intensidade HISTORY_MSG_341;W - Performance de borda HISTORY_MSG_342;W - ES - Primeiro nível HISTORY_MSG_343;W - Níveis cromáticos @@ -599,15 +601,15 @@ HISTORY_MSG_351;W - Residual - Curva HH HISTORY_MSG_352;W - Fundo HISTORY_MSG_353;W - ES - Sensibilidade Gradiente HISTORY_MSG_354;W - ES - Aprimorada -HISTORY_MSG_355;W - ES - Limiar baixo -HISTORY_MSG_356;W - ES - Limiar alto +HISTORY_MSG_355;W - ES - Limite baixo +HISTORY_MSG_356;W - ES - Limite alto HISTORY_MSG_357;W - Remoção de ruído - Link com ES HISTORY_MSG_358;W - Gamut - CH -HISTORY_MSG_359;Hot/Dead - Limiar +HISTORY_MSG_359;Hot/Dead - Limite HISTORY_MSG_360;TM - Gamma HISTORY_MSG_361;W - Final - Balanço cromático HISTORY_MSG_362;W - Residual - Método de compressão -HISTORY_MSG_363;W - Residual - Robustez da compressão +HISTORY_MSG_363;W - Residual - Intensidade da compressão HISTORY_MSG_364;W - Final - Balanço de Contraste HISTORY_MSG_365;W - Final - Balanço Delta HISTORY_MSG_366;W - Residual - Gamma de compressão @@ -618,7 +620,7 @@ HISTORY_MSG_370;W - Final - Curva de contraste local HISTORY_MSG_371;Pós Redimensionamento de Nitidez HISTORY_MSG_372;PRS USM - Raio HISTORY_MSG_373;PRS USM - Montante -HISTORY_MSG_374;PRS USM - Limiar +HISTORY_MSG_374;PRS USM - Limite HISTORY_MSG_375;PRS USM - Nitidez apenas nas bordas HISTORY_MSG_376;PRS USM - Raio de detecção de borda HISTORY_MSG_377;PRS USM - Tolerância de borda @@ -654,28 +656,28 @@ HISTORY_MSG_406;W - ES - Pixels vizinhos HISTORY_MSG_407;Retinex - Método HISTORY_MSG_408;Retinex - Raio HISTORY_MSG_409;Retinex - Contraste -HISTORY_MSG_410;Retinex - Offset -HISTORY_MSG_411;Retinex - Robustez +HISTORY_MSG_410;Retinex - Compensação +HISTORY_MSG_411;Retinex - Intensidade HISTORY_MSG_412;Retinex - Gradiente de Gaussian HISTORY_MSG_413;Retinex - Contraste HISTORY_MSG_414;Retinex - Histograma - Laboratório -HISTORY_MSG_415;Retinex - Transmição +HISTORY_MSG_415;Retinex - Transmissão HISTORY_MSG_416;Retinex HISTORY_MSG_417;Retinex - Mediana de transmissão -HISTORY_MSG_418;Retinex - Limiar +HISTORY_MSG_418;Retinex - Limite HISTORY_MSG_419;Retinex - Espaço colorido HISTORY_MSG_420;Retinex - Histograma - HSL HISTORY_MSG_421;Retinex - Gamma HISTORY_MSG_422;Retinex - Gamma -HISTORY_MSG_423;Retinex - Inclinação gamma -HISTORY_MSG_424;Retinex - Limiar HL +HISTORY_MSG_423;Retinex - Declive gamma +HISTORY_MSG_424;Retinex - Limite HL HISTORY_MSG_425;Retinex - Base de registro HISTORY_MSG_426;Retinex - Equalizador de matiz HISTORY_MSG_427;Intenção de renderização de saída HISTORY_MSG_428;Intenção de renderização do monitor HISTORY_MSG_429;Retinex - Iterações HISTORY_MSG_430;Retinex - Gradiente de transmissão -HISTORY_MSG_431;Retinex - Gradiente de robustez +HISTORY_MSG_431;Retinex - Gradiente de intensidade HISTORY_MSG_432;Retinex - M - Realces HISTORY_MSG_433;Retinex - M - Realces TW HISTORY_MSG_434;Retinex - M - Sombras @@ -695,9 +697,9 @@ HISTORY_MSG_452;PS - Mostrar movimento HISTORY_MSG_453;PS - Mostrar apenas a máscara HISTORY_MSG_457;PS - Verificar vermelho/azul HISTORY_MSG_462;PS - Verificar verde -HISTORY_MSG_464;PS - Máscara de movimento borrar -HISTORY_MSG_465;PS - Raio borrar -HISTORY_MSG_468;PS - Preencher furos +HISTORY_MSG_464;PS - Máscara de movimento de desfoque +HISTORY_MSG_465;PS - Raio de desfoque +HISTORY_MSG_468;PS - Preencher buracos HISTORY_MSG_469;PS - Mediano HISTORY_MSG_471;PS - Correção de movimento HISTORY_MSG_472;PS - Transições suaves @@ -716,24 +718,84 @@ HISTORY_MSG_484;CAM02 - Cena automática Yb HISTORY_MSG_485;Correção de Lente HISTORY_MSG_486;Correção de Lente - Câmera HISTORY_MSG_487;Correção de Lente - Lente +HISTORY_MSG_488;Compressão de Amplitude Dinâmica(DRC) +HISTORY_MSG_489;DRC - Limite +HISTORY_MSG_490;DRC - Montante HISTORY_MSG_491;Balanço de Branco HISTORY_MSG_492;Curvas RGB HISTORY_MSG_493;L*a*b* Ajustes HISTORY_MSG_CLAMPOOG;Recorte de cor fora do gamut HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Correção de cor +HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Limite de contraste HISTORY_MSG_HISTMATCHING;Curva de Tom Auto-compatível +HISTORY_MSG_ICM_OUTPUT_PRIMARIESPrimárias do perfil de saída +HISTORY_MSG_ICM_OUTPUT_TEMP;Saída IccV4 D iluminante +HISTORY_MSG_ICM_OUTPUT_TYPE;Tipo de perfil de saída +HISTORY_MSG_ICM_WORKING_GAMMA;Gamma de trabalho +HISTORY_MSG_ICM_WORKING_SLOPE;Declive de trabalho +HISTORY_MSG_ICM_WORKING_TRC_METHOD;Método de trabalho TRC HISTORY_MSG_LOCALCONTRAST_AMOUNT;Contraste Local - Montante HISTORY_MSG_LOCALCONTRAST_DARKNESS;Contraste Local - Escuridão HISTORY_MSG_LOCALCONTRAST_ENABLED;Contraste Local -HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Contraste Local - Luminosidade +HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Contraste Local - Claridade HISTORY_MSG_LOCALCONTRAST_RADIUS;Contraste Local - Raio HISTORY_MSG_METADATA_MODE;Modo de cópia de metadados +HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontraste - Limite de contraste +HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Método Demosaico para Movimento HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Direção do filtro de ruído de linha HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;Filtros de linha PDAF +HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Limite de contraste +HISTORY_MSG_RAW_BORDER;Borda raw +HISTORY_MSG_RESIZE_ALLOWUPSCALING;Redimensionar - Permitir escalonamento +HISTORY_MSG_SHARPENING_CONTRAST;Nitidez - Limite de contraste +HISTORY_MSG_SOFTLIGHT_ENABLED;Luz suave +HISTORY_MSG_SOFTLIGHT_STRENGTH;Luz suave - Intensidade +HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Âncora HISTORY_NEWSNAPSHOT;Adicionar HISTORY_NEWSNAPSHOT_TOOLTIP;Atalho: Alt-s HISTORY_SNAPSHOT;Instantâneo HISTORY_SNAPSHOTS;Instantâneos +ICCPROFCREATOR_ADD_PARAM_IN_DESC;Anexar os valores Gamma e Declive para a descrição +ICCPROFCREATOR_COPYRIGHT;Direito Autoral: +ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Restaurar para o direito autoral padrão, concedido a "RawTherapee, CC0" +ICCPROFCREATOR_CUSTOM;Personalizado +ICCPROFCREATOR_DESCRIPTION;Descrição: +ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Deixe em branco para configurar a descrição padrão +ICCPROFCREATOR_GAMMA;Gamma +ICCPROFCREATOR_ICCVERSION;Versão do perfil gerado: +ICCPROFCREATOR_ILL;Iluminante: +ICCPROFCREATOR_ILL_41;D41 +ICCPROFCREATOR_ILL_50;D50 +ICCPROFCREATOR_ILL_55;D55 +ICCPROFCREATOR_ILL_60;D60 +ICCPROFCREATOR_ILL_65;D65 +ICCPROFCREATOR_ILL_80;D80 +ICCPROFCREATOR_ILL_DEF;Padrão +ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_ILL_TOOLTIP;Só podes configurar o iluminante com perfis ICC v4 +ICCPROFCREATOR_PRIMARIES;Primárias: +ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +ICCPROFCREATOR_PRIM_BEST;RGB superior +ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BLUX;Azul X +ICCPROFCREATOR_PRIM_BLUY;Azul Y +ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_GREX;Verde X +ICCPROFCREATOR_PRIM_GREY;Verde Y +ICCPROFCREATOR_PRIM_PROPH;Prophoto +ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_REDX;Vermelho X +ICCPROFCREATOR_PRIM_REDY;Vermelho Y +ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PRIM_TOOLTIP;Só podes configurar Primárias Personalizadas com perfis ICC v4 +ICCPROFCREATOR_PRIM_WIDEG;Gamut ampla +ICCPROFCREATOR_PROF_V2;ICC v2 +ICCPROFCREATOR_PROF_V4;ICC v4 +ICCPROFCREATOR_SAVEDIALOG_TITLE;Salvar o perfil ICC como... +ICCPROFCREATOR_SLOPE;Declive +ICCPROFCREATOR_TRC_PRESET;Curva de resposta do tom: IPTCPANEL_CATEGORY;Categoria IPTCPANEL_CATEGORYHINT;Identifica o assunto da imagem na opinião do provedor. IPTCPANEL_CITY;Cidade @@ -781,6 +843,7 @@ LENSPROFILE_CORRECTION_LCPFILE;Arquivo LCP LENSPROFILE_CORRECTION_MANUAL;Parâmetros de correção manual LENSPROFILE_LENS_WARNING;Aviso: o fator de corte usado para o perfil da lente é maior que o fator de corte da câmera, os resultados podem estar errados. MAIN_BUTTON_FULLSCREEN;Tela cheia +MAIN_BUTTON_ICCPROFCREATOR;Criador de Perfil ICC MAIN_BUTTON_NAVNEXT_TOOLTIP;Navegue até a próxima imagem relativa à imagem aberta no Editor.\nAtalho: Shift-F4\n\nPara navegar até a próxima imagem relativa à miniatura selecionada no Navegador de Arquivos ou no Diapositivo:\nAtalho: F4 MAIN_BUTTON_NAVPREV_TOOLTIP;Navegue até a imagem anterior relativa à imagem aberta no Editor.\nAtalho: Shift-F3\n\nPara navegar até a imagem anterior relativa à miniatura selecionada no Navegador de Arquivos ou no Diapositivo:\nAtalho: F3 MAIN_BUTTON_NAVSYNC_TOOLTIP;Sincronize o Navegador de Arquivos ou o Diapositivo com o Editor para revelar a miniatura da imagem aberta no momento e limpe os filtros ativos.\nAtalho: x\n\nComo acima, mas sem limpar os filtros ativos:\nAtalho: y\n(Observe que a miniatura da imagem aberta não será mostrada se estiver filtrada). @@ -848,11 +911,12 @@ MAIN_TOOLTIP_PREVIEWFOCUSMASK;Pré-visualize a Máscara de Foco.\nAtalho: MAIN_TOOLTIP_PREVIEWG;Pré-visualize o Canal verde.\nAtalho: g MAIN_TOOLTIP_PREVIEWL;Pré-visualize a Luminosidade.\nAtalho: v\n\n0.299*R + 0.587*G + 0.114*B MAIN_TOOLTIP_PREVIEWR;Pré-visualize o Canal vermelho.\nAtalho: r +MAIN_TOOLTIP_PREVIEWSHARPMASK;Pré-visualize a Máscara de Contraste de Nitidez.\nAtalho: Nenhum\n\nSó funciona quando a nitidez e o zoom estão ativados >= 100%. MAIN_TOOLTIP_QINFO;Informação rápida na imagem.\nAtalho: i MAIN_TOOLTIP_SHOWHIDELP1;Mostrar/Ocultar o painel esquerdo.\nShortcut: l MAIN_TOOLTIP_SHOWHIDERP1;Mostrar/Ocultar o painel direito.\nAtalho: Alt-l MAIN_TOOLTIP_SHOWHIDETP1;Mostrar/Ocultar o painel superior.\nAtalho: Shift-l -MAIN_TOOLTIP_THRESHOLD;Limiar +MAIN_TOOLTIP_THRESHOLD;Limite MAIN_TOOLTIP_TOGGLE;Alternar o Antes/Depois visualização.\nAtalho: Shift-b MONITOR_PROFILE_SYSTEM;Sistema padrão NAVIGATOR_B;B: @@ -884,9 +948,9 @@ PARTIALPASTE_COMPOSITIONGROUP;Configurações de composição PARTIALPASTE_CROP;Cortar PARTIALPASTE_DARKFRAMEAUTOSELECT;Auto-seleção de quadro escuro PARTIALPASTE_DARKFRAMEFILE;Arquivo de quadro escuro -PARTIALPASTE_DEFRINGE;Defeito +PARTIALPASTE_DEFRINGE;Defringe PARTIALPASTE_DETAILGROUP;Configurações de detalhes -PARTIALPASTE_DIALOGLABEL;Perfil de processamento de colagem parcial +PARTIALPASTE_DIALOGLABEL;Perfil de processamento colar parcial PARTIALPASTE_DIRPYRDENOISE;Redução de ruído PARTIALPASTE_DIRPYREQUALIZER;Contraste pelos níveis de detalhe PARTIALPASTE_DISTORTION;Correção de distorção @@ -896,7 +960,7 @@ PARTIALPASTE_EVERYTHING;Tudo PARTIALPASTE_EXIFCHANGES;Exif PARTIALPASTE_EXPOSURE;Exposição PARTIALPASTE_FILMSIMULATION;Simulação de filme -PARTIALPASTE_FLATFIELDAUTOSELECT;Auto-seleção de campo plano +PARTIALPASTE_FLATFIELDAUTOSELECT;Seleção automática de campo plano PARTIALPASTE_FLATFIELDBLURRADIUS;Raio de desfoque de campo plano PARTIALPASTE_FLATFIELDBLURTYPE;Tipo de desfoque de campo plano PARTIALPASTE_FLATFIELDCLIPCONTROL;Controle de clipe de campo plano @@ -918,6 +982,7 @@ PARTIALPASTE_PREPROCESS_DEADPIXFILT;Filtro de pixels mortos PARTIALPASTE_PREPROCESS_GREENEQUIL;Equilíbrio verde PARTIALPASTE_PREPROCESS_HOTPIXFILT;Filtro de pixel quente PARTIALPASTE_PREPROCESS_LINEDENOISE;Filtro de ruído de linha +PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;Filtro de linhas PDAF PARTIALPASTE_PRSHARPENING;Nitidez pós-redimensionamento PARTIALPASTE_RAWCACORR_AUTO;Auto correção CA PARTIALPASTE_RAWCACORR_CAREDBLUE;vermelho & azul CA @@ -925,6 +990,7 @@ PARTIALPASTE_RAWEXPOS_BLACK;Níveis de preto PARTIALPASTE_RAWEXPOS_LINEAR;Correção de ponto branco PARTIALPASTE_RAWEXPOS_PRESER;preservação do realce PARTIALPASTE_RAWGROUP;Configurações Raw +PARTIALPASTE_RAW_BORDER;Borda raw PARTIALPASTE_RAW_DCBENHANCE;Aprimoramento DCB PARTIALPASTE_RAW_DCBITERATIONS;Iterações DCB PARTIALPASTE_RAW_DMETHOD;Método demosaico @@ -937,22 +1003,18 @@ PARTIALPASTE_RETINEX;Retinex PARTIALPASTE_RGBCURVES;Curvas RGB PARTIALPASTE_ROTATION;Rotação PARTIALPASTE_SHADOWSHIGHLIGHTS;Sombras/realces -PARTIALPASTE_SHARPENEDGE;Arestas +PARTIALPASTE_SHARPENEDGE;Bordas PARTIALPASTE_SHARPENING;Nitidez (USM/RL) PARTIALPASTE_SHARPENMICRO;Microcontraste +PARTIALPASTE_SOFTLIGHT;Luz suave +PARTIALPASTE_TM_FATTAL;Compressão de Amplitude Dinâmica(DRC) PARTIALPASTE_VIBRANCE;Vibração PARTIALPASTE_VIGNETTING;Correção de vinheta PARTIALPASTE_WHITEBALANCE;Balanço de branco PREFERENCES_ADD;Adicionar PREFERENCES_APPLNEXTSTARTUP;é necessário reiniciar -PREFERENCES_AUTLISLOW;Baixo -PREFERENCES_AUTLISMAX;Max - Média de todos os mosaicos -PREFERENCES_AUTLISSTD;Alto -PREFERENCES_AUTLISVLOW;Nenhum -PREFERENCES_AUTLOW;Baixo PREFERENCES_AUTOMONPROFILE;Usar o perfil de cores do monitor principal do sistema operacional PREFERENCES_AUTOSAVE_TP_OPEN;Salvar automaticamente ferramentas recolhidas/expandidas\nestado antes de sair -PREFERENCES_AUTSTD;Padrão PREFERENCES_BATCH_PROCESSING;Processamento em Lote PREFERENCES_BEHADDALL;Tudo para 'Adicionar' PREFERENCES_BEHADDALLHINT;Definir todos os parâmetros para o Adicionar modo.\nAjustes de parâmetros no painel de ferramentas de lote serão deltas para os valores armazenados. @@ -982,7 +1044,7 @@ PREFERENCES_CURVEBBOXPOS_ABOVE;Acima PREFERENCES_CURVEBBOXPOS_BELOW;Abaixo PREFERENCES_CURVEBBOXPOS_LEFT;Esquerda PREFERENCES_CURVEBBOXPOS_RIGHT;Direita -PREFERENCES_CUSTPROFBUILD;Construtor de Perfis de Processamento Customizado +PREFERENCES_CUSTPROFBUILD;Construtor de Perfis de Processamento Personalizado PREFERENCES_CUSTPROFBUILDHINT;Arquivo executável (ou script) chamado quando um novo perfil de processamento inicial deve ser gerado para uma imagem.\n\nO caminho do arquivo de comunicação (*.ini estilo, a.k.a. "Arquivo chave") é adicionado como um parâmetro de linha de comando. Ele contém vários parâmetros necessários para os scripts e a imagem Exif para permitir uma geração de perfil de processamento baseada em regras.\n\nATENÇÃO: Precisas usar aspas duplas quando estiver usando caminhos que contenham espaços. PREFERENCES_CUSTPROFBUILDKEYFORMAT;Formato de chaves PREFERENCES_CUSTPROFBUILDKEYFORMAT_NAME;Nome @@ -999,8 +1061,6 @@ PREFERENCES_DARKFRAMESHOTS;tiros PREFERENCES_DARKFRAMETEMPLATES;modelos PREFERENCES_DATEFORMAT;Formato de data PREFERENCES_DATEFORMATHINT;Podes usar as seguintes sequências de formatação:\n%y - ano\n%m - mês\n%d - dia\n\nPor exemplo, o padrão ISO 8601 dita o formato de data da seguinte forma:\n%y-%m-%d -PREFERENCES_DAUB_LABEL;Use as wavelets Daubechies D6 em vez de D4 -PREFERENCES_DAUB_TOOLTIP;As ferramentas Redução de Ruído e Níveis de Wavelet usam uma wavelet mãe Daubechies. A escolha de D6 em vez de D4, aumentará o número de coeficientes ortogonais Daubechies e a provável melhora da qualidade dos níveis de pequena escala, sem aumento de memória ou tempo de processamento entre os dois. PREFERENCES_DIRDARKFRAMES;Diretório de quadros escuros PREFERENCES_DIRECTORIES;Diretórios PREFERENCES_DIRHOME;Diretório inicial @@ -1010,7 +1070,6 @@ PREFERENCES_DIRSELECTDLG;Selecione Diretório de Imagens na Inicialização... PREFERENCES_DIRSOFTWARE;Diretório de instalação PREFERENCES_EDITORCMDLINE;Linha de comando personalizada PREFERENCES_EDITORLAYOUT;Layout do Editor -PREFERENCES_EXPAUT;Especialista PREFERENCES_EXTERNALEDITOR;Editor Externo PREFERENCES_FBROWSEROPTS;Navegador de Arquivos / Opções de Miniaturas PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Barra de ferramentas do navegador de arquivos de linha única\n(desmarque para exibição de baixa resolução) @@ -1041,7 +1100,7 @@ PREFERENCES_GREYSC18;Yb=18 CIE L#50 PREFERENCES_GREYSCA;Automático PREFERENCES_HISTOGRAMPOSITIONLEFT;Histograma no painel esquerdo PREFERENCES_HISTOGRAMWORKING;Use o perfil de trabalho para o histograma principal e o Navegador -PREFERENCES_HISTOGRAM_TOOLTIP;Se ativado, o perfil de trabalho é usado para renderizar o histograma principal e o painel Navegador, caso contrário, o perfil de saída corrigido por gama é usado. +PREFERENCES_HISTOGRAM_TOOLTIP;Se ativado, o perfil de trabalho é usado para renderizar o histograma principal e o painel Navegador, caso contrário, o perfil de saída corrigido por gamma é usado. PREFERENCES_HLTHRESHOLD;Limite para realces recortados PREFERENCES_ICCDIR;Diretório contendo perfis de cores PREFERENCES_IMG_RELOAD_NEEDED;Essas alterações requerem que a imagem seja recarregada (ou que uma nova imagem seja aberta) para terem efeito. @@ -1056,20 +1115,14 @@ PREFERENCES_INTENT_SATURATION;Saturação PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Mostrar miniatura JPEG incorporada se raw não estiver editada PREFERENCES_LANG;Linguagem PREFERENCES_LANGAUTODETECT;Use a linguagem do sistema -PREFERENCES_LEVAUTDN;Nível de remoção de ruídos -PREFERENCES_LEVDN;Tamanho da célula -PREFERENCES_LISS;Auto-suavização multizona -PREFERENCES_MAX;Maxi (Mosaico) PREFERENCES_MAXRECENTFOLDERS;Número máximo de pastas recentes -PREFERENCES_MED;Médio (Mosaico/2) PREFERENCES_MENUGROUPEXTPROGS;Grupo "Abrir com" PREFERENCES_MENUGROUPFILEOPERATIONS;Grupo "operações de Arquivo" PREFERENCES_MENUGROUPLABEL;Grupo "Etiqueta de cor" -PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupo "Processando operações de perfil" +PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupo "Operações de perfil de processamento" PREFERENCES_MENUGROUPRANK;Grupo "Rank" PREFERENCES_MENUOPTIONS;Opções do Menu de Contexto PREFERENCES_METADATA;Metadados -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;Intenção de renderização padrão PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Perfil de cor padrão @@ -1078,7 +1131,6 @@ PREFERENCES_MULTITAB;Modo de Mútiplas Abas do Editor PREFERENCES_MULTITABDUALMON;Múltiplas Abas do Editor no Modo de Janela Própria PREFERENCES_NAVGUIDEBRUSH;Cor do guia do navegador PREFERENCES_NAVIGATIONFRAME;Navegação -PREFERENCES_NOISE;Redução de Ruído PREFERENCES_OUTDIR;Diretório de Saída PREFERENCES_OUTDIRFOLDER;Salvar na pasta PREFERENCES_OUTDIRFOLDERHINT;Salvar imagens na pasta selecionada. @@ -1099,14 +1151,14 @@ PREFERENCES_PREVDEMO_FAST;Rápido PREFERENCES_PREVDEMO_LABEL;Método Demosaicing usado para a visualização em <100% zoom: PREFERENCES_PREVDEMO_SIDECAR;Como no PP3 PREFERENCES_PRINTER;Impressora (Soft-Proofing) -PREFERENCES_PROFILEHANDLING;Processamento de Tratamento de Perfil -PREFERENCES_PROFILELOADPR;Processando prioridade de carregamento do perfil +PREFERENCES_PROFILEHANDLING;Manuseio de Perfil de Processamento +PREFERENCES_PROFILELOADPR;Prioridade de carregamento do perfil de processamento PREFERENCES_PROFILEPRCACHE;Perfil no cache PREFERENCES_PROFILEPRFILE;Perfil próximo ao arquivo de entrada -PREFERENCES_PROFILESAVEBOTH;Salve o perfil de processamento no cache e próximo ao arquivo de entrada +PREFERENCES_PROFILESAVEBOTH;Salvar o perfil de processamento no cache e próximo ao arquivo de entrada PREFERENCES_PROFILESAVECACHE;Salvar o perfil de processamento no cache PREFERENCES_PROFILESAVEINPUT;Salvar o perfil de processamento próximo ao arquivo de entrada -PREFERENCES_PROFILESAVELOCATION;Processando o local de salvamento do perfil +PREFERENCES_PROFILESAVELOCATION;Local de salvamento do perfil de processamento PREFERENCES_PROFILE_NONE;Nenhum PREFERENCES_PROPERTY;Propriedade PREFERENCES_PRTINTENT;Intenção de renderização @@ -1114,8 +1166,6 @@ PREFERENCES_PRTPROFILE;Perfil de cor PREFERENCES_PSPATH;Diretório de instalação do Adobe Photoshop PREFERENCES_REMEMBERZOOMPAN;Lembre-se de zoom % e compensar pan PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Lembre-se do zoom % e de compensar o pan da imagem atual ao abrir uma nova imagem.\n\nEsta opção só funciona em "Modo da Aba do Editor Único" e quando "o método Demosaicing utilizado para a pré-visualização em <100% zoom" está definido como "Como no PP3". -PREFERENCES_RGBDTL_LABEL;Número máximo de threads para Redução de Ruído e Níveis de Wavelet -PREFERENCES_RGBDTL_TOOLTIP;Deixe a configuração em "0" para usar automaticamente o maior número de threads possível. Quanto mais threads rodarem em paralelo, mais rápido será o cálculo. Consulte o RawPedia para requisitos de memória. PREFERENCES_SAVE_TP_OPEN_NOW;Salvar ferramentas no estado recolhidas/expandididas agora PREFERENCES_SELECTFONT;Selecione a fonte principal PREFERENCES_SELECTFONT_COLPICKER;Selecione a fonte do Seletor de Cor @@ -1129,49 +1179,38 @@ PREFERENCES_SHOWBASICEXIF;Mostrar informações Exif básicas PREFERENCES_SHOWDATETIME;Mostrar data e hora PREFERENCES_SHOWEXPOSURECOMPENSATION;Acrescentar compensação de exposição PREFERENCES_SHOWFILMSTRIPTOOLBAR;Mostrar barra de ferramentas de diapositivos -PREFERENCES_SHTHRESHOLD;Limiar para sombras recortadas -PREFERENCES_SIMPLAUT;Modo de ferramenta +PREFERENCES_SHTHRESHOLD;Limite para sombras recortadas PREFERENCES_SINGLETAB;Modo de Aba de Editor Único PREFERENCES_SINGLETABVERTAB;Editor de Aba Única, Abas verticais -PREFERENCES_SMA;Pequeno (250x287) PREFERENCES_SND_BATCHQUEUEDONE;Processamento de fila concluído PREFERENCES_SND_HELP;Digite um endereço de arquivo completo para definir um som ou deixe em branco para não ter som.\nPara sons do sistema no Windows, use "SystemDefault", "SystemAsterisk" etc., e no Linux use "complete", "window-attention" etc. PREFERENCES_SND_LNGEDITPROCDONE;Processamento de Editor concluído PREFERENCES_SND_THRESHOLDSECS;Depois de segundos PREFERENCES_STARTUPIMDIR;Diretório de imagens na inicialização -PREFERENCES_STDAUT;Padrão PREFERENCES_TAB_BROWSER;Navegador de Arquivo PREFERENCES_TAB_COLORMGR;Gerenciamento de Cor PREFERENCES_TAB_DYNAMICPROFILE;Regras de Perfil Dinâmico PREFERENCES_TAB_GENERAL;Geral PREFERENCES_TAB_IMPROC;Processamento de Imagem -PREFERENCES_TAB_PERFORMANCE;Performance & Qualidade PREFERENCES_TAB_SOUND;Sons PREFERENCES_THEME;Tema PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Visualização JPEG incorporada PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Imagem para mostrar PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Renderização raw neutra PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;JPEG incorporado se tamanho completo, raw neutro caso contrário -PREFERENCES_TIMAX;Alto -PREFERENCES_TINB;Número de mosaicos -PREFERENCES_TISTD;Padrão PREFERENCES_TP_LABEL;Painel de ferramentas: PREFERENCES_TP_USEICONORTEXT;Use ícones de guias em vez de texto PREFERENCES_TP_VSCROLLBAR;Ocultar barra de rolagem vertical PREFERENCES_TUNNELMETADATA;Copiar Exif/IPTC/XMP inalterado para o arquivo de saída PREFERENCES_USEBUNDLEDPROFILES;Use perfis agrupados PREFERENCES_VIEW;Balanço de branco do dispositivo de saída (monitor, TV, projetor, visualização, etc.) -PREFERENCES_WAVLEV;Aumentar o nível de wavelet em qualidade 'alta' -PREFERENCES_WLONE;Um nível -PREFERENCES_WLTWO;Dois níveis -PREFERENCES_WLZER;Não PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Parâmetros para copiar PROFILEPANEL_GLOBALPROFILES;Perfis agrupados -PROFILEPANEL_LABEL;Processando Perfis +PROFILEPANEL_LABEL;Perfis de Processamento PROFILEPANEL_LOADDLGLABEL;Carregar Parâmetros de Processamento... PROFILEPANEL_LOADPPASTE;Parâmetros para carregar -PROFILEPANEL_MODE_TIP;Processando o modo de preencher o perfil.\n\nBotão pressionado: perfis parciais serão convertidos em perfis completos; os valores ausentes serão substituídos por padrões codificados.\n\nBotão liberado: os perfis serão aplicados como estão, alterando apenas os valores que eles contêm. +PROFILEPANEL_MODE_TIP;Modo de preenchimento do perfil de procesamento.\n\nBotão pressionado: perfis parciais serão convertidos em perfis completos; os valores ausentes serão substituídos por padrões codificados.\n\nBotão liberado: os perfis serão aplicados como estão, alterando apenas os valores que eles contêm. PROFILEPANEL_MYPROFILES;Meus perfis PROFILEPANEL_PASTEPPASTE;Parâmetros para colar PROFILEPANEL_PCUSTOM;Personalizado @@ -1192,7 +1231,7 @@ PROGRESSBAR_LOADPNG;Carregando arquivo PNG... PROGRESSBAR_LOADTIFF;Carregando arquivo TIFF... PROGRESSBAR_NOIMAGES;Nenhuma imagem encontrada PROGRESSBAR_PROCESSING;Processando imagem... -PROGRESSBAR_PROCESSING_PROFILESAVED;Processando perfil salvo +PROGRESSBAR_PROCESSING_PROFILESAVED;Perfil de processamento salvo PROGRESSBAR_READY;Pronto PROGRESSBAR_SAVEJPEG;Salvando arquivo JPEG... PROGRESSBAR_SAVEPNG;Salvando arquivo PNG... @@ -1228,7 +1267,7 @@ SAVEDLG_SUBSAMP_3;Qualidade superior SAVEDLG_SUBSAMP_TOOLTIP;Compressão superior:\nJ:a:b 4:2:0\nh/v 2/2\nCroma reduzido pela metade na horizontal e na vertical.\n\nBalanceado:\nJ:a:b 4:2:2\nh/v 2/1\nCroma reduzido pela metade na horizontal.\n\nQualidade superior:\nJ:a:b 4:4:4\nh/v 1/1\nSem subamostragem de croma. SAVEDLG_TIFFUNCOMPRESSED;TIFF não comprimido SAVEDLG_WARNFILENAME;Arquivo será nomeado -SHCSELECTOR_TOOLTIP;Clique com o botão direito do mouse para redefinir a posição desses 3 controles deslizantes. +SHCSELECTOR_TOOLTIP;Clique com o botão direito do mouse para restaurar a posição desses 3 controles deslizantes. SOFTPROOF_GAMUTCHECK_TOOLTIP;Realce pixels com cores fora do gamut em relação a:\n- o perfil da impressora, se um estiver definido e soft-proofing estiver ativado,\n- o perfil de saída, se um perfil de impressora não estiver definido e soft-proofing estiver ativado,\n- o perfil do monitor, se o soft-proofing estiver desativado. SOFTPROOF_TOOLTIP;Soft-proofing simula a aparência da imagem:\n- quando impresso, se um perfil de impressora estiver definido em Preferências > Gerenciamento de Cor,\n- quando visualizado num monitor que usa o perfil de saída atual, se um perfil de impressora não estiver definido. THRESHOLDSELECTOR_B;Inferior @@ -1266,10 +1305,10 @@ TP_BWMIX_FILTER_NONE;Nenhum TP_BWMIX_FILTER_PURPLE;Roxa TP_BWMIX_FILTER_RED;Vermelho TP_BWMIX_FILTER_REDYELLOW;Vermelho-Amarelo -TP_BWMIX_FILTER_TOOLTIP;O filtro de cores simula fotos tiradas com um filtro colorido colocado na frente da lente. Filtros coloridos reduzem a transmissão de faixas de cores específicas e, portanto, afetam sua luminosidade. Por exemplo, um filtro vermelho escurece o céu azul. +TP_BWMIX_FILTER_TOOLTIP;O filtro de cores simula fotos tiradas com um filtro colorido colocado na frente da lente. Filtros coloridos reduzem a transmissão de faixas de cores específicas e, portanto, afetam sua claridade. Por exemplo, um filtro vermelho escurece o céu azul. TP_BWMIX_FILTER_YELLOW;Amarelo -TP_BWMIX_GAMMA;Correção de Gama -TP_BWMIX_GAM_TOOLTIP;Corrigir gama para cada canal RGB. +TP_BWMIX_GAMMA;Correção de Gamma +TP_BWMIX_GAM_TOOLTIP;Corrigir gamma para cada canal RGB. TP_BWMIX_LABEL;Preto e Branco TP_BWMIX_MET;Método TP_BWMIX_MET_CHANMIX;Misturador de Canais @@ -1277,7 +1316,7 @@ TP_BWMIX_MET_DESAT;Dessaturação TP_BWMIX_MET_LUMEQUAL;Equalizador de Luminância TP_BWMIX_MIXC;Misturador TP_BWMIX_NEUTRAL;Restabelecer misturador -TP_BWMIX_NEUTRAL_TIP;Restabelecer todos os valores (Filtro de Cores, Misturador de Canais) para o padrão. +TP_BWMIX_NEUTRAL_TIP;Restaurar todos os valores (Filtro de Cores, Misturador de Canais) para o padrão. TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% TP_BWMIX_RGBLABEL_HINT;Fatores finais do RGB que cuidam de todas as opções do misturador.\n"Total" exibe a soma dos valores RGB:\n- sempre 100% no modo relativo\n- mais alto (mais claro) ou mais baixo (mais escuro) que 100% no modo absoluto. TP_BWMIX_RGB_TOOLTIP;Misture os canais RGB. Use predefinições para orientação.\nPreste atenção aos valores negativos que podem causar artefatos ou comportamento errático. @@ -1326,8 +1365,8 @@ TP_COLORAPP_ADAPTVIEWING_TOOLTIP;Luminância absoluta do ambiente de visualizaç TP_COLORAPP_ADAP_AUTO_TOOLTIP;Se a caixa de seleção estiver marcada (recommendado) RawTherapee calcula um valor ótimo a partir dos dados Exif.\nPara definir o valor manualmente, desmarque a caixa de seleção primeiro. TP_COLORAPP_ALGO;Algorimo TP_COLORAPP_ALGO_ALL;Tudo -TP_COLORAPP_ALGO_JC;Luminosidade + Croma (JC) -TP_COLORAPP_ALGO_JS;Luminosidade + Saturação (JS) +TP_COLORAPP_ALGO_JC;Claridade + Croma (JC) +TP_COLORAPP_ALGO_JS;Claridade + Saturação (JS) TP_COLORAPP_ALGO_QM;Brilho + Colorido (QM) TP_COLORAPP_ALGO_TOOLTIP;Permite escolher entre subconjuntos de parâmetros ou todos os parâmetros. TP_COLORAPP_BADPIXSL;Filtro de pixel quente/ruim @@ -1364,12 +1403,12 @@ TP_COLORAPP_LABEL;Modelo de Aparência de Cor CIE 2002 TP_COLORAPP_LABEL_CAM02;Ajustes de Imagem TP_COLORAPP_LABEL_SCENE;Condições de Cena TP_COLORAPP_LABEL_VIEWING;Condições de Visualização -TP_COLORAPP_LIGHT;Luminosidade (J) -TP_COLORAPP_LIGHT_TOOLTIP;Luminosidade no CIECAM02 difere de L*a*b* e da luminosidade em RGB. +TP_COLORAPP_LIGHT;Claridade (J) +TP_COLORAPP_LIGHT_TOOLTIP;Claridade no CIECAM02 difere de L*a*b* e da claridade em RGB. TP_COLORAPP_MODEL;Modelo de Ponto Branco TP_COLORAPP_MODEL_TOOLTIP;Modelo de Ponto Branco.\n\nWB [RT] + [saída]: O balanço de branco do RT é usado para a cena, CIECAM02 está definido para D50, e o balanço de branco do dispositivo de saída é definido em Condições de Visualização.\n\nWB [RT+CAT02] + [saída]: As configurações de balanço de branco do RT são usadas pelo CAT02 e o balanço de branco do dispositivo de saída é definido em Condições de Visualização.\n\nTemp+verde livre + CAT02 + [saída]: temp e verde são selecionados pelo usuário, o balanço de branco do dispositivo de saída é definido em Condições de Visualização. -TP_COLORAPP_NEUTRAL;Restabelecer -TP_COLORAPP_NEUTRAL_TIP;Restabelecer todas as caixas de seleção e curvas dos controles deslizantes para seus valores padrão +TP_COLORAPP_NEUTRAL;Restaurar +TP_COLORAPP_NEUTRAL_TIP;Restaurar todas as caixas de seleção e curvas dos controles deslizantes para seus valores padrão TP_COLORAPP_RSTPRO;Proteção vermelho e de tons de pele TP_COLORAPP_RSTPRO_TOOLTIP;Vermelho & proteção de tons de pele afeta os controles deslizantes e as curvas. TP_COLORAPP_SHARPCIE;--sem uso-- @@ -1388,7 +1427,7 @@ TP_COLORAPP_TCMODE_COLORF;Colorido TP_COLORAPP_TCMODE_LABEL1;Modo de curva 1 TP_COLORAPP_TCMODE_LABEL2;Modo de curva 2 TP_COLORAPP_TCMODE_LABEL3;Modo de croma da curva -TP_COLORAPP_TCMODE_LIGHTNESS;Luminosidade +TP_COLORAPP_TCMODE_LIGHTNESS;Claridade TP_COLORAPP_TCMODE_SATUR;Saturação TP_COLORAPP_TEMP_TOOLTIP;Para selecionar um iluminante, defina sempre Matiz=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 TP_COLORAPP_TONECIE;Mapeamento de tom usando CIECAM02 @@ -1417,20 +1456,20 @@ TP_COLORTONING_LUMAMODE_TOOLTIP;Se ativado, quando você mudar de cor (vermelho, TP_COLORTONING_METHOD;Método TP_COLORTONING_METHOD_TOOLTIP;"L*a*b* mistura", "Controles deslizantes RGB" e "Curvas RGB" usar mistura de cores interpoladas.\n"Balanço de Cor (Sombras/Meio-tons/Realces)" e "Saturação 2 cores" use cores diretas.\n\nA ferramenta Preto-e-Branco pode ser ativada ao usar qualquer método, que permita a tonificação de cores. TP_COLORTONING_MIDTONES;Meio-tons -TP_COLORTONING_NEUTRAL;Restabelecer controles deslizantes -TP_COLORTONING_NEUTRAL_TIP;Restabelecer todos os valores (Sombras, Meio-tons, Realces) para o padrão. +TP_COLORTONING_NEUTRAL;Restaurar controles deslizantes +TP_COLORTONING_NEUTRAL_TIP;Restaurar todos os valores (Sombras, Meio-tons, Realces) para o padrão. TP_COLORTONING_OPACITY;Opacidade TP_COLORTONING_RGBCURVES;RGB - Curvas TP_COLORTONING_RGBSLIDERS;RGB - Controles deslizantes TP_COLORTONING_SA;Proteção da Saturação -TP_COLORTONING_SATURATEDOPACITY;Robustez +TP_COLORTONING_SATURATEDOPACITY;Intensidade TP_COLORTONING_SATURATIONTHRESHOLD;Limite TP_COLORTONING_SHADOWS;Sombras TP_COLORTONING_SPLITCO;Sombras/Meio-tons/Realces TP_COLORTONING_SPLITCOCO;Balanço de Cor Sombras/Meio-tons/Realces TP_COLORTONING_SPLITLR;Saturação 2 cores -TP_COLORTONING_STR;Robustez -TP_COLORTONING_STRENGTH;Robustez +TP_COLORTONING_STR;Intensidade +TP_COLORTONING_STRENGTH;Intensidade TP_COLORTONING_TWO2;Croma especial '2 cores' TP_COLORTONING_TWOALL;Croma especial TP_COLORTONING_TWOBY;Especial a* e b* @@ -1456,7 +1495,7 @@ TP_CROP_X;X TP_CROP_Y;Y TP_DARKFRAME_AUTOSELECT;Auto-seleção TP_DARKFRAME_LABEL;Quadro Escuro -TP_DEFRINGE_LABEL;Defeito +TP_DEFRINGE_LABEL;Defringe TP_DEFRINGE_RADIUS;Raio TP_DEFRINGE_THRESHOLD;Limite TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zonas @@ -1491,8 +1530,8 @@ TP_DIRPYRDENOISE_MAIN_COLORSPACE;Espaço de cor TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Para imagens raw, os métodos RGB ou L*a*b* podem ser usados.\n\nPara imagens não-raw, o método L*a*b* será usado, independentemente da seleção. -TP_DIRPYRDENOISE_MAIN_GAMMA;Gama -TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gama varia a robustez da redução de ruído em toda a gama de tons. Valores menores atuam sobre sombras, enquanto valores maiores tem efeito sobre tons mais claros. +TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma +TP_DIRPYRDENOISE_MAIN_GAMMA_TOOLTIP;Gamma varia a intensidade da redução de ruído em toda a gama de tons. Valores menores atuam sobre sombras, enquanto valores maiores tem efeito sobre tons mais claros. TP_DIRPYRDENOISE_MAIN_MODE;Modo TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Aggressivo TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Conservador @@ -1535,16 +1574,16 @@ TP_DISTORTION_AMOUNT;Montante TP_DISTORTION_AUTO_TIP;Corrige automaticamente a distorção da lente em arquivos RAW, combinando-a com a imagem JPEG incorporada, caso exista, e tenha sua distorção de lente corrigida automaticamente pela câmera. TP_DISTORTION_LABEL;Correção de Distorção TP_EPD_EDGESTOPPING;Borda parando -TP_EPD_GAMMA;Gama +TP_EPD_GAMMA;Gamma TP_EPD_LABEL;Mapeamento de Tom TP_EPD_REWEIGHTINGITERATES;Reponderando iterações TP_EPD_SCALE;Escala -TP_EPD_STRENGTH;Robustez +TP_EPD_STRENGTH;Intensidade TP_EPD_TOOLTIP;O mapeamento de tom é possível no modo L*a*b* (padão) e no modo CIECAM02.\n\nQuando no modo L*a*b*, o mapeamento de tom também pode ser usado na imagem residual da ferramenta de Níveis de Wavelet.\n\nPara ativar o modo de mapeamento de tom CIECAM02, habilite as seguintes configurações:\n1. CIECAM02\n2. Algorítimo = "Brilho + Colorido (QM)"\n3. "Mapeamento de tom usando o brilho do CIECAM02 (Q)" TP_EXPOSURE_AUTOLEVELS;Níveis Automáticos TP_EXPOSURE_AUTOLEVELS_TIP;Alterna a execução dos Níveis Automáticos para definir automaticamente os valores do controle deslizante de Exposição baseado numa análise de imagem.\nHabilita a Reconstrução de Realce se necessário. TP_EXPOSURE_BLACKLEVEL;Preto -TP_EXPOSURE_BRIGHTNESS;Luminosidade +TP_EXPOSURE_BRIGHTNESS;Claridade TP_EXPOSURE_CLAMPOOG;Recortar cores fora da gama TP_EXPOSURE_CLIP;Recortar % TP_EXPOSURE_CLIP_TIP;A fração de pixels a ser recortada na operação Níveis Automáticos. @@ -1572,7 +1611,7 @@ TP_EXPOS_BLACKPOINT_LABEL;Pontos Pretos Raw TP_EXPOS_WHITEPOINT_LABEL;Pontos Brancos Raw TP_FILMSIMULATION_LABEL;Simulação de Filme TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee está configurado para procurar por imagens Hald CLUT, que são usadas para a ferramenta Simulação de Filme, numa pasta que está demorando para carregar.\nVá para Preferências > Processamento de Imagem > Simulação de Filme\npara ver qual pasta está sendo usada. Deves apontar RawTherapee para uma pasta que contenha apenas imagens Hald CLUT e nada mais, ou para uma pasta vazia, se não quiseres usar a ferramenta Simulação de Filme.\n\nLeia o artigo sobre Simulação de Filme na RawPedia para mais informações.\n\nDesejas cancelar a verificação agora? -TP_FILMSIMULATION_STRENGTH;Robustez +TP_FILMSIMULATION_STRENGTH;Intensidade TP_FILMSIMULATION_ZEROCLUTSFOUND;Definir diretório HaldCLUT em Preferências TP_FLATFIELD_AUTOSELECT;Seleção automática TP_FLATFIELD_BLURRADIUS;Raio de desfoque @@ -1584,9 +1623,9 @@ TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_CLIPCONTROL;Controle de recorte TP_FLATFIELD_CLIPCONTROL_TOOLTIP;O controle de recorte evita realces recortados provocados pela aplicação do campo plano. Se já houver realces recortados antes da aplicação do campo plano, o controle de recorte pode levar à conversão de cores. TP_FLATFIELD_LABEL;Campo Plano -TP_GAMMA_CURV;Gama -TP_GAMMA_FREE;Gama livre -TP_GAMMA_OUTPUT;Gama de saída +TP_GAMMA_CURV;Gamma +TP_GAMMA_FREE;Gamma livre +TP_GAMMA_OUTPUT;Gamma de saída TP_GAMMA_SLOP;Declive (linear) TP_GENERAL_11SCALE_TOOLTIP;Os efeitos dessa ferramenta só são visíveis ou são precisos numa escala prévia de 1:1. TP_GRADIENT_CENTER;Centro @@ -1596,11 +1635,11 @@ TP_GRADIENT_CENTER_Y;Centro Y TP_GRADIENT_CENTER_Y_TOOLTIP;Deslocar gradiente para cima (valores negativos) ou para baixo (valores positivos). TP_GRADIENT_DEGREE;ângulo TP_GRADIENT_DEGREE_TOOLTIP;Ângulo de rotação em graus. -TP_GRADIENT_FEATHER;Pena +TP_GRADIENT_FEATHER;Difusão TP_GRADIENT_FEATHER_TOOLTIP;Largura do gradiente em porcentagem da diagonal da imagem. TP_GRADIENT_LABEL;Filtro Graduado -TP_GRADIENT_STRENGTH;Robustez -TP_GRADIENT_STRENGTH_TOOLTIP;Robustez do filtro nas paradas. +TP_GRADIENT_STRENGTH;Intensidade +TP_GRADIENT_STRENGTH_TOOLTIP;Intensidade do filtro nas paradas. TP_HLREC_BLEND;Mistura TP_HLREC_CIELAB;Misturando CIELab TP_HLREC_COLOR;Propagação de Cor @@ -1614,7 +1653,7 @@ TP_HSVEQUALIZER_LABEL;Equalizador HSV TP_HSVEQUALIZER_SAT;S TP_HSVEQUALIZER_VAL;V TP_ICM_APPLYBASELINEEXPOSUREOFFSET;Exposição de linha de base -TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Empregue o deslocamento de exposição da linha de base do DCP incorporado. A configuração só estará disponível se o DCP estiver selecionado como um. +TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Empregue a compensação de exposição da linha de base do DCP incorporado. A configuração só estará disponível se o DCP estiver selecionado como um. TP_ICM_APPLYHUESATMAP;Tabela básica TP_ICM_APPLYHUESATMAP_TOOLTIP;Empregue a tabela básica DCP incorporada (MatizSatMap). A configuração só estará disponível se o DCP estiver selecionado como um. TP_ICM_APPLYLOOKTABLE;Tabela de aparência @@ -1624,593 +1663,606 @@ TP_ICM_BLENDCMSMATRIX_TOOLTIP;Ativar para recuperar realces recortados ao usar p TP_ICM_BPC;Compensação de Ponto Preto TP_ICM_DCPILLUMINANT;Iluminante TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolado +TP_ICM_DCPILLUMINANT_TOOLTIP;Selecione qual iluminante DCP incorporado deve ser usado. O padrão é "interpolado", que é uma mistura entre os dois baseado no balanço de branco. A configuração só estará disponível se um DCP de iluminação dupla com suporte de interpolação estiver selecionado. +TP_ICM_INPUTCAMERA;Câmera padrão +TP_ICM_INPUTCAMERAICC;Perfil de câmera auto-combinado +TP_ICM_INPUTCAMERAICC_TOOLTIP;Use os perfis de cores de entrada DCP ou ICC específicos da câmera do RawTherapee. Esses perfis são mais precisos que os matriciais mais simples. Eles não estão disponíveis para todas as câmeras. Esses perfis são armazenados nas pastas /iccperfis/entrada e /dcpperfis e são recuperados automaticamente com base no nome do arquivo correspondente ao nome do modelo da câmera. +TP_ICM_INPUTCAMERA_TOOLTIP;Use uma matriz de cores simples do dcraw, uma versão aprimorada do RawTherapee (a que estiver disponível baseada no modelo da câmera) ou uma incorporada no DNG. +TP_ICM_INPUTCUSTOM;Personalizado +TP_ICM_INPUTCUSTOM_TOOLTIP;Selecione seu próprio arquivo de perfil de cores DCP/ICC para a câmera. +TP_ICM_INPUTDLGLABEL;Selecione o Perfil de entrada DCP/ICC... +TP_ICM_INPUTEMBEDDED;Use incorporado, se possível +TP_ICM_INPUTEMBEDDED_TOOLTIP;Use o perfil de cores incorporado em arquivos não-raw. +TP_ICM_INPUTNONE;Sem perfil +TP_ICM_INPUTNONE_TOOLTIP;Não use nenhum perfil de cor de entrada.\nUse somente em casos especiais. +TP_ICM_INPUTPROFILE;Perfil de Entrada +TP_ICM_LABEL;Gerenciamento de Cor +TP_ICM_NOICM;No ICM: Saída sRGB +TP_ICM_OUTPUTPROFILE;Perfil de Saída +TP_ICM_PROFILEINTENT;Intenção de Renderização +TP_ICM_SAVEREFERENCE;Salvar Imagem de Referência +TP_ICM_SAVEREFERENCE_APPLYWB;Aplicar balanço de branco +TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Geralmente, aplique o balanço de branco ao salvar imagens para criar perfis ICC e não aplique o balanço de branco para criar perfis DCP. +TP_ICM_SAVEREFERENCE_TOOLTIP;Salve a imagem TIFF linear antes que o perfil de entrada seja aplicado. O resultado pode ser usado para fins de calibração e geração de um perfil de câmera. +TP_ICM_TONECURVE;Curva de tom +TP_ICM_TONECURVE_TOOLTIP;Empregue a curva de tom DCP incorporada. A configuração só estará disponível se o DCP selecionado tiver uma curva de tom. +TP_ICM_WORKINGPROFILE;Perfil de Trabalho +TP_ICM_WORKING_TRC;Curva de resposta do tom: +TP_ICM_WORKING_TRC_CUSTOM;Personalizado +TP_ICM_WORKING_TRC_GAMMA;Gamma +TP_ICM_WORKING_TRC_NONE;Nenhum +TP_ICM_WORKING_TRC_SLOPE;Declive +TP_ICM_WORKING_TRC_TOOLTIP;Apenas para perfis internos +TP_IMPULSEDENOISE_LABEL;Redução de Ruído por Impulso +TP_IMPULSEDENOISE_THRESH;Limite +TP_LABCURVE_AVOIDCOLORSHIFT;Evite mudança de cor +TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Ajuste as cores no gamut do espaço de cores de trabalho e aplique a correção Munsell. +TP_LABCURVE_BRIGHTNESS;Claridade +TP_LABCURVE_CHROMATICITY;Cromaticidade +TP_LABCURVE_CHROMA_TOOLTIP;Para aplicar tonificação B&W, configure Cromaticidade para -100. +TP_LABCURVE_CONTRAST;Contraste +TP_LABCURVE_CURVEEDITOR;Curva de Luminância +TP_LABCURVE_CURVEEDITOR_A_RANGE1;Verde Saturado +TP_LABCURVE_CURVEEDITOR_A_RANGE2;Verde Pastel +TP_LABCURVE_CURVEEDITOR_A_RANGE3;Vermelho Pastel +TP_LABCURVE_CURVEEDITOR_A_RANGE4;Vermelho Saturado +TP_LABCURVE_CURVEEDITOR_B_RANGE1;Azul Saturado +TP_LABCURVE_CURVEEDITOR_B_RANGE2;Azul Pastel +TP_LABCURVE_CURVEEDITOR_B_RANGE3;Amarelo Pastel +TP_LABCURVE_CURVEEDITOR_B_RANGE4;Amarelo Saturado +TP_LABCURVE_CURVEEDITOR_CC;CC +TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutro +TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Fosco +TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel +TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturado +TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Cromaticidade de acordo com a cromaticidade C=f(C) +TP_LABCURVE_CURVEEDITOR_CH;CH +TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Cromaticidade de acordo com a matiz C=f(H) +TP_LABCURVE_CURVEEDITOR_CL;CL +TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Cromaticidade de acordo com a luminância C=f(L) +TP_LABCURVE_CURVEEDITOR_HH;HH +TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Matiza de acordo com a matiz H=f(H) +TP_LABCURVE_CURVEEDITOR_LC;LC +TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminância de acordo com a cromaticidade L=f(C) +TP_LABCURVE_CURVEEDITOR_LH;LH +TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminância de acrodo com a matiz L=f(H) +TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminância de acorodo com a luminância L=f(L) +TP_LABCURVE_LABEL;L*a*b* Ajustes +TP_LABCURVE_LCREDSK;Restringir o LC aos tons vermelho e cor de pele +TP_LABCURVE_LCREDSK_TIP;Se ativada, a curva LC afeta somente tons vermelhos e cor de pele.\nSe desativado, aplica-se a todos os tons. +TP_LABCURVE_RSTPROTECTION;Proteção para tons verrmelho e cor de pele +TP_LABCURVE_RSTPRO_TOOLTIP;Funciona no controle deslizante de cromaticidade e na curva CC. +TP_LENSGEOM_AUTOCROP;Corte automático +TP_LENSGEOM_FILL;Preenchimento automático +TP_LENSGEOM_LABEL;Lente / Geometria +TP_LENSPROFILE_LABEL;Correção de lente perfilada +TP_LENSPROFILE_USECA;Correção da aberração cromática +TP_LENSPROFILE_USEDIST;Correção de distorção +TP_LENSPROFILE_USEVIGN;Correção de vinheta +TP_LOCALCONTRAST_AMOUNT;Montante +TP_LOCALCONTRAST_DARKNESS;Nível de escuridão +TP_LOCALCONTRAST_LABEL;Contraste Local +TP_LOCALCONTRAST_LIGHTNESS;Nível de claridade +TP_LOCALCONTRAST_RADIUS;Raio +TP_METADATA_EDIT;Aplicar modificações +TP_METADATA_MODE;Modo de cópia de metadados +TP_METADATA_STRIP;Remover todos os metadados +TP_METADATA_TUNNEL;Copiar inalterado +TP_NEUTRAL;Restaurar +TP_NEUTRAL_TIP;Restaurar os controles deslizantes de exposição para valores neutros.\nAplica-se aos mesmos controles aplicados aos Níveis Automáticos, independentemente da utilização dos Níveis Automáticos. +TP_PCVIGNETTE_FEATHER;Difusão +TP_PCVIGNETTE_FEATHER_TOOLTIP;Difundindo:\n0 = apenas cantos,\n50 = a meio caminho do centro,\n100 = para centrar. +TP_PCVIGNETTE_LABEL;Filtro de Vinheta +TP_PCVIGNETTE_ROUNDNESS;Arredondamento +TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Arredondamento:\n0 = retângulo,\n50 = elipse ajustada,\n100 = círculo. +TP_PCVIGNETTE_STRENGTH;Intensidade +TP_PCVIGNETTE_STRENGTH_TOOLTIP;Intensidade do filtro nas paradas (alcançada nos cantos). +TP_PERSPECTIVE_HORIZONTAL;Horizontal +TP_PERSPECTIVE_LABEL;Perspectiva +TP_PERSPECTIVE_VERTICAL;Vertical +TP_PFCURVE_CURVEEDITOR_CH;Matiz +TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controla a Intensidade defringe por cor.\nHigher = more,\nInferior = menos. +TP_PREPROCESS_DEADPIXFILT;Filtro de pixels mortos +TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tenta suprimir os pixels mortos. +TP_PREPROCESS_GREENEQUIL;Equilíbrio verde +TP_PREPROCESS_HOTPIXFILT;Filtro de pixel quente +TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tenta suprimir os pixels quentes. +TP_PREPROCESS_LABEL;Pré-processando +TP_PREPROCESS_LINEDENOISE;Filtro de ruído de linha +TP_PREPROCESS_LINEDENOISE_DIRECTION;Direção +TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Ambos +TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Horizontal +TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal apenas em linhas PDAF +TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical +TP_PREPROCESS_NO_FOUND;Nenhum encontrado +TP_PREPROCESS_PDAFLINESFILTER;Filtro de linhas PDAF +TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tenta suprimir o ruído de faixas causado por pixels PDAF no sensor, ocorrendo com algumas câmeras mirrorless da Sony em algumas cenas em contraluz com "flare" visível. +TP_PRSHARPENING_LABEL;Pós-Redimensionamento de Nitidez +TP_PRSHARPENING_TOOLTIP;Focaliza a imagem após o redimensionamento. Funciona somente quando o método de redimensionamento "Lanczos" é usado. É impossível visualizar os efeitos dessa ferramenta. Veja RawPedia para instruções de uso. +TP_RAWCACORR_AUTO;Auto correção +TP_RAWCACORR_CABLUE;Azul +TP_RAWCACORR_CARED;Vermelho +TP_RAWCACORR_CASTR;Intensidade +TP_RAWEXPOS_BLACKS;Níveis de Preto +TP_RAWEXPOS_BLACK_0;Verde 1 (guia) +TP_RAWEXPOS_BLACK_1;Vermelho +TP_RAWEXPOS_BLACK_2;Azul +TP_RAWEXPOS_BLACK_3;Verde 2 +TP_RAWEXPOS_BLACK_BLUE;Azul +TP_RAWEXPOS_BLACK_GREEN;Verde +TP_RAWEXPOS_BLACK_RED;Vermelho +TP_RAWEXPOS_LINEAR;Correção de ponto branco +TP_RAWEXPOS_PRESER;Preservação do realce +TP_RAWEXPOS_RGB;Vermelho, Verde, Azul +TP_RAWEXPOS_TWOGREEN;Ligações verdes +TP_RAW_1PASSMEDIUM;1-Passar (Medio) +TP_RAW_2PASS;1-passar+rápido +TP_RAW_3PASSBEST;3-Passar (Superior) +TP_RAW_4PASS;4-Passar +TP_RAW_AHD;AHD +TP_RAW_AMAZE;AMaZE +TP_RAW_AMAZEVNG4;AMaZE+VNG4 +TP_RAW_BORDER;Borda +TP_RAW_DCB;DCB +TP_RAW_DCBENHANCE;Aprimoramento DCB +TP_RAW_DCBITERATIONS;Número de iterações DCB +TP_RAW_DCBVNG4;DCB+VNG4 +TP_RAW_DMETHOD;Método +TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... +TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Refinamento Demosaicing... +TP_RAW_DMETHOD_TOOLTIP;Nota: IGV e LMMSE são dedicados a imagens de ISO alto para auxiliar na redução de ruído sem levar a padrões de confusão, posterização ou aparência desbotada.\nPixel Shift é para arquivos Pentax/Sony Pixel Shift. Ele retorna ao AMaZE para arquivos não Pixel Shift. +TP_RAW_DUALDEMOSAICCONTRAST;Limite de contraste +TP_RAW_EAHD;EAHD +TP_RAW_FALSECOLOR;Etapas de supressão de cores falsas +TP_RAW_FAST;Rápido +TP_RAW_HD;Limite +TP_RAW_HD_TOOLTIP;Valores mais baixos tornam a detecção de pixels quentes/mortos mais agressiva, mas os falsos positivos podem levar a artefatos. Se perceberes algum artefato aparecendo ao habilitar os Filtros de Pixels Quentes/Morto, aumente gradualmente o valor limite até eles desaparecerem. +TP_RAW_HPHD;HPHD +TP_RAW_IGV;IGV +TP_RAW_IMAGENUM;Sub-imagem +TP_RAW_IMAGENUM_TOOLTIP;Alguns arquivos raw consistem em várias sub-imagens (Pentax/Sony Pixel Shift, Pentax 3-em-1 HDR, Canon Dual Pixel).\n\nUsando qualquer método demosaicing diferente de Pixel Shift, isto seleciona qual sub-imagem é usada.\n\nUsando o método demosaicing do Pixel Shift num Pixel Shift raw, todas as sub-imagens são usadas e isso seleciona qual sub-imagem deve ser usada para as partes móveis. +TP_RAW_LABEL;Demosaicing +TP_RAW_LMMSE;LMMSE +TP_RAW_LMMSEITERATIONS;Etapas de aprimoramento LMMSE +TP_RAW_LMMSE_TOOLTIP;Adiciona gamma (etapa 1), mediana (etapas 2-4) e refinamento (etapas 5-6) para reduzir artefatos e melhorar a relação sinal-ruído. +TP_RAW_MONO;Mono +TP_RAW_NONE;Nenhum (Mostra o padrão do sensor) +TP_RAW_PIXELSHIFT;Pixel Shift +TP_RAW_PIXELSHIFTBLUR;Máscara de movimento de desfoque +TP_RAW_PIXELSHIFTDMETHOD;Método Demosaico para movimento +TP_RAW_PIXELSHIFTEPERISO;Sensibilidade +TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;O valor padrão de 0 deve funcionar bem para a base ISO.\nValores mais altos aumentam a sensibilidade da detecção de movimento.\nAltere em pequenas etapas e observe a máscara de movimento enquanto muda.\nAumentar a sensibilidade para imagens subexpostas ou de ISO alto. +TP_RAW_PIXELSHIFTEQUALBRIGHT;Equaliza o brilho dos quadros +TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equaliza por canal +TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Ativado: Equaliza os canais RGB individualmente.\nDesativado: usa o mesmo fator de equalização para todos os canais. +TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equaliza o brilho dos quadros para o brilho do quadro selecionado.\nSe houver áreas superexpostas nos quadros, selecione o quadro mais claro para evitar que a cor magenta seja exposta em áreas superexpostas ou ative a correção de movimento. +TP_RAW_PIXELSHIFTGREEN;Verifica o canal verde para movimento +TP_RAW_PIXELSHIFTHOLEFILL;Preenche buracos na máscara de movimento +TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Preenche buracos na máscara de movimento +TP_RAW_PIXELSHIFTLMMSE;Usa LMMSE para partes móveis +TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Usa LMMSE em vez de AMaZE para áreas de movimento.\nÚtil para imagens com ISO alto. +TP_RAW_PIXELSHIFTMEDIAN;Usa mediana para partes móveis +TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use a mediana de todos os quadros em vez do quadro selecionado para regiões com movimento.\nRemove objetos que estão em lugares diferentes em todos os quadros.\nDá efeito de movimento em objetos em movimento lento (sobreposição). +TP_RAW_PIXELSHIFTMM_AUTO;Automático +TP_RAW_PIXELSHIFTMM_CUSTOM;Personalizado +TP_RAW_PIXELSHIFTMM_OFF;Desligado +TP_RAW_PIXELSHIFTMOTIONMETHOD;Correção de Movimento +TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 não há detecção de movimento.\n1 - 99 o movimento será detectado de acordo com este valor. Aumentar o valor para aumentar a taxa de detecção.\n100 o quadro demosaico AMaZE será usado. +TP_RAW_PIXELSHIFTNONGREENCROSS;Checa os canais vermelho/azul para movimento +TP_RAW_PIXELSHIFTSHOWMOTION;Mostra máscara de movimento +TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Mostra somente máscara de movimento +TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Mostra a máscara de movimento sem a imagem. +TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Sobrepõe a imagem com uma máscara verde mostrando as regiões com movimento. +TP_RAW_PIXELSHIFTSIGMA;Raio de desfoque +TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;TO raio padrão de 1.0 geralmente se encaixa bem para a base ISO.\nAumente o valor para fotos de ISO alto, 5.0 é um bom ponto de partida.\nObserve a máscara de movimento enquanto altera o valor. +TP_RAW_PIXELSHIFTSMOOTH;Transições suaves +TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Transições suaves entre áreas com movimento e áreas sem.\nDefina 0 para desabilitar a transição suave.\nDefina 1 para obter o resultado AMaZE/LMMSE do quadro selecionado (dependendo se "Usar LMMSE" estiver selecionado) ou a mediana de todos os quatro quadros se "Usar mediana" estiver selecionado. +TP_RAW_RCD;RCD +TP_RAW_RCDVNG4;RCD+VNG4 +TP_RAW_SENSOR_BAYER_LABEL;Sensor com Matriz Bayer +TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-passe dá os melhores resultados (recomendado para imagens com ISO baixo).\n1-passe é quase indistinguível do 3-passe para imagens com ISO alto e é mais rápido. +TP_RAW_SENSOR_XTRANS_LABEL;Sensor com Matriz X-Trans +TP_RAW_VNG4;VNG4 +TP_RESIZE_ALLOW_UPSCALING;Permitir Escalonamento +TP_RESIZE_APPLIESTO;Aplica-se a: +TP_RESIZE_CROPPEDAREA;Área Recortada +TP_RESIZE_FITBOX;Caixa Delimitadora +TP_RESIZE_FULLIMAGE;Imagem Cheia +TP_RESIZE_H;Altura: +TP_RESIZE_HEIGHT;Altura +TP_RESIZE_LABEL;Redimensionar +TP_RESIZE_LANCZOS;Lanczos +TP_RESIZE_METHOD;Método: +TP_RESIZE_NEAREST;Mais próximo +TP_RESIZE_SCALE;Escala +TP_RESIZE_SPECIFY;Especificar: +TP_RESIZE_W;Largura: +TP_RESIZE_WIDTH;Largura +TP_RETINEX_CONTEDIT_HSL;Equalizador de histograma HSL +TP_RETINEX_CONTEDIT_LAB;Equalizador de histograma L*a*b* +TP_RETINEX_CONTEDIT_LH;Equalizador de matiz +TP_RETINEX_CONTEDIT_MAP;Equalizador de máscara +TP_RETINEX_CURVEEDITOR_CD;L=f(L) +TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminância de acordo com a luminância L=f(L)\nCorrija dados raw para reduzir halos e artefatos. +TP_RETINEX_CURVEEDITOR_LH;Intensidade=f(M) +TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Intensidade de acordo com a Intensidade da matiz=f(M)\nEsta curva também atua no croma ao usar o método retinex "Realce". +TP_RETINEX_CURVEEDITOR_MAP;L=f(L) +TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;Esta curva pode ser aplicada sozinha ou com uma máscara Gaussiana ou uma máscara wavelet.\nCuidado com os artefatos! +TP_RETINEX_EQUAL;Equalizador +TP_RETINEX_FREEGAMMA;Gamma livre +TP_RETINEX_GAIN;Ganho +TP_RETINEX_GAINOFFS;Ganho e Compensação (brilho) +TP_RETINEX_GAINTRANSMISSION;Transmissão de ganho +TP_RETINEX_GAIN_TOOLTIP;Atua na imagem restaurada.\n\nIsso é muito diferente das outras configurações. Usado para pixels pretos ou brancos e para ajudar a equilibrar o histograma. +TP_RETINEX_GAMMA;Gamma +TP_RETINEX_GAMMA_FREE;Livre +TP_RETINEX_GAMMA_HIGH;Alto +TP_RETINEX_GAMMA_LOW;Baixo +TP_RETINEX_GAMMA_MID;Médio +TP_RETINEX_GAMMA_NONE;Nenhum +TP_RETINEX_GAMMA_TOOLTIP;Restaura tons aplicando gamma antes e depois do Retinex. Diferente das curvas Retinex ou outras curvas (Lab, Exposição, etc.). +TP_RETINEX_GRAD;Gradiente de transmissão +TP_RETINEX_GRADS;Gradiente de intensidade +TP_RETINEX_GRADS_TOOLTIP;Se o controle deslizante for 0, todas as iterações serão idênticas.\nSe > 0 a Intensidade é reduzida quando as iterações aumentam e, inversamente. +TP_RETINEX_GRAD_TOOLTIP;Se o controle deslizante for 0, todas as iterações serão idênticas.\nSe > 0 Variância e Limite são reduzidos quando as iterações aumentam e, inversamente. +TP_RETINEX_HIGH;Alto +TP_RETINEX_HIGHLIG;Realce +TP_RETINEX_HIGHLIGHT;Limite de realce +TP_RETINEX_HIGHLIGHT_TOOLTIP;Aumenta a ação do algoritmo alto.\nPode exigir que reajustes "pixels vizinhos" e aumente a "Correção de ponto branco" na guia Raw -> ferramenta de Pontos Brancos Raw. +TP_RETINEX_HSLSPACE_LIN;HSL-Linear +TP_RETINEX_HSLSPACE_LOG;HSL-Logarítmica +TP_RETINEX_ITER;Iterações (Mapeamento de tom) +TP_RETINEX_ITERF;Mapeamento de tom +TP_RETINEX_ITER_TOOLTIP;Simula um operador de mapeamento de tom.\nValores altos aumentam o tempo de processamento. +TP_RETINEX_LABEL;Retinex +TP_RETINEX_LABEL_MASK;Máscara +TP_RETINEX_LABSPACE;L*a*b* +TP_RETINEX_LOW;Baixo +TP_RETINEX_MAP;Método de máscara +TP_RETINEX_MAP_GAUS;Máscara gaussiana +TP_RETINEX_MAP_MAPP;Máscara de nitidez (wavelet parcial) +TP_RETINEX_MAP_MAPT;Máscara de nitidez (wavelet total) +TP_RETINEX_MAP_METHOD_TOOLTIP;Usa a máscara gerada pela função Gaussiana acima (Raio, Método) para reduzir halos e artefatos.\n\nApenas curva: aplique uma curva de contraste diagonal na máscara.\nCuidado com os artefatos!\n\nMáscara gaussiana: gera e usa um desfoque gaussiano da máscara original.\nRápido.\n\nMáscara de nitidez: gera e usa uma wavelet na máscara original.\nLento. +TP_RETINEX_MAP_NONE;Nenhum +TP_RETINEX_MEDIAN;Filtro mediano de transmissão +TP_RETINEX_METHOD;Método +TP_RETINEX_METHOD_TOOLTIP;Baixo = Reforça a luz baixa.\nUniforme = Equaliza a ação.\nAlto = Reforça a luz alta.\nRealces = Remove magenta nos realces. +TP_RETINEX_MLABEL;Restaurado sem névoa Min=%1 Max=%2 +TP_RETINEX_MLABEL_TOOLTIP;Deve estar perto min=0 max=32768\nImagem restaurada sem mistura. +TP_RETINEX_NEIGHBOR;Raio +TP_RETINEX_NEUTRAL;Restaurar +TP_RETINEX_NEUTRAL_TIP;Restaura todos os controles deslizantes e curvas para seus valores padrão. +TP_RETINEX_OFFSET;Compensação (brilho) +TP_RETINEX_SCALES;Gradiente gaussiano +TP_RETINEX_SCALES_TOOLTIP;Se o controle deslizante for 0, todas as iterações serão idênticas.\nSe > 0 Escala e raio são reduzidos quando as iterações aumentam e inversamente. +TP_RETINEX_SETTINGS;Configurações +TP_RETINEX_SKAL;Escala +TP_RETINEX_SLOPE;Declive gamma livre +TP_RETINEX_STRENGTH;Intensidade +TP_RETINEX_THRESHOLD;Limite +TP_RETINEX_THRESHOLD_TOOLTIP;Limites de entrada/saída.\nEntrada = fonte de imagem,\nSaída = imagem gaussiana. +TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Média=%3 Sigma=%4 +TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 +TP_RETINEX_TLABEL_TOOLTIP;Resultado do mapa de transmissão.\nMin e Max são usados pela Variância.\nMédia e Sigma.\nTm=Min TM=Max do mapa de transmissão. +TP_RETINEX_TRANF;Transmissão +TP_RETINEX_TRANSMISSION;Mapa de transmissão +TP_RETINEX_TRANSMISSION_TOOLTIP;Transmissão de acordo com transmissão.\nAbscissa: transmissão de valores negativos (min), média e valores positivos (max).\nOrdenado: amplificação ou redução. +TP_RETINEX_UNIFORM;Uniforme +TP_RETINEX_VARIANCE;Contraste +TP_RETINEX_VARIANCE_TOOLTIP;Baixa variância aumenta o contraste e a saturação local, mas pode levar a artefatos. +TP_RETINEX_VIEW;Processo +TP_RETINEX_VIEW_MASK;Máscara +TP_RETINEX_VIEW_METHOD_TOOLTIP;Padrão - Exibição normal.\nMáscara - Exibe a máscara.\nMáscara de nitidez - Exibe a imagem com uma máscara de nitidez de raio alto.\nTransmissão - Auto/Fixo - Exibe o mapa de transmissão do arquivo, antes de qualquer ação de contraste e brilho.\n\nAtenção: a máscara não corresponde à realidade, mas é amplificada para torná-la mais visível. +TP_RETINEX_VIEW_NONE;Padrão +TP_RETINEX_VIEW_TRAN;Transmissão - Auto +TP_RETINEX_VIEW_TRAN2;Transmissão - Fixo +TP_RETINEX_VIEW_UNSHARP;Máscara de nitidez +TP_RGBCURVES_BLUE;B +TP_RGBCURVES_CHANNEL;Canal +TP_RGBCURVES_GREEN;G +TP_RGBCURVES_LABEL;Curvas RGB +TP_RGBCURVES_LUMAMODE;Modo de luminosidade +TP_RGBCURVES_LUMAMODE_TOOLTIP;Modo de luminosidade permite variar a contribuição dos canais R, G e B para a luminosidade da imagem, sem alterar a cor da imagem. +TP_RGBCURVES_RED;R +TP_ROTATE_DEGREE;Grau +TP_ROTATE_LABEL;Girar +TP_ROTATE_SELECTLINE;Selecione Linha Reta +TP_SAVEDIALOG_OK_TIP;Atalho: Ctrl-Enter +TP_SHADOWSHLIGHTS_HIGHLIGHTS;Realces +TP_SHADOWSHLIGHTS_HLTONALW;Largura tonal dos realces +TP_SHADOWSHLIGHTS_LABEL;Sombras/Realces +TP_SHADOWSHLIGHTS_LOCALCONTR;Contraste local +TP_SHADOWSHLIGHTS_RADIUS;Raio +TP_SHADOWSHLIGHTS_SHADOWS;Sombras +TP_SHADOWSHLIGHTS_SHARPMASK;Máscara de nitidez +TP_SHADOWSHLIGHTS_SHTONALW;Largura tonal das sombras +TP_SHARPENEDGE_AMOUNT;Quantidade +TP_SHARPENEDGE_LABEL;Bordas +TP_SHARPENEDGE_PASSES;Iterações +TP_SHARPENEDGE_THREE;Somente luminância +TP_SHARPENING_AMOUNT;Montante +TP_SHARPENING_CONTRAST;Limite de contraste +TP_SHARPENING_EDRADIUS;Raio +TP_SHARPENING_EDTOLERANCE;Tolerância de borda +TP_SHARPENING_HALOCONTROL;Controle de halo +TP_SHARPENING_HCAMOUNT;Montante +TP_SHARPENING_LABEL;Nitidez +TP_SHARPENING_METHOD;Método +TP_SHARPENING_ONLYEDGES;Nitidez apenas nas bordas +TP_SHARPENING_RADIUS;Raio +TP_SHARPENING_RLD;Deconvolução RL +TP_SHARPENING_RLD_AMOUNT;Montante +TP_SHARPENING_RLD_DAMPING;Amortecimento +TP_SHARPENING_RLD_ITERATIONS;Iterações +TP_SHARPENING_THRESHOLD;Limite +TP_SHARPENING_USM;Máscara de Nitidez +TP_SHARPENMICRO_AMOUNT;Quantidade +TP_SHARPENMICRO_CONTRAST;Limite de contraste +TP_SHARPENMICRO_LABEL;Microcontraste +TP_SHARPENMICRO_MATRIX;3×3 matriz em vez de 5×5 +TP_SHARPENMICRO_UNIFORMITY;Uniformidade +TP_SOFTLIGHT_LABEL;Luz Suave +TP_SOFTLIGHT_STRENGTH;Intensidade +TP_TM_FATTAL_AMOUNT;Montante +TP_TM_FATTAL_ANCHOR;Âncora +TP_TM_FATTAL_LABEL;Compressão de Amplitude Dinâmica(DRC) +TP_TM_FATTAL_THRESHOLD;Limite +TP_VIBRANCE_AVOIDCOLORSHIFT;Evite mudança de cor +TP_VIBRANCE_CURVEEDITOR_SKINTONES;MM +TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Tons cor de pele +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Vermelho/Roxo +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Vermelho +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Vermelho/Amarelo +TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Amarelo +TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Matiz de acordo com matiz M=f(M) +TP_VIBRANCE_LABEL;Vibração +TP_VIBRANCE_PASTELS;Tons Pastéis +TP_VIBRANCE_PASTSATTOG;Ligue tons pastéis e saturados +TP_VIBRANCE_PROTECTSKINS;Protege os tons cor de pele +TP_VIBRANCE_PSTHRESHOLD;Limite de tons pastel/saturado +TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Limite de saturação +TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;O eixo vertical representa tons pastel na base e tons saturados no topo.\nO eixo horizontal representa a faixa de saturação. +TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Ponderação da transição pastel/saturada +TP_VIBRANCE_SATURATED;Tons Saturados +TP_VIGNETTING_AMOUNT;Montante +TP_VIGNETTING_CENTER;Centro +TP_VIGNETTING_CENTER_X;Centro X +TP_VIGNETTING_CENTER_Y;Centro Y +TP_VIGNETTING_LABEL;Correção de Vinheta +TP_VIGNETTING_RADIUS;Raio +TP_VIGNETTING_STRENGTH;Intensidade +TP_WAVELET_1;Nível 1 +TP_WAVELET_2;Nível 2 +TP_WAVELET_3;Nível 3 +TP_WAVELET_4;Nível 4 +TP_WAVELET_5;Nível 5 +TP_WAVELET_6;Nível 6 +TP_WAVELET_7;Nível 7 +TP_WAVELET_8;Nível 8 +TP_WAVELET_9;Nível 9 +TP_WAVELET_APPLYTO;Aplicar a +TP_WAVELET_AVOID;Evite mudança de cor +TP_WAVELET_B0;Preto +TP_WAVELET_B1;Cinza +TP_WAVELET_B2;Residual +TP_WAVELET_BACKGROUND;Fundo +TP_WAVELET_BACUR;Curva +TP_WAVELET_BALANCE;Balanço de contraste d/v-h +TP_WAVELET_BALANCE_TOOLTIP;Altera o equilíbrio entre as direções wavelet: vertical-horizontal e diagonal.\nSe o contraste, croma ou mapeamento de tom residual são ativados, o efeito devido ao equilíbrio é amplificado. +TP_WAVELET_BALCHRO;Balanço cromático +TP_WAVELET_BALCHRO_TOOLTIP;Se ativada, a curva ou o controle deslizante 'Balanço de contraste' também modifica o balanço cromático. +TP_WAVELET_BANONE;Nenhum +TP_WAVELET_BASLI;Controle deslizante +TP_WAVELET_BATYPE;Método de balanço de contraste +TP_WAVELET_CBENAB;Tonificação e Balanço de Cores +TP_WAVELET_CB_TOOLTIP;Para valores fortes, tonalização de cores do produto, combinando ou não com níveis de decomposição 'tonificação'\nPara valores baixos, podes alterar o balanço de branco do plano de fundo (céu, ...) sem alterar o plano frontal, geralmente mais contrastado +TP_WAVELET_CCURVE;Contraste local +TP_WAVELET_CH1;Toda a gama de croma +TP_WAVELET_CH2;Saturado/pastel +TP_WAVELET_CH3;Ligue os níveis de contraste +TP_WAVELET_CHCU;Curva +TP_WAVELET_CHR;Intensidade de ligação do contraste cromático +TP_WAVELET_CHRO;Limite saturado/pastel +TP_WAVELET_CHRO_TOOLTIP;Define o nível de wavelet que será o limite entre as cores saturadas e pastel.\n1-x: saturada\nx-9: pastel\n\nSe o valor exceder o montante de níveis de wavelet que estiveres usando, ele será ignorado. +TP_WAVELET_CHR_TOOLTIP;Ajusta o croma como uma função dos "níveis de contraste" e "intensidade de ligação do contraste cromático" +TP_WAVELET_CHSL;Controles deslizantes +TP_WAVELET_CHTYPE;Método de crominância +TP_WAVELET_COLORT;Opacidade Vermelho-Verde +TP_WAVELET_COMPCONT;Contraste +TP_WAVELET_COMPGAMMA;Compressão gamma +TP_WAVELET_COMPGAMMA_TOOLTIP;Ajustar o gamma da imagem residual permite equilibrar os dados e o histograma. +TP_WAVELET_COMPTM;Mapeamento de tom +TP_WAVELET_CONTEDIT;Curva de contraste 'depois' +TP_WAVELET_CONTR;Gamut +TP_WAVELET_CONTRA;Contraste +TP_WAVELET_CONTRAST_MINUS;Contraste - +TP_WAVELET_CONTRAST_PLUS;Contraste + +TP_WAVELET_CONTRA_TOOLTIP;Altera o contraste da imagem residual. +TP_WAVELET_CTYPE;Controle de crominância +TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifica o contraste local como uma função do contraste local original (abscissa).\nValores baixos de abscissa representam pequeno contraste local (valores reais de 10..20).\n50% abscissa representa contraste local médio (valores reais de 100..300).\n66% abscissa representa desvio padrão do contraste local (valores reais de 300..800).\n100% abscissa representa contraste local máximo (valores reais de 3000..8000). +TP_WAVELET_CURVEEDITOR_CH;Níveis de contraste=f(Matiz) +TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifica cada nível de contraste como uma função da matiz.\nTome cuidado para não sobrescrever as alterações feitas com os controles de matiz da sub-ferramenta Gamut.\nA curva só terá efeito quando os controles deslizantes do nível de contraste da wavelet forem diferentes de zero. +TP_WAVELET_CURVEEDITOR_CL;L +TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Aplica uma curva de luminância de contraste final no fim do tratamento wavelet. +TP_WAVELET_CURVEEDITOR_HH;MM +TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Modifica a matiz da imagem residual como uma função de matiz. +TP_WAVELET_DALL;Todas as direções +TP_WAVELET_DAUB;Performance de borda +TP_WAVELET_DAUB2;D2 - baixo +TP_WAVELET_DAUB4;D4 - padrão +TP_WAVELET_DAUB6;D6 - padrão plus +TP_WAVELET_DAUB10;D10 - médio +TP_WAVELET_DAUB14;D14 - alto +TP_WAVELET_DAUB_TOOLTIP;Altera coeficientes Daubechies:\nD4 = Padrão,\nD14 = Frequentemente melhor desempenho, 10% mais tempo-intensivo.\n\nAfeta a detecção de bordas, bem como a qualidade geral dos primeiros níveis. No entanto, a qualidade não está estritamente relacionada a esse coeficiente e pode variar com imagens e usos. +TP_WAVELET_DONE;Vertical +TP_WAVELET_DTHR;Diagonal +TP_WAVELET_DTWO;Horizontal +TP_WAVELET_EDCU;Curva +TP_WAVELET_EDGCONT;Contraste local +TP_WAVELET_EDGCONT_TOOLTIP;Ajustar os pontos para a esquerda diminui o contraste, e para a direita aumenta.\nInferior esquerdo, Superior esquerdo, Superior direito, Inferior direito representam respectivamente contraste local para valores baixos, médio, médio + stdev, máximos +TP_WAVELET_EDGE;Nitidez de borda +TP_WAVELET_EDGEAMPLI;Amplificação de base +TP_WAVELET_EDGEDETECT;Sensibilidade ao gradiente +TP_WAVELET_EDGEDETECTTHR;Limite baixo (ruído) +TP_WAVELET_EDGEDETECTTHR2;Limite alto (detecção) +TP_WAVELET_EDGEDETECTTHR_TOOLTIP;Esse ajustador permite que segmentes a detecção de bordas, por exemplo, para evitar a aplicação de nitidez de borda a detalhes finos, como ruído no céu. +TP_WAVELET_EDGEDETECT_TOOLTIP;Mover o controle deslizante para a direita aumenta a sensibilidade da borda. Isso afeta o contraste local, as configurações de borda e o ruído. +TP_WAVELET_EDGESENSI;Sensibilidade de borda +TP_WAVELET_EDGREINF_TOOLTIP;Reforce ou reduza a ação do primeiro nível, faça o oposto ao segundo nível e deixe o restante inalterado. +TP_WAVELET_EDGTHRESH;Detalhe +TP_WAVELET_EDGTHRESH_TOOLTIP;Altere a repartição entre os primeiros níveis e os outros. Quanto maior o limite, mais a ação é centrada nos primeiros níveis. Cuidado com valores negativos, eles aumentam a ação de níveis altos e podem introduzir artefatos. +TP_WAVELET_EDRAD;Raio +TP_WAVELET_EDRAD_TOOLTIP;Este ajuste de raio é muito diferente daqueles em outras ferramentas de nitidez. Seu valor é comparado a cada nível através de uma função complexa. Nesse sentido, um valor de zero ainda tem efeito. +TP_WAVELET_EDSL;Controles Deslizantes do Limite +TP_WAVELET_EDTYPE;Método de contraste local +TP_WAVELET_EDVAL;Intensidade +TP_WAVELET_FINAL;Retoque Final +TP_WAVELET_FINEST;Melhor +TP_WAVELET_HIGHLIGHT;Faixa de luminância do realce +TP_WAVELET_HS1;Toda faixa de luminância +TP_WAVELET_HS2;Sombras/Relces +TP_WAVELET_HUESKIN;Matiz da pele +TP_WAVELET_HUESKIN_TOOLTIP;Os pontos inferiores definem o início da zona de transição, e os pontos superiores o final, onde o efeito está no seu máximo.\n\nSe precisares mover a área significativamente, ou se houver artefatos, então o balanço de branco está incorreto. +TP_WAVELET_HUESKY;Matiz do céu +TP_WAVELET_HUESKY_TOOLTIP;Os pontos inferiores definem o início da zona de transição, e os pontos superiores o final, onde o efeito está no seu máximo.\n\nSe precisares mover a área significativamente, ou se houver artefatos, então o balanço de branco está incorreto. +TP_WAVELET_ITER;Níveis de balanço delta +TP_WAVELET_ITER_TOOLTIP;Esquerda: aumenta os níveis baixos e reduz os níveis altos,\nDireita: reduz os níveis baixos e aumenta os níveis altos. +TP_WAVELET_LABEL;Níveis Wavelet +TP_WAVELET_LARGEST;Grosseiro +TP_WAVELET_LEVCH;Croma +TP_WAVELET_LEVDIR_ALL;Todos os níveis em todas as direções +TP_WAVELET_LEVDIR_INF;Abaixo ou igual ao nível +TP_WAVELET_LEVDIR_ONE;Um nível +TP_WAVELET_LEVDIR_SUP;Acima do nível +TP_WAVELET_LEVELS;Níveis Wavelet +TP_WAVELET_LEVELS_TOOLTIP;Escolha o número de níveis de detalhes para os quais a imagem será decomposta. Mais níveis requerem mais RAM e requerem um longo tempo de processamento. +TP_WAVELET_LEVF;Contraste +TP_WAVELET_LEVLABEL;Visualizar níveis máximos possíveis = %1 +TP_WAVELET_LEVONE;Nível 2 +TP_WAVELET_LEVTHRE;Nível 4 +TP_WAVELET_LEVTWO;Nível 3 +TP_WAVELET_LEVZERO;Nível 1 +TP_WAVELET_LINKEDG;Ligar com a Intensidade da Nitidez de Borda +TP_WAVELET_LIPST;Algoritmo aprimorado +TP_WAVELET_LOWLIGHT;Faixa de luminância da sombra +TP_WAVELET_MEDGREINF;Primeiro nível +TP_WAVELET_MEDI;Reduzir artefatos no céu azul +TP_WAVELET_MEDILEV;Detecção de borda +TP_WAVELET_MEDILEV_TOOLTIP;Quando habilitas a detecção de borda, é recomendado:\n- desativar níveis baixos de contraste para evitar artefatos,\n- usar valores altos de sensibilidade ao gradiente.\n\nPodes modular a intensidade com 'refinar' de Remoção de Ruído e Refinar. +TP_WAVELET_NEUTRAL;Neutro +TP_WAVELET_NOIS;Remoção de Ruído +TP_WAVELET_NOISE;Remoção de Ruído e Refinar +TP_WAVELET_NPHIGH;Alto +TP_WAVELET_NPLOW;Baixo +TP_WAVELET_NPNONE;Nenhum +TP_WAVELET_NPTYPE;Pixels vizinhos +TP_WAVELET_NPTYPE_TOOLTIP;Este algoritmo usa a proximidade de um pixel e oito de seus vizinhos. Se diferença for menor, bordas serão reforçadas. +TP_WAVELET_OPACITY;Opacidade Azul-Amarela +TP_WAVELET_OPACITYW;Curva do balanço de contraste d/v-h +TP_WAVELET_OPACITYWL;Contraste local final +TP_WAVELET_OPACITYWL_TOOLTIP;Modifica o contraste local final no fim do tratamento wavelet.\n\nÀ Esquerda representa o menor contraste local, progredindo para o maior contraste local à direita. +TP_WAVELET_PASTEL;Croma pastel +TP_WAVELET_PROC;Processo +TP_WAVELET_RE1;Reforçado +TP_WAVELET_RE2;Inalterado +TP_WAVELET_RE3;Reduzido +TP_WAVELET_RESCHRO;Croma +TP_WAVELET_RESCON;Sombras +TP_WAVELET_RESCONH;Realces +TP_WAVELET_RESID;Imagem Residual +TP_WAVELET_SAT;Croma saturado +TP_WAVELET_SETTINGS;Configurações Wavelet +TP_WAVELET_SKIN;Segmentação/proteção cor da pele +TP_WAVELET_SKIN_TOOLTIP;Em -100 tons de pele são direcionados.\nEm 0 todos os tons são tratados igualmente.\nEm +100 tons de pele são protegidos enquanto todos os outros tons são afetados. +TP_WAVELET_SKY;Segmentação/proteção cor do céu +TP_WAVELET_SKY_TOOLTIP;Em -100 tons de pele são direcionados.\nEm 0 todos os tons são tratados igualmente.\nEm +100 tons de pele são protegidos enquanto todos os outros tons são afetados. +TP_WAVELET_STREN;Intensidade +TP_WAVELET_STRENGTH;Intensidade +TP_WAVELET_SUPE;Extra +TP_WAVELET_THR;Limite de sombras +TP_WAVELET_THRESHOLD;Níveis de realces +TP_WAVELET_THRESHOLD2;Níveis de sombras +TP_WAVELET_THRESHOLD2_TOOLTIP;Apenas níveis entre 9 e menos 9 terão valores afetados pela faixa de luminância da sombra. Outros níveis serão totalmente tratados. O nível mais alto possível é limitado pelo valor do nível de realce (menos 9 valor do nível de realce). +TP_WAVELET_THRESHOLD_TOOLTIP;Apenas níveis além do valor escolhido serão afetados pela faixa de luminância do realce. Outros níveis serão totalmente tratados. O valor escolhido aqui limita o maior valor possível dos níveis de sombra. +TP_WAVELET_THRH;Limite de realces +TP_WAVELET_TILESBIG;Mosaicos grandes +TP_WAVELET_TILESFULL;Imagem cheia +TP_WAVELET_TILESIZE;Método de mosaicos +TP_WAVELET_TILESLIT;Mosaicos pequenos +TP_WAVELET_TILES_TOOLTIP;O processamento da imagem cheia leva a uma melhor qualidade e é a opção recomendada, enquanto o uso de mosaicos é uma solução de retorno para usuários com pouca RAM. Consulte o RawPedia para requisitos de memória. +TP_WAVELET_TMSTRENGTH;Intensidade de compressão +TP_WAVELET_TMSTRENGTH_TOOLTIP;Controla a intensidade do mapeamento de tom ou a compressaõ de contraste da imagem residua. Quando o valor for diferente de 0, os controles deslizantes Intensidade e Gamma da ferramenta Mapeamento de Tom na guia Exposição ficarão esmaecidos. +TP_WAVELET_TMTYPE;Método de compressão +TP_WAVELET_TON;Tonificação +TP_WBALANCE_AUTO;Automático +TP_WBALANCE_CAMERA;Câmera +TP_WBALANCE_CLOUDY;Nublado +TP_WBALANCE_CUSTOM;Personalizado +TP_WBALANCE_DAYLIGHT;Luz do dia (sol) +TP_WBALANCE_EQBLUERED;Equalizador Azul/Vermelho +TP_WBALANCE_EQBLUERED_TOOLTIP;Permite desviar do comportamento normal do "balanço de branco", modulando o balanço azul/vermelho.\nIsso pode ser útil ao fotografar condições:\na) estão longe do iluminante padrão (por exemplo, embaixo d'água),\nb) estão longe das condições em que as calibrações foram realizadas,\nc) onde as matrizes ou perfis ICC são inadequados. +TP_WBALANCE_FLASH55;Leica +TP_WBALANCE_FLASH60;Padrão, Canon, Pentax, Olympus +TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta +TP_WBALANCE_FLASH_HEADER;Flash +TP_WBALANCE_FLUO1;F1 - Luz do Dia +TP_WBALANCE_FLUO2;F2 - Branco Frio +TP_WBALANCE_FLUO3;F3 - Branco +TP_WBALANCE_FLUO4;F4 - Branco Quente +TP_WBALANCE_FLUO5;F5 - Luz do Dia +TP_WBALANCE_FLUO6;F6 - Branco Suave +TP_WBALANCE_FLUO7;F7 - Simulador de Luz do Dia D65 +TP_WBALANCE_FLUO8;F8 - Modelo D50 / Sylvania F40 +TP_WBALANCE_FLUO9;F9 - Branco Frio de luxo +TP_WBALANCE_FLUO10;F10 - Philips TL85 +TP_WBALANCE_FLUO11;F11 - Philips TL84 +TP_WBALANCE_FLUO12;F12 - Philips TL83 +TP_WBALANCE_FLUO_HEADER;Fluorescente +TP_WBALANCE_GREEN;Tinto +TP_WBALANCE_GTI;GTI +TP_WBALANCE_HMI;HMI +TP_WBALANCE_JUDGEIII;Juiz III +TP_WBALANCE_LABEL;Balanço de Branco +TP_WBALANCE_LAMP_HEADER;Lâmpada +TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 +TP_WBALANCE_LED_HEADER;LED +TP_WBALANCE_LED_LSI;LSI Lumelex 2040 +TP_WBALANCE_METHOD;Método +TP_WBALANCE_SHADE;Penumbra +TP_WBALANCE_SIZE;Tamanho: +TP_WBALANCE_SOLUX35;Solux 3500K +TP_WBALANCE_SOLUX41;Solux 4100K +TP_WBALANCE_SOLUX47;Solux 4700K (vendor) +TP_WBALANCE_SOLUX47_NG;Solux 4700K (Galeria Nat.) +TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. +TP_WBALANCE_TEMPBIAS;Viés de temperatura AWB +TP_WBALANCE_TEMPBIAS_TOOLTIP;Permite alterar o cálculo do "balanço de branco automático"\ninclinando-o para temperaturas mais quentes ou mais frias. O viés\né expresso como uma porcentagem da temperatura calculada,\npara que o resultado seja dado por "Temperatura calculada + Temperatura calculada * viés". +TP_WBALANCE_TEMPERATURE;Temperatura +TP_WBALANCE_TUNGSTEN;Tungstênio +TP_WBALANCE_WATER1;Embaixo da Água 1 +TP_WBALANCE_WATER2;Embaixo da Água 2 +TP_WBALANCE_WATER_HEADER;Embaixo da Água +ZOOMPANEL_100;(100%) +ZOOMPANEL_NEWCROPWINDOW;Janela de detalhe aberta (nova) +ZOOMPANEL_ZOOM100;Zoom para 100%\nAtalho: z +ZOOMPANEL_ZOOMFITCROPSCREEN;Ajustar o corte à tela\nAtalho: f +ZOOMPANEL_ZOOMFITSCREEN;Ajustar toda a imagem à tela\nAtalho: Alt-f +ZOOMPANEL_ZOOMIN;Mais Zoom\nAtalho: + +ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !!!!!!!!!!!!!!!!!!!!!!!!! ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!GENERAL_RESET;Reset -!HISTORY_MSG_488;Dynamic Range Compression -!HISTORY_MSG_489;DRC - Threshold -!HISTORY_MSG_490;DRC - Amount -!HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold -!HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion -!HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold -!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold -!HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!TP_ICM_DCPILLUMINANT_TOOLTIP;Select which embedded DCP illuminant to employ. Default is "interpolated" which is a mix between the two based on white balance. The setting is only available if a dual-illuminant DCP with interpolation support is selected. -!TP_ICM_INPUTCAMERA;Camera standard -!TP_ICM_INPUTCAMERAICC;Auto-matched camera profile -!TP_ICM_INPUTCAMERAICC_TOOLTIP;Use RawTherapee's camera-specific DCP or ICC input color profiles. These profiles are more precise than simpler matrix ones. They are not available for all cameras. These profiles are stored in the /iccprofiles/input and /dcpprofiles folders and are automatically retrieved based on a file name matching to the exact model name of the camera. -!TP_ICM_INPUTCAMERA_TOOLTIP;Use a simple color matrix from dcraw, an enhanced RawTherapee version (whichever is available based on camera model) or one embedded in the DNG. -!TP_ICM_INPUTCUSTOM;Custom -!TP_ICM_INPUTCUSTOM_TOOLTIP;Select your own DCP/ICC color profile file for the camera. -!TP_ICM_INPUTDLGLABEL;Select Input DCP/ICC Profile... -!TP_ICM_INPUTEMBEDDED;Use embedded, if possible -!TP_ICM_INPUTEMBEDDED_TOOLTIP;Use color profile embedded in non-raw files. -!TP_ICM_INPUTNONE;No profile -!TP_ICM_INPUTNONE_TOOLTIP;Use no input color profile at all.\nUse only in special cases. -!TP_ICM_INPUTPROFILE;Input Profile -!TP_ICM_LABEL;Color Management -!TP_ICM_NOICM;No ICM: sRGB Output -!TP_ICM_OUTPUTPROFILE;Output Profile -!TP_ICM_PROFILEINTENT;Rendering Intent -!TP_ICM_SAVEREFERENCE;Save Reference Image -!TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance -!TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. -!TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. -!TP_ICM_TONECURVE;Tone curve -!TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. -!TP_ICM_WORKINGPROFILE;Working Profile -!TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction -!TP_IMPULSEDENOISE_THRESH;Threshold -!TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift -!TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. -!TP_LABCURVE_BRIGHTNESS;Lightness -!TP_LABCURVE_CHROMATICITY;Chromaticity -!TP_LABCURVE_CHROMA_TOOLTIP;To apply B&W toning, set Chromaticity to -100. -!TP_LABCURVE_CONTRAST;Contrast -!TP_LABCURVE_CURVEEDITOR;Luminance Curve -!TP_LABCURVE_CURVEEDITOR_A_RANGE1;Green Saturated -!TP_LABCURVE_CURVEEDITOR_A_RANGE2;Green Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE3;Red Pastel -!TP_LABCURVE_CURVEEDITOR_A_RANGE4;Red Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE1;Blue Saturated -!TP_LABCURVE_CURVEEDITOR_B_RANGE2;Blue Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE3;Yellow Pastel -!TP_LABCURVE_CURVEEDITOR_B_RANGE4;Yellow Saturated -!TP_LABCURVE_CURVEEDITOR_CC;CC -!TP_LABCURVE_CURVEEDITOR_CC_RANGE1;Neutral -!TP_LABCURVE_CURVEEDITOR_CC_RANGE2;Dull -!TP_LABCURVE_CURVEEDITOR_CC_RANGE3;Pastel -!TP_LABCURVE_CURVEEDITOR_CC_RANGE4;Saturated -!TP_LABCURVE_CURVEEDITOR_CC_TOOLTIP;Chromaticity according to chromaticity C=f(C) -!TP_LABCURVE_CURVEEDITOR_CH;CH -!TP_LABCURVE_CURVEEDITOR_CH_TOOLTIP;Chromaticity according to hue C=f(H) -!TP_LABCURVE_CURVEEDITOR_CL;CL -!TP_LABCURVE_CURVEEDITOR_CL_TOOLTIP;Chromaticity according to luminance C=f(L) -!TP_LABCURVE_CURVEEDITOR_HH;HH -!TP_LABCURVE_CURVEEDITOR_HH_TOOLTIP;Hue according to hue H=f(H) -!TP_LABCURVE_CURVEEDITOR_LC;LC -!TP_LABCURVE_CURVEEDITOR_LC_TOOLTIP;Luminance according to chromaticity L=f(C) -!TP_LABCURVE_CURVEEDITOR_LH;LH -!TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) -!TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) -!TP_LABCURVE_LABEL;L*a*b* Adjustments -!TP_LABCURVE_LCREDSK;Restrict LC to red and skin-tones -!TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. -!TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection -!TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. -!TP_LENSGEOM_AUTOCROP;Auto-Crop -!TP_LENSGEOM_FILL;Auto-fill -!TP_LENSGEOM_LABEL;Lens / Geometry -!TP_LENSPROFILE_LABEL;Profiled Lens Correction -!TP_LENSPROFILE_USECA;Chromatic aberration correction -!TP_LENSPROFILE_USEDIST;Distortion correction -!TP_LENSPROFILE_USEVIGN;Vignetting correction -!TP_LOCALCONTRAST_AMOUNT;Amount -!TP_LOCALCONTRAST_DARKNESS;Darkness level -!TP_LOCALCONTRAST_LABEL;Local Contrast -!TP_LOCALCONTRAST_LIGHTNESS;Lightness level -!TP_LOCALCONTRAST_RADIUS;Radius -!TP_METADATA_EDIT;Apply modifications -!TP_METADATA_MODE;Metadata copy mode -!TP_METADATA_STRIP;Strip all metadata -!TP_METADATA_TUNNEL;Copy unchanged -!TP_NEUTRAL;Reset -!TP_NEUTRAL_TIP;Resets exposure sliders to neutral values.\nApplies to the same controls that Auto Levels applies to, regardless of whether you used Auto Levels or not. -!TP_PCVIGNETTE_FEATHER;Feather -!TP_PCVIGNETTE_FEATHER_TOOLTIP;Feathering:\n0 = corners only,\n50 = halfway to center,\n100 = to center. -!TP_PCVIGNETTE_LABEL;Vignette Filter -!TP_PCVIGNETTE_ROUNDNESS;Roundness -!TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;Roundness:\n0 = rectangle,\n50 = fitted ellipse,\n100 = circle. -!TP_PCVIGNETTE_STRENGTH;Strength -!TP_PCVIGNETTE_STRENGTH_TOOLTIP;Filter strength in stops (reached in corners). -!TP_PERSPECTIVE_HORIZONTAL;Horizontal -!TP_PERSPECTIVE_LABEL;Perspective -!TP_PERSPECTIVE_VERTICAL;Vertical -!TP_PFCURVE_CURVEEDITOR_CH;Hue -!TP_PFCURVE_CURVEEDITOR_CH_TOOLTIP;Controls defringe strength by color.\nHigher = more,\nLower = less. -!TP_PREPROCESS_DEADPIXFILT;Dead pixel filter -!TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. -!TP_PREPROCESS_GREENEQUIL;Green equilibration -!TP_PREPROCESS_HOTPIXFILT;Hot pixel filter -!TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Tries to suppress hot pixels. -!TP_PREPROCESS_LABEL;Preprocessing -!TP_PREPROCESS_LINEDENOISE;Line noise filter -!TP_PREPROCESS_LINEDENOISE_DIRECTION;Direction -!TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both -!TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Horizontal -!TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows -!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical -!TP_PREPROCESS_NO_FOUND;None found -!TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. -!TP_PRSHARPENING_LABEL;Post-Resize Sharpening -!TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. -!TP_RAWCACORR_AUTO;Auto-correction -!TP_RAWCACORR_CABLUE;Blue -!TP_RAWCACORR_CARED;Red -!TP_RAWCACORR_CASTR;Strength -!TP_RAWEXPOS_BLACKS;Black Levels -!TP_RAWEXPOS_BLACK_0;Green 1 (lead) -!TP_RAWEXPOS_BLACK_1;Red -!TP_RAWEXPOS_BLACK_2;Blue -!TP_RAWEXPOS_BLACK_3;Green 2 -!TP_RAWEXPOS_BLACK_BLUE;Blue -!TP_RAWEXPOS_BLACK_GREEN;Green -!TP_RAWEXPOS_BLACK_RED;Red -!TP_RAWEXPOS_LINEAR;White-point correction -!TP_RAWEXPOS_PRESER;Highlight preservation -!TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass -!TP_RAW_AHD;AHD -!TP_RAW_AMAZE;AMaZE -!TP_RAW_AMAZEVNG4;AMaZE+VNG4 -!TP_RAW_DCB;DCB -!TP_RAW_DCBENHANCE;DCB enhancement -!TP_RAW_DCBITERATIONS;Number of DCB iterations -!TP_RAW_DMETHOD;Method -!TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... -!TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... -!TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. -!TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold -!TP_RAW_EAHD;EAHD -!TP_RAW_FALSECOLOR;False color suppression steps -!TP_RAW_FAST;Fast -!TP_RAW_HD;Threshold -!TP_RAW_HD_TOOLTIP;Lower values make hot/dead pixel detection more aggressive, but false positives may lead to artifacts. If you notice any artifacts appearing when enabling the Hot/Dead Pixel Filters, gradually increase the threshold value until they disappear. -!TP_RAW_HPHD;HPHD -!TP_RAW_IGV;IGV -!TP_RAW_IMAGENUM;Sub-image -!TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. -!TP_RAW_LABEL;Demosaicing -!TP_RAW_LMMSE;LMMSE -!TP_RAW_LMMSEITERATIONS;LMMSE enhancement steps -!TP_RAW_LMMSE_TOOLTIP;Adds gamma (step 1), median (steps 2-4) and refinement (steps 5-6) to reduce artifacts and improve the signal-to-noise ratio. -!TP_RAW_MONO;Mono -!TP_RAW_NONE;None (Shows sensor pattern) -!TP_RAW_PIXELSHIFT;Pixel Shift -!TP_RAW_PIXELSHIFTBLUR;Blur motion mask -!TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion -!TP_RAW_PIXELSHIFTEPERISO;Sensitivity -!TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nHigher values increase sensitivity of motion detection.\nChange in small steps and watch the motion mask while changing.\nIncrease sensitivity for underexposed or high ISO images. -!TP_RAW_PIXELSHIFTEQUALBRIGHT;Equalize brightness of frames -!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel -!TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels. -!TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to the brightness of the selected frame.\nIf there are overexposed areas in the frames select the brightest frame to avoid magenta color cast in overexposed areas or enable motion correction. -!TP_RAW_PIXELSHIFTGREEN;Check green channel for motion -!TP_RAW_PIXELSHIFTHOLEFILL;Fill holes in motion mask -!TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Fill holes in motion mask -!TP_RAW_PIXELSHIFTLMMSE;Use LMMSE for moving parts -!TP_RAW_PIXELSHIFTLMMSE_TOOLTIP;Use LMMSE instead of AMaZE for areas of motion.\nUseful for high ISO images. -!TP_RAW_PIXELSHIFTMEDIAN;Use median for moving parts -!TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use median of all frames instead of selected frame for regions with motion.\nRemoves objects which are at different places in all frames.\nGives motion effect on slow moving (overlapping) objects. -!TP_RAW_PIXELSHIFTMM_AUTO;Automatic -!TP_RAW_PIXELSHIFTMM_CUSTOM;Custom -!TP_RAW_PIXELSHIFTMM_OFF;Off -!TP_RAW_PIXELSHIFTMOTIONMETHOD;Motion Correction -!TP_RAW_PIXELSHIFTMOTION_TOOLTIP;0 means no motion detection.\n1 - 99 means motion will be detected according to this value. Increase value to increase detection rate.\n100 means the AMaZE-demosaiced frame will be used. -!TP_RAW_PIXELSHIFTNONGREENCROSS;Check red/blue channels for motion -!TP_RAW_PIXELSHIFTSHOWMOTION;Show motion mask -!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Show only motion mask -!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Shows the motion mask without the image. -!TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. -!TP_RAW_PIXELSHIFTSIGMA;Blur radius -!TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. -!TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions -!TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. -!TP_RAW_RCD;RCD -!TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. -!TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix -!TP_RAW_VNG4;VNG4 -!TP_RESIZE_APPLIESTO;Applies to: -!TP_RESIZE_CROPPEDAREA;Cropped Area -!TP_RESIZE_FITBOX;Bounding Box -!TP_RESIZE_FULLIMAGE;Full Image -!TP_RESIZE_H;Height: -!TP_RESIZE_HEIGHT;Height -!TP_RESIZE_LABEL;Resize -!TP_RESIZE_LANCZOS;Lanczos -!TP_RESIZE_METHOD;Method: -!TP_RESIZE_NEAREST;Nearest -!TP_RESIZE_SCALE;Scale -!TP_RESIZE_SPECIFY;Specify: -!TP_RESIZE_W;Width: -!TP_RESIZE_WIDTH;Width -!TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL -!TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* -!TP_RETINEX_CONTEDIT_LH;Hue equalizer -!TP_RETINEX_CONTEDIT_MAP;Mask equalizer -!TP_RETINEX_CURVEEDITOR_CD;L=f(L) -!TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. -!TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) -!TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. -!TP_RETINEX_CURVEEDITOR_MAP;L=f(L) -!TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! -!TP_RETINEX_EQUAL;Equalizer -!TP_RETINEX_FREEGAMMA;Free gamma -!TP_RETINEX_GAIN;Gain -!TP_RETINEX_GAINOFFS;Gain and Offset (brightness) -!TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. -!TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. -!TP_RETINEX_GAMMA;Gamma -!TP_RETINEX_GAMMA_FREE;Free -!TP_RETINEX_GAMMA_HIGH;High -!TP_RETINEX_GAMMA_LOW;Low -!TP_RETINEX_GAMMA_MID;Middle -!TP_RETINEX_GAMMA_NONE;None -!TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). -!TP_RETINEX_GRAD;Transmission gradient -!TP_RETINEX_GRADS;Strength gradient -!TP_RETINEX_GRADS_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Strength is reduced when iterations increase, and conversely. -!TP_RETINEX_GRAD_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Variance and Threshold are reduced when iterations increase, and conversely. -!TP_RETINEX_HIGH;High -!TP_RETINEX_HIGHLIG;Highlight -!TP_RETINEX_HIGHLIGHT;Highlight threshold -!TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. -!TP_RETINEX_HSLSPACE_LIN;HSL-Linear -!TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic -!TP_RETINEX_ITER;Iterations (Tone-mapping) -!TP_RETINEX_ITERF;Tone mapping -!TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. -!TP_RETINEX_LABEL;Retinex -!TP_RETINEX_LABEL_MASK;Mask -!TP_RETINEX_LABSPACE;L*a*b* -!TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Mask method -!TP_RETINEX_MAP_GAUS;Gaussian mask -!TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) -!TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) -!TP_RETINEX_MAP_METHOD_TOOLTIP;Use the mask generated by the Gaussian function above (Radius, Method) to reduce halos and artifacts.\n\nCurve only: apply a diagonal contrast curve on the mask.\nBeware of artifacts!\n\nGaussian mask: generate and use a Gaussian blur of the original mask.\nQuick.\n\nSharp mask: generate and use a wavelet on the original mask.\nSlow. -!TP_RETINEX_MAP_NONE;None -!TP_RETINEX_MEDIAN;Transmission median filter -!TP_RETINEX_METHOD;Method -!TP_RETINEX_METHOD_TOOLTIP;Low = Reinforce low light.\nUniform = Equalize action.\nHigh = Reinforce high light.\nHighlights = Remove magenta in highlights. -!TP_RETINEX_MLABEL;Restored haze-free Min=%1 Max=%2 -!TP_RETINEX_MLABEL_TOOLTIP;Should be near min=0 max=32768\nRestored image with no mixture. -!TP_RETINEX_NEIGHBOR;Radius -!TP_RETINEX_NEUTRAL;Reset -!TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values. -!TP_RETINEX_OFFSET;Offset (brightness) -!TP_RETINEX_SCALES;Gaussian gradient -!TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely. -!TP_RETINEX_SETTINGS;Settings -!TP_RETINEX_SKAL;Scale -!TP_RETINEX_SLOPE;Free gamma slope -!TP_RETINEX_STRENGTH;Strength -!TP_RETINEX_THRESHOLD;Threshold -!TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss. -!TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4 -!TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 -!TP_RETINEX_TLABEL_TOOLTIP;Transmission map result.\nMin and Max are used by Variance.\nMean and Sigma.\nTm=Min TM=Max of transmission map. -!TP_RETINEX_TRANF;Transmission -!TP_RETINEX_TRANSMISSION;Transmission map -!TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. -!TP_RETINEX_UNIFORM;Uniform -!TP_RETINEX_VARIANCE;Contrast -!TP_RETINEX_VARIANCE_TOOLTIP;Low variance increase local contrast and saturation, but can lead to artifacts. -!TP_RETINEX_VIEW;Process -!TP_RETINEX_VIEW_MASK;Mask -!TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. -!TP_RETINEX_VIEW_NONE;Standard -!TP_RETINEX_VIEW_TRAN;Transmission - Auto -!TP_RETINEX_VIEW_TRAN2;Transmission - Fixed -!TP_RETINEX_VIEW_UNSHARP;Unsharp mask -!TP_RGBCURVES_BLUE;B -!TP_RGBCURVES_CHANNEL;Channel -!TP_RGBCURVES_GREEN;G -!TP_RGBCURVES_LABEL;RGB Curves -!TP_RGBCURVES_LUMAMODE;Luminosity mode -!TP_RGBCURVES_LUMAMODE_TOOLTIP;Luminosity mode allows to vary the contribution of R, G and B channels to the luminosity of the image, without altering image color. -!TP_RGBCURVES_RED;R -!TP_ROTATE_DEGREE;Degree -!TP_ROTATE_LABEL;Rotate -!TP_ROTATE_SELECTLINE;Select Straight Line -!TP_SAVEDIALOG_OK_TIP;Shortcut: Ctrl-Enter -!TP_SHADOWSHLIGHTS_HIGHLIGHTS;Highlights -!TP_SHADOWSHLIGHTS_HLTONALW;Highlights tonal width -!TP_SHADOWSHLIGHTS_LABEL;Shadows/Highlights -!TP_SHADOWSHLIGHTS_LOCALCONTR;Local contrast -!TP_SHADOWSHLIGHTS_RADIUS;Radius -!TP_SHADOWSHLIGHTS_SHADOWS;Shadows -!TP_SHADOWSHLIGHTS_SHARPMASK;Sharp mask -!TP_SHADOWSHLIGHTS_SHTONALW;Shadows tonal width -!TP_SHARPENEDGE_AMOUNT;Quantity -!TP_SHARPENEDGE_LABEL;Edges -!TP_SHARPENEDGE_PASSES;Iterations -!TP_SHARPENEDGE_THREE;Luminance only -!TP_SHARPENING_AMOUNT;Amount -!TP_SHARPENING_CONTRAST;Contrast threshold -!TP_SHARPENING_EDRADIUS;Radius -!TP_SHARPENING_EDTOLERANCE;Edge tolerance -!TP_SHARPENING_HALOCONTROL;Halo control -!TP_SHARPENING_HCAMOUNT;Amount -!TP_SHARPENING_LABEL;Sharpening -!TP_SHARPENING_METHOD;Method -!TP_SHARPENING_ONLYEDGES;Sharpen only edges -!TP_SHARPENING_RADIUS;Radius -!TP_SHARPENING_RLD;RL Deconvolution -!TP_SHARPENING_RLD_AMOUNT;Amount -!TP_SHARPENING_RLD_DAMPING;Damping -!TP_SHARPENING_RLD_ITERATIONS;Iterations -!TP_SHARPENING_THRESHOLD;Threshold -!TP_SHARPENING_USM;Unsharp Mask -!TP_SHARPENMICRO_AMOUNT;Quantity -!TP_SHARPENMICRO_CONTRAST;Contrast threshold -!TP_SHARPENMICRO_LABEL;Microcontrast -!TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 -!TP_SHARPENMICRO_UNIFORMITY;Uniformity -!TP_TM_FATTAL_AMOUNT;Amount -!TP_TM_FATTAL_ANCHOR;Anchor -!TP_TM_FATTAL_LABEL;Dynamic Range Compression -!TP_TM_FATTAL_THRESHOLD;Threshold -!TP_VIBRANCE_AVOIDCOLORSHIFT;Avoid color shift -!TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Skin-tones -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE1;Red/Purple -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE2;Red -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE3;Red/Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_RANGE4;Yellow -!TP_VIBRANCE_CURVEEDITOR_SKINTONES_TOOLTIP;Hue according to hue H=f(H) -!TP_VIBRANCE_LABEL;Vibrance -!TP_VIBRANCE_PASTELS;Pastel Tones -!TP_VIBRANCE_PASTSATTOG;Link pastel and saturated tones -!TP_VIBRANCE_PROTECTSKINS;Protect skin-tones -!TP_VIBRANCE_PSTHRESHOLD;Pastel/saturated tones threshold -!TP_VIBRANCE_PSTHRESHOLD_SATTHRESH;Saturation threshold -!TP_VIBRANCE_PSTHRESHOLD_TOOLTIP;The vertical axis represents pastel tones at the bottom and saturated tones at the top.\nThe horizontal axis represents the saturation range. -!TP_VIBRANCE_PSTHRESHOLD_WEIGTHING;Pastel/saturated transition's weighting -!TP_VIBRANCE_SATURATED;Saturated Tones -!TP_VIGNETTING_AMOUNT;Amount -!TP_VIGNETTING_CENTER;Center -!TP_VIGNETTING_CENTER_X;Center X -!TP_VIGNETTING_CENTER_Y;Center Y -!TP_VIGNETTING_LABEL;Vignetting Correction -!TP_VIGNETTING_RADIUS;Radius -!TP_VIGNETTING_STRENGTH;Strength -!TP_WAVELET_1;Level 1 -!TP_WAVELET_2;Level 2 -!TP_WAVELET_3;Level 3 -!TP_WAVELET_4;Level 4 -!TP_WAVELET_5;Level 5 -!TP_WAVELET_6;Level 6 -!TP_WAVELET_7;Level 7 -!TP_WAVELET_8;Level 8 -!TP_WAVELET_9;Level 9 -!TP_WAVELET_APPLYTO;Apply To -!TP_WAVELET_AVOID;Avoid color shift -!TP_WAVELET_B0;Black -!TP_WAVELET_B1;Grey -!TP_WAVELET_B2;Residual -!TP_WAVELET_BACKGROUND;Background -!TP_WAVELET_BACUR;Curve -!TP_WAVELET_BALANCE;Contrast balance d/v-h -!TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. -!TP_WAVELET_BALCHRO;Chroma balance -!TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. -!TP_WAVELET_BANONE;None -!TP_WAVELET_BASLI;Slider -!TP_WAVELET_BATYPE;Contrast balance method -!TP_WAVELET_CBENAB;Toning and Color Balance -!TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted -!TP_WAVELET_CCURVE;Local contrast -!TP_WAVELET_CH1;Whole chroma range -!TP_WAVELET_CH2;Saturated/pastel -!TP_WAVELET_CH3;Link contrast levels -!TP_WAVELET_CHCU;Curve -!TP_WAVELET_CHR;Chroma-contrast link strength -!TP_WAVELET_CHRO;Saturated/pastel threshold -!TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. -!TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" -!TP_WAVELET_CHSL;Sliders -!TP_WAVELET_CHTYPE;Chrominance method -!TP_WAVELET_COLORT;Opacity Red-Green -!TP_WAVELET_COMPCONT;Contrast -!TP_WAVELET_COMPGAMMA;Compression gamma -!TP_WAVELET_COMPGAMMA_TOOLTIP;Adjusting the gamma of the residual image allows you to equilibrate the data and histogram. -!TP_WAVELET_COMPTM;Tone mapping -!TP_WAVELET_CONTEDIT;'After' contrast curve -!TP_WAVELET_CONTR;Gamut -!TP_WAVELET_CONTRA;Contrast -!TP_WAVELET_CONTRAST_MINUS;Contrast - -!TP_WAVELET_CONTRAST_PLUS;Contrast + -!TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. -!TP_WAVELET_CTYPE;Chrominance control -!TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). -!TP_WAVELET_CURVEEDITOR_CH;Contrast levels=f(Hue) -!TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. -!TP_WAVELET_CURVEEDITOR_CL;L -!TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Applies a final contrast luminance curve at the end of the wavelet treatment. -!TP_WAVELET_CURVEEDITOR_HH;HH -!TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Modifies the residual image's hue as a function of hue. -!TP_WAVELET_DALL;All directions -!TP_WAVELET_DAUB;Edge performance -!TP_WAVELET_DAUB2;D2 - low -!TP_WAVELET_DAUB4;D4 - standard -!TP_WAVELET_DAUB6;D6 - standard plus -!TP_WAVELET_DAUB10;D10 - medium -!TP_WAVELET_DAUB14;D14 - high -!TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. -!TP_WAVELET_DONE;Vertical -!TP_WAVELET_DTHR;Diagonal -!TP_WAVELET_DTWO;Horizontal -!TP_WAVELET_EDCU;Curve -!TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima -!TP_WAVELET_EDGE;Edge Sharpness -!TP_WAVELET_EDGEAMPLI;Base amplification -!TP_WAVELET_EDGEDETECT;Gradient sensitivity -!TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) -!TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) -!TP_WAVELET_EDGEDETECTTHR_TOOLTIP;This adjuster lets you target edge detection for example to avoid applying edge sharpness to fine details, such as noise in the sky. -!TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. -!TP_WAVELET_EDGESENSI;Edge sensitivity -!TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. -!TP_WAVELET_EDGTHRESH;Detail -!TP_WAVELET_EDGTHRESH_TOOLTIP;Change the repartition between the first levels and the others. The higher the threshold the more the action is centered on the first levels. Be careful with negative values, they increase the action of high levels and can introduce artifacts. -!TP_WAVELET_EDRAD;Radius -!TP_WAVELET_EDRAD_TOOLTIP;This radius adjustment is very different from those in other sharpening tools. Its value is compared to each level through a complex function. In this sense, a value of zero still has an effect. -!TP_WAVELET_EDSL;Threshold Sliders -!TP_WAVELET_EDTYPE;Local contrast method -!TP_WAVELET_EDVAL;Strength -!TP_WAVELET_FINAL;Final Touchup -!TP_WAVELET_FINEST;Finest -!TP_WAVELET_HIGHLIGHT;Highlight luminance range -!TP_WAVELET_HS1;Whole luminance range -!TP_WAVELET_HS2;Shadows/Highlights -!TP_WAVELET_HUESKIN;Skin hue -!TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. -!TP_WAVELET_HUESKY;Sky hue -!TP_WAVELET_HUESKY_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. -!TP_WAVELET_ITER;Delta balance levels -!TP_WAVELET_ITER_TOOLTIP;Left: increase low levels and reduce high levels,\nRight: reduce low levels and increase high levels. -!TP_WAVELET_LABEL;Wavelet Levels -!TP_WAVELET_LARGEST;Coarsest -!TP_WAVELET_LEVCH;Chroma -!TP_WAVELET_LEVDIR_ALL;All levels in all directions -!TP_WAVELET_LEVDIR_INF;Below or equal the level -!TP_WAVELET_LEVDIR_ONE;One level -!TP_WAVELET_LEVDIR_SUP;Above the level -!TP_WAVELET_LEVELS;Wavelet levels -!TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. -!TP_WAVELET_LEVF;Contrast -!TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 -!TP_WAVELET_LEVONE;Level 2 -!TP_WAVELET_LEVTHRE;Level 4 -!TP_WAVELET_LEVTWO;Level 3 -!TP_WAVELET_LEVZERO;Level 1 -!TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength -!TP_WAVELET_LIPST;Enhanced algoritm -!TP_WAVELET_LOWLIGHT;Shadow luminance range -!TP_WAVELET_MEDGREINF;First level -!TP_WAVELET_MEDI;Reduce artifacts in blue sky -!TP_WAVELET_MEDILEV;Edge detection -!TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. -!TP_WAVELET_NEUTRAL;Neutral -!TP_WAVELET_NOIS;Denoise -!TP_WAVELET_NOISE;Denoise and Refine -!TP_WAVELET_NPHIGH;High -!TP_WAVELET_NPLOW;Low -!TP_WAVELET_NPNONE;None -!TP_WAVELET_NPTYPE;Neighboring pixels -!TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. -!TP_WAVELET_OPACITY;Opacity Blue-Yellow -!TP_WAVELET_OPACITYW;Contrast balance d/v-h curve -!TP_WAVELET_OPACITYWL;Final local contrast -!TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. -!TP_WAVELET_PASTEL;Pastel chroma -!TP_WAVELET_PROC;Process -!TP_WAVELET_RE1;Reinforced -!TP_WAVELET_RE2;Unchanged -!TP_WAVELET_RE3;Reduced -!TP_WAVELET_RESCHRO;Chroma -!TP_WAVELET_RESCON;Shadows -!TP_WAVELET_RESCONH;Highlights -!TP_WAVELET_RESID;Residual Image -!TP_WAVELET_SAT;Saturated chroma -!TP_WAVELET_SETTINGS;Wavelet Settings -!TP_WAVELET_SKIN;Skin targetting/protection -!TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. -!TP_WAVELET_SKY;Sky targetting/protection -!TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. -!TP_WAVELET_STREN;Strength -!TP_WAVELET_STRENGTH;Strength -!TP_WAVELET_SUPE;Extra -!TP_WAVELET_THR;Shadows threshold -!TP_WAVELET_THRESHOLD;Highlight levels -!TP_WAVELET_THRESHOLD2;Shadow levels -!TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). -!TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. -!TP_WAVELET_THRH;Highlights threshold -!TP_WAVELET_TILESBIG;Big tiles -!TP_WAVELET_TILESFULL;Full image -!TP_WAVELET_TILESIZE;Tiling method -!TP_WAVELET_TILESLIT;Little tiles -!TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. -!TP_WAVELET_TMSTRENGTH;Compression strength -!TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. -!TP_WAVELET_TMTYPE;Compression method -!TP_WAVELET_TON;Toning -!TP_WBALANCE_AUTO;Auto -!TP_WBALANCE_CAMERA;Camera -!TP_WBALANCE_CLOUDY;Cloudy -!TP_WBALANCE_CUSTOM;Custom -!TP_WBALANCE_DAYLIGHT;Daylight (sunny) -!TP_WBALANCE_EQBLUERED;Blue/Red equalizer -!TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "white balance" by modulating the blue/red balance.\nThis can be useful when shooting conditions:\na) are far from the standard illuminant (e.g. underwater),\nb) are far from conditions where calibrations were performed,\nc) where the matrices or ICC profiles are unsuitable. -!TP_WBALANCE_FLASH55;Leica -!TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus -!TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -!TP_WBALANCE_FLASH_HEADER;Flash -!TP_WBALANCE_FLUO1;F1 - Daylight -!TP_WBALANCE_FLUO2;F2 - Cool White -!TP_WBALANCE_FLUO3;F3 - White -!TP_WBALANCE_FLUO4;F4 - Warm White -!TP_WBALANCE_FLUO5;F5 - Daylight -!TP_WBALANCE_FLUO6;F6 - Lite White -!TP_WBALANCE_FLUO7;F7 - D65 Daylight Simulator -!TP_WBALANCE_FLUO8;F8 - D50 / Sylvania F40 Design -!TP_WBALANCE_FLUO9;F9 - Cool White Deluxe -!TP_WBALANCE_FLUO10;F10 - Philips TL85 -!TP_WBALANCE_FLUO11;F11 - Philips TL84 -!TP_WBALANCE_FLUO12;F12 - Philips TL83 -!TP_WBALANCE_FLUO_HEADER;Fluorescent -!TP_WBALANCE_GREEN;Tint -!TP_WBALANCE_GTI;GTI -!TP_WBALANCE_HMI;HMI -!TP_WBALANCE_JUDGEIII;JudgeIII -!TP_WBALANCE_LABEL;White Balance -!TP_WBALANCE_LAMP_HEADER;Lamp -!TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 -!TP_WBALANCE_LED_HEADER;LED -!TP_WBALANCE_LED_LSI;LSI Lumelex 2040 -!TP_WBALANCE_METHOD;Method -!TP_WBALANCE_SHADE;Shade -!TP_WBALANCE_SIZE;Size: -!TP_WBALANCE_SOLUX35;Solux 3500K -!TP_WBALANCE_SOLUX41;Solux 4100K -!TP_WBALANCE_SOLUX47;Solux 4700K (vendor) -!TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) -!TP_WBALANCE_SPOTWB;Spot WB -!TP_WBALANCE_TEMPBIAS;AWB temperature bias -!TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". -!TP_WBALANCE_TEMPERATURE;Temperature -!TP_WBALANCE_TUNGSTEN;Tungsten -!TP_WBALANCE_WATER1;UnderWater 1 -!TP_WBALANCE_WATER2;UnderWater 2 -!TP_WBALANCE_WATER_HEADER;UnderWater -!ZOOMPANEL_100;(100%) -!ZOOMPANEL_NEWCROPWINDOW;Open (new) detail window -!ZOOMPANEL_ZOOM100;Zoom to 100%\nShortcut: z -!ZOOMPANEL_ZOOMFITCROPSCREEN;Fit crop to screen\nShortcut: f -!ZOOMPANEL_ZOOMFITSCREEN;Fit whole image to screen\nShortcut: Alt-f -!ZOOMPANEL_ZOOMIN;Zoom In\nShortcut: + -!ZOOMPANEL_ZOOMOUT;Zoom Out\nShortcut: - +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) +!PREFERENCES_TAB_PERFORMANCE;Performance +!SAVEDLG_FILEFORMAT_FLOAT; floating-point +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 089381e47..774e2d580 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -756,7 +756,6 @@ PREFERENCES_METADATA;Метаданные PREFERENCES_MONITOR;Монитор PREFERENCES_MULTITAB;Много вкладок PREFERENCES_MULTITABDUALMON;Много вкладок, на втором мониторе (если возможно) -PREFERENCES_NOISE;Подавление шумов PREFERENCES_OUTDIR;Каталог для сохранения изображений PREFERENCES_OUTDIRFOLDER;Сохранять в каталог PREFERENCES_OUTDIRFOLDERHINT;Сохранение изображений в выбранный каталог @@ -781,8 +780,6 @@ PREFERENCES_PROFILESAVECACHE;Сохранять профиль обработк PREFERENCES_PROFILESAVEINPUT;Сохранять профиль обработки в одном каталоге с исходным файлом PREFERENCES_PROPERTY;Свойство PREFERENCES_PSPATH;Каталог установки Adobe Photoshop -PREFERENCES_RGBDTL_LABEL;Максимальное количество потоков для подавления шума -PREFERENCES_RGBDTL_TOOLTIP;Оставьте 0 чтоб использовать максимально возможное количество потоков. Чем больше потоков будет запущено одновременно, тем быстрее будет расчёт. Требования к памяти указаны в RawPedia PREFERENCES_SELECTFONT;Выбрать шрифт PREFERENCES_SELECTLANG;Выбрать язык PREFERENCES_SELECTTHEME;Выбрать тему @@ -803,7 +800,6 @@ PREFERENCES_TAB_COLORMGR;Управление цветом PREFERENCES_TAB_DYNAMICPROFILE;Динамические профили PREFERENCES_TAB_GENERAL;Основное PREFERENCES_TAB_IMPROC;Обработка изображения -PREFERENCES_TAB_PERFORMANCE;Производительность PREFERENCES_TAB_SOUND;Звуки PREFERENCES_THEME;Тема PREFERENCES_TP_LABEL;Панель инструментов: @@ -1419,7 +1415,9 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !FILECHOOSER_FILTER_PP;Processing profiles !FILECHOOSER_FILTER_SAME;Same format as current photo !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_235;B&W - CM - Auto !HISTORY_MSG_237;B&W - CM !HISTORY_MSG_252;CbDL - Skin tar/prot @@ -1643,16 +1641,69 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !HISTORY_MSG_488;Dynamic Range Compression !HISTORY_MSG_489;DRC - Threshold !HISTORY_MSG_490;DRC - Amount -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold !HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1678,8 +1729,10 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. +!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: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -1690,19 +1743,16 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory @@ -1713,11 +1763,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_CROP_GUIDES_FRAME;Frame !PREFERENCES_CROP_GUIDES_FULL;Original !PREFERENCES_CROP_GUIDES_NONE;None -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1730,13 +1777,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. @@ -1745,6 +1786,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PRINTER;Printer (Soft-Proofing) !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location @@ -1759,21 +1802,12 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1786,6 +1820,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. @@ -1920,6 +1955,12 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_PREPROCESS_DEADPIXFILT;Dead pixel filter !TP_PREPROCESS_DEADPIXFILT_TOOLTIP;Tries to suppress dead pixels. !TP_PREPROCESS_HOTPIXFILT;Hot pixel filter @@ -1933,6 +1974,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1942,10 +1985,13 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RAWEXPOS_BLACK_GREEN;Green !TP_RAWEXPOS_BLACK_RED;Red !TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_IMAGENUM;Sub-image !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. @@ -1978,7 +2024,9 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_RCDVNG4;RCD+VNG4 +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1990,7 +2038,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2057,6 +2105,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2129,7 +2179,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index ddfb8b80d..675e710aa 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -693,8 +693,6 @@ PREFERENCES_PROFILESAVECACHE;Сачувај параметре обраде у PREFERENCES_PROFILESAVEINPUT;Сачувај парамтре обраде поред улазне датотеке PREFERENCES_PROPERTY;Особина PREFERENCES_PSPATH;Директоријум са инсталираним Адобе Фотошопом -PREFERENCES_RGBDTL_LABEL;Највећи број нири приликом уклањања шума -PREFERENCES_RGBDTL_TOOLTIP;Уклањање шума захтева око 128MB РАМ меморије за слику од 10 мегапиксела или 512MB за слику од 40 мегапиксела, уз додатних 128MB меморије по свакој нити. Што више нити се извршавају заједно то ће брже бити рачунање. Оставите ову вредност на „0“ како би програм аутоматски доделило што је више нитова могуће. PREFERENCES_SELECTFONT;Изаберите фонт PREFERENCES_SELECTLANG;Језик PREFERENCES_SELECTTHEME;Тема @@ -714,7 +712,6 @@ PREFERENCES_TAB_BROWSER;Преглед датотека PREFERENCES_TAB_COLORMGR;Управљање бојама PREFERENCES_TAB_GENERAL;Опште PREFERENCES_TAB_IMPROC;Обрада сликe -PREFERENCES_TAB_PERFORMANCE;Перформанса PREFERENCES_TAB_SOUND;Звуци PREFERENCES_TP_LABEL;Површ алата: PREFERENCES_TP_USEICONORTEXT;Користи иконице језичка уместо текста @@ -1315,7 +1312,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1325,8 +1322,10 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space !HISTORY_MSG_235;B&W - CM - Auto @@ -1557,10 +1556,16 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1572,8 +1577,55 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1603,11 +1655,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1632,19 +1686,16 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PARTIALPASTE_METAGROUP;Metadata settings !PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory @@ -1661,11 +1712,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right !PREFERENCES_D50_OLD;5000K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1679,23 +1727,18 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1714,22 +1757,13 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1742,6 +1776,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !THRESHOLDSELECTOR_BL;Bottom-left @@ -1885,6 +1920,12 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1907,6 +1948,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1916,13 +1959,16 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RAWEXPOS_BLACK_GREEN;Green !TP_RAWEXPOS_BLACK_RED;Red !TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1966,10 +2012,12 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1985,7 +2033,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2052,6 +2100,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2124,7 +2174,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Serbian (Latin Characters) b/rtdata/languages/Serbian (Latin Characters) index 3af583ba8..f41d7e36e 100644 --- a/rtdata/languages/Serbian (Latin Characters) +++ b/rtdata/languages/Serbian (Latin Characters) @@ -693,8 +693,6 @@ PREFERENCES_PROFILESAVECACHE;Sačuvaj parametre obrade u ostavu PREFERENCES_PROFILESAVEINPUT;Sačuvaj paramtre obrade pored ulazne datoteke PREFERENCES_PROPERTY;Osobina PREFERENCES_PSPATH;Direktorijum sa instaliranim Adobe Fotošopom -PREFERENCES_RGBDTL_LABEL;Najveći broj niri prilikom uklanjanja šuma -PREFERENCES_RGBDTL_TOOLTIP;Uklanjanje šuma zahteva oko 128MB RAM memorije za sliku od 10 megapiksela ili 512MB za sliku od 40 megapiksela, uz dodatnih 128MB memorije po svakoj niti. Što više niti se izvršavaju zajedno to će brže biti računanje. Ostavite ovu vrednost na „0“ kako bi program automatski dodelilo što je više nitova moguće. PREFERENCES_SELECTFONT;Izaberite font PREFERENCES_SELECTLANG;Jezik PREFERENCES_SELECTTHEME;Tema @@ -714,7 +712,6 @@ PREFERENCES_TAB_BROWSER;Pregled datoteka PREFERENCES_TAB_COLORMGR;Upravljanje bojama PREFERENCES_TAB_GENERAL;Opšte PREFERENCES_TAB_IMPROC;Obrada slike -PREFERENCES_TAB_PERFORMANCE;Performansa PREFERENCES_TAB_SOUND;Zvuci PREFERENCES_TP_LABEL;Površ alata: PREFERENCES_TP_USEICONORTEXT;Koristi ikonice jezička umesto teksta @@ -1315,7 +1312,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !FILEBROWSER_SHOWNOTTRASHHINT;Show only non-deleted images. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -1325,8 +1322,10 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !GENERAL_ASIMAGE;As Image !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space !HISTORY_MSG_235;B&W - CM - Auto @@ -1557,10 +1556,16 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1572,8 +1577,55 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1603,11 +1655,13 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MONITOR_PROFILE_SYSTEM;System default !NAVIGATOR_B;B: !NAVIGATOR_G;G: @@ -1632,19 +1686,16 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PARTIALPASTE_METAGROUP;Metadata settings !PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_RETINEX;Retinex -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CLUTSDIR;HaldCLUT directory @@ -1661,11 +1712,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_CURVEBBOXPOS_LEFT;Left !PREFERENCES_CURVEBBOXPOS_RIGHT;Right !PREFERENCES_D50_OLD;5000K -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 @@ -1679,23 +1727,18 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1714,22 +1757,13 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize read of tiff files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode -!PREFERENCES_SMA;Small (250x287) -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_PDYNAMIC;Dynamic !QINFO_FRAMECOUNT;%2 frames !QINFO_HDR;HDR / %2 frame(s) @@ -1742,6 +1776,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !THRESHOLDSELECTOR_BL;Bottom-left @@ -1885,6 +1920,12 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -1907,6 +1948,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CASTR;Strength !TP_RAWEXPOS_BLACK_0;Green 1 (lead) !TP_RAWEXPOS_BLACK_1;Red @@ -1916,13 +1959,16 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RAWEXPOS_BLACK_GREEN;Green !TP_RAWEXPOS_BLACK_RED;Red !TP_RAWEXPOS_RGB;Red, Green, Blue -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -1966,10 +2012,12 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_HSL;Histogram equalizer HSL !TP_RETINEX_CONTEDIT_LAB;Histogram equalizer L*a*b* !TP_RETINEX_CONTEDIT_LH;Hue equalizer @@ -1985,7 +2033,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -2052,6 +2100,8 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2124,7 +2174,7 @@ ZOOMPANEL_ZOOMOUT;Umanjuje prikaz slike - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Slovak b/rtdata/languages/Slovak index 3ba135a71..b5ff03253 100644 --- a/rtdata/languages/Slovak +++ b/rtdata/languages/Slovak @@ -633,7 +633,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -647,12 +647,13 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_88;Impulse NR threshold !HISTORY_MSG_93;CbDL - Value @@ -1039,10 +1040,16 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1054,9 +1061,56 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1086,6 +1140,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). @@ -1122,6 +1177,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1174,6 +1230,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1181,6 +1238,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1192,16 +1250,11 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. !PREFERENCES_BEHSETALL;All to 'Set' @@ -1237,12 +1290,9 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1275,12 +1325,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1288,7 +1333,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1296,12 +1340,13 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1314,8 +1359,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font !PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings @@ -1323,35 +1366,25 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;When working with folders full of uncompressed tiff files enabling this option can increase performance of thumb generation. !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles !PROFILEPANEL_LOADPPASTE;Parameters to load @@ -1376,6 +1409,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1690,10 +1724,6 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1740,6 +1770,12 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift !TP_LABCURVE_AVOIDCOLORSHIFT_TOOLTIP;Fit colors into gamut of the working color space and apply Munsell correction. !TP_LABCURVE_CHROMATICITY;Chromaticity @@ -1812,6 +1848,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1827,13 +1865,16 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1883,10 +1924,12 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1907,7 +1950,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1991,6 +2034,8 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2084,7 +2129,7 @@ ZOOMPANEL_ZOOMOUT;Oddialiť - !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Suomi b/rtdata/languages/Suomi index ce22a396b..e0ca416d0 100644 --- a/rtdata/languages/Suomi +++ b/rtdata/languages/Suomi @@ -559,7 +559,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -575,13 +575,14 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -978,10 +979,16 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -993,9 +1000,56 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1026,11 +1080,12 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1067,6 +1122,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1122,6 +1178,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1129,6 +1186,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1140,17 +1198,12 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1188,13 +1241,10 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1227,12 +1277,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1240,7 +1285,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1249,13 +1293,14 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1269,8 +1314,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1280,36 +1323,26 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1337,6 +1370,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1661,10 +1695,6 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1711,6 +1741,12 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1798,6 +1834,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1813,15 +1851,18 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1871,10 +1912,12 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1898,7 +1941,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1982,6 +2025,8 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2075,7 +2120,7 @@ TP_WBALANCE_TEMPERATURE;Lämpötila [K] !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 819cf8340..049162e68 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -811,13 +811,7 @@ PARTIALPASTE_WAVELETGROUP;Wavelet-nivåer PARTIALPASTE_WHITEBALANCE;Vitbalans PREFERENCES_ADD;Lägg till PREFERENCES_APPLNEXTSTARTUP;Kräver omstart av RawTherapee -PREFERENCES_AUTLISLOW;Låg -PREFERENCES_AUTLISMAX;Max - Medel av alla indelningar -PREFERENCES_AUTLISSTD;Hög -PREFERENCES_AUTLISVLOW;Ingen -PREFERENCES_AUTLOW;Låg PREFERENCES_AUTOMONPROFILE;Använd operativsystemets skärmfärgprofil -PREFERENCES_AUTSTD;Standard PREFERENCES_BATCH_PROCESSING;Batchbehandling PREFERENCES_BEHADDALL;Sätt allt till 'Lägg till' PREFERENCES_BEHADDALLHINT;Sätt alla parametrar till Lägg till-läge.\nFörändringar i parametrar batch-verktyget kommer att vara skillnader gentemot de lagrade värdena. @@ -860,8 +854,6 @@ PREFERENCES_DARKFRAMESHOTS;bilder PREFERENCES_DARKFRAMETEMPLATES;mallar PREFERENCES_DATEFORMAT;Datumformat PREFERENCES_DATEFORMATHINT;Du kan använda följande format:\n%y: år\n%m: månad\n%d: dag\n\nTill exempel är det svenska datumformatet:\n%y-%m-%d -PREFERENCES_DAUB_LABEL;Använd Daubechies D6-wavelets istället för D4 -PREFERENCES_DAUB_TOOLTIP;Brusreduceringen och wavelet-verktyget använder en Debauchies moder-wavelet. Om du väljer D6 istället för D4 ökas antalet ortogonala Daubechies-koefficienter och troligtvis ökas också kvaliteten på de småskaliga nivåerna. Det blir ingen skillnad i minnesanvändning eller beräkningstid. PREFERENCES_DIRDARKFRAMES;Katalog för svartbilder PREFERENCES_DIRHOME;Hemkatalog PREFERENCES_DIRLAST;Senaste besökta katalog @@ -869,7 +861,6 @@ PREFERENCES_DIROTHER;Annan PREFERENCES_DIRSELECTDLG;Välj bildkatalog vid uppstart... PREFERENCES_DIRSOFTWARE;Installationskatalog PREFERENCES_EDITORLAYOUT;Layout för redigeringsvyn -PREFERENCES_EXPAUT;Expert PREFERENCES_EXTERNALEDITOR;Externt bildredigeringsprogram PREFERENCES_FBROWSEROPTS;Inställningar för filvyn/miniatyrbilderna PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Filvyns verktygsrad som en rad (avmarkera för lågupplösta skärmar) @@ -912,11 +903,7 @@ PREFERENCES_INTENT_RELATIVE;Relativ kolorimetrisk PREFERENCES_INTENT_SATURATION;Mättnad PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Visa intern råbild om oredigerad PREFERENCES_LANGAUTODETECT;Använd operativsystemets språkinställning -PREFERENCES_LEVAUTDN;Brusreduceringsnivå -PREFERENCES_LEVDN;Cellstorlek -PREFERENCES_MAX;Max (Tile) PREFERENCES_MAXRECENTFOLDERS;Maximalt antal visade kataloger -PREFERENCES_MED;Medium (Tile/2) PREFERENCES_MENUGROUPEXTPROGS;Visa "Öppna med" PREFERENCES_MENUGROUPFILEOPERATIONS;Visa "Filaktiviteter" PREFERENCES_MENUGROUPLABEL;Visa "Etikett" @@ -924,12 +911,10 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Visa "Profilaktiviteter" PREFERENCES_MENUGROUPRANK;Visa "Betygsättning" PREFERENCES_MENUOPTIONS;Menyval för högerklick PREFERENCES_METADATA;Metadata -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MULTITAB;Öppna bilderna i olika flikar PREFERENCES_MULTITABDUALMON;Visa bild på andra skärmen, om möjligt, i flerfliksläge PREFERENCES_NAVGUIDEBRUSH;Översiktsvyns guidefärg PREFERENCES_NAVIGATIONFRAME;Navigering -PREFERENCES_NOISE;Brusreducering PREFERENCES_OUTDIR;Utmatningskatalog PREFERENCES_OUTDIRFOLDER;Spara till katalog PREFERENCES_OUTDIRFOLDERHINT;Spara de behandlade bilderna i den valda katalogen @@ -960,8 +945,6 @@ PREFERENCES_PROPERTY;Egenskaper PREFERENCES_PSPATH;Adobe Photoshops installationskatalog PREFERENCES_REMEMBERZOOMPAN;Kom ihåg förstoringsprocent och panorering PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Kom ihåg förstoringsgraden i % och panoreringen för den aktuella bilden när du öppnar en ny bild.\n\nDet här valet fungerar bara i Enkelfliksläget och när "Demosaicing-metod som ska användas för förstoringsgrader <100 %" är satt til "Som i PP3". -PREFERENCES_RGBDTL_LABEL;Maximalt antal trådar för brusreducering -PREFERENCES_RGBDTL_TOOLTIP;Brusreduceringen kräver ungefär 128MB RAM för en 10MPix bild och 512MB för en 40 MPix, och ytterligare 128MB per tråd. Ju fler trådar som körs parallellt, desto snabbare går beräkningarna. Ange värdet "0" för att automatiskt använda så många trådar som möjligt. PREFERENCES_SELECTFONT;Välj typsnitt PREFERENCES_SELECTFONT_COLPICKER;Välj typsnitt för färgpipetten PREFERENCES_SELECTLANG;Välj språk @@ -974,35 +957,24 @@ PREFERENCES_SHOWDATETIME;Visa datum och tid PREFERENCES_SHOWEXPOSURECOMPENSATION;Lägg till exponeringskompensation PREFERENCES_SHOWFILMSTRIPTOOLBAR;Visa verktygsraden för filmstrip PREFERENCES_SHTHRESHOLD;Tröskelvärde för skuggor -PREFERENCES_SIMPLAUT;Verktygsläge PREFERENCES_SINGLETAB;Öppna en bild åt gången PREFERENCES_SINGLETABVERTAB;Enkelfliksläge, vertikala flikar -PREFERENCES_SMA;Liten (250x287) PREFERENCES_SND_BATCHQUEUEDONE;Batchkön färdig PREFERENCES_SND_HELP;Fyll i en sökväg till ett ljud.\nI Windows kan "SystemDefault", "SystemAsterisk" o.s.v. användas.\nPå Linuxbaserade system kan du prova med "complete", "windows-attention" o.s.v. PREFERENCES_SND_LNGEDITPROCDONE;När behandlingen är klar PREFERENCES_SND_THRESHOLDSECS;Ljudet kommer efter så här många sekunder PREFERENCES_STARTUPIMDIR;Bildkatalog som visas vid uppstart -PREFERENCES_STDAUT;Standard PREFERENCES_TAB_BROWSER;Filbläddrare PREFERENCES_TAB_COLORMGR;Färghantering PREFERENCES_TAB_GENERAL;Allmän PREFERENCES_TAB_IMPROC;Bildbehandling -PREFERENCES_TAB_PERFORMANCE;Prestanda PREFERENCES_TAB_SOUND;Ljud -PREFERENCES_TIMAX;Hög -PREFERENCES_TINB;Antal tiles -PREFERENCES_TISTD;Standard PREFERENCES_TP_LABEL;Verktygspanel: PREFERENCES_TP_USEICONORTEXT;Använd ikoner istället för text PREFERENCES_TP_VSCROLLBAR;Göm verktygpanelens vertikala skrollist PREFERENCES_TUNNELMETADATA;Kopiera Exif/IPTC/XMP till utfilen oförändrat PREFERENCES_USEBUNDLEDPROFILES;Visa förinstallerade profiler PREFERENCES_VIEW;Utenhetens vitbalansvärde (datorskärm, TV, bildkanon, etc.) -PREFERENCES_WAVLEV;Öka waveletnivån vid kvalitet "hög" -PREFERENCES_WLONE;En nivå -PREFERENCES_WLTWO;Två nivåer -PREFERENCES_WLZER;Nej PREFERENCES_WORKFLOW;Arbetsflöde PROFILEPANEL_COPYPPASTE;Parametrar att kopiera PROFILEPANEL_GLOBALPROFILES;Förinstallerade profiler @@ -1876,8 +1848,10 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space !HISTORY_MSG_235;B&W - CM - Auto @@ -1943,10 +1917,16 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1958,8 +1938,55 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1989,10 +2016,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !LENSPROFILE_CORRECTION_LCPFILE;LCP File !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TAB_ADVANCED;Advanced !MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-w !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" 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 non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. @@ -2001,10 +2030,13 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PARTIALPASTE_FLATFIELDCLIPCONTROL;Flat-field clip control !PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting !PREFERENCES_CMMBPC;Black point compensation !PREFERENCES_CROP;Crop editing @@ -2019,11 +2051,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_GREY18_OLD;Yb=18 CIE L#50 !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_LANG;Language -!PREFERENCES_LISS;Auto multi-zone smoothing !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PRINTER;Printer (Soft-Proofing) !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location @@ -2032,6 +2065,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SERIALIZE_TIFF_READ;Tiff Read Settings !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show @@ -2049,6 +2083,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !SAMPLEFORMAT_16;16-bit floating-point !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !TP_BWMIX_MIXC;Channel Mixer @@ -2092,6 +2127,12 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_ICM_APPLYLOOKTABLE;Look table !TP_ICM_PROFILEINTENT;Rendering Intent !TP_ICM_SAVEREFERENCE;Save Reference Image +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LABEL;Local Contrast @@ -2108,13 +2149,18 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by on-sensor PDAF pixels, occurring with some Sony mirrorless cameras on some backlit scenes with visible flare. -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast @@ -2156,11 +2202,13 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RETINEX_CONTEDIT_MAP;Mask equalizer !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). !TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. @@ -2182,6 +2230,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. !TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENMICRO_CONTRAST;Contrast threshold +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2193,7 +2243,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). !TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. !TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) !TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) !TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. diff --git a/rtdata/languages/Turkish b/rtdata/languages/Turkish index e57ab4c1e..bae5f69de 100644 --- a/rtdata/languages/Turkish +++ b/rtdata/languages/Turkish @@ -558,7 +558,7 @@ TP_WBALANCE_TEMPERATURE;Isı !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles +!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) !FILECHOOSER_FILTER_CURVE;Curve files !FILECHOOSER_FILTER_LCP;Lens correction profiles !FILECHOOSER_FILTER_PP;Processing profiles @@ -574,13 +574,14 @@ TP_WBALANCE_TEMPERATURE;Isı !GENERAL_NONE;None !GENERAL_OPEN;Open !GENERAL_RESET;Reset +!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GENERAL_UNCHANGED;(Unchanged) !GENERAL_WARNING;Warning !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. -!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +!HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. !HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -!HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. +!HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. !HISTORY_MSG_82;Profile changed !HISTORY_MSG_83;S/H - Sharp mask @@ -977,10 +978,16 @@ TP_WBALANCE_TEMPERATURE;Isı !HISTORY_MSG_491;White Balance !HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments -!HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -!HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +!HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +!HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +!HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +!HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +!HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +!HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +!HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount !HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness !HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -992,9 +999,56 @@ TP_WBALANCE_TEMPERATURE;Isı !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +!HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +!HISTORY_MSG_RAW_BORDER;Raw border +!HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s +!ICCPROFCREATOR_COPYRIGHT;Copyright: +!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +!ICCPROFCREATOR_CUSTOM;Custom +!ICCPROFCREATOR_DESCRIPTION;Description: +!ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +!ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +!ICCPROFCREATOR_GAMMA;Gamma +!ICCPROFCREATOR_ICCVERSION;ICC version: +!ICCPROFCREATOR_ILL;Illuminant: +!ICCPROFCREATOR_ILL_41;D41 +!ICCPROFCREATOR_ILL_50;D50 +!ICCPROFCREATOR_ILL_55;D55 +!ICCPROFCREATOR_ILL_60;D60 +!ICCPROFCREATOR_ILL_65;D65 +!ICCPROFCREATOR_ILL_80;D80 +!ICCPROFCREATOR_ILL_DEF;Default +!ICCPROFCREATOR_ILL_INC;StdA 2856K +!ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +!ICCPROFCREATOR_PRIMARIES;Primaries: +!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +!ICCPROFCREATOR_PRIM_BEST;BestRGB +!ICCPROFCREATOR_PRIM_BETA;BetaRGB +!ICCPROFCREATOR_PRIM_BLUX;Blue X +!ICCPROFCREATOR_PRIM_BLUY;Blue Y +!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +!ICCPROFCREATOR_PRIM_GREX;Green X +!ICCPROFCREATOR_PRIM_GREY;Green Y +!ICCPROFCREATOR_PRIM_PROPH;Prophoto +!ICCPROFCREATOR_PRIM_REC2020;Rec2020 +!ICCPROFCREATOR_PRIM_REDX;Red X +!ICCPROFCREATOR_PRIM_REDY;Red Y +!ICCPROFCREATOR_PRIM_SRGB;sRGB +!ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +!ICCPROFCREATOR_PRIM_WIDEG;Widegamut +!ICCPROFCREATOR_PROF_V2;ICC v2 +!ICCPROFCREATOR_PROF_V4;ICC v4 +!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +!ICCPROFCREATOR_SLOPE;Slope +!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1025,11 +1079,12 @@ TP_WBALANCE_TEMPERATURE;Isı !LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters !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. !MAIN_BUTTON_FULLSCREEN;Fullscreen +!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 !MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 !MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). !MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +!MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s !MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e !MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m !MAIN_BUTTON_UNFULLSCREEN;Exit fullscreen @@ -1066,6 +1121,7 @@ TP_WBALANCE_TEMPERATURE;Isı !MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g !MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B !MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +!MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. !MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l !MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l !MAIN_TOOLTIP_SHOWHIDETP1;Show/Hide the top panel.\nShortcut: Shift-l @@ -1121,6 +1177,7 @@ TP_WBALANCE_TEMPERATURE;Isı !PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration !PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter !PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +!PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening !PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction !PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1128,6 +1185,7 @@ TP_WBALANCE_TEMPERATURE;Isı !PARTIALPASTE_RAWEXPOS_LINEAR;White point correction !PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation !PARTIALPASTE_RAWGROUP;Raw Settings +!PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement !PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations !PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1139,17 +1197,12 @@ TP_WBALANCE_TEMPERATURE;Isı !PARTIALPASTE_RGBCURVES;RGB curves !PARTIALPASTE_SHARPENEDGE;Edges !PARTIALPASTE_SHARPENMICRO;Microcontrast -!PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +!PARTIALPASTE_SOFTLIGHT;Soft light +!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PARTIALPASTE_VIBRANCE;Vibrance !PREFERENCES_ADD;Add -!PREFERENCES_AUTLISLOW;Low -!PREFERENCES_AUTLISMAX;Max - Average of all tiles -!PREFERENCES_AUTLISSTD;High -!PREFERENCES_AUTLISVLOW;None -!PREFERENCES_AUTLOW;Low !PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile !PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -!PREFERENCES_AUTSTD;Standard !PREFERENCES_BATCH_PROCESSING;Batch Processing !PREFERENCES_BEHADDALL;All to 'Add' !PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1187,13 +1240,10 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_DARKFRAMEFOUND;Found !PREFERENCES_DARKFRAMESHOTS;shots !PREFERENCES_DARKFRAMETEMPLATES;templates -!PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -!PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. !PREFERENCES_DIRDARKFRAMES;Dark-frames directory !PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_EDITORLAYOUT;Editor Layout -!PREFERENCES_EXPAUT;Expert !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) !PREFERENCES_FLATFIELDFOUND;Found !PREFERENCES_FLATFIELDSDIR;Flat-fields directory @@ -1226,12 +1276,7 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited !PREFERENCES_LANG;Language !PREFERENCES_LANGAUTODETECT;Use system language -!PREFERENCES_LEVAUTDN;Denoising level -!PREFERENCES_LEVDN;Cell size -!PREFERENCES_LISS;Auto multi-zone smoothing -!PREFERENCES_MAX;Maxi (Tile) !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -!PREFERENCES_MED;Medium (Tile/2) !PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" !PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" !PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1239,7 +1284,6 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_MENUGROUPRANK;Group "Rank" !PREFERENCES_MENUOPTIONS;Context Menu Options !PREFERENCES_METADATA;Metadata -!PREFERENCES_MIN;Mini (100x115) !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor !PREFERENCES_MONPROFILE;Default color profile @@ -1248,13 +1292,14 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode !PREFERENCES_NAVGUIDEBRUSH;Navigator guide color !PREFERENCES_NAVIGATIONFRAME;Navigation -!PREFERENCES_NOISE;Noise Reduction !PREFERENCES_OVERLAY_FILENAMES;Overlay filenames on thumbnails in the file browser !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_OVERWRITEOUTPUTFILE;Overwrite existing output files !PREFERENCES_PANFACTORLABEL;Pan rate amplification !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +!PREFERENCES_PERFORMANCE_THREADS;Threads +!PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1268,8 +1313,6 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -!PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -!PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. !PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now !PREFERENCES_SELECTFONT;Select main font !PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1279,36 +1322,26 @@ TP_WBALANCE_TEMPERATURE;Isı !PREFERENCES_SET;Set !PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar -!PREFERENCES_SIMPLAUT;Tool mode !PREFERENCES_SINGLETAB;Single Editor Tab Mode !PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -!PREFERENCES_SMA;Small (250x287) !PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done !PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. !PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done !PREFERENCES_SND_THRESHOLDSECS;After seconds -!PREFERENCES_STDAUT;Standard !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance & Quality +!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_TAB_SOUND;Sounds !PREFERENCES_THEME;Theme !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PREFERENCES_TIMAX;High -!PREFERENCES_TINB;Number of tiles -!PREFERENCES_TISTD;Standard !PREFERENCES_TP_LABEL;Tool panel: !PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text !PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar !PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file !PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles !PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -!PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -!PREFERENCES_WLONE;One level -!PREFERENCES_WLTWO;Two levels -!PREFERENCES_WLZER;No !PREFERENCES_WORKFLOW;Layout !PROFILEPANEL_COPYPPASTE;Parameters to copy !PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1336,6 +1369,7 @@ TP_WBALANCE_TEMPERATURE;Isı !SAMPLEFORMAT_32;24-bit floating-point !SAMPLEFORMAT_64;32-bit floating-point !SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists +!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_FORCEFORMATOPTS;Force saving options !SAVEDLG_SUBSAMP;Subsampling !SAVEDLG_SUBSAMP_1;Best compression @@ -1660,10 +1694,6 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_FLATFIELD_CLIPCONTROL;Clip control !TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. !TP_FLATFIELD_LABEL;Flat-Field -!TP_GAMMA_CURV;Gamma -!TP_GAMMA_FREE;Free gamma -!TP_GAMMA_OUTPUT;Output gamma -!TP_GAMMA_SLOP;Slope (linear) !TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. !TP_GRADIENT_CENTER;Center !TP_GRADIENT_CENTER_X;Center X @@ -1710,6 +1740,12 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile is applied. The result can be used for calibration purposes and generation of a camera profile. !TP_ICM_TONECURVE;Tone curve !TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. +!TP_ICM_WORKING_TRC;Tone response curve: +!TP_ICM_WORKING_TRC_CUSTOM;Custom +!TP_ICM_WORKING_TRC_GAMMA;Gamma +!TP_ICM_WORKING_TRC_NONE;None +!TP_ICM_WORKING_TRC_SLOPE;Slope +!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction !TP_IMPULSEDENOISE_THRESH;Threshold !TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1797,6 +1833,8 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTO;Auto-correction +!TP_RAWCACORR_AUTOIT;Iterations +!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift !TP_RAWCACORR_CABLUE;Blue !TP_RAWCACORR_CARED;Red !TP_RAWCACORR_CASTR;Strength @@ -1812,15 +1850,18 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RAWEXPOS_PRESER;Highlight preservation !TP_RAWEXPOS_RGB;Red, Green, Blue !TP_RAWEXPOS_TWOGREEN;Link greens -!TP_RAW_1PASSMEDIUM;1-Pass (Medium) -!TP_RAW_3PASSBEST;3-Pass (Best) -!TP_RAW_4PASS;4-Pass +!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +!TP_RAW_2PASS;1-pass+fast +!TP_RAW_3PASSBEST;3-pass (Markesteijn) +!TP_RAW_4PASS;3-pass+fast !TP_RAW_AHD;AHD !TP_RAW_AMAZE;AMaZE !TP_RAW_AMAZEVNG4;AMaZE+VNG4 +!TP_RAW_BORDER;Border !TP_RAW_DCB;DCB !TP_RAW_DCBENHANCE;DCB enhancement !TP_RAW_DCBITERATIONS;Number of DCB iterations +!TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... !TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... !TP_RAW_DMETHOD_TOOLTIP;Note: IGV and LMMSE are dedicated to high ISO images to aid in noise reduction without leading to maze patterns, posterization or a washed-out look.\nPixel Shift is for Pentax/Sony Pixel Shift files. It falls back to AMaZE for non-Pixel Shift files. @@ -1870,10 +1911,12 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. !TP_RAW_RCD;RCD +!TP_RAW_RCDVNG4;RCD+VNG4 !TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +!TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas !TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix !TP_RAW_VNG4;VNG4 +!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling !TP_RESIZE_APPLIESTO;Applies to: !TP_RESIZE_CROPPEDAREA;Cropped Area !TP_RESIZE_FITBOX;Bounding Box @@ -1897,7 +1940,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission -!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +!TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. !TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. !TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free @@ -1981,6 +2024,8 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_SHARPENMICRO_LABEL;Microcontrast !TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 !TP_SHARPENMICRO_UNIFORMITY;Uniformity +!TP_SOFTLIGHT_LABEL;Soft Light +!TP_SOFTLIGHT_STRENGTH;Strength !TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2074,7 +2119,7 @@ TP_WBALANCE_TEMPERATURE;Isı !TP_WAVELET_DTWO;Horizontal !TP_WAVELET_EDCU;Curve !TP_WAVELET_EDGCONT;Local contrast -!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +!TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity diff --git a/rtdata/languages/default b/rtdata/languages/default index 31f0fdcbd..50f2bcdf6 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -205,7 +205,7 @@ FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 FILEBROWSER_ZOOMINHINT;Increase thumbnail size.\n\nShortcuts:\n+ - Multiple Editor Tabs Mode,\nAlt-+ - Single Editor Tab Mode. FILEBROWSER_ZOOMOUTHINT;Decrease thumbnail size.\n\nShortcuts:\n- - Multiple Editor Tabs Mode,\nAlt-- - Single Editor Tab Mode. FILECHOOSER_FILTER_ANY;All files -FILECHOOSER_FILTER_COLPROF;Color profiles +FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) FILECHOOSER_FILTER_CURVE;Curve files FILECHOOSER_FILTER_LCP;Lens correction profiles FILECHOOSER_FILTER_PP;Processing profiles @@ -233,16 +233,17 @@ GENERAL_OPEN;Open GENERAL_PORTRAIT;Portrait GENERAL_RESET;Reset GENERAL_SAVE;Save +GENERAL_SAVE_AS;Save as... GENERAL_SLIDER;Slider GENERAL_UNCHANGED;(Unchanged) GENERAL_WARNING;Warning GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram. -HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.\nRight-click on image preview to freeze/unfreeze. +HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar. HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram. -HISTOGRAM_TOOLTIP_FULL;Toggle full (off) or scaled (on) histogram. HISTOGRAM_TOOLTIP_G;Show/Hide green histogram. HISTOGRAM_TOOLTIP_L;Show/Hide CIELab luminance histogram. +HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. HISTOGRAM_TOOLTIP_R;Show/Hide red histogram. HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram. HISTORY_CHANGED;Changed @@ -839,10 +840,16 @@ HISTORY_MSG_589;Local - deNoise bilateral HISTORY_MSG_590;Local - deNoise Scope HISTORY_MSG_591;Local - Avoid color shift -HISTORY_MSG_CLAMPOOG;Out-of-gamut color clipping +HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction HISTORY_MSG_DUALDEMOSAIC_CONTRAST;AMaZE+VNG4 - Contrast threshold -HISTORY_MSG_HISTMATCHING;Auto-Matched Tone Curve +HISTORY_MSG_HISTMATCHING;Auto-matched tone curve +HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries +HISTORY_MSG_ICM_OUTPUT_TEMP;Output - ICC-v4 illuminant D +HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type +HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma +HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope +HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -854,12 +861,59 @@ HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold +HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations +HISTORY_MSG_RAWCACORR_COLOURSHIFT;Raw CA Correction - Avoid color shift +HISTORY_MSG_RAW_BORDER;Raw border +HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold +HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light +HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot HISTORY_SNAPSHOTS;Snapshots +ICCPROFCREATOR_COPYRIGHT;Copyright: +ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" +ICCPROFCREATOR_CUSTOM;Custom +ICCPROFCREATOR_DESCRIPTION;Description: +ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description +ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. +ICCPROFCREATOR_GAMMA;Gamma +ICCPROFCREATOR_ICCVERSION;ICC version: +ICCPROFCREATOR_ILL;Illuminant: +ICCPROFCREATOR_ILL_41;D41 +ICCPROFCREATOR_ILL_50;D50 +ICCPROFCREATOR_ILL_55;D55 +ICCPROFCREATOR_ILL_60;D60 +ICCPROFCREATOR_ILL_65;D65 +ICCPROFCREATOR_ILL_80;D80 +ICCPROFCREATOR_ILL_DEF;Default +ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. +ICCPROFCREATOR_PRIMARIES;Primaries: +ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 +ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +ICCPROFCREATOR_PRIM_BEST;BestRGB +ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BLUX;Blue X +ICCPROFCREATOR_PRIM_BLUY;Blue Y +ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_GREX;Green X +ICCPROFCREATOR_PRIM_GREY;Green Y +ICCPROFCREATOR_PRIM_PROPH;Prophoto +ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_REDX;Red X +ICCPROFCREATOR_PRIM_REDY;Red Y +ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. +ICCPROFCREATOR_PRIM_WIDEG;Widegamut +ICCPROFCREATOR_PROF_V2;ICC v2 +ICCPROFCREATOR_PROF_V4;ICC v4 +ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... +ICCPROFCREATOR_SLOPE;Slope +ICCPROFCREATOR_TRC_PRESET;Tone response curve: IPTCPANEL_CATEGORY;Category IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. IPTCPANEL_CITY;City @@ -907,12 +961,13 @@ LENSPROFILE_CORRECTION_LCPFILE;LCP File LENSPROFILE_CORRECTION_MANUAL;Manual correction parameters 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. MAIN_BUTTON_FULLSCREEN;Fullscreen +MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 MAIN_BUTTON_NAVPREV_TOOLTIP;Navigate to the previous image relative to image opened in the Editor.\nShortcut: Shift-F3\n\nTo navigate to the previous image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F3 MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronize the File Browser or Filmstrip with the Editor to reveal the thumbnail of the currently opened image, and clear any active filters.\nShortcut: x\n\nAs above, but without clearing active filters:\nShortcut: y\n(Note that the thumbnail of the opened image will not be shown if filtered out). MAIN_BUTTON_PREFERENCES;Preferences MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Put current image to processing queue.\nShortcut: Ctrl+b -MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s +MAIN_BUTTON_SAVE_TOOLTIP;Save current image.\nShortcut: Ctrl+s\nSave current profile (.pp3).\nShortcut: Ctrl+Shift+s MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Edit current image in external editor.\nShortcut: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Show/hide all side panels.\nShortcut: m @@ -973,10 +1028,10 @@ MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication.\nShortcut: < MAIN_TOOLTIP_INDCLIPPEDS;Clipped shadow indication.\nShortcut: > MAIN_TOOLTIP_PREVIEWB;Preview the Blue channel.\nShortcut: b MAIN_TOOLTIP_PREVIEWFOCUSMASK;Preview the Focus Mask.\nShortcut: Shift-f\n\nMore accurate on images with shallow depth of field, low noise and at higher zoom levels.\n\nTo improve detection accuracy for noisy images evaluate at smaller zoom, about 10-30%. -MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100% MAIN_TOOLTIP_PREVIEWG;Preview the Green channel.\nShortcut: g MAIN_TOOLTIP_PREVIEWL;Preview the Luminosity.\nShortcut: v\n\n0.299*R + 0.587*G + 0.114*B MAIN_TOOLTIP_PREVIEWR;Preview the Red channel.\nShortcut: r +MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the Sharpening Contrast Mask.\nShortcut: None\n\nOnly works when sharpening is enabled and zoom >= 100%. MAIN_TOOLTIP_QINFO;Quick info on the image.\nShortcut: i MAIN_TOOLTIP_SHOWHIDELP1;Show/Hide the left panel.\nShortcut: l MAIN_TOOLTIP_SHOWHIDERP1;Show/Hide the right panel.\nShortcut: Alt-l @@ -1049,6 +1104,7 @@ PARTIALPASTE_PREPROCESS_DEADPIXFILT;Dead pixel filter PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter +PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter PARTIALPASTE_PRSHARPENING;Post-resize sharpening PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction PARTIALPASTE_RAWCACORR_CAREDBLUE;CA red & blue @@ -1056,6 +1112,7 @@ PARTIALPASTE_RAWEXPOS_BLACK;Black levels PARTIALPASTE_RAWEXPOS_LINEAR;White point correction PARTIALPASTE_RAWEXPOS_PRESER;Highlight preservation PARTIALPASTE_RAWGROUP;Raw Settings +PARTIALPASTE_RAW_BORDER;Raw border PARTIALPASTE_RAW_DCBENHANCE;DCB enhancement PARTIALPASTE_RAW_DCBITERATIONS;DCB iterations PARTIALPASTE_RAW_DMETHOD;Demosaic method @@ -1071,20 +1128,15 @@ PARTIALPASTE_SHADOWSHIGHLIGHTS;Shadows/highlights PARTIALPASTE_SHARPENEDGE;Edges PARTIALPASTE_SHARPENING;Sharpening (USM/RL) PARTIALPASTE_SHARPENMICRO;Microcontrast -PARTIALPASTE_TM_FATTAL;Dynamic Range Compression +PARTIALPASTE_SOFTLIGHT;Soft light +PARTIALPASTE_TM_FATTAL;Dynamic range compression PARTIALPASTE_VIBRANCE;Vibrance PARTIALPASTE_VIGNETTING;Vignetting correction PARTIALPASTE_WHITEBALANCE;White balance PREFERENCES_ADD;Add PREFERENCES_APPLNEXTSTARTUP;restart required -PREFERENCES_AUTLISLOW;Low -PREFERENCES_AUTLISMAX;Max - Average of all tiles -PREFERENCES_AUTLISSTD;High -PREFERENCES_AUTLISVLOW;None -PREFERENCES_AUTLOW;Low PREFERENCES_AUTOMONPROFILE;Use operating system's main monitor color profile PREFERENCES_AUTOSAVE_TP_OPEN;Automatically save tools collapsed/expanded\nstate before exiting -PREFERENCES_AUTSTD;Standard PREFERENCES_BATCH_PROCESSING;Batch Processing PREFERENCES_BEHADDALL;All to 'Add' PREFERENCES_BEHADDALLHINT;Set all parameters to the Add mode.\nAdjustments of parameters in the batch tool panel will be deltas to the stored values. @@ -1132,8 +1184,6 @@ PREFERENCES_DARKFRAMESHOTS;shots PREFERENCES_DARKFRAMETEMPLATES;templates PREFERENCES_DATEFORMAT;Date format PREFERENCES_DATEFORMATHINT;You can use the following formatting strings:\n%y - year\n%m - month\n%d - day\n\nFor example, the ISO 8601 standard dictates the date format as follows:\n%y-%m-%d -PREFERENCES_DAUB_LABEL;Use Daubechies D6 wavelets instead of D4 -PREFERENCES_DAUB_TOOLTIP;The Noise Reduction and Wavelet Levels tools use a Debauchies mother wavelet. If you choose D6 instead of D4 you increase the number of orthogonal Daubechies coefficients and probably increase quality of small-scale levels. There is no memory or processing time difference between the two. PREFERENCES_DIRDARKFRAMES;Dark-frames directory PREFERENCES_DIRECTORIES;Directories PREFERENCES_DIRHOME;Home directory @@ -1143,7 +1193,6 @@ PREFERENCES_DIRSELECTDLG;Select Image Directory at Startup... PREFERENCES_DIRSOFTWARE;Installation directory PREFERENCES_EDITORCMDLINE;Custom command line PREFERENCES_EDITORLAYOUT;Editor Layout -PREFERENCES_EXPAUT;Expert PREFERENCES_EXTERNALEDITOR;External Editor PREFERENCES_FBROWSEROPTS;File Browser / Thumbnail Options PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Single row file browser toolbar\n(de-select for low resolution display) @@ -1189,12 +1238,7 @@ PREFERENCES_INTENT_SATURATION;Saturation PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Show embedded JPEG thumbnail if raw is unedited PREFERENCES_LANG;Language PREFERENCES_LANGAUTODETECT;Use system language -PREFERENCES_LEVAUTDN;Denoising level -PREFERENCES_LEVDN;Cell size -PREFERENCES_LISS;Auto multi-zone smoothing -PREFERENCES_MAX;Maxi (Tile) PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders -PREFERENCES_MED;Medium (Tile/2) PREFERENCES_MENUGROUPEXTPROGS;Group "Open with" PREFERENCES_MENUGROUPFILEOPERATIONS;Group "File operations" PREFERENCES_MENUGROUPLABEL;Group "Color label" @@ -1202,7 +1246,6 @@ PREFERENCES_MENUGROUPPROFILEOPERATIONS;Group "Processing profile operations" PREFERENCES_MENUGROUPRANK;Group "Rank" PREFERENCES_MENUOPTIONS;Context Menu Options PREFERENCES_METADATA;Metadata -PREFERENCES_MIN;Mini (100x115) PREFERENCES_MONINTENT;Default rendering intent PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Default color profile @@ -1211,7 +1254,6 @@ PREFERENCES_MULTITAB;Multiple Editor Tabs Mode PREFERENCES_MULTITABDUALMON;Multiple Editor Tabs In Own Window Mode PREFERENCES_NAVGUIDEBRUSH;Navigator guide color PREFERENCES_NAVIGATIONFRAME;Navigation -PREFERENCES_NOISE;Noise Reduction PREFERENCES_OUTDIR;Output Directory PREFERENCES_OUTDIRFOLDER;Save to folder PREFERENCES_OUTDIRFOLDERHINT;Save images to the selected folder. @@ -1227,6 +1269,8 @@ PREFERENCES_PARSEDEXTADDHINT;Add entered extension to the list. PREFERENCES_PARSEDEXTDELHINT;Delete selected extension from the list. PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. +PREFERENCES_PERFORMANCE_THREADS;Threads +PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) PREFERENCES_PREVDEMO;Preview Demosaic Method PREFERENCES_PREVDEMO_FAST;Fast PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: @@ -1247,8 +1291,6 @@ PREFERENCES_PRTPROFILE;Color profile PREFERENCES_PSPATH;Adobe Photoshop installation directory PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". -PREFERENCES_RGBDTL_LABEL;Max number of threads for Noise Reduction and Wavelet Levels -PREFERENCES_RGBDTL_TOOLTIP;Leave the setting at "0" to automatically use as many threads as possible. The more threads run in parallel, the faster the computation. Refer to RawPedia for memory requirements. PREFERENCES_SAVE_TP_OPEN_NOW;Save tools collapsed/expanded state now PREFERENCES_SELECTFONT;Select main font PREFERENCES_SELECTFONT_COLPICKER;Select Color Picker's font @@ -1263,41 +1305,31 @@ PREFERENCES_SHOWDATETIME;Show date and time PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show filmstrip toolbar PREFERENCES_SHOWEXPOSURECOMPENSATION;Append exposure compensation PREFERENCES_SHTHRESHOLD;Threshold for clipped shadows -PREFERENCES_SIMPLAUT;Tool mode PREFERENCES_SINGLETAB;Single Editor Tab Mode PREFERENCES_SINGLETABVERTAB;Single Editor Tab Mode, Vertical Tabs -PREFERENCES_SMA;Small (250x287) PREFERENCES_SND_BATCHQUEUEDONE;Queue processing done PREFERENCES_SND_HELP;Enter a full file path to set a sound, or leave blank for no sound.\nFor system sounds on Windows use "SystemDefault", "SystemAsterisk" etc., and on Linux use "complete", "window-attention" etc. PREFERENCES_SND_LNGEDITPROCDONE;Editor processing done PREFERENCES_SND_THRESHOLDSECS;After seconds PREFERENCES_STARTUPIMDIR;Image Directory at Startup -PREFERENCES_STDAUT;Standard PREFERENCES_TAB_BROWSER;File Browser PREFERENCES_TAB_COLORMGR;Color Management PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules PREFERENCES_TAB_GENERAL;General PREFERENCES_TAB_IMPROC;Image Processing -PREFERENCES_TAB_PERFORMANCE;Performance & Quality +PREFERENCES_TAB_PERFORMANCE;Performance PREFERENCES_TAB_SOUND;Sounds PREFERENCES_THEME;Theme PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show -PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering +PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -PREFERENCES_TIMAX;High -PREFERENCES_TINB;Number of tiles -PREFERENCES_TISTD;Standard PREFERENCES_TP_LABEL;Tool panel: PREFERENCES_TP_USEICONORTEXT;Use tab icons instead of text PREFERENCES_TP_VSCROLLBAR;Hide vertical scrollbar PREFERENCES_TUNNELMETADATA;Copy Exif/IPTC/XMP unchanged to output file PREFERENCES_USEBUNDLEDPROFILES;Use bundled profiles PREFERENCES_VIEW;Output device's white balance (monitor, TV, projector, viewing, etc.) -PREFERENCES_WAVLEV;Increase wavelet level in quality 'high' -PREFERENCES_WLONE;One level -PREFERENCES_WLTWO;Two levels -PREFERENCES_WLZER;No PREFERENCES_WORKFLOW;Layout PROFILEPANEL_COPYPPASTE;Parameters to copy PROFILEPANEL_GLOBALPROFILES;Bundled profiles @@ -1347,6 +1379,7 @@ SAMPLEFORMAT_32;24-bit floating-point SAMPLEFORMAT_64;32-bit floating-point SAVEDLG_AUTOSUFFIX;Automatically add a suffix if the file already exists SAVEDLG_FILEFORMAT;File format +SAVEDLG_FILEFORMAT_FLOAT; floating-point SAVEDLG_FORCEFORMATOPTS;Force saving options SAVEDLG_JPEGQUAL;JPEG quality SAVEDLG_PUTTOQUEUE;Put into processing queue @@ -1715,10 +1748,6 @@ TP_FLATFIELD_BT_VERTICAL;Vertical TP_FLATFIELD_CLIPCONTROL;Clip control TP_FLATFIELD_CLIPCONTROL_TOOLTIP;Clip control avoids clipped highlights caused by applying the flat field. If there are already clipped highlights before applying the flat field, clip control can lead to color cast. TP_FLATFIELD_LABEL;Flat-Field -TP_GAMMA_CURV;Gamma -TP_GAMMA_FREE;Free gamma -TP_GAMMA_OUTPUT;Output gamma -TP_GAMMA_SLOP;Slope (linear) TP_GENERAL_11SCALE_TOOLTIP;The effects of this tool are only visible or only accurate at a preview scale of 1:1. TP_GRADIENT_CENTER;Center TP_GRADIENT_CENTER_X;Center X @@ -1779,6 +1808,12 @@ TP_ICM_SAVEREFERENCE_TOOLTIP;Save the linear TIFF image before the input profile TP_ICM_TONECURVE;Tone curve TP_ICM_TONECURVE_TOOLTIP;Employ the embedded DCP tone curve. The setting is only available if the selected DCP has a tone curve. TP_ICM_WORKINGPROFILE;Working Profile +TP_ICM_WORKING_TRC;Tone response curve: +TP_ICM_WORKING_TRC_CUSTOM;Custom +TP_ICM_WORKING_TRC_GAMMA;Gamma +TP_ICM_WORKING_TRC_NONE;None +TP_ICM_WORKING_TRC_SLOPE;Slope +TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. TP_IMPULSEDENOISE_LABEL;Impulse Noise Reduction TP_IMPULSEDENOISE_THRESH;Threshold TP_LABCURVE_AVOIDCOLORSHIFT;Avoid color shift @@ -1977,6 +2012,8 @@ TP_PREPROCESS_PDAFLINESFILTER_TOOLTIP;Tries to suppress stripe noise caused by o TP_PRSHARPENING_LABEL;Post-Resize Sharpening TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. TP_RAWCACORR_AUTO;Auto-correction +TP_RAWCACORR_AUTOIT;Iterations +TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift TP_RAWCACORR_CABLUE;Blue TP_RAWCACORR_CARED;Red TP_RAWCACORR_CASTR;Strength @@ -1992,15 +2029,18 @@ TP_RAWEXPOS_LINEAR;White-point correction TP_RAWEXPOS_PRESER;Highlight preservation TP_RAWEXPOS_RGB;Red, Green, Blue TP_RAWEXPOS_TWOGREEN;Link greens -TP_RAW_1PASSMEDIUM;1-Pass (Medium) -TP_RAW_3PASSBEST;3-Pass (Best) -TP_RAW_4PASS;4-Pass +TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +TP_RAW_2PASS;1-pass+fast +TP_RAW_3PASSBEST;3-pass (Markesteijn) +TP_RAW_4PASS;3-pass+fast TP_RAW_AHD;AHD TP_RAW_AMAZE;AMaZE TP_RAW_AMAZEVNG4;AMaZE+VNG4 +TP_RAW_BORDER;Border TP_RAW_DCB;DCB TP_RAW_DCBENHANCE;DCB enhancement TP_RAW_DCBITERATIONS;Number of DCB iterations +TP_RAW_DCBVNG4;DCB+VNG4 TP_RAW_DMETHOD;Method TP_RAW_DMETHOD_PROGRESSBAR;%1 demosaicing... TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Demosaicing refinement... @@ -2052,10 +2092,12 @@ TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for b TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. TP_RAW_RCD;RCD +TP_RAW_RCDVNG4;RCD+VNG4 TP_RAW_SENSOR_BAYER_LABEL;Sensor with Bayer Matrix -TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster. +TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;3-pass gives best results (recommended for low ISO images).\n1-pass is almost undistinguishable from 3-pass for high ISO images and is faster.\n+fast gives less artifacts in flat areas TP_RAW_SENSOR_XTRANS_LABEL;Sensor with X-Trans Matrix TP_RAW_VNG4;VNG4 +TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling TP_RESIZE_APPLIESTO;Applies to: TP_RESIZE_CROPPEDAREA;Cropped Area TP_RESIZE_FITBOX;Bounding Box @@ -2085,7 +2127,7 @@ TP_RETINEX_FREEGAMMA;Free gamma TP_RETINEX_GAIN;Gain TP_RETINEX_GAINOFFS;Gain and Offset (brightness) TP_RETINEX_GAINTRANSMISSION;Gain transmission -TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce transmission map to achieve luminance.\nAbscissa: transmission -min from 0, mean, and values (max).\nOrdinate: gain. +TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. TP_RETINEX_GAIN_TOOLTIP;Acts on the restored image.\n\nThis is very different from the others settings. Used for black or white pixels, and to help balance the histogram. TP_RETINEX_GAMMA;Gamma TP_RETINEX_GAMMA_FREE;Free @@ -2194,6 +2236,8 @@ TP_SHARPENMICRO_CONTRAST;Contrast threshold TP_SHARPENMICRO_LABEL;Microcontrast TP_SHARPENMICRO_MATRIX;3×3 matrix instead of 5×5 TP_SHARPENMICRO_UNIFORMITY;Uniformity +TP_SOFTLIGHT_LABEL;Soft Light +TP_SOFTLIGHT_STRENGTH;Strength TP_TM_FATTAL_AMOUNT;Amount TP_TM_FATTAL_ANCHOR;Anchor TP_TM_FATTAL_LABEL;Dynamic Range Compression @@ -2290,7 +2334,7 @@ TP_WAVELET_DTHR;Diagonal TP_WAVELET_DTWO;Horizontal TP_WAVELET_EDCU;Curve TP_WAVELET_EDGCONT;Local contrast -TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, Top-Left, Top-Right, Bottom-right represent respectively local contast for low values, mean, mean+stdev, maxima +TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. TP_WAVELET_EDGE;Edge Sharpness TP_WAVELET_EDGEAMPLI;Base amplification TP_WAVELET_EDGEDETECT;Gradient sensitivity @@ -2425,7 +2469,7 @@ TP_WBALANCE_SOLUX35;Solux 3500K TP_WBALANCE_SOLUX41;Solux 4100K TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) -TP_WBALANCE_SPOTWB;Spot WB +TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. TP_WBALANCE_TEMPBIAS;AWB temperature bias TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". TP_WBALANCE_TEMPERATURE;Temperature diff --git a/rtdata/icons/mime-types b/rtdata/mime-types similarity index 100% rename from rtdata/icons/mime-types rename to rtdata/mime-types diff --git a/rtdata/options/options.lin b/rtdata/options/options.lin index 924e8b9a2..91520dc0e 100644 --- a/rtdata/options/options.lin +++ b/rtdata/options/options.lin @@ -2,7 +2,7 @@ # After the first run, all the parameters will be available in this global option file # or in a new local option file, depending on the MultiUser value below -# Most ot the options are modifiable through the Preference window +# Most of the options are modifiable through the Preference window [General] # Setting MultiUser to false will use the application's installation directory as cache directory, diff --git a/rtdata/icons/rawtherapee.desktop.in b/rtdata/rawtherapee.desktop.in similarity index 100% rename from rtdata/icons/rawtherapee.desktop.in rename to rtdata/rawtherapee.desktop.in diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index cc533320b..91aff9a99 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -18,19 +18,24 @@ along with RawTherapee. If not, see . */ -/* Scrollbar stuck workaround */ -scrollbar:not(.overlay-indicator):hover { - min-width: 1px; -} +/* text-shadow causes a serious performance degradation in rendering the UI, + * at least in comboboxes with many entries (i.e. Profiled Lens Correction). +*/ * { color: #AAAAAA; + text-shadow: none; } *:disabled { color: #666666; } +/* Scrollbar stuck workaround */ +scrollbar:not(.overlay-indicator):hover { + min-width: 1px; +} + .view:selected:not(check):not(radio) { color: #262626; background-color: #AAAAAA @@ -220,6 +225,7 @@ scrollbar.vertical.overlay-indicator:not(.hovering) slider { button { padding: 0; + box-shadow: none; min-height: 5px; min-width: 5px; background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); @@ -626,7 +632,6 @@ flowboxchild:selected { /* Editor tab button */ #MainNotebook grid label, #MainNotebook grid image { - /* OK */ padding: 1px; } @@ -949,5 +954,65 @@ button#MyFileChooserButton { } #ToolPanelNotebook button { - margin: 0px; + margin: 0px; } + +button.flat { + background: none; + border: none; + outline: none; +} + +button.flat:checked { + background: #262626; +} + +.text-button, .image-button, .independent { + box-shadow: none; + min-height: 24px; + min-width: 24px; + padding: 0px; +} + +/* Makes image-comboboxes (e.g. tone curve types) have same size as image buttons */ +combobox, .popupbutton-arrow { + min-height: 24px; +} + +/* Makes image-combobox small icons centered */ +button.toggle > grid > image { + padding: 4px; +} + +#histButton { + background: none; + min-height: 16px; + min-width: 16px; +} + +/* -gtk-icon-shadow looks buggy on the small histogram icons */ +#histButton:hover { + -gtk-icon-shadow: none; +} + +.narrowbutton { + min-width: 10px; +} + + +.smallbuttonbox button { + min-width: 16px; + min-height: 16px; +} + +/* Adds padding around sides of text-buttons */ +button.text-button { + padding: 0 8px; +} + +/* Adds gap between combobox contents and combobox edges */ +button.combo, .image-combo .toggle, #MyFileChooserButton { + padding-left: 4px; + padding-right: 4px; +} + diff --git a/rtdata/themes/TooWaBlue - Bright-GTK3-20_.css b/rtdata/themes/TooWaBlue - Bright-GTK3-20_.css index 888533053..d1bb4fdbc 100644 --- a/rtdata/themes/TooWaBlue - Bright-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue - Bright-GTK3-20_.css @@ -41,7 +41,7 @@ /*** Change me end *****************************************************************************/ -@define-color bg-light-grey rgb(115,115,115); +@define-color bg-light-grey rgb(119,119,119); @define-color bg-grey rgb(95,95,95); @define-color bg-dark-grey rgb(55,55,55); diff --git a/rtdata/themes/TooWaBlue - Dark-GTK3-20_.css b/rtdata/themes/TooWaBlue - Dark-GTK3-20_.css index 23e32e1ec..581549750 100644 --- a/rtdata/themes/TooWaBlue - Dark-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue - Dark-GTK3-20_.css @@ -25,7 +25,7 @@ /*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/ -@define-color accent-color rgb(33,82,145); /*** Active color for Lists, Menu, Borders ... * Default: rgb(33,82,145) ***/ +@define-color accent-color rgb(33,82,150); /*** Active color for Lists, Menu, Borders ... * Default: rgb(33,82,145) ***/ @define-color text-hl-color rgb(200,200,200); /*** Active text color * Default: rgb(200,200,200) ***/ @define-color bg-highlighted-text-color rgb(33,82,145); /*** Highlighted text color background* Default: rgb(33,82,145) ***/ @@ -33,7 +33,7 @@ @define-color bg-image rgb(58,58,58); /*** Image area & File Browser background * Default: rgb(58,58,58) ***/ -@define-color accent-color2 rgb(33,82,145); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(33,82,145) ***/ +@define-color accent-color2 rgb(33,82,150); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(33,82,145) ***/ @define-color accent-color4 rgb(98,98,98); /*** Slider knob * Default: rgb(98,98,98) ***/ @define-color accent-color3 rgb(33,82,145); /*** Selected thumbnail background color * Default: rgb(33,82,145) ***/ diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index a65fb2d3e..af0173441 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -1,8 +1,8 @@ /* This file is part of RawTherapee. - Copyright (c) 2016-2017 TooWaBoo - Version 2.62 + Copyright (c) 2016-2018 TooWaBoo + Version 2.74 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -72,25 +72,38 @@ outline-style: none; /* removes the ugly dashed focus line */ border-image: none; transition: none; + -gtk-icon-shadow: none; +} + +#ToolBarPanelFileBrowser button:not(.smallbutton) image, +#EditorTopPanel button:not(.narrowbutton) image, +#IopsPanel button:not(.Right) image, +#ProfilePanel button image, +#MainNotebook > stack > :nth-child(2) > box:nth-child(3) image, +#MainNotebook > header button:not(#CloseButton) image { + -gtk-icon-transform: scale(calc(22/24)); } *:disabled { color: @fg-disabled; + -gtk-icon-effect: dim; } #ToolPanelNotebook { - min-width: 24.08334em; + min-width: 22.25em; } #HistoryPanel { - min-width: 18em; + min-width: 17.5em; } window.background { background-color: @bg-light-grey; } +/* Single Window */ window > box { - padding: 0.41667em; + padding: 0.4167em; } +/**/ dialog { background-color: @bg-grey; border-radius: 0; @@ -100,7 +113,7 @@ dialog { -GtkDialog-action-area-border: 0; } dialog > box { - padding: 0.66667em; + padding: 0.6667em; } messagedialog { background-color: @bg-light-grey; @@ -108,8 +121,8 @@ messagedialog { } tooltip { background-color: @bg-tooltip; - border: 0.08334em solid @border-tooltip; - border-radius: 0.33334em; + border: 0.0834em solid @border-tooltip; + border-radius: 0.3334em; padding: 0; margin: 0; box-shadow: none; @@ -136,10 +149,6 @@ label { margin: 0; } -.drawingarea:not(.slider) { - background-color: @bg-dark-grey; -} - /*** Frames ************************************************************************************/ frame { border: none; @@ -155,7 +164,7 @@ frame { #BatchQueueButtonsMainContainer frame, #MyExpander frame, dialog frame { - margin: 0.16667em 0.5em; + margin: 0.1667em 0.5em; } /* affects selection list*/ entry > window > frame, @@ -164,7 +173,7 @@ filechooser frame { } #PlacesPaned frame { - margin: -8px 0 0; + margin: -5px 0 0; } frame > border { @@ -183,7 +192,7 @@ frame > border { dialog frame > border { padding: 0.5em; border-radius: 0; - border: 0.08334em solid @border-color; + border: 0.0834em solid @border-color; background-color: transparent; margin: 0 -0.5em; } @@ -204,18 +213,18 @@ filechooser > frame > border { #ToolPanelNotebook frame > label, dialog frame > label { margin: 0; - padding: 0.16667em 0.5em; + padding: 0.1667em 0.5em; } #BatchQueueButtonsMainContainer frame > border { - margin-bottom: 0.83334em; + margin-bottom: 0.8334em; } #BatchQueueButtonsMainContainer frame:nth-child(3) > border { - padding-left: 0.91667em; + padding-left: 0.9167em; } frame > label { margin: 0; - padding: 0.5em 0; + padding: 0.4167em 0 0.3334em 0.0834em; color: @headline-frame; } frame > checkbutton label{ @@ -227,7 +236,7 @@ frame > checkbutton label{ textview.view, treeview.view { background-color: @bg-dark-grey; border-color: @view-grid-border; - padding: 0.16667em; + padding: 0.1667em; margin: 0; } textview:hover, treeview:hover { @@ -240,24 +249,27 @@ textview:selected, treeview:selected { } #RightNotebook > stack > :nth-child(1) treeview { - border: 0.08334em solid @bg-dark-grey; + border: 0.0834em solid @bg-dark-grey; border-bottom: none; } #PlacesPaned > box:nth-child(1) treeview { - padding: 0.08334em 0 0.08334em 0.5em; + padding: 0.0834em 0 0.0834em 0.41667em; -gtk-icon-style: symbolic; } #HistoryPanel { - margin-top: 0.5em; + margin-top: 0.25em; +} +#RightNotebook #HistoryPanel { + margin-top: 0.3334em; } #HistoryPanel > border { margin-top: 1.75em; } #HistoryPanel > label { - margin: 0 0 -1.33334em 0; - padding: 0; + margin: 0 0 -1.5em 0; + padding: 0 0 0 0.0834em; } #Snapshots > border { @@ -270,8 +282,12 @@ textview:selected, treeview:selected { margin-top: -8px; margin-bottom: -4px; } +#Snapshots button image{ + min-height: 24px; + min-width: 24px; +} #Snapshots > box > :nth-child(1) { - margin-bottom: 0.41667em; + margin-bottom: 0.4167em; } #PlacesPaned > box:nth-child(3) > box:nth-child(2), @@ -279,28 +295,28 @@ textview:selected, treeview:selected { #HistoryPanel > border, #Snapshots > box > :nth-child(1) { background-color: @bg-dark-grey; - border: 0.08334em solid @bg-dark-grey; + border: 0.0834em solid @bg-dark-grey; } /*Corrects the space of the snapshot view to the paned separator*/ #Snapshots { - margin-top: -0.33334em; + margin-top: 0.1667em; } /**/ /*** end ***************************************************************************************/ /*** Navigator *********************************************************************************/ -#Navigator .drawingarea { - border-top: 0.41667em solid @bg-dark-grey; - border-bottom: 0.25em solid @bg-dark-grey; -} #Navigator { - background-color: @bg-dark-grey; + padding-top: 0.75em; padding-bottom: 0.25em; + background-color: @bg-dark-grey; } #Navigator box label { - padding: 0.16667em 0; + padding: 0.1667em 0; +} +#Navigator > label:nth-child(2) { + margin-top: 0.5em; } /*** end ***************************************************************************************/ @@ -320,11 +336,11 @@ filechooser box { } filechooser > box > paned > box { - border: 0.08334em solid @bg-dark-grey; + border: 0.0834em solid @bg-dark-grey; background-color: @bg-dark-grey; } filechooser placessidebar { - padding: 0 0.08334em; + padding: 0 0.0834em; background-color: @bg-dark-grey; } @@ -338,7 +354,7 @@ filechooser list { filechooser list row { margin: 0; padding: 0; - min-height: calc(1.41667em + 8px); + min-height: calc(1.4166em + 8px); } filechooser list row label{ margin: 0; @@ -356,35 +372,62 @@ filechooser list row:selected { /*** Histogram *********************************************************************************/ #HistogramPanel { - margin: -2px 0; + min-height: 0; + margin: 0; + padding: 0; border: none; + background-color: transparent; } -#HistogramArea, -#HistogramRGBArea { - border: 0.08334em solid @bg-dark-grey; + +#HistogramPanel > :nth-child(2) { + border: none; + border-left: 0.0834em solid @bg-light-grey; + background-color: @bg-dark-grey; +} + +#HistogramPanel > :nth-child(1) { + border: none; + background-color: transparent; +} + +#EditorLeftPaned #HistogramPanel > :nth-child(1) { + border: none; + border-right: 0.0834em solid @bg-light-grey; + background-color: @bg-dark-grey; +} + +#EditorLeftPaned #HistogramPanel > :nth-child(2) { + border: none; + background-color: transparent; +} + +#HistogramArea, +#HistogramRGBArea { + border: 0.0834em solid @bg-dark-grey; background-color: @bg-dark-grey; } -#fullButton, #histButton { - padding: 0.47em 0.41667em; + padding: 0; margin: 0; - border-color: @bg-light-grey; - border-style: solid; - border-width: 0 0 0 0.08334em; + border: none; background-color: @bg-dark-grey; background-image: none; box-shadow: none; - min-height: 0; - min-width: 0; + min-height: 1.4166em; + min-width: calc(1.3333em + 6px); border-radius: 0; } -#fullButton { - padding: 0.47em 0.41667em 0.58334em; + +#histButton:first-child { + margin-top: 3px; } -#EditorLeftPaned #fullButton, -#EditorLeftPaned #histButton { - border-width: 0 0.08334em 0 0; +#histButton:last-child { + margin-bottom: 3px; +} + +#HistogramPanel image { + -gtk-icon-transform: scale(calc(14/16)); } /*** end ***************************************************************************************/ @@ -393,7 +436,7 @@ separator { background-color: transparent; } grid separator.horizontal, box separator.horizontal { - margin: 0.16667em 0; + margin: 0.1667em 0; padding: 0; } grid separator.vertical, box separator.vertical { @@ -413,11 +456,11 @@ popover separator:not(:only-child) { paned.horizontal > separator { background-color: transparent; - min-width: 0.41667em; - border-left: 0.25em solid @bg-light-grey; - border-right: 0.25em solid @bg-light-grey; + background-image: none; + min-width: 0.4166em; + border: none; margin: 0 -0.25em; - padding: 0; + padding: 0 0.25em; } paned.vertical > separator { @@ -426,14 +469,19 @@ paned.vertical > separator { min-height: 0.5em; border-top: 1px solid @bg-light-grey; border-bottom: 1px solid @bg-light-grey; - margin: 0.25em 0 0; + margin: 0.25em 0 -0.5em; padding: 0.2em 0 0; } +/*Filmstrip*/ +#EditorRightPaned > paned.horizontal > paned.vertical > separator { + margin-bottom: 0; + min-height: 0.4167em; +} dialog paned.horizontal > separator { background-color: @bg-grey; border-color: @bg-grey; - min-width: 0.33334em; + min-width: 0.3333em; } menu separator { @@ -451,13 +499,13 @@ menu separator { #IopsPanel separator, #FileBrowser separator { background-color: shade(@bg-light-grey,.75); - margin-top: 0.33334em; - margin-bottom: 0.33334em; + margin-top: 0.1667em; + margin-bottom: 0.1667em; } #MyExpander separator { background-color: @view-grid-border; - margin: 0.33334em 0; + margin: 0.3334em 0; } #MyFileChooserButton separator { background-color: transparent; @@ -470,24 +518,24 @@ menu separator { /*** PartialPaste ******************************************************************************/ #PartialPaste { - border-bottom: 0.08334em solid @border-color; - border-top: 0.08334em solid @border-color; + border-bottom: 0.0834em solid @border-color; + border-top: 0.0834em solid @border-color; padding-top: 0.5em; padding-bottom: 0.5em; } #PartialPaste separator.vertical { - margin: 0 0.33334em; + margin: 0 0.3334em; padding: 0; } #PartialPaste separator { /* Struggles with #PartialPasteHeaderSep */ background-color: @border-color; - margin: 0.16667em 0.5em 0.16667em 1.16667em; + margin: 0.1667em 0.5em 0.1667em 1.1667em; } #PartialPasteHeaderSep.horizontal { background-color: rgb(192,192,192); - margin: 0.16667em 0.5em; + margin: 0.1667em 0.5em; } #PartialPasteHeader label { @@ -522,10 +570,10 @@ scrollbar:not(.overlay-indicator) { background-color: rgba(0,0,0,.30); } scrollbar:not(.overlay-indicator).horizontal { - border-width: 0 0.08334em 0.08334em 0.08334em; + border-width: 0 0.0834em 0.0834em 0.0834em; } scrollbar:not(.overlay-indicator).vertical { - border-width: 0.08334em 0.08334em 0.08334em 0; + border-width: 0.0834em 0.0834em 0.0834em 0; } scrollbar:not(.overlay-indicator) slider { background-color: shade(@text-color, .9); @@ -546,9 +594,9 @@ scrollbar.horizontal.hovering.fine-tune slider { scrollbar.horizontal.overlay-indicator:not(.hovering) slider { min-width: 2em; min-height: 0.25em; - border-width: 0.08334em; + border-width: 0.0834em; border-radius: 0.25em; - margin: 0 0.16667em; + margin: 0 0.1667em; } scrollbar:not(.overlay-indicator).vertical slider, @@ -566,9 +614,9 @@ scrollbar.vertical.hovering.fine-tune slider { scrollbar.vertical.overlay-indicator:not(.hovering) slider { min-width: 0.25em; min-height: 2em; - border-width: 0.08334em; + border-width: 0.0834em; border-radius: 0.5em; - margin: 0.16667em 0; + margin: 0.1667em 0; } scrollbar:not(.overlay-indicator) slider:hover, @@ -586,7 +634,7 @@ scrollbar:not(.overlay-indicator):hover { /*** Scale**************************************************************************************/ scale { padding: 0; - min-height: 1.83334em; + min-height: 1.8333em; margin: 0 0.25em; } @@ -594,10 +642,10 @@ scale slider { /* Slider size is min-width x min-height; margin have to be half of those values, but negative */ min-width: 1em; min-height: 1em; - margin: calc(-0.33334em - 1px); - border-radius: 0.83334em; + margin: calc(-0.166em - 4px); + border-radius: 0.8334em; background-image: linear-gradient(to bottom, shade (@accent-color4,1.15), shade (@accent-color4,.85)); - border: 0.08334em solid @bg-button-border; + border: 0.0834em solid @bg-button-border; box-shadow: none; } scale slider:hover { @@ -607,14 +655,14 @@ scale slider:hover { scale trough { margin: 0.5em; /* has to be half of "scale slider / min-width min-height*/ background-color: @bg-scale-entry; - border: 0.08334em solid @bg-button-border; - box-shadow: inset 0 0.08334em rgba(255, 255, 255, 0.11), 0 0.08334em rgba(242, 242, 242, 0.11); + border: 0.0834em solid @bg-button-border; + box-shadow: inset 0 0.0834em rgba(255, 255, 255, 0.11), 0 0.0834em rgba(242, 242, 242, 0.11); border-radius: 0.5em; } scale:not(:disabled) trough highlight { background-color: @accent-color2; - border: 0.08334em solid @bg-button-border; - box-shadow: inset 0 0.08334em shade(@accent-color2, 1.3); + border: 0.0834em solid @bg-dark-grey; + box-shadow: inset 0 0.1667em shade(@accent-color2, 1.25); border-radius: 0.5em; } @@ -663,14 +711,14 @@ progressbar.vertical trough progress { } progressbar.horizontal trough { - min-height: 0.41667em; + min-height: 0.4166em; background-color: transparent; border: none; border-radius: 0.5em; - margin-top: 0.58334em; + margin-top: 0.5834em; } progressbar.horizontal trough progress { - min-height: 0.41667em; + min-height: 0.4166em; margin: -1px 0; background-color: @accent-color2; border: none; @@ -680,7 +728,7 @@ progressbar.horizontal trough progress { #IopsPanel progressbar.horizontal trough { min-height: 0.5em; background-color: @bg-scale-entry; - border: 0.08334em solid @bg-button-border; + border: 0.0834em solid @bg-button-border; margin-top: 0.25em; } #IopsPanel progressbar.horizontal trough progress { @@ -709,36 +757,36 @@ notebook stack { } notebook header { background-color: @bg-dark-grey; - padding: 0 0.41667em; + padding: 0 0.4167em; } notebook header.left { - padding: 0.41667em 0; + padding: 0.4167em 0; } notebook tabs { background-color: transparent; } notebook header tab { background-color: transparent; - margin: 0.41667em 0.25em; - padding: 0 0.33334em; + margin: 0.4167em 0.25em; + padding: 0 0.3334em; } notebook header.left tab { - margin: 0.25em 0.41667em; - padding: 0.33334em 0; + margin: 0.25em 0.4167em; + padding: 0.3334em 0; } notebook header tab > grid > image { - min-height: 2.33334em; + min-height: 2.5em; min-width: 0; - padding: 0 0.16667em 0 0; + padding: 0 0.25em 0 0; margin: 0; } notebook header.left tab > grid > image { min-height: 0; - min-width: 2.33334em; - padding: 0.16667em 0 0; + min-width: 2.5em; + padding: 0.25em 0 0; } notebook header tab label { - margin: 0.33334em; + margin: 0.0834em; } notebook header tab:hover label { color: @headline-hl; @@ -754,11 +802,11 @@ notebook > header > tabs > arrow { border-radius: 0.2em; min-width: 0; min-height: 0; - padding: 0 0.16667em; + padding: 0 0.1667em; margin: 0.5em 0; } notebook > header.left > tabs > arrow { - padding: 0.16667em 0; + padding: 0.1667em 0; margin: 0 0.5em; } notebook > header > tabs > arrow:hover { @@ -777,11 +825,11 @@ dialog notebook stack { /*?win*/ #MainNotebook > stack { - padding: 0.41667em; + padding: 0.4167em; } #MainNotebook > stack > :nth-child(2) > box:nth-child(3) { - margin-top: 0.41667em; + margin-top: 0.4167em; } @@ -789,49 +837,58 @@ dialog notebook stack { dialog.csd #PrefNotebook > header, dialog.csd #AboutNotebook > header, window.csd:not(.fullscreen) #MainNotebook > header.top { - border-top: 0.083334em solid rgba(200,200,200,.18); + border-top: 0.08334em solid rgba(200,200,200,.18); } /**/ #ToolPanelNotebook > header tabs { - margin-bottom: 0.33334em; + margin-bottom: 0.3334em; } #ToolPanelNotebook > header tab { margin-left: 0; margin-right: 0; - padding: 0 0.33334em; + padding: 0 0.3334em; } #ToolPanelNotebook > header tab + tab { - margin-left: 0.33333em; + margin-left: 0.25em; } -#ToolPanelNotebook > header tab image{ - min-height: 2.5em; - min-width: 2em; - padding: 0; +#ToolPanelNotebook > header tab #TextOrIcon image{ + min-height: 2.3333em; + min-width: calc(2em + 4px); + padding: 2px 0; margin: 0; } #RightNotebook > header { - margin: 0 0.41667em 0 0; + margin: 0 0.4167em 0 0; } #RightNotebook > stack { background-color: @bg-grey; padding: 0; } +#RightNotebook header tab label { + padding-left: 0.1667em; + padding-right: 0.1667em; +} #RightNotebook > stack > :nth-child(1) > * > box, #RightNotebook > stack > :nth-child(4) > * > box { padding: 0.5em; - border: 0.08334em solid @bg-entry-border; + border: 0.0834em solid @bg-entry-border; } #PrefNotebook header { - margin: -0.66667em -0.66667em 0.33334em; + margin: -0.6667em -0.6667em 0.3334em; } +#PrefNotebook header tab label { + padding-top: 0.1667em; + padding-bottom: 0.1667em; +} + #AboutNotebook header { - margin: -0.66667em -0.66667em 0.66667em; + margin: -0.6667em -0.6667em 0.6667em; } #AboutNotebook stack text { @@ -843,15 +900,15 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #MetaPanelNotebook header { background-color: @bg-grey; - padding: 0.33334em; + padding: 0.3334em; margin: 0 0.5em 0; } #MetaPanelNotebook > header > tabs { background-color: @bg-dark-grey; - padding-left: 0.33334em; + padding-left: 0.3334em; } #MetaPanelNotebook > header tab label{ - margin: 0.08334em; + margin: 0.0834em; } #MetaPanelNotebook > stack > box { @@ -859,11 +916,11 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { background-color: @bg-grey; border-radius: 0; border-top-style: none; - padding: 0 0.33334em 0.25em; + padding: 0 0.3334em 0.25em; margin: 0 0.5em -0.5em; } #MetaPanelNotebook > stack > box:nth-child(1) > scrolledwindow { - margin: 0 0 0.33334em; + margin: 0 0 0.3334em; padding: 0; } @@ -873,23 +930,23 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #MetaPanelNotebook separator { background-color: @border-color; - margin: 0.16667em 0; + margin: 0.1667em 0; } #MetaPanelNotebook entry, #MetaPanelNotebook button, #MetaPanelNotebook combobox button { margin-top: 0; margin-bottom: 0; - min-height: 1.66667em; - min-width: 0.83334em; + min-height: 1.6666em; + min-width: 0.8333em; } #MetaPanelNotebook entry { - padding: 0 0.33334em; + padding: 0 0.3334em; background-color: @bg-dark-grey; margin: 0; border-radius: 0; } #MetaPanelNotebook > stack > box:nth-child(1) > :nth-child(1) { - border: 0.08334em solid @bg-dark-grey; + border: 0.0834em solid @bg-dark-grey; } #MetaPanelNotebook > stack > box:nth-child(2) > scrolledwindow scrolledwindow { background-color: @bg-dark-grey; @@ -897,13 +954,13 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { margin: 0; } #MetaPanelNotebook > stack > box:nth-child(2) .view { - border: 0.08334em solid @bg-dark-grey; - padding: 0.16667em; + border: 0.0834em solid @bg-dark-grey; + padding: 0.1667em; margin: 0; } #MetaPanelNotebook textview.view { background-color: @bg-dark-grey; - padding: 0.08334em 0.33334em; + padding: 0.0834em 0.3334em; margin: 0; } #MetaPanelNotebook text { @@ -919,17 +976,17 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { } #MetaPanelNotebook combobox + button, #MetaPanelNotebook combobox + button + button { - margin-left: 0.16667em; - min-width: 1.66667em; + margin-left: 0.1667em; + min-width: 1.6666em; } #MetaPanelNotebook > stack > box > grid > button { - margin-top: 0.08334em; - margin-bottom: 0.08334em; - min-height: 2.16667em; + margin-top: 0.0834em; + margin-bottom: 0.0834em; + min-height: 2.1666em; } #MetaPanelNotebook label { - padding: 0.08334em 0; + padding: 0.0834em 0; } /*** end ***************************************************************************************/ @@ -937,7 +994,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { /*** File Browser ******************************************************************************/ #FileCatalog { background-color: @bg-image; - border: 0.08334em solid @bg-dark-grey; + border: 0.0834em solid @bg-dark-grey; } #FileCatalog:selected { background-color: @accent-color3; @@ -951,46 +1008,64 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { } #ToolBarPanelFileBrowser { - margin: -2px -1px; + margin: 0.4167em -1px; min-height: 0; min-width: 0; - padding: 0.41667em 0; + padding: 0; } #ToolBarPanelFileBrowser > box > button, #ToolBarPanelFileBrowser > button { - margin: 0 0.08334em; + margin: 0 0.0834em; } -#ToolBarPanelFileBrowser > box > box > button { - min-height: 0.91667em; - min-width: 1.33333em; +/* Filter */ +#ToolBarPanelFileBrowser .smallbuttonbox { + min-height: 1.0834em; padding: 0; - margin: 0.16667em 0 0 0; + margin: 0; +} +#ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { + margin: 1px 0 -1px 0; +} +#ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { + min-height: 0; + min-width: 1.0834em; + padding: 0; + margin: 0 2px; border: none; + border-radius: 0; background-color: transparent; background-image: none; box-shadow: none; } +#ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton:checked { + background-color: @bg-dark-grey; +} +#ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image{ + -gtk-icon-transform: scale(calc(14/16)); + margin: -2px +} +/**/ #ToolBarPanelFileBrowser entry + button.flat, #FileBrowser entry + button.flat { - min-height: 1.66667em; - min-width: 1.66667em; - margin: 0 0 0 -1.66667em; + min-height: 1.6666em; + min-width: 1.6666em; + margin: 0 0 0 -1.6667em; border-radius: 0 0.2em 0.2em 0; - border: 0.08334em solid transparent; + border: 0.0834em solid transparent; padding: 0; } #ToolBarPanelFileBrowser entry, #FileBrowser entry { - min-height: 1.66667em; + min-height: 1.6666em; min-width: 12em; margin: 0 -2px 0 0; - padding: 0 2em 0 0.33334em; + padding: 0 2em 0 0.3334em; } #ToolBarPanelFileBrowser label, #FileBrowser label { - margin: 0 0.33334em 0 0.5em; + margin: 0 0.3334em 0 0.5em; } /*** end ***************************************************************************************/ @@ -1001,49 +1076,65 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #BeforeAfterContainer { background-color: @bg-grey; - border: 0.08334em solid @bg-dark-grey; + border: 0.0834em solid @bg-dark-grey; border-radius: 0; padding: 0; - margin: 0.41667em 0; + margin: -2px 0 0.4167em; } #BeforeAfterContainer > box:nth-child(2) > box:nth-child(2), #BeforeAfterContainer > box:nth-child(1) > box:nth-child(2){ - border-top: 0.08334em solid @bg-dark-grey; + border-top: 0.0834em solid @bg-dark-grey; } #BeforeAfterContainer > box:nth-child(2){ - border-left: 0.08334em solid @bg-dark-grey; + border-left: 0.0834em solid @bg-dark-grey; } #BeforeAfterContainer label { - min-height: 2.41667em; + min-height: 2.6666em; padding: 0 0.5em; } /* Small Lock Button */ #BeforeAfterContainer button { - min-height: 1.66667em; - min-width: 1.75em; - margin: 0.25em; - padding: 0 0 0 0.08334em; + min-height: 2em; + min-width: 2em; + margin: 0.25em 0.25em 0.25em 0; + padding: 0; +} +#BeforeAfterContainer button image{ + margin: 0 0 0 1px; +} +#BeforeAfterContainer button:checked image{ + margin: 0 -2px 0 3px; } /**/ -#EditorTopPanel { - margin: -2px -2px; +#EditorToolbarTop { + margin: -2px -2px 0.4167em; padding: 0; min-height: 0; } +/* Single Window */ +window > box > #EditorRightPaned > paned > paned > box { + margin-top: -2px; + padding: 0; +} +window > box > #EditorRightPaned > paned > paned > box > #EditorToolbarTop { + margin-top: 0; +} +/**/ + #EditorTopPanel button { - margin: 0 0.08334em; - min-height: 2.16667em; - min-width: 2.16667em; + margin: 0 0.0834em; + min-height: 2.1666em; + min-width: 2.1666em; } /* Removes margin from the last button. Otherwise the filmstrip will cut of the right border. */ #EditorTopPanel :last-child > button:last-child { margin-right: 0; } -#EditorTopPanel > box:nth-child(9) > button.image-button { - min-width: 1.05em; +#EditorTopPanel button.narrowbutton { + min-width: 1em; padding: 0; } @@ -1056,8 +1147,8 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { padding: 0 2px 0 3px; } #EditorZoomPanel button { - margin-left: 0.08334em; - margin-right: 0.08334em; + margin-left: 0.0834em; + margin-right: 0.0834em; } /*** end ***************************************************************************************/ @@ -1072,13 +1163,14 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { } /**/ #MyExpander .drawingarea:not(.slider) { - border: 0.08334em solid @bg-light-grey; + border: 0.0834em solid @bg-light-grey; + background-color: @bg-dark-grey; } #MyExpander .slider, -#MyExpander .drawingarea:nth-child(2) { +#MyExpander #CurveSHCSelector { background-image: linear-gradient(to bottom, shade (@accent-color4,1.15), shade (@accent-color4,.85)); background-color: @accent-color4; - border: 0.08334em solid rgb(15,15,15); + border: 0.0834em solid rgb(15,15,15); } #MyExpander .drawingarea:disabled { background-color: shade(@bg-grey,.85); @@ -1086,16 +1178,12 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { background-image: none; } #ThresholdAdjuster { - margin: 0.08334em 0 0.16667em 0; + margin: 0.0834em 0 0.1667em 0; } #ToolPanelNotebook scrolledwindow viewport.frame { padding: 0 0.56em; } -/* #MyExpander.withScrollbar { - padding: 0 6px; -} - */ #MyExpander { margin: 0; @@ -1112,7 +1200,7 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { /* Sub-tool (MyExpander) */ #ExpanderBox2 > box, #ExpanderBox2 > grid { background-color: transparent; - border: 0.08334em solid @border-color; + border: 0.0834em solid @border-color; border-radius: 0; margin: 0; padding: 0.5em; @@ -1120,13 +1208,13 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { #MyExpanderTitle > box { margin: 0; - padding: 0.33334em 0; + padding: 0.25em 0; } #MyExpanderTitle label { color: @headline-big; padding: 0; - margin: 0 0.25em 0 0.5em; + margin: 0.0834em 0.25em 0 0.5em; } #MyExpanderTitle:hover label { @@ -1141,13 +1229,13 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { border: none; padding: 0; margin: 0; - box-shadow: 0 0.25em 0.75em 0.08334em rgba(0, 0, 0, 0.50), 0 0 0 0.08334em @bg-dark-grey; + box-shadow: 0 0.25em 0.75em 0.0834em rgba(0, 0, 0, 0.50), 0 0 0 0.0834em @bg-dark-grey; } menu { background-color: @bg-dark-grey; - border: 0.08334em solid @accent-color; - padding: 0.08334em; + border: 0.0834em solid @accent-color; + padding: 0.0834em; margin: 0; } menu > .top, @@ -1161,8 +1249,8 @@ menu > .bottom:hover { } menuitem { - padding: 0 0.33334em; - margin: 0.08334em; + padding: 0 0.3334em; + margin: 0.0834em; min-height: 2em; } menuitem:hover { @@ -1176,7 +1264,7 @@ menuitem:hover > * { menu image { min-height: 2em; padding: 0; - margin: 0 0.33334em 0 0; + margin: 0 0.3334em 0 0; } /*** Selection popup list (used in filechooser) ***/ @@ -1185,11 +1273,11 @@ entry > window > frame { } entry > window > frame > border { background-color: @bg-dark-grey; - padding: 0.08334em; - border: 0.08334em solid @accent-color; + padding: 0.0834em; + border: 0.0834em solid @accent-color; } entry > window > frame > border { - margin: 0.08334em; + margin: 0.0834em; } /* end */ @@ -1199,7 +1287,7 @@ entry > window > frame > border { popover.background { background-color: @bg-dark-grey; - border: 0.08334em solid @accent-color; + border: 0.0834em solid @accent-color; border-radius: 0; padding: 0; margin: 0; @@ -1211,7 +1299,7 @@ popover.background > box { } popover.background modelbutton { min-height: 2em; - padding: 0 0.41667em; + padding: 0 0.4167em; margin: 0; border-radius: 0; } @@ -1228,24 +1316,24 @@ popover.background modelbutton:hover { /*** Switch ***********************************************************************************/ switch { - min-height: 2.16667em; + min-height: 2.1666em; min-width: 11em; margin: 0; padding: 0; border-radius: 0.2em; background-image: none; - box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, 0.08), 0 0.08334em rgba(242, 242, 242, 0.1); - border: 0.08334em solid @bg-entry-border; + box-shadow: inset 0.0834em 0.0834em rgba(0, 0, 0, 0.08), 0 0.0834em rgba(242, 242, 242, 0.1); + border: 0.0834em solid @bg-entry-border; background-color: @bg-scale-entry; margin-bottom: 0.5em; } switch slider { - border: 0.08334em solid @bg-entry-border; + border: 0.0834em solid @bg-entry-border; background-color: shade (@bg-light-grey, .85); background-image: linear-gradient(to bottom, rgba(125,125,125,.4), rgba(60,60,60,.4)); - border: 0.08334em solid @bg-entry-border; - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.1); + border: 0.0834em solid @bg-entry-border; + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.1); border-radius: 0.2em 0 0 0.2em; } switch:checked slider{ @@ -1273,14 +1361,14 @@ switch:disabled:not(:checked) { /*** Buttons ***********************************************************************************/ button { - min-height: 2.16667em; - min-width: 2.16667em; + min-height: 2.1666em; + min-width: 2.1666em; margin: 0; padding: 0; /* x */ border-radius: 0.2em; - border: 0.08334em solid @bg-button-border; + border: 0.0834em solid @bg-button-border; background-color: transparent; - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.1); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.1); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); } button.flat { @@ -1291,66 +1379,65 @@ button.text-button label { } #PrefNotebook > stack > :nth-child(5) combobox { - /* margin: 0.16667em 0; */ + /* margin: 0.1667em 0; */ margin: 2px 0; } #PrefNotebook > stack > :nth-child(2) #MyFileChooserButton { - /* margin: 0.25em 0.33334em; */ + /* margin: 0.25em 0.3334em; */ margin: 3px 5px; } filechooser button image, #MyFileChooserButton image { - opacity: .8; + opacity: .70; -gtk-icon-style: symbolic; } #MainNotebook > header > grid > button, button.flat { - border: 0.08334em solid transparent; + border: 0.0834em solid transparent; box-shadow: none; background-image: none; background-color: transparent; } -/* Resetbutton Queue & Save as*/ -dialog scale + button.flat, -scale + button.flat { - min-height: 1.33334em; - min-width: 1.25em; - margin: 0.25em 0 0.16667em 0.16667em; - padding: 0 0 0 0.08334em; - -gtk-icon-shadow: none; -} /* Resetbutton */ -#MyExpander button.flat { - min-height: 1.33334em; - min-width: 1.25em; - margin: 0.08334em 0 0.08334em 0.16667em; - padding: 0 0 0 0.08334em; - -gtk-icon-shadow: none; +#MyExpander button:last-child.flat, +#MyExpander scale + button.flat, +dialog scale + button.flat, +#MainNotebook > stack > :nth-child(2) > box:nth-child(1) scale + button.flat, +entry + button.flat { + min-height: 1.1666em; + min-width: 1.5em; + margin: 0.0834em 0 0.0834em 0.1667em; + padding: 0 0 0 0.1667em; +} +dialog entry + button:last-child.flat { + min-height: 1.6666em; } -#MyExpander scale + button.flat { - margin: 0 0 0 0.16667em; +#MyExpander scale + button:last-child.flat, +#MyExpander spinbutton + button:last-child.flat { + margin: 0 0 0 0.1667em; } -#MyExpander image + button.flat { - margin: 0 0 0 0.41667em; -} -#MyExpander spinbutton + button.flat { - margin: 0 0 0 0.16667em; - padding-top: 0.08334em; +#MyExpander image + button:last-child.flat { + margin: 0 0 0 0.25em; } /**/ /* Buttons Curve drawingarea*/ #MyExpander button.flat + button.flat, #MyExpander button.flat:first-child { - min-height: 2.16667em; - min-width: 2.16667em; - margin: 0.08334em; + min-height: 2em; + min-width: 2em; + margin: 0.1667em 0.1667em 0 0; padding: 0; } +#MyExpander button.flat + button.flat image, +#MyExpander button.flat:first-child image{ + -gtk-icon-transform: scale(calc(20/24)); + margin: -2px; +} /**/ #ToolBarPanelFileBrowser entry + button:hover, @@ -1358,7 +1445,7 @@ scale + button.flat { button.flat:hover, button:hover { border-color: @bg-button-border; - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.1); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.1); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); background-color: @bg-button-hover; } @@ -1370,7 +1457,7 @@ button.flat:checked, button:active, button:checked { border-color: @bg-button-border; - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.08); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.08); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); background-color: @bg-button-active; } @@ -1378,19 +1465,27 @@ button:checked { /* Add space between connected buttons */ button.Right, button.MiddleH { - margin-left: 0.16667em; - border: 0.08334em solid @bg-button-border; + margin-left: 0.1667em; + border: 0.0834em solid @bg-button-border; } /**/ /* Applies special styles in main notebook */ #ProfilePanel { margin-bottom: -2px; - padding-bottom: 0.41667em; + padding-bottom: 0.4167em; +} +#ProfilePanel > label { + margin-bottom: 0.0834em; } #ProfilePanel combobox { - margin-left: 0.16667em; + margin-left: 0.1667em; + margin-right: 0.1667em; } +#ProfilePanel button.Left { + margin-left: -2px; +} + #PlacesPaned button.Left, #PlacesPaned button.Right { margin-top: 3px; @@ -1401,67 +1496,93 @@ button.MiddleH { /**/ /* Button base format for Toolbox and dialogs */ -#ToolPanelNotebook > stack > box > box > combobox .combo, +#ToolPanelNotebook > stack > box > box > combobox button, dialog button, #MyExpander button, #BatchQueueButtonsMainContainer button { - min-height: 1.66667em; + min-height: 1.6666em; min-width: 0; padding: 0 0.375em; - margin: 0.08334em 0; + margin: 0.0834em 0; } #MyExpander #MyFileChooserButton + button.image-button{ - min-width: 1.66667em; + min-width: 1.6666em; padding: 0; } -combobox .combo, -dialog combobox .combo, -#ToolPanelNotebook combobox .combo, -#BatchQueueButtonsMainContainer combobox .combo { - padding: 0 0.26667em; + +#ToolPanelNotebook > stack > box > box > combobox button.combo, +dialog button.combo, +#MyExpander button.combo, +#BatchQueueButtonsMainContainer button.combo { + padding: 0; +} +#ToolPanelNotebook > stack > box > box > combobox { + margin-right: 0.25em; +} +combobox button cellview { + padding: 0 0 0 0.1667em; +} +combobox arrow { + padding: 0 0.1667em 0 0; + margin: 0; +} +#MetaPanelNotebook combobox arrow { + padding: 0; + min-width: 1.25em; +} +.popupbutton-arrow { + min-width: 0; } /**/ /* Add/remove space between buttons and labels in toolbox*/ +#ToolPanelNotebook > stack > box > box > label { + margin: 0 0 0 0.25em; +} + #MyExpander combobox:not(:first-child):not(:only-child), -#MyExpander button:not(.flat).Left, +#MyExpander .image-combo:not(:first-child), #MyExpander button:not(.flat) + combobox, #MyExpander combobox + button:not(.flat), -#MyExpander combobox + combobox -/* Crash +#MyExpander combobox + combobox, #MyExpander button + label, -#MyExpander combobox + label */ { - margin-left: 0.16667em; +#MyExpander combobox + label { + margin-left: 0.1667em; } #MyExpander label + * > button:not(.flat).Left, #MyExpander label + combobox:not(:first-child):not(:only-child), #MyExpander label + button:not(.flat):not(spinbutton) { - margin-left: 0.33334em; + margin-left: 0.3334em; } buttonbox:not(.dialog-action-area) button{ - margin: 0.08334em 0 0.33334em 0.16667em; + margin: 0.0834em 0 0.3334em 0.1667em; } #PrefNotebook buttonbox:not(.dialog-action-area) { margin-right: -5px; } +#PrefNotebook radiobutton + entry + button:last-child image { + -gtk-icon-transform: scale(calc(17/24)); + margin: -5px; +} /* Arrow toggle combo button */ -#IopsPanel button:not(.flat).Left + button:not(.flat).Right, -#MyExpander button:not(.flat).Left + button:not(.flat).Right { +#IopsPanel .image-combo button.Right, +#MyExpander .image-combo button.Right { border-left: none; margin-left: 0; - padding-left: 0.33334em; - padding-right: 0.33334em; + padding-left: 0; + padding-right: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; + min-width: 1.3333em; } -#IopsPanel button:not(.flat).Left, -#MyExpander button:not(.flat).Left { +#IopsPanel .image-combo button.Left, +#MyExpander .image-combo button.Left { border-top-right-radius: 0; border-bottom-right-radius: 0; - min-width: 2.16667em; + min-width: 2.1666em; } /**/ @@ -1470,30 +1591,36 @@ buttonbox:not(.dialog-action-area) button{ margin: 0;/* x */ } /* Graduated filter big button */ -#ExpanderBox > box > box:first-child > button:not(.flat):not(.text-button):first-child { - min-height: 2.16667em; - min-width: 2.16667em; +#MyExpander button:not(.image-button).independent:first-child:not(.flat):only-child { + min-height: 2em; + min-width: 2em; padding: 0; - margin: 0 0 0.5em; + margin: 0 0 0.3334em; } - -.popupbutton-arrow { - min-width: 0; +#MyExpander button:not(.image-button).independent:first-child:not(.flat):only-child image { + -gtk-icon-transform: scale(calc(20/24)); + margin: -2px; } +/* WB pipete big button*/ +#MyExpander button.image-button.independent:first-child:not(.flat):not(:only-child) image { + -gtk-icon-transform: scale(calc(18/24)); + margin: -4px; +} +/**/ button.color { - min-height: 1.16667em; + min-height: 1.1666em; padding: 0.25em; } /* Save, Cancel, OK ... buttons */ .dialog-action-area button { - min-height: 2.16667em; - margin-top: 0.33334em; + min-height: 2.1666em; + margin-top: 0.3334em; } messagedialog .dialog-action-area button { - margin: 0 0.66667em 0.66667em 0.66667em; - min-height: 1.83334em; + margin: 0 0.6667em 0.6667em 0.6667em; + min-height: 1.8333em; } messagedialog .dialog-action-area button:not(:only-child):nth-child(1) { margin-right: 0.25em; @@ -1510,8 +1637,8 @@ window .view button { background-image: none; box-shadow: none; min-height: 2em; - min-width: 1.33334em; - padding: 0 0.33334em; + min-width: 1.3333em; + padding: 0 0.3334em; margin: 0; } dialog .view button.text-button label, @@ -1520,10 +1647,10 @@ window .view button.text-button label { } window .view button { border: none; - border-bottom: 0.08334em solid @border-color; + border-bottom: 0.0834em solid @border-color; } dialog .view button { - border: 0.08334em solid @border-color; + border: 0.0834em solid @border-color; } .view button:checked, @@ -1569,7 +1696,7 @@ window .view header button, } .path-bar button label { margin: 0; - padding: 0 0.33334em; + padding: 0 0.3334em; } /**/ @@ -1577,12 +1704,12 @@ window .view header button, popover button.text-button { background-color: @bg-dark-grey; background-image: none; - border: 0.08334em solid @border-color; + border: 0.0834em solid @border-color; box-shadow: none; background-image: none; - margin: 0.083334em 0; - min-height: 1.66667em; - padding: 0 0.66667em; + margin: 0.08334em 0; + min-height: 1.6666em; + padding: 0 0.6667em; } popover button.text-button label { padding: 0; @@ -1606,10 +1733,10 @@ popover button.text-button:active { /* Titlebar & Notebook buttons */ #MainNotebook > header.top > grid > button { - margin: 0 0 0 0.41667em; + margin: 0 0 0 0.4167em; } #MainNotebook > header.left > grid > button { - margin: 0.41667em 0 0; + margin: 0.4167em 0 0; } headerbar button.titlebutton image { @@ -1617,9 +1744,9 @@ headerbar button.titlebutton image { margin: 0; } headerbar button.titlebutton { - margin: 0 0 0 0.33334em; + margin: 0 0 0 0.3334em; background-image: none; - border: 0.08334em solid transparent; + border: 0.0834em solid transparent; background-color: transparent; box-shadow: none; min-width: 1.55em; @@ -1634,7 +1761,7 @@ messagedialog headerbar button.titlebutton { #MainNotebook tab #CloseButton { padding: 0; - margin: 0.33334em -3px 0.33334em 0.08334em; + margin: 0.3334em -2px 0.5em 0.25em; min-width: 1.5em; min-height: 1.5em; } @@ -1642,14 +1769,14 @@ messagedialog headerbar button.titlebutton { #MainNotebook tab #CloseButton:hover, headerbar button.titlebutton:hover{ border-color: rgba(0,0,0,.8); - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.11); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.11); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); background-color: rgba(128, 128, 128,.20); } #MainNotebook > header > grid > button:active, headerbar button.titlebutton:active{ border-color: rgba(0,0,0,.8); - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.15); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.15); background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); background-color: rgba(128, 128, 128,.40); } @@ -1657,13 +1784,13 @@ headerbar button.titlebutton:active{ headerbar button.titlebutton.close:hover{ border-color: rgba(0,0,0,.8); background-image: linear-gradient(to bottom, rgb(180,0,0), rgb(160,0,0) 40%, rgb(130,0,0)); - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.32); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.32); } #MainNotebook tab #CloseButton:active, headerbar button.titlebutton.close:active{ border-color: rgba(0,0,0,.8); background-image: linear-gradient(to bottom, rgb(215,0,0), rgb(185,0,0) 40%, rgb(150,0,0)); - box-shadow: inset 0 0.08334em rgba(242, 242, 242, 0.4); + box-shadow: inset 0 0.0834em rgba(242, 242, 242, 0.4); } /**/ @@ -1679,22 +1806,21 @@ radiobutton { } #PrefNotebook checkbox, #PrefNotebook checkbutton { - min-height: 1.6667em; + min-height: 1.6666em; } check, radio { - border: calc(0.083334em + 0.18px) solid @text-color; + border: calc(0.08334em + 0.18px) solid shade(@text-color, 0.95); background-image: none; background-color: transparent; margin: 0; padding: 0; - min-height: 1.16667em; - min-width: 1.16667em; + min-height: 1.1666em; + min-width: 1.1666em; box-shadow: none; background-repeat: no-repeat; - -gtk-icon-shadow: none; - color: @text-color; + color: shade(@text-color, 0.95); } radiobutton label, checkbutton label { @@ -1702,11 +1828,11 @@ checkbutton label { padding: 0; } check { - border-radius: 0.16667em; + border-radius: 0.1667em; } radio{ - border-radius: 1.16667em; + border-radius: 1.1667em; } check:disabled, radio:disabled { @@ -1719,7 +1845,7 @@ frame > checkbutton check{ #PartialPaste checkbutton:not(#PartialPasteHeader) { min-height: 1.4em; - margin-left: 1.16667em; + margin-left: 1.1667em; } #PartialPasteHeader { min-height: 1.4em; @@ -1727,7 +1853,7 @@ frame > checkbutton check{ } #MyExpander button + checkbutton:last-child { - margin-left: 0.33334em; + margin-left: 0.3334em; } /*** end ***************************************************************************************/ @@ -1735,44 +1861,44 @@ frame > checkbutton check{ /*** Entry & Spinbutton ************************************************************************/ #MyExpander entry, entry { - margin: 0.08334em 0; - padding: 0 0.33334em; - min-height: 1.66667em; + margin: 0.0834em 0; + padding: 0 0.3334em; + min-height: 1.6666em; min-width: 0; border-radius: 0.2em; - box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, 0.08), 0 0.08334em rgba(242, 242, 242, 0.1); - border: 0.08334em solid @bg-entry-border; + box-shadow: inset 0.0834em 0.0834em rgba(0, 0, 0, 0.08), 0 0.0834em rgba(242, 242, 242, 0.1); + border: 0.0834em solid @bg-entry-border; background-color: @bg-scale-entry; } spinbutton { - margin: 0.08334em 0; + margin: 0.0834em 0; padding: 0; - min-height: 1.66667em; + min-height: 1.6666em; min-width: 0; border-radius: 0.2em; background-color: @bg-scale-entry; - border: 0.08334em solid @bg-entry-border; - box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, 0.08), 0 0.08334em rgba(242, 242, 242, 0.1); + border: 0.0834em solid @bg-entry-border; + box-shadow: inset 0.0834em 0.0834em rgba(0, 0, 0, 0.08), 0 0.0834em rgba(242, 242, 242, 0.1); } #MyExpander spinbutton { - margin: 0.16667em 0; + margin: 0.1667em 0; padding: 0; - min-height: 1.33334em; + min-height: 1.3333em; min-width: 0; - border-top-left-radius: 1.83334em; - border-bottom-left-radius: 1.83334em; + border-top-left-radius: 1.8334em; + border-bottom-left-radius: 1.8334em; background-color: @bg-tb-spinbutton; - border: 0.08334em solid @bg-button-border; + border: 0.0834em solid @bg-button-border; color: @text-tbEntry; - box-shadow: inset 0.08334em 0.08334em rgba(0, 0, 0, .12), 0 0.08334em rgba(255, 255, 255, 0.12); + box-shadow: inset 0.0834em 0.0834em rgba(0, 0, 0, .12), 0 0.0834em rgba(255, 255, 255, 0.12); } #MyExpander button + label + spinbutton { margin: 0.25em 0; /* Needed for Reset & and Auto button height*/ } #MyExpander checkbutton + label + spinbutton { - margin: 0.33334em 0; /* Needed for Reset & and Auto checkbox button height*/ + margin: 0.3334em 0; /* Needed for Reset & and Auto checkbox button height*/ } #MyExpander image + spinbutton { @@ -1785,17 +1911,16 @@ spinbutton button { padding: 0; margin: 0; min-height: 0; - min-width: 1.33334em; + min-width: 1.3333em; background-image: none; background-color: transparent; border: none; border-radius: 0; box-shadow: none; - -gtk-icon-shadow: none; } #MyExpander spinbutton entry, spinbutton entry { - padding: 0 0.33334em; + padding: 0 0.3334em; margin: 0; min-height: 0; min-width: 0; @@ -1804,7 +1929,7 @@ spinbutton entry { background-color: transparent; } #MyExpander spinbutton entry { - padding: 0 0.33334em 0 0.83334em; + padding: 0 0.3334em 0 0.8334em; } #BatchQueueButtonsMainContainer spinbutton button:hover, @@ -1852,7 +1977,7 @@ entry:focus > selection { .view entry { background-color: @bg-dark-grey; margin: 0 -2px; - border: 0.08334em solid @accent-color; + border: 0.0834em solid @accent-color; box-shadow: none; } /* end*/ @@ -1863,20 +1988,20 @@ entry:focus > selection { :not(.popup):not(tooltip) > decoration { background-color: @winHeaderbar; background-image: none; - border-radius: 0.41667em 0.41667em 0 0; + border-radius: 0.4167em 0.4167em 0 0; border: none; padding: 0; - box-shadow: 0 0.25em 0.75em 0.08334em rgba(0, 0, 0, 0.5), 0 0 0 0.08334em @bg-dark-grey; - margin: 0.83334em; + box-shadow: 0 0.25em 0.75em 0.0834em rgba(0, 0, 0, 0.5), 0 0 0 0.0834em @bg-dark-grey; + margin: 0.8334em; } headerbar { background-color: shade(@winHeaderbar,1.12); - box-shadow: inset 0 0.08334em rgba(200,200,200,.13); + box-shadow: inset 0 0.0834em rgba(200,200,200,.13); background-image: linear-gradient(shade(@winHeaderbar,1.14), shade(@winHeaderbar,.86)); - border-bottom: 0.08334em solid @bg-dark-grey; - border-radius: 0.41667em 0.41667em 0 0; - min-height: 2.16667em; - padding: 0.08334em 0.41667em 0; + border-bottom: 0.0834em solid @bg-dark-grey; + border-radius: 0.4167em 0.4167em 0 0; + min-height: 2.1666em; + padding: 0.0834em 0.4167em 0; margin: 0; } messagedialog headerbar { @@ -1895,7 +2020,7 @@ headerbar .title{ /* Window in background */ :not(.popup):not(tooltip) > decoration:backdrop { - box-shadow: 0 0.25em 0.75em 0.08334em rgba(0, 0, 0, 0.3), 0 0 0 0.08334em @bg-dark-grey; + box-shadow: 0 0.25em 0.75em 0.0834em rgba(0, 0, 0, 0.3), 0 0 0 0.0834em @bg-dark-grey; } headerbar:backdrop { box-shadow: none; diff --git a/rtdata/themes/TooWaGrey - Bright-GTK3-20_.css b/rtdata/themes/TooWaGrey - Bright-GTK3-20_.css new file mode 100644 index 000000000..74dd5c7f0 --- /dev/null +++ b/rtdata/themes/TooWaGrey - Bright-GTK3-20_.css @@ -0,0 +1,72 @@ +/* + This file is part of RawTherapee. + + Copyright (c) 2016-2017 TooWaBoo + Requires RT 5.0 (Gtk+ >= 3.20) + + RawTherapee is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + RawTherapee is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with RawTherapee. If not, see . +*/ + + +/*****************************************/ +/**/ @import "TooWaBlue-GTK3-20_.css"; /**/ +/*****************************************/ + +/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/ + +@define-color accent-color rgb(112,112,112); /*** Active color for Lists, Menu, Borders ... * Default: rgb(35,99,166) ***/ +@define-color text-hl-color rgb(255,255,255); /*** Active text color * Default: rgb(210,210,210) ***/ + +@define-color bg-highlighted-text-color rgb(43,119,196); /*** Highlighted text color background* Default: rgb(35,99,166) ***/ +@define-color highlighted-text-color rgb(255,255,255); /*** Highlighted text color * Default: rgb(210,210,210) ***/ + +@define-color bg-image rgb(95,95,95); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ + +@define-color accent-color2 rgb(43,119,196); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(35,99,166) ***/ +@define-color accent-color4 rgb(135,135,135); /*** Slider knob * Default: rgb(115,115,115) ***/ + +@define-color accent-color3 rgb(55,55,55); /*** Selected thumbnail background color * Default: rgb(35,99,166) ***/ +@define-color text-hl-color3 rgb(210,210,210); /*** Selected thumbnail text color * Default: rgb(210,210,210) ***/ + +/*** Change me end *****************************************************************************/ + +@define-color bg-light-grey rgb(119,119,119); +@define-color bg-grey rgb(95,95,95); +@define-color bg-dark-grey rgb(55,55,55); + +@define-color bg-button-hover rgba(0,0,0,.25); +@define-color bg-button-active rgba(0,0,0,.60); + +@define-color winHeaderbar rgb(75,75,75); +@define-color winTitle rgb(210,210,210); + +@define-color bg-tooltip rgb(210,210,210); +@define-color border-tooltip rgb(36,36,36); +@define-color text-tooltip rgb(36,36,36); +/***********************************************/ +@define-color text-color rgb(210,210,210); +@define-color text-tbEntry rgb(230,230,230); +@define-color border-color rgba(255,255,255,.35); +@define-color bg-list-hover rgb(75,75,75); +@define-color bg-scale-entry rgba(0,0,0,.14); +@define-color bg-button-border rgba(0,0,0,.45); +@define-color bg-entry-border rgba(0,0,0,.40); +@define-color view-grid-border rgba(255,255,255,0.25); +@define-color headline-big rgb(210,210,210); +@define-color headline-hl rgb(255,255,255); +@define-color headline-frame rgb(245,245,245); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(160,160,160); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.3); +/***********************************************************************************************/ diff --git a/rtdata/themes/TooWaGrey - Dark-GTK3-20_.css b/rtdata/themes/TooWaGrey - Dark-GTK3-20_.css new file mode 100644 index 000000000..0f61e0935 --- /dev/null +++ b/rtdata/themes/TooWaGrey - Dark-GTK3-20_.css @@ -0,0 +1,72 @@ +/* + This file is part of RawTherapee. + + Copyright (c) 2016-2017 TooWaBoo + Requires RT 5.0 (Gtk+ >= 3.20) + + RawTherapee is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + RawTherapee is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with RawTherapee. If not, see . +*/ + + +/*****************************************/ +/**/ @import "TooWaBlue-GTK3-20_.css"; /**/ +/*****************************************/ + +/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/ + +@define-color accent-color rgb(65,65,65); /*** Active color for Lists, Menu, Borders ... * Default: rgb(33,82,145) ***/ +@define-color text-hl-color rgb(200,200,200); /*** Active text color * Default: rgb(200,200,200) ***/ + +@define-color bg-highlighted-text-color rgb(33,82,150); /*** Highlighted text color background* Default: rgb(33,82,145) ***/ +@define-color highlighted-text-color rgb(200,200,200); /*** Highlighted text color * Default: rgb(200,200,200) ***/ + +@define-color bg-image rgb(58,58,58); /*** Image area & File Browser background * Default: rgb(58,58,58) ***/ + +@define-color accent-color2 rgb(33,82,150); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(33,82,145) ***/ +@define-color accent-color4 rgb(98,98,98); /*** Slider knob * Default: rgb(98,98,98) ***/ + +@define-color accent-color3 rgb(30,30,30); /*** Selected thumbnail background color * Default: rgb(33,82,145) ***/ +@define-color text-hl-color3 rgb(200,200,200); /*** Selected thumbnail text color * Default: rgb(200,200,200) ***/ + +/*** Change me end *****************************************************************************/ + +@define-color bg-light-grey rgb(75,75,75); +@define-color bg-grey rgb(58,58,58); +@define-color bg-dark-grey rgb(30,30,30); + +@define-color bg-button-hover rgba(0,0,0,.3); +@define-color bg-button-active rgba(0,0,0,.7); + +@define-color winHeaderbar rgb(50,50,50); +@define-color winTitle rgb(190,190,190); + +@define-color bg-tooltip rgb(170,170,170); +@define-color border-tooltip rgb(36,36,36); +@define-color text-tooltip rgb(36,36,36); +/***********************************************/ +@define-color text-color rgb(176,176,176); +@define-color text-tbEntry rgb(192,192,192); +@define-color border-color rgba(255,255,255,.30); +@define-color bg-list-hover rgb(50,50,50); +@define-color bg-scale-entry rgba(0,0,0,.14); +@define-color bg-button-border rgba(0,0,0,.60); +@define-color bg-entry-border rgba(0,0,0,.40); +@define-color view-grid-border rgba(255,255,255,0.15); +@define-color headline-big rgb(187,187,187); +@define-color headline-hl rgb(215,215,215); +@define-color headline-frame rgb(210,210,210); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(128,128,128); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.35); +/***********************************************************************************************/ diff --git a/rtdata/themes/TooWaGrey-GTK3-20_.css b/rtdata/themes/TooWaGrey-GTK3-20_.css new file mode 100644 index 000000000..f681ef374 --- /dev/null +++ b/rtdata/themes/TooWaGrey-GTK3-20_.css @@ -0,0 +1,72 @@ +/* + This file is part of RawTherapee. + + Copyright (c) 2016-2017 TooWaBoo + Version 2.66 + + RawTherapee is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + RawTherapee is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with RawTherapee. If not, see . +*/ + + +/*****************************************/ +/**/ @import "TooWaBlue-GTK3-20_.css"; /**/ +/*****************************************/ + +/*** Change me *** rgb(red,green,blue) *** allowed values from 0 to 255 for each color ***/ + +@define-color accent-color rgb(88,88,88); /*** Active color for Lists, Menu, Borders ... * Default: rgb(35,99,166) ***/ +@define-color text-hl-color rgb(210,210,210); /*** Active text color * Default: rgb(210,210,210) ***/ + +@define-color bg-highlighted-text-color rgb(35,99,166); /*** Highlighted text color background* Default: rgb(35,99,166) ***/ +@define-color highlighted-text-color rgb(210,210,210); /*** Highlighted text color * Default: rgb(210,210,210) ***/ + +@define-color bg-image rgb(75,75,75); /*** Image area & File Browser background * Default: rgb(70,70,70) ***/ + +@define-color accent-color2 rgb(35,99,166); /*** Scale, Progressbar, Scrollbar, Tabs * Default: rgb(35,99,166) ***/ +@define-color accent-color4 rgb(115,115,115); /*** Slider knob * Default: rgb(115,115,115) ***/ + +@define-color accent-color3 rgb(40,40,40); /*** Selected thumbnail background color * Default: rgb(35,99,166) ***/ +@define-color text-hl-color3 rgb(210,210,210); /*** Selected thumbnail text color * Default: rgb(210,210,210) ***/ + +/*** Change me end *****************************************************************************/ + +@define-color bg-light-grey rgb(95,95,95); +@define-color bg-grey rgb(75,75,75); +@define-color bg-dark-grey rgb(40,40,40); + +@define-color bg-button-hover rgba(0,0,0,.25); +@define-color bg-button-active rgba(0,0,0,.60); + +@define-color winHeaderbar rgb(55,55,55); +@define-color winTitle rgb(190,190,190); + +@define-color bg-tooltip rgb(185,185,185); +@define-color border-tooltip rgb(40,40,40); +@define-color text-tooltip rgb(40,40,40); +/***********************************************/ +@define-color text-color rgb(186,186,186); +@define-color text-tbEntry rgb(192,192,192); +@define-color border-color rgba(255,255,255,.30); +@define-color bg-list-hover rgb(50,50,50); +@define-color bg-scale-entry rgba(0,0,0,.14); +@define-color bg-button-border rgba(0,0,0,.60); +@define-color bg-entry-border rgba(0,0,0,.40); +@define-color view-grid-border rgba(255,255,255,0.15); +@define-color headline-big rgb(195,195,195); +@define-color headline-hl rgb(230,230,230); +@define-color headline-frame rgb(215,215,215); +/*** New Color Variable v2.53 ************************************************************************/ +@define-color fg-disabled rgb(128,128,128); +@define-color bg-tb-spinbutton shade(@bg-grey, 1.33); +/***********************************************************************************************/ diff --git a/rtengine/CA_correct_RT.cc b/rtengine/CA_correct_RT.cc index a2f34584f..a27ee7998 100644 --- a/rtengine/CA_correct_RT.cc +++ b/rtengine/CA_correct_RT.cc @@ -1,11 +1,11 @@ //////////////////////////////////////////////////////////////// // -// Chromatic Aberration Auto-correction +// Chromatic Aberration correction on raw bayer cfa data // -// copyright (c) 2008-2010 Emil Martinec +// copyright (c) 2008-2010 Emil Martinec +// copyright (c) for improvements (speedups, iterated correction and avoid colour shift) 2018 Ingo Weyrich // -// -// code dated: November 26, 2010 +// code dated: September 8, 2018 // // CA_correct_RT.cc is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -14,19 +14,20 @@ // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // //////////////////////////////////////////////////////////////// -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #include "rtengine.h" #include "rawimagesource.h" #include "rt_math.h" +#include "gauss.h" #include "median.h" +//#define BENCHMARK #include "StopWatch.h" namespace { @@ -49,22 +50,22 @@ bool LinEqSolve(int nDim, double* pfMatr, double* pfVect, double* pfSolution) int i, j, k; - for(k = 0; k < (nDim - 1); k++) { // base row of matrix + for (k = 0; k < (nDim - 1); k++) { // base row of matrix // search of line with max element - double fMaxElem = fabs( pfMatr[k * nDim + k] ); + double fMaxElem = fabs(pfMatr[k * nDim + k]); int m = k; for (i = k + 1; i < nDim; i++) { - if(fMaxElem < fabs(pfMatr[i * nDim + k]) ) { + if (fMaxElem < fabs(pfMatr[i * nDim + k])) { fMaxElem = pfMatr[i * nDim + k]; m = i; } } // permutation of base line (index k) and max element line(index m) - if(m != k) { - for(i = k; i < nDim; i++) { - fAcc = pfMatr[k * nDim + i]; + if (m != k) { + for (i = k; i < nDim; i++) { + fAcc = pfMatr[k * nDim + i]; pfMatr[k * nDim + i] = pfMatr[m * nDim + i]; pfMatr[m * nDim + i] = fAcc; } @@ -74,16 +75,16 @@ bool LinEqSolve(int nDim, double* pfMatr, double* pfVect, double* pfSolution) pfVect[m] = fAcc; } - if( pfMatr[k * nDim + k] == 0.) { + if (pfMatr[k * nDim + k] == 0.) { //linear system has no solution return false; // needs improvement !!! } // triangulation of matrix with coefficients - for(j = (k + 1); j < nDim; j++) { // current row of matrix + for (j = (k + 1); j < nDim; j++) { // current row of matrix fAcc = - pfMatr[j * nDim + k] / pfMatr[k * nDim + k]; - for(i = k; i < nDim; i++) { + for (i = k; i < nDim; i++) { pfMatr[j * nDim + i] = pfMatr[j * nDim + i] + fAcc * pfMatr[k * nDim + i]; } @@ -91,10 +92,10 @@ bool LinEqSolve(int nDim, double* pfMatr, double* pfVect, double* pfSolution) } } - for(k = (nDim - 1); k >= 0; k--) { + for (k = (nDim - 1); k >= 0; k--) { pfSolution[k] = pfVect[k]; - for(i = (k + 1); i < nDim; i++) { + for (i = (k + 1); i < nDim; i++) { pfSolution[k] -= (pfMatr[k * nDim + i] * pfSolution[i]); } @@ -104,32 +105,61 @@ bool LinEqSolve(int nDim, double* pfMatr, double* pfVect, double* pfSolution) return true; } //end of linear equation solver -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - } using namespace std; using namespace rtengine; -float* RawImageSource::CA_correct_RT(const bool autoCA, const double cared, const double cablue, const double caautostrength, array2D &rawData, double *fitParamsTransfer, bool fitParamsIn, bool fitParamsOut, float *buffer, bool freeBuffer) +float* RawImageSource::CA_correct_RT( + bool autoCA, + size_t autoIterations, + double cared, + double cablue, + bool avoidColourshift, + const array2D &rawData, + double* fitParamsTransfer, + bool fitParamsIn, + bool fitParamsOut, + float* buffer, + bool freeBuffer +) { + BENCHFUN // multithreaded and vectorized by Ingo Weyrich constexpr int ts = 128; constexpr int tsh = ts / 2; - //shifts to location of vertical and diagonal neighbors + //shifts to location of vertical and diagonal neighbours constexpr int v1 = ts, v2 = 2 * ts, v3 = 3 * ts, v4 = 4 * ts; //, p1=-ts+1, p2=-2*ts+2, p3=-3*ts+3, m1=ts+1, m2=2*ts+2, m3=3*ts+3; // Test for RGB cfa - for(int i = 0; i < 2; i++) - for(int j = 0; j < 2; j++) - if(FC(i, j) == 3) { - printf("CA correction supports only RGB Colour filter arrays\n"); + for (int i = 0; i < 2; i++) { + for (int j = 0; j < 2; j++) { + if (FC(i, j) == 3) { + std::cout << "CA correction supports only RGB Colour filter arrays" << std::endl; return buffer; } + } + } - volatile double progress = 0.0; + array2D* redFactor = nullptr; + array2D* blueFactor = nullptr; + array2D* oldraw = nullptr; + if (avoidColourshift) { + redFactor = new array2D((W+1)/2, (H+1)/2); + blueFactor = new array2D((W+1)/2, (H+1)/2); + oldraw = new array2D((W + 1) / 2, H); + // copy raw values before ca correction + #pragma omp parallel for + for (int i = 0; i < H; ++i) { + for (int j = FC(i, 0) & 1; j < W; j += 2) { + (*oldraw)[i][j / 2] = rawData[i][j]; + } + } + } - if(plistener) { + double progress = 0.0; + + if (plistener) { plistener->setProgress (progress); } @@ -147,1064 +177,1153 @@ float* RawImageSource::CA_correct_RT(const bool autoCA, const double cared, cons if (!buffer) { buffer = static_cast(malloc ((height * width + vblsz * hblsz * (2 * 2 + 1)) * sizeof(float))); } - float *Gtmp = buffer; - float *RawDataTmp = buffer + (height * width) / 2; + float* Gtmp = buffer; + float* RawDataTmp = buffer + (height * width) / 2; //block CA shift values and weight assigned to block - float *const blockwt = buffer + (height * width); + float* const blockwt = buffer + (height * width); memset(blockwt, 0, vblsz * hblsz * (2 * 2 + 1) * sizeof(float)); float (*blockshifts)[2][2] = (float (*)[2][2])(blockwt + vblsz * hblsz); - float blockave[2][2] = {{0, 0}, {0, 0}}, blocksqave[2][2] = {{0, 0}, {0, 0}}, blockdenom[2][2] = {{0, 0}, {0, 0}}, blockvar[2][2]; - // Because we can't break parallel processing, we need a switch do handle the errors bool processpasstwo = true; - double fitparams[2][2][16]; - const bool fitParamsSet = fitParamsTransfer && fitParamsIn; - if(autoCA && fitParamsSet) { + + const size_t iterations = + autoCA + ? std::max(autoIterations, 1) + : 1; + + const bool fitParamsSet = fitParamsTransfer && fitParamsIn && iterations < 2; + if (autoCA && fitParamsSet) { // use stored parameters int index = 0; - for(int c = 0; c < 2; ++c) { - for(int d = 0; d < 2; ++d) { - for(int e = 0; e < 16; ++e) { + for (int c = 0; c < 2; ++c) { + for (int d = 0; d < 2; ++d) { + for (int e = 0; e < 16; ++e) { fitparams[c][d][e] = fitParamsTransfer[index++]; } } } } - //order of 2d polynomial fit (polyord), and numpar=polyord^2 - int polyord = 4, numpar = 16; - constexpr float eps = 1e-5f, eps2 = 1e-10f; //tolerance to avoid dividing by zero + for (size_t it = 0; it < iterations && processpasstwo; ++it) { + float blockave[2][2] = {}; + float blocksqave[2][2] = {}; + float blockdenom[2][2] = {}; + float blockvar[2][2]; - #pragma omp parallel - { - int progresscounter = 0; + //order of 2d polynomial fit (polyord), and numpar=polyord^2 + int polyord = 4, numpar = 16; - //direction of the CA shift in a tile - int GRBdir[2][3]; + constexpr float eps = 1e-5f, eps2 = 1e-10f; //tolerance to avoid dividing by zero - int shifthfloor[3], shiftvfloor[3], shifthceil[3], shiftvceil[3]; + #pragma omp parallel + { + int progresscounter = 0; - //polynomial fit coefficients - //residual CA shift amount within a plaquette - float shifthfrac[3], shiftvfrac[3]; + //direction of the CA shift in a tile + int GRBdir[2][3]; - // assign working space - constexpr int buffersize = sizeof(float) * ts * ts + 8 * sizeof(float) * ts * tsh + 8 * 64 + 63; - constexpr int buffersizePassTwo = sizeof(float) * ts * ts + 4 * sizeof(float) * ts * tsh + 4 * 64 + 63; - char * const bufferThr = (char *) malloc((autoCA && !fitParamsSet) ? buffersize : buffersizePassTwo); + int shifthfloor[3], shiftvfloor[3], shifthceil[3], shiftvceil[3]; - char * const data = (char*)( ( uintptr_t(bufferThr) + uintptr_t(63)) / 64 * 64); + //polynomial fit coefficients + //residual CA shift amount within a plaquette + float shifthfrac[3], shiftvfrac[3]; - // shift the beginning of all arrays but the first by 64 bytes to avoid cache miss conflicts on CPUs which have <= 4-way associative L1-Cache + // assign working space + constexpr int buffersize = sizeof(float) * ts * ts + 8 * sizeof(float) * ts * tsh + 8 * 64 + 63; + constexpr int buffersizePassTwo = sizeof(float) * ts * ts + 4 * sizeof(float) * ts * tsh + 4 * 64 + 63; + char * const bufferThr = (char *) malloc((autoCA && !fitParamsSet) ? buffersize : buffersizePassTwo); - //rgb data in a tile - float* rgb[3]; - rgb[0] = (float (*)) data; - rgb[1] = (float (*)) (data + sizeof(float) * ts * tsh + 1 * 64); - rgb[2] = (float (*)) (data + sizeof(float) * (ts * ts + ts * tsh) + 2 * 64); + char * const data = (char*)((uintptr_t(bufferThr) + uintptr_t(63)) / 64 * 64); - if (autoCA && !fitParamsSet) { - //high pass filter for R/B in vertical direction - float *rbhpfh = (float (*)) (data + 2 * sizeof(float) * ts * ts + 3 * 64); - //high pass filter for R/B in horizontal direction - float *rbhpfv = (float (*)) (data + 2 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 4 * 64); - //low pass filter for R/B in horizontal direction - float *rblpfh = (float (*)) (data + 3 * sizeof(float) * ts * ts + 5 * 64); - //low pass filter for R/B in vertical direction - float *rblpfv = (float (*)) (data + 3 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 6 * 64); - //low pass filter for colour differences in horizontal direction - float *grblpfh = (float (*)) (data + 4 * sizeof(float) * ts * ts + 7 * 64); - //low pass filter for colour differences in vertical direction - float *grblpfv = (float (*)) (data + 4 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 8 * 64); - // Main algorithm: Tile loop calculating correction parameters per tile + // shift the beginning of all arrays but the first by 64 bytes to avoid cache miss conflicts on CPUs which have <= 4-way associative L1-Cache - //local quadratic fit to shift data within a tile - float coeff[2][3][2]; - //measured CA shift parameters for a tile - float CAshift[2][2]; + //rgb data in a tile + float* rgb[3]; + rgb[0] = (float*) data; + rgb[1] = (float*) (data + sizeof(float) * ts * tsh + 1 * 64); + rgb[2] = (float*) (data + sizeof(float) * (ts * ts + ts * tsh) + 2 * 64); - //per thread data for evaluation of block CA shift variance - float blockavethr[2][2] = {{0, 0}, {0, 0}}, blocksqavethr[2][2] = {{0, 0}, {0, 0}}, blockdenomthr[2][2] = {{0, 0}, {0, 0}}; + if (autoCA && !fitParamsSet) { + constexpr float caAutostrength = 8.f; + //high pass filter for R/B in vertical direction + float* rbhpfh = (float*) (data + 2 * sizeof(float) * ts * ts + 3 * 64); + //high pass filter for R/B in horizontal direction + float* rbhpfv = (float*) (data + 2 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 4 * 64); + //low pass filter for R/B in horizontal direction + float* rblpfh = (float*) (data + 3 * sizeof(float) * ts * ts + 5 * 64); + //low pass filter for R/B in vertical direction + float* rblpfv = (float*) (data + 3 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 6 * 64); + //low pass filter for colour differences in horizontal direction + float* grblpfh = (float*) (data + 4 * sizeof(float) * ts * ts + 7 * 64); + //low pass filter for colour differences in vertical direction + float* grblpfv = (float*) (data + 4 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 8 * 64); + // Main algorithm: Tile loop calculating correction parameters per tile - #pragma omp for collapse(2) schedule(dynamic) nowait - for (int top = -border ; top < height; top += ts - border2) - for (int left = -border; left < width - (W & 1); left += ts - border2) { - memset(bufferThr, 0, buffersize); - const int vblock = ((top + border) / (ts - border2)) + 1; - const int hblock = ((left + border) / (ts - border2)) + 1; - const int bottom = min(top + ts, height + border); - const int right = min(left + ts, width - (W & 1) + border); - const int rr1 = bottom - top; - const int cc1 = right - left; - const int rrmin = top < 0 ? border : 0; - const int rrmax = bottom > height ? height - top : rr1; - const int ccmin = left < 0 ? border : 0; - const int ccmax = (right > width - (W & 1)) ? width - (W & 1) - left : cc1; + //local quadratic fit to shift data within a tile + float coeff[2][3][2]; + //measured CA shift parameters for a tile + float CAshift[2][2]; - // rgb from input CFA data - // rgb values should be floating point numbers between 0 and 1 - // after white balance multipliers are applied + //per thread data for evaluation of block CA shift variance + float blockavethr[2][2] = {}; + float blocksqavethr[2][2] = {}; + float blockdenomthr[2][2] = {}; + + #pragma omp for collapse(2) schedule(dynamic) nowait + for (int top = -border ; top < height; top += ts - border2) { + for (int left = -border; left < width - (W & 1); left += ts - border2) { + memset(bufferThr, 0, buffersize); + const int vblock = (top + border) / (ts - border2) + 1; + const int hblock = (left + border) / (ts - border2) + 1; + const int bottom = min(top + ts, height + border); + const int right = min(left + ts, width - (W & 1) + border); + const int rr1 = bottom - top; + const int cc1 = right - left; + const int rrmin = top < 0 ? border : 0; + const int rrmax = bottom > height ? height - top : rr1; + const int ccmin = left < 0 ? border : 0; + const int ccmax = (right > width - (W & 1)) ? width - (W & 1) - left : cc1; + + // rgb from input CFA data + // rgb values should be floating point numbers between 0 and 1 + // after white balance multipliers are applied #ifdef __SSE2__ - vfloat c65535v = F2V(65535.f); + vfloat c65535v = F2V(65535.f); #endif - for (int rr = rrmin; rr < rrmax; rr++) { - int row = rr + top; - int cc = ccmin; - int col = cc + left; + for (int rr = rrmin; rr < rrmax; rr++) { + int row = rr + top; + int cc = ccmin; + int col = cc + left; #ifdef __SSE2__ - int c0 = FC(rr, cc); - if(c0 == 1) { - rgb[c0][rr * ts + cc] = rawData[row][col] / 65535.f; - cc++; - col++; - c0 = FC(rr, cc); - } - int indx1 = rr * ts + cc; - for (; cc < ccmax - 7; cc+=8, col+=8, indx1 += 8) { - vfloat val1 = LVFU(rawData[row][col]) / c65535v; - vfloat val2 = LVFU(rawData[row][col + 4]) / c65535v; - vfloat nonGreenv = _mm_shuffle_ps(val1,val2,_MM_SHUFFLE( 2,0,2,0 )); - STVFU(rgb[c0][indx1 >> 1], nonGreenv); - STVFU(rgb[1][indx1], val1); - STVFU(rgb[1][indx1 + 4], val2); - } -#endif - for (; cc < ccmax; cc++, col++) { - int c = FC(rr, cc); + int c0 = FC(rr, cc); + if (c0 == 1) { + rgb[c0][rr * ts + cc] = rawData[row][col] / 65535.f; + cc++; + col++; + c0 = FC(rr, cc); + } int indx1 = rr * ts + cc; - rgb[c][indx1 >> ((c & 1) ^ 1)] = rawData[row][col] / 65535.f; - } - } - - // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - //fill borders - if (rrmin > 0) { - for (int rr = 0; rr < border; rr++) - for (int cc = ccmin; cc < ccmax; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][((border2 - rr) * ts + cc) >> ((c & 1) ^ 1)]; - } - } - - if (rrmax < rr1) { - for (int rr = 0; rr < border; rr++) - for (int cc = ccmin; cc < ccmax; cc++) { - int c = FC(rr, cc); - rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = rawData[(height - rr - 2)][left + cc] / 65535.f; - } - } - - if (ccmin > 0) { - for (int rr = rrmin; rr < rrmax; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][(rr * ts + border2 - cc) >> ((c & 1) ^ 1)]; - } - } - - if (ccmax < cc1) { - for (int rr = rrmin; rr < rrmax; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = rawData[(top + rr)][(width - cc - 2)] / 65535.f; - } - } - - //also, fill the image corners - if (rrmin > 0 && ccmin > 0) { - for (int rr = 0; rr < border; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rawData[border2 - rr][border2 - cc] / 65535.f; - } - } - - if (rrmax < rr1 && ccmax < cc1) { - for (int rr = 0; rr < border; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][((rrmax + rr)*ts + ccmax + cc) >> ((c & 1) ^ 1)] = rawData[(height - rr - 2)][(width - cc - 2)] / 65535.f; - } - } - - if (rrmin > 0 && ccmax < cc1) { - for (int rr = 0; rr < border; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = rawData[(border2 - rr)][(width - cc - 2)] / 65535.f; - } - } - - if (rrmax < rr1 && ccmin > 0) { - for (int rr = 0; rr < border; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = rawData[(height - rr - 2)][(border2 - cc)] / 65535.f; - } - } - - //end of border fill - // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - //end of initialization - - -#ifdef __SSE2__ - vfloat onev = F2V(1.f); - vfloat epsv = F2V(eps); -#endif - for (int rr = 3; rr < rr1 - 3; rr++) { - int row = rr + top; - int cc = 3 + (FC(rr,3) & 1); - int indx = rr * ts + cc; - int c = FC(rr,cc); -#ifdef __SSE2__ - for (; cc < cc1 - 9; cc+=8, indx+=8) { - //compute directional weights using image gradients - vfloat rgb1mv1v = LC2VFU(rgb[1][indx - v1]); - vfloat rgb1pv1v = LC2VFU(rgb[1][indx + v1]); - vfloat rgbcv = LVFU(rgb[c][indx >> 1]); - vfloat temp1v = epsv + vabsf(rgb1mv1v - rgb1pv1v); - vfloat wtuv = onev / SQRV(temp1v + vabsf(rgbcv - LVFU(rgb[c][(indx - v2) >> 1])) + vabsf(rgb1mv1v - LC2VFU(rgb[1][indx - v3]))); - vfloat wtdv = onev / SQRV(temp1v + vabsf(rgbcv - LVFU(rgb[c][(indx + v2) >> 1])) + vabsf(rgb1pv1v - LC2VFU(rgb[1][indx + v3]))); - vfloat rgb1m1v = LC2VFU(rgb[1][indx - 1]); - vfloat rgb1p1v = LC2VFU(rgb[1][indx + 1]); - vfloat temp2v = epsv + vabsf(rgb1m1v - rgb1p1v); - vfloat wtlv = onev / SQRV(temp2v + vabsf(rgbcv - LVFU(rgb[c][(indx - 2) >> 1])) + vabsf(rgb1m1v - LC2VFU(rgb[1][indx - 3]))); - vfloat wtrv = onev / SQRV(temp2v + vabsf(rgbcv - LVFU(rgb[c][(indx + 2) >> 1])) + vabsf(rgb1p1v - LC2VFU(rgb[1][indx + 3]))); - - //store in rgb array the interpolated G value at R/B grid points using directional weighted average - STC2VFU(rgb[1][indx], (wtuv * rgb1mv1v + wtdv * rgb1pv1v + wtlv * rgb1m1v + wtrv * rgb1p1v) / (wtuv + wtdv + wtlv + wtrv)); - } - -#endif - for (; cc < cc1 - 3; cc+=2, indx+=2) { - //compute directional weights using image gradients - float wtu = 1.f / SQR(eps + fabsf(rgb[1][indx + v1] - rgb[1][indx - v1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx - v2) >> 1]) + fabsf(rgb[1][indx - v1] - rgb[1][indx - v3])); - float wtd = 1.f / SQR(eps + fabsf(rgb[1][indx - v1] - rgb[1][indx + v1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx + v2) >> 1]) + fabsf(rgb[1][indx + v1] - rgb[1][indx + v3])); - float wtl = 1.f / SQR(eps + fabsf(rgb[1][indx + 1] - rgb[1][indx - 1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx - 2) >> 1]) + fabsf(rgb[1][indx - 1] - rgb[1][indx - 3])); - float wtr = 1.f / SQR(eps + fabsf(rgb[1][indx - 1] - rgb[1][indx + 1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx + 2) >> 1]) + fabsf(rgb[1][indx + 1] - rgb[1][indx + 3])); - - //store in rgb array the interpolated G value at R/B grid points using directional weighted average - rgb[1][indx] = (wtu * rgb[1][indx - v1] + wtd * rgb[1][indx + v1] + wtl * rgb[1][indx - 1] + wtr * rgb[1][indx + 1]) / (wtu + wtd + wtl + wtr); - } - - if (row > -1 && row < height) { - int offset = (FC(row,max(left + 3, 0)) & 1); - int col = max(left + 3, 0) + offset; - int indx = rr * ts + 3 - (left < 0 ? (left+3) : 0) + offset; -#ifdef __SSE2__ - for(; col < min(cc1 + left - 3, width) - 7; col+=8, indx+=8) { - STVFU(Gtmp[(row * width + col) >> 1], LC2VFU(rgb[1][indx])); + for (; cc < ccmax - 7; cc+=8, col+=8, indx1 += 8) { + vfloat val1 = LVFU(rawData[row][col]) / c65535v; + vfloat val2 = LVFU(rawData[row][col + 4]) / c65535v; + vfloat nonGreenv = _mm_shuffle_ps(val1,val2,_MM_SHUFFLE(2,0,2,0)); + STVFU(rgb[c0][indx1 >> 1], nonGreenv); + STVFU(rgb[1][indx1], val1); + STVFU(rgb[1][indx1 + 4], val2); } #endif - for(; col < min(cc1 + left - 3, width); col+=2, indx+=2) { - Gtmp[(row * width + col) >> 1] = rgb[1][indx]; + for (; cc < ccmax; cc++, col++) { + int c = FC(rr, cc); + int indx1 = rr * ts + cc; + rgb[c][indx1 >> ((c & 1) ^ 1)] = rawData[row][col] / 65535.f; } } - } - //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -#ifdef __SSE2__ - vfloat zd25v = F2V(0.25f); -#endif - for (int rr = 4; rr < rr1 - 4; rr++) { - int cc = 4 + (FC(rr, 2) & 1); - int indx = rr * ts + cc; - int c = FC(rr, cc); -#ifdef __SSE2__ - for (; cc < cc1 - 10; cc += 8, indx += 8) { - vfloat rgb1v = LC2VFU(rgb[1][indx]); - vfloat rgbcv = LVFU(rgb[c][indx >> 1]); - vfloat rgb1mv4 = LC2VFU(rgb[1][indx - v4]); - vfloat rgb1pv4 = LC2VFU(rgb[1][indx + v4]); - vfloat temp1v = vabsf(vabsf((rgb1v - rgbcv) - (rgb1pv4 - LVFU(rgb[c][(indx + v4) >> 1]))) + - vabsf(rgb1mv4 - LVFU(rgb[c][(indx - v4) >> 1]) - rgb1v + rgbcv) - - vabsf(rgb1mv4 - LVFU(rgb[c][(indx - v4) >> 1]) - rgb1pv4 + LVFU(rgb[c][(indx + v4) >> 1]))); - STVFU(rbhpfv[indx >> 1], temp1v); - vfloat rgb1m4 = LC2VFU(rgb[1][indx - 4]); - vfloat rgb1p4 = LC2VFU(rgb[1][indx + 4]); - vfloat temp2v = vabsf(vabsf((rgb1v - rgbcv) - (rgb1p4 - LVFU(rgb[c][(indx + 4) >> 1]))) + - vabsf(rgb1m4 - LVFU(rgb[c][(indx - 4) >> 1]) - rgb1v + rgbcv) - - vabsf(rgb1m4 - LVFU(rgb[c][(indx - 4) >> 1]) - rgb1p4 + LVFU(rgb[c][(indx + 4) >> 1]))); - STVFU(rbhpfh[indx >> 1], temp2v); - - //low and high pass 1D filters of G in vertical/horizontal directions - rgb1v = vmul2f(rgb1v); - vfloat glpfvv = (rgb1v + LC2VFU(rgb[1][indx + v2]) + LC2VFU(rgb[1][indx - v2])); - vfloat glpfhv = (rgb1v + LC2VFU(rgb[1][indx + 2]) + LC2VFU(rgb[1][indx - 2])); - rgbcv = vmul2f(rgbcv); - STVFU(rblpfv[indx >> 1], zd25v * vabsf(glpfvv - (rgbcv + LVFU(rgb[c][(indx + v2) >> 1]) + LVFU(rgb[c][(indx - v2) >> 1])))); - STVFU(rblpfh[indx >> 1], zd25v * vabsf(glpfhv - (rgbcv + LVFU(rgb[c][(indx + 2) >> 1]) + LVFU(rgb[c][(indx - 2) >> 1])))); - STVFU(grblpfv[indx >> 1], zd25v * (glpfvv + (rgbcv + LVFU(rgb[c][(indx + v2) >> 1]) + LVFU(rgb[c][(indx - v2) >> 1])))); - STVFU(grblpfh[indx >> 1], zd25v * (glpfhv + (rgbcv + LVFU(rgb[c][(indx + 2) >> 1]) + LVFU(rgb[c][(indx - 2) >> 1])))); - } - -#endif - for (; cc < cc1 - 4; cc += 2, indx += 2) { - rbhpfv[indx >> 1] = fabsf(fabsf((rgb[1][indx] - rgb[c][indx >> 1]) - (rgb[1][indx + v4] - rgb[c][(indx + v4) >> 1])) + - fabsf((rgb[1][indx - v4] - rgb[c][(indx - v4) >> 1]) - (rgb[1][indx] - rgb[c][indx >> 1])) - - fabsf((rgb[1][indx - v4] - rgb[c][(indx - v4) >> 1]) - (rgb[1][indx + v4] - rgb[c][(indx + v4) >> 1]))); - rbhpfh[indx >> 1] = fabsf(fabsf((rgb[1][indx] - rgb[c][indx >> 1]) - (rgb[1][indx + 4] - rgb[c][(indx + 4) >> 1])) + - fabsf((rgb[1][indx - 4] - rgb[c][(indx - 4) >> 1]) - (rgb[1][indx] - rgb[c][indx >> 1])) - - fabsf((rgb[1][indx - 4] - rgb[c][(indx - 4) >> 1]) - (rgb[1][indx + 4] - rgb[c][(indx + 4) >> 1]))); - - //low and high pass 1D filters of G in vertical/horizontal directions - float glpfv = (2.f * rgb[1][indx] + rgb[1][indx + v2] + rgb[1][indx - v2]); - float glpfh = (2.f * rgb[1][indx] + rgb[1][indx + 2] + rgb[1][indx - 2]); - rblpfv[indx >> 1] = 0.25f * fabsf(glpfv - (2.f * rgb[c][indx >> 1] + rgb[c][(indx + v2) >> 1] + rgb[c][(indx - v2) >> 1])); - rblpfh[indx >> 1] = 0.25f * fabsf(glpfh - (2.f * rgb[c][indx >> 1] + rgb[c][(indx + 2) >> 1] + rgb[c][(indx - 2) >> 1])); - grblpfv[indx >> 1] = 0.25f * (glpfv + (2.f * rgb[c][indx >> 1] + rgb[c][(indx + v2) >> 1] + rgb[c][(indx - v2) >> 1])); - grblpfh[indx >> 1] = 0.25f * (glpfh + (2.f * rgb[c][indx >> 1] + rgb[c][(indx + 2) >> 1] + rgb[c][(indx - 2) >> 1])); - } - } - - for (int dir = 0; dir < 2; dir++) { - for (int k = 0; k < 3; k++) { - for (int c = 0; c < 2; c++) { - coeff[dir][k][c] = 0; - } - } - } - -#ifdef __SSE2__ - vfloat zd3v = F2V(0.3f); - vfloat zd1v = F2V(0.1f); - vfloat zd5v = F2V(0.5f); -#endif - - // along line segments, find the point along each segment that minimizes the colour variance - // averaged over the tile; evaluate for up/down and left/right away from R/B grid point - for (int rr = 8; rr < rr1 - 8; rr++) { - int cc = 8 + (FC(rr, 2) & 1); - int indx = rr * ts + cc; - int c = FC(rr, cc); -#ifdef __SSE2__ - vfloat coeff00v = ZEROV; - vfloat coeff01v = ZEROV; - vfloat coeff02v = ZEROV; - vfloat coeff10v = ZEROV; - vfloat coeff11v = ZEROV; - vfloat coeff12v = ZEROV; - for (; cc < cc1 - 14; cc += 8, indx += 8) { - - //in linear interpolation, colour differences are a quadratic function of interpolation position; - //solve for the interpolation position that minimizes colour difference variance over the tile - - //vertical - vfloat temp1 = zd3v * (LC2VFU(rgb[1][indx + ts + 1]) - LC2VFU(rgb[1][indx - ts - 1])); - vfloat temp2 = zd3v * (LC2VFU(rgb[1][indx - ts + 1]) - LC2VFU(rgb[1][indx + ts - 1])); - vfloat gdiffvv = (LC2VFU(rgb[1][indx + ts]) - LC2VFU(rgb[1][indx - ts])) + (temp1 - temp2); - vfloat deltgrbv = LVFU(rgb[c][indx >> 1]) - LC2VFU(rgb[1][indx]); - - vfloat gradwtvv = (LVFU(rbhpfv[indx >> 1]) + zd5v * (LVFU(rbhpfv[(indx >> 1) + 1]) + LVFU(rbhpfv[(indx >> 1) - 1]))) * (LVFU(grblpfv[(indx >> 1) - v1]) + LVFU(grblpfv[(indx >> 1) + v1])) / (epsv + zd1v * (LVFU(grblpfv[(indx >> 1) - v1]) + LVFU(grblpfv[(indx >> 1) + v1])) + LVFU(rblpfv[(indx >> 1) - v1]) + LVFU(rblpfv[(indx >> 1) + v1])); - - coeff00v += gradwtvv * deltgrbv * deltgrbv; - coeff01v += gradwtvv * gdiffvv * deltgrbv; - coeff02v += gradwtvv * gdiffvv * gdiffvv; - - //horizontal - vfloat gdiffhv = (LC2VFU(rgb[1][indx + 1]) - LC2VFU(rgb[1][indx - 1])) + (temp1 + temp2); - - vfloat gradwthv = (LVFU(rbhpfh[indx >> 1]) + zd5v * (LVFU(rbhpfh[(indx >> 1) + v1]) + LVFU(rbhpfh[(indx >> 1) - v1]))) * (LVFU(grblpfh[(indx >> 1) - 1]) + LVFU(grblpfh[(indx >> 1) + 1])) / (epsv + zd1v * (LVFU(grblpfh[(indx >> 1) - 1]) + LVFU(grblpfh[(indx >> 1) + 1])) + LVFU(rblpfh[(indx >> 1) - 1]) + LVFU(rblpfh[(indx >> 1) + 1])); - - coeff10v += gradwthv * deltgrbv * deltgrbv; - coeff11v += gradwthv * gdiffhv * deltgrbv; - coeff12v += gradwthv * gdiffhv * gdiffhv; - } - - coeff[0][0][c>>1] += vhadd(coeff00v); - coeff[0][1][c>>1] += vhadd(coeff01v); - coeff[0][2][c>>1] += vhadd(coeff02v); - coeff[1][0][c>>1] += vhadd(coeff10v); - coeff[1][1][c>>1] += vhadd(coeff11v); - coeff[1][2][c>>1] += vhadd(coeff12v); - -#endif - for (; cc < cc1 - 8; cc += 2, indx += 2) { - - //in linear interpolation, colour differences are a quadratic function of interpolation position; - //solve for the interpolation position that minimizes colour difference variance over the tile - - //vertical - float gdiff = (rgb[1][indx + ts] - rgb[1][indx - ts]) + 0.3f * (rgb[1][indx + ts + 1] - rgb[1][indx - ts + 1] + rgb[1][indx + ts - 1] - rgb[1][indx - ts - 1]); - float deltgrb = (rgb[c][indx >> 1] - rgb[1][indx]); - - float gradwt = (rbhpfv[indx >> 1] + 0.5f * (rbhpfv[(indx >> 1) + 1] + rbhpfv[(indx >> 1) - 1]) ) * (grblpfv[(indx >> 1) - v1] + grblpfv[(indx >> 1) + v1]) / (eps + 0.1f * (grblpfv[(indx >> 1) - v1] + grblpfv[(indx >> 1) + v1]) + rblpfv[(indx >> 1) - v1] + rblpfv[(indx >> 1) + v1]); - - coeff[0][0][c>>1] += gradwt * deltgrb * deltgrb; - coeff[0][1][c>>1] += gradwt * gdiff * deltgrb; - coeff[0][2][c>>1] += gradwt * gdiff * gdiff; - - //horizontal - gdiff = (rgb[1][indx + 1] - rgb[1][indx - 1]) + 0.3f * (rgb[1][indx + 1 + ts] - rgb[1][indx - 1 + ts] + rgb[1][indx + 1 - ts] - rgb[1][indx - 1 - ts]); - - gradwt = (rbhpfh[indx >> 1] + 0.5f * (rbhpfh[(indx >> 1) + v1] + rbhpfh[(indx >> 1) - v1]) ) * (grblpfh[(indx >> 1) - 1] + grblpfh[(indx >> 1) + 1]) / (eps + 0.1f * (grblpfh[(indx >> 1) - 1] + grblpfh[(indx >> 1) + 1]) + rblpfh[(indx >> 1) - 1] + rblpfh[(indx >> 1) + 1]); - - coeff[1][0][c>>1] += gradwt * deltgrb * deltgrb; - coeff[1][1][c>>1] += gradwt * gdiff * deltgrb; - coeff[1][2][c>>1] += gradwt * gdiff * gdiff; - - // In Mathematica, - // f[x_]=Expand[Total[Flatten[ - // ((1-x) RotateLeft[Gint,shift1]+x RotateLeft[Gint,shift2]-cfapad)^2[[dv;;-1;;2,dh;;-1;;2]]]]]; - // extremum = -.5Coefficient[f[x],x]/Coefficient[f[x],x^2] - } - } - - for (int dir = 0; dir < 2; dir++) { - for (int k = 0; k < 3; k++) { - for (int c = 0; c < 2; c++) { - coeff[dir][k][c] *= 0.25f; - if(k == 1) { - coeff[dir][k][c] *= 0.3125f; - } else if(k == 2) { - coeff[dir][k][c] *= SQR(0.3125f); + //fill borders + if (rrmin > 0) { + for (int rr = 0; rr < border; rr++) { + for (int cc = ccmin; cc < ccmax; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][((border2 - rr) * ts + cc) >> ((c & 1) ^ 1)]; } } } - } - for (int c = 0; c < 2; c++) { - for (int dir = 0; dir < 2; dir++) { // vert/hor - - // CAshift[dir][c] are the locations - // that minimize colour difference variances; - // This is the approximate _optical_ location of the R/B pixels - if (coeff[dir][2][c] > eps2) { - CAshift[dir][c] = coeff[dir][1][c] / coeff[dir][2][c]; - blockwt[vblock * hblsz + hblock] = coeff[dir][2][c] / (eps + coeff[dir][0][c]) ; - } else { - CAshift[dir][c] = 17.0; - blockwt[vblock * hblsz + hblock] = 0; - } - - //data structure = CAshift[vert/hor][colour] - //dir : 0=vert, 1=hor - - //offset gives NW corner of square containing the min; dir : 0=vert, 1=hor - if (fabsf(CAshift[dir][c]) < 2.0f) { - blockavethr[dir][c] += CAshift[dir][c]; - blocksqavethr[dir][c] += SQR(CAshift[dir][c]); - blockdenomthr[dir][c] += 1; - } - //evaluate the shifts to the location that minimizes CA within the tile - blockshifts[vblock * hblsz + hblock][c][dir] = CAshift[dir][c]; //vert/hor CA shift for R/B - - }//vert/hor - }//colour - - if(plistener) { - progresscounter++; - - if(progresscounter % 8 == 0) - #pragma omp critical (cadetectpass1) - { - progress += (double)(8.0 * (ts - border2) * (ts - border2)) / (2 * height * width); - - if (progress > 1.0) { - progress = 1.0; - } - - plistener->setProgress(progress); - } - } - - } - - //end of diagnostic pass - #pragma omp critical (cadetectpass2) - { - for (int dir = 0; dir < 2; dir++) - for (int c = 0; c < 2; c++) { - blockdenom[dir][c] += blockdenomthr[dir][c]; - blocksqave[dir][c] += blocksqavethr[dir][c]; - blockave[dir][c] += blockavethr[dir][c]; - } - } - #pragma omp barrier - - #pragma omp single - { - for (int dir = 0; dir < 2; dir++) - for (int c = 0; c < 2; c++) { - if (blockdenom[dir][c]) { - blockvar[dir][c] = blocksqave[dir][c] / blockdenom[dir][c] - SQR(blockave[dir][c] / blockdenom[dir][c]); - } else { - processpasstwo = false; - printf ("blockdenom vanishes \n"); - break; - } - } - - // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - //now prepare for CA correction pass - //first, fill border blocks of blockshift array - if(processpasstwo) { - for (int vblock = 1; vblock < vblsz - 1; vblock++) { //left and right sides - for (int c = 0; c < 2; c++) { - for (int i = 0; i < 2; i++) { - blockshifts[vblock * hblsz][c][i] = blockshifts[(vblock) * hblsz + 2][c][i]; - blockshifts[vblock * hblsz + hblsz - 1][c][i] = blockshifts[(vblock) * hblsz + hblsz - 3][c][i]; - } - } - } - - for (int hblock = 0; hblock < hblsz; hblock++) { //top and bottom sides - for (int c = 0; c < 2; c++) { - for (int i = 0; i < 2; i++) { - blockshifts[hblock][c][i] = blockshifts[2 * hblsz + hblock][c][i]; - blockshifts[(vblsz - 1)*hblsz + hblock][c][i] = blockshifts[(vblsz - 3) * hblsz + hblock][c][i]; - } - } - } - - //end of filling border pixels of blockshift array - - //initialize fit arrays - double polymat[2][2][256], shiftmat[2][2][16]; - - for (int i = 0; i < 256; i++) { - polymat[0][0][i] = polymat[0][1][i] = polymat[1][0][i] = polymat[1][1][i] = 0; - } - - for (int i = 0; i < 16; i++) { - shiftmat[0][0][i] = shiftmat[0][1][i] = shiftmat[1][0][i] = shiftmat[1][1][i] = 0; - } - - int numblox[2] = {0, 0}; - - for (int vblock = 1; vblock < vblsz - 1; vblock++) - for (int hblock = 1; hblock < hblsz - 1; hblock++) { - // block 3x3 median of blockshifts for robustness - for (int c = 0; c < 2; c ++) { - float bstemp[2]; - for (int dir = 0; dir < 2; dir++) { - //temporary storage for median filter - const std::array p = { - blockshifts[(vblock - 1) * hblsz + hblock - 1][c][dir], - blockshifts[(vblock - 1) * hblsz + hblock][c][dir], - blockshifts[(vblock - 1) * hblsz + hblock + 1][c][dir], - blockshifts[(vblock) * hblsz + hblock - 1][c][dir], - blockshifts[(vblock) * hblsz + hblock][c][dir], - blockshifts[(vblock) * hblsz + hblock + 1][c][dir], - blockshifts[(vblock + 1) * hblsz + hblock - 1][c][dir], - blockshifts[(vblock + 1) * hblsz + hblock][c][dir], - blockshifts[(vblock + 1) * hblsz + hblock + 1][c][dir] - }; - bstemp[dir] = median(p); - } - - //now prepare coefficient matrix; use only data points within caautostrength/2 std devs of zero - if (SQR(bstemp[0]) > caautostrength * blockvar[0][c] || SQR(bstemp[1]) > caautostrength * blockvar[1][c]) { - continue; - } - - numblox[c]++; - - for (int dir = 0; dir < 2; dir++) { - double powVblockInit = 1.0; - for (int i = 0; i < polyord; i++) { - double powHblockInit = 1.0; - for (int j = 0; j < polyord; j++) { - double powVblock = powVblockInit; - for (int m = 0; m < polyord; m++) { - double powHblock = powHblockInit; - for (int n = 0; n < polyord; n++) { - polymat[c][dir][numpar * (polyord * i + j) + (polyord * m + n)] += powVblock * powHblock * blockwt[vblock * hblsz + hblock]; - powHblock *= hblock; - } - powVblock *= vblock; - } - shiftmat[c][dir][(polyord * i + j)] += powVblockInit * powHblockInit * bstemp[dir] * blockwt[vblock * hblsz + hblock]; - powHblockInit *= hblock; - } - powVblockInit *= vblock; - }//monomials - }//dir - }//c - }//blocks - - numblox[1] = min(numblox[0], numblox[1]); - - //if too few data points, restrict the order of the fit to linear - if (numblox[1] < 32) { - polyord = 2; - numpar = 4; - - if (numblox[1] < 10) { - - printf ("numblox = %d \n", numblox[1]); - processpasstwo = false; - } - } - - if(processpasstwo) - - //fit parameters to blockshifts - for (int c = 0; c < 2; c++) - for (int dir = 0; dir < 2; dir++) { - if (!LinEqSolve(numpar, polymat[c][dir], shiftmat[c][dir], fitparams[c][dir])) { - printf("CA correction pass failed -- can't solve linear equations for colour %d direction %d...\n", c, dir); - processpasstwo = false; + if (rrmax < rr1) { + for (int rr = 0; rr < border; rr++) { + for (int cc = ccmin; cc < ccmax; cc++) { + int c = FC(rr, cc); + rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = rawData[(height - rr - 2)][left + cc] / 65535.f; } } - } + } - //fitparams[polyord*i+j] gives the coefficients of (vblock^i hblock^j) in a polynomial fit for i,j<=4 - } - //end of initialization for CA correction pass - //only executed if autoCA is true - } + if (ccmin > 0) { + for (int rr = rrmin; rr < rrmax; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][(rr * ts + border2 - cc) >> ((c & 1) ^ 1)]; + } + } + } - // Main algorithm: Tile loop - if(processpasstwo) { - float *grbdiff = (float (*)) (data + 2 * sizeof(float) * ts * ts + 3 * 64); // there is no overlap in buffer usage => share - //green interpolated to optical sample points for R/B - float *gshift = (float (*)) (data + 2 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 4 * 64); // there is no overlap in buffer usage => share - #pragma omp for schedule(dynamic) collapse(2) nowait + if (ccmax < cc1) { + for (int rr = rrmin; rr < rrmax; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = rawData[(top + rr)][(width - cc - 2)] / 65535.f; + } + } + } - for (int top = -border; top < height; top += ts - border2) - for (int left = -border; left < width - (W & 1); left += ts - border2) { - memset(bufferThr, 0, buffersizePassTwo); - float lblockshifts[2][2]; - const int vblock = ((top + border) / (ts - border2)) + 1; - const int hblock = ((left + border) / (ts - border2)) + 1; - const int bottom = min(top + ts, height + border); - const int right = min(left + ts, width - (W & 1) + border); - const int rr1 = bottom - top; - const int cc1 = right - left; + //also, fill the image corners + if (rrmin > 0 && ccmin > 0) { + for (int rr = 0; rr < border; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rawData[border2 - rr][border2 - cc] / 65535.f; + } + } + } - const int rrmin = top < 0 ? border : 0; - const int rrmax = bottom > height ? height - top : rr1; - const int ccmin = left < 0 ? border : 0; - const int ccmax = (right > width - (W & 1)) ? width - (W & 1) - left : cc1; + if (rrmax < rr1 && ccmax < cc1) { + for (int rr = 0; rr < border; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][((rrmax + rr)*ts + ccmax + cc) >> ((c & 1) ^ 1)] = rawData[(height - rr - 2)][(width - cc - 2)] / 65535.f; + } + } + } - // rgb from input CFA data - // rgb values should be floating point number between 0 and 1 - // after white balance multipliers are applied + if (rrmin > 0 && ccmax < cc1) { + for (int rr = 0; rr < border; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = rawData[(border2 - rr)][(width - cc - 2)] / 65535.f; + } + } + } + + if (rrmax < rr1 && ccmin > 0) { + for (int rr = 0; rr < border; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = rawData[(height - rr - 2)][(border2 - cc)] / 65535.f; + } + } + } + + //end of border fill + //end of initialization #ifdef __SSE2__ - vfloat c65535v = F2V(65535.f); - vmask gmask = _mm_set_epi32(0, 0xffffffff, 0, 0xffffffff); + vfloat onev = F2V(1.f); + vfloat epsv = F2V(eps); #endif - for (int rr = rrmin; rr < rrmax; rr++) { - int row = rr + top; - int cc = ccmin; - int col = cc + left; - int indx = row * width + col; - int indx1 = rr * ts + cc; -#ifdef __SSE2__ - int c = FC(rr, cc); - if(c & 1) { - rgb[1][indx1] = rawData[row][col] / 65535.f; - indx++; - indx1++; - cc++; - col++; - c = FC(rr, cc); - } - for (; cc < ccmax - 7; cc += 8, col += 8, indx += 8, indx1 += 8) { - vfloat val1v = LVFU(rawData[row][col]) / c65535v; - vfloat val2v = LVFU(rawData[row][col + 4]) / c65535v; - STVFU(rgb[c][indx1 >> 1], _mm_shuffle_ps(val1v, val2v, _MM_SHUFFLE(2, 0, 2, 0))); - vfloat gtmpv = LVFU(Gtmp[indx >> 1]); - STVFU(rgb[1][indx1], vself(gmask, PERMUTEPS(gtmpv, _MM_SHUFFLE(1, 1, 0, 0)), val1v)); - STVFU(rgb[1][indx1 + 4], vself(gmask, PERMUTEPS(gtmpv, _MM_SHUFFLE(3, 3, 2, 2)), val2v)); - } -#endif - for (; cc < ccmax; cc++, col++, indx++, indx1++) { - int c = FC(rr, cc); - rgb[c][indx1 >> ((c & 1) ^ 1)] = rawData[row][col] / 65535.f; - - if ((c & 1) == 0) { - rgb[1][indx1] = Gtmp[indx >> 1]; - } - } - } - // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - //fill borders - if (rrmin > 0) { - for (int rr = 0; rr < border; rr++) - for (int cc = ccmin; cc < ccmax; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][((border2 - rr) * ts + cc) >> ((c & 1) ^ 1)]; - rgb[1][rr * ts + cc] = rgb[1][(border2 - rr) * ts + cc]; - } - } - - if (rrmax < rr1) { - for (int rr = 0; rr < std::min(border, rr1 - rrmax); rr++) - for (int cc = ccmin; cc < ccmax; cc++) { - int c = FC(rr, cc); - rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = (rawData[(height - rr - 2)][left + cc]) / 65535.f; - if ((c & 1) == 0) { - rgb[1][(rrmax + rr)*ts + cc] = Gtmp[((height - rr - 2) * width + left + cc) >> 1]; - } - } - } - - if (ccmin > 0) { - for (int rr = rrmin; rr < rrmax; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][(rr * ts + border2 - cc) >> ((c & 1) ^ 1)]; - rgb[1][rr * ts + cc] = rgb[1][rr * ts + border2 - cc]; - } - } - - if (ccmax < cc1) { - for (int rr = rrmin; rr < rrmax; rr++) - for (int cc = 0; cc < std::min(border, cc1 - ccmax); cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = (rawData[(top + rr)][(width - cc - 2)]) / 65535.f; - if ((c & 1) == 0) { - rgb[1][rr * ts + ccmax + cc] = Gtmp[((top + rr) * width + (width - cc - 2)) >> 1]; - } - } - } - - //also, fill the image corners - if (rrmin > 0 && ccmin > 0) { - for (int rr = 0; rr < border; rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = (rawData[border2 - rr][border2 - cc]) / 65535.f; - if ((c & 1) == 0) { - rgb[1][rr * ts + cc] = Gtmp[((border2 - rr) * width + border2 - cc) >> 1]; - } - } - } - - if (rrmax < rr1 && ccmax < cc1) { - for (int rr = 0; rr < std::min(border, rr1 - rrmax); rr++) - for (int cc = 0; cc < std::min(border, cc1 - ccmax); cc++) { - int c = FC(rr, cc); - rgb[c][((rrmax + rr)*ts + ccmax + cc) >> ((c & 1) ^ 1)] = (rawData[(height - rr - 2)][(width - cc - 2)]) / 65535.f; - if ((c & 1) == 0) { - rgb[1][(rrmax + rr)*ts + ccmax + cc] = Gtmp[((height - rr - 2) * width + (width - cc - 2)) >> 1]; - } - } - } - - if (rrmin > 0 && ccmax < cc1) { - for (int rr = 0; rr < border; rr++) - for (int cc = 0; cc < std::min(border, cc1 - ccmax); cc++) { - int c = FC(rr, cc); - rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = (rawData[(border2 - rr)][(width - cc - 2)]) / 65535.f; - if ((c & 1) == 0) { - rgb[1][rr * ts + ccmax + cc] = Gtmp[((border2 - rr) * width + (width - cc - 2)) >> 1]; - } - } - } - - if (rrmax < rr1 && ccmin > 0) { - for (int rr = 0; rr < std::min(border, rr1 - rrmax); rr++) - for (int cc = 0; cc < border; cc++) { - int c = FC(rr, cc); - rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = (rawData[(height - rr - 2)][(border2 - cc)]) / 65535.f; - if ((c & 1) == 0) { - rgb[1][(rrmax + rr)*ts + cc] = Gtmp[((height - rr - 2) * width + (border2 - cc)) >> 1]; - } - } - } - - //end of border fill - // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - if (!autoCA || fitParamsIn) { -#ifdef __SSE2__ - const vfloat onev = F2V(1.f); - const vfloat epsv = F2V(eps); -#endif - - //manual CA correction; use red/blue slider values to set CA shift parameters for (int rr = 3; rr < rr1 - 3; rr++) { - int cc = 3 + FC(rr, 1), c = FC(rr,cc), indx = rr * ts + cc; + int row = rr + top; + int cc = 3 + (FC(rr,3) & 1); + int indx = rr * ts + cc; + int c = FC(rr,cc); #ifdef __SSE2__ - for (; cc < cc1 - 10; cc += 8, indx += 8) { + for (; cc < cc1 - 9; cc+=8, indx+=8) { //compute directional weights using image gradients - vfloat val1v = epsv + vabsf(LC2VFU(rgb[1][(rr + 1) * ts + cc]) - LC2VFU(rgb[1][(rr - 1) * ts + cc])); - vfloat val2v = epsv + vabsf(LC2VFU(rgb[1][indx + 1]) - LC2VFU(rgb[1][indx - 1])); - vfloat wtuv = onev / SQRV(val1v + vabsf(LVFU(rgb[c][(rr * ts + cc) >> 1]) - LVFU(rgb[c][((rr - 2) * ts + cc) >> 1])) + vabsf(LC2VFU(rgb[1][(rr - 1) * ts + cc]) - LC2VFU(rgb[1][(rr - 3) * ts + cc]))); - vfloat wtdv = onev / SQRV(val1v + vabsf(LVFU(rgb[c][(rr * ts + cc) >> 1]) - LVFU(rgb[c][((rr + 2) * ts + cc) >> 1])) + vabsf(LC2VFU(rgb[1][(rr + 1) * ts + cc]) - LC2VFU(rgb[1][(rr + 3) * ts + cc]))); - vfloat wtlv = onev / SQRV(val2v + vabsf(LVFU(rgb[c][indx >> 1]) - LVFU(rgb[c][(indx - 2) >> 1])) + vabsf(LC2VFU(rgb[1][indx - 1]) - LC2VFU(rgb[1][indx - 3]))); - vfloat wtrv = onev / SQRV(val2v + vabsf(LVFU(rgb[c][indx >> 1]) - LVFU(rgb[c][(indx + 2) >> 1])) + vabsf(LC2VFU(rgb[1][indx + 1]) - LC2VFU(rgb[1][indx + 3]))); + vfloat rgb1mv1v = LC2VFU(rgb[1][indx - v1]); + vfloat rgb1pv1v = LC2VFU(rgb[1][indx + v1]); + vfloat rgbcv = LVFU(rgb[c][indx >> 1]); + vfloat temp1v = epsv + vabsf(rgb1mv1v - rgb1pv1v); + vfloat wtuv = onev / SQRV(temp1v + vabsf(rgbcv - LVFU(rgb[c][(indx - v2) >> 1])) + vabsf(rgb1mv1v - LC2VFU(rgb[1][indx - v3]))); + vfloat wtdv = onev / SQRV(temp1v + vabsf(rgbcv - LVFU(rgb[c][(indx + v2) >> 1])) + vabsf(rgb1pv1v - LC2VFU(rgb[1][indx + v3]))); + vfloat rgb1m1v = LC2VFU(rgb[1][indx - 1]); + vfloat rgb1p1v = LC2VFU(rgb[1][indx + 1]); + vfloat temp2v = epsv + vabsf(rgb1m1v - rgb1p1v); + vfloat wtlv = onev / SQRV(temp2v + vabsf(rgbcv - LVFU(rgb[c][(indx - 2) >> 1])) + vabsf(rgb1m1v - LC2VFU(rgb[1][indx - 3]))); + vfloat wtrv = onev / SQRV(temp2v + vabsf(rgbcv - LVFU(rgb[c][(indx + 2) >> 1])) + vabsf(rgb1p1v - LC2VFU(rgb[1][indx + 3]))); //store in rgb array the interpolated G value at R/B grid points using directional weighted average - STC2VFU(rgb[1][indx], (wtuv * LC2VFU(rgb[1][indx - v1]) + wtdv * LC2VFU(rgb[1][indx + v1]) + wtlv * LC2VFU(rgb[1][indx - 1]) + wtrv * LC2VFU(rgb[1][indx + 1])) / (wtuv + wtdv + wtlv + wtrv)); + STC2VFU(rgb[1][indx], (wtuv * rgb1mv1v + wtdv * rgb1pv1v + wtlv * rgb1m1v + wtrv * rgb1p1v) / (wtuv + wtdv + wtlv + wtrv)); } + #endif - for (; cc < cc1 - 3; cc += 2, indx += 2) { + for (; cc < cc1 - 3; cc+=2, indx+=2) { //compute directional weights using image gradients - float wtu = 1.f / SQR(eps + fabsf(rgb[1][(rr + 1) * ts + cc] - rgb[1][(rr - 1) * ts + cc]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][((rr - 2) * ts + cc) >> 1]) + fabsf(rgb[1][(rr - 1) * ts + cc] - rgb[1][(rr - 3) * ts + cc])); - float wtd = 1.f / SQR(eps + fabsf(rgb[1][(rr + 1) * ts + cc] - rgb[1][(rr - 1) * ts + cc]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][((rr + 2) * ts + cc) >> 1]) + fabsf(rgb[1][(rr + 1) * ts + cc] - rgb[1][(rr + 3) * ts + cc])); - float wtl = 1.f / SQR(eps + fabsf(rgb[1][rr * ts + cc + 1] - rgb[1][rr * ts + cc - 1]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][(rr * ts + cc - 2) >> 1]) + fabsf(rgb[1][rr * ts + cc - 1] - rgb[1][rr * ts + cc - 3])); - float wtr = 1.f / SQR(eps + fabsf(rgb[1][rr * ts + cc + 1] - rgb[1][rr * ts + cc - 1]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][(rr * ts + cc + 2) >> 1]) + fabsf(rgb[1][rr * ts + cc + 1] - rgb[1][rr * ts + cc + 3])); + float wtu = 1.f / SQR(eps + fabsf(rgb[1][indx + v1] - rgb[1][indx - v1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx - v2) >> 1]) + fabsf(rgb[1][indx - v1] - rgb[1][indx - v3])); + float wtd = 1.f / SQR(eps + fabsf(rgb[1][indx - v1] - rgb[1][indx + v1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx + v2) >> 1]) + fabsf(rgb[1][indx + v1] - rgb[1][indx + v3])); + float wtl = 1.f / SQR(eps + fabsf(rgb[1][indx + 1] - rgb[1][indx - 1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx - 2) >> 1]) + fabsf(rgb[1][indx - 1] - rgb[1][indx - 3])); + float wtr = 1.f / SQR(eps + fabsf(rgb[1][indx - 1] - rgb[1][indx + 1]) + fabsf(rgb[c][indx >> 1] - rgb[c][(indx + 2) >> 1]) + fabsf(rgb[1][indx + 1] - rgb[1][indx + 3])); //store in rgb array the interpolated G value at R/B grid points using directional weighted average rgb[1][indx] = (wtu * rgb[1][indx - v1] + wtd * rgb[1][indx + v1] + wtl * rgb[1][indx - 1] + wtr * rgb[1][indx + 1]) / (wtu + wtd + wtl + wtr); } - } - } - if (!autoCA) { - float hfrac = -((float)(hblock - 0.5) / (hblsz - 2) - 0.5); - float vfrac = -((float)(vblock - 0.5) / (vblsz - 2) - 0.5) * height / width; - lblockshifts[0][0] = 2 * vfrac * cared; - lblockshifts[0][1] = 2 * hfrac * cared; - lblockshifts[1][0] = 2 * vfrac * cablue; - lblockshifts[1][1] = 2 * hfrac * cablue; - } else { - //CA auto correction; use CA diagnostic pass to set shift parameters - lblockshifts[0][0] = lblockshifts[0][1] = 0; - lblockshifts[1][0] = lblockshifts[1][1] = 0; - double powVblock = 1.0; - for (int i = 0; i < polyord; i++) { - double powHblock = powVblock; - for (int j = 0; j < polyord; j++) { - lblockshifts[0][0] += powHblock * fitparams[0][0][polyord * i + j]; - lblockshifts[0][1] += powHblock * fitparams[0][1][polyord * i + j]; - lblockshifts[1][0] += powHblock * fitparams[1][0][polyord * i + j]; - lblockshifts[1][1] += powHblock * fitparams[1][1][polyord * i + j]; - powHblock *= hblock; - } - powVblock *= vblock; - } - constexpr float bslim = 3.99; //max allowed CA shift - lblockshifts[0][0] = LIM(lblockshifts[0][0], -bslim, bslim); - lblockshifts[0][1] = LIM(lblockshifts[0][1], -bslim, bslim); - lblockshifts[1][0] = LIM(lblockshifts[1][0], -bslim, bslim); - lblockshifts[1][1] = LIM(lblockshifts[1][1], -bslim, bslim); - }//end of setting CA shift parameters - - for (int c = 0; c < 3; c += 2) { - - //some parameters for the bilinear interpolation - shiftvfloor[c] = floor((float)lblockshifts[c>>1][0]); - shiftvceil[c] = ceil((float)lblockshifts[c>>1][0]); - shiftvfrac[c] = lblockshifts[c>>1][0] - shiftvfloor[c]; - - shifthfloor[c] = floor((float)lblockshifts[c>>1][1]); - shifthceil[c] = ceil((float)lblockshifts[c>>1][1]); - shifthfrac[c] = lblockshifts[c>>1][1] - shifthfloor[c]; - - GRBdir[0][c] = lblockshifts[c>>1][0] > 0 ? 2 : -2; - GRBdir[1][c] = lblockshifts[c>>1][1] > 0 ? 2 : -2; - - } - - - for (int rr = 4; rr < rr1 - 4; rr++) { - int cc = 4 + (FC(rr, 2) & 1); - int c = FC(rr, cc); - int indx = (rr * ts + cc) >> 1; - int indxfc = (rr + shiftvfloor[c]) * ts + cc + shifthceil[c]; - int indxff = (rr + shiftvfloor[c]) * ts + cc + shifthfloor[c]; - int indxcc = (rr + shiftvceil[c]) * ts + cc + shifthceil[c]; - int indxcf = (rr + shiftvceil[c]) * ts + cc + shifthfloor[c]; + if (row > -1 && row < height) { + int offset = (FC(row,max(left + 3, 0)) & 1); + int col = max(left + 3, 0) + offset; + int indx = rr * ts + 3 - (left < 0 ? (left+3) : 0) + offset; #ifdef __SSE2__ - vfloat shifthfracv = F2V(shifthfrac[c]); - vfloat shiftvfracv = F2V(shiftvfrac[c]); - for (; cc < cc1 - 10; cc += 8, indxfc += 8, indxff += 8, indxcc += 8, indxcf += 8, indx += 4) { - //perform CA correction using colour ratios or colour differences - vfloat Ginthfloorv = vintpf(shifthfracv, LC2VFU(rgb[1][indxfc]), LC2VFU(rgb[1][indxff])); - vfloat Ginthceilv = vintpf(shifthfracv, LC2VFU(rgb[1][indxcc]), LC2VFU(rgb[1][indxcf])); - //Gint is bilinear interpolation of G at CA shift point - vfloat Gintv = vintpf(shiftvfracv, Ginthceilv, Ginthfloorv); - - //determine R/B at grid points using colour differences at shift point plus interpolated G value at grid point - //but first we need to interpolate G-R/G-B to grid points... - STVFU(grbdiff[indx], Gintv - LVFU(rgb[c][indx])); - STVFU(gshift[indx], Gintv); - } - -#endif - for (; cc < cc1 - 4; cc += 2, indxfc += 2, indxff += 2, indxcc += 2, indxcf += 2, ++indx) { - //perform CA correction using colour ratios or colour differences - float Ginthfloor = intp(shifthfrac[c], rgb[1][indxfc], rgb[1][indxff]); - float Ginthceil = intp(shifthfrac[c], rgb[1][indxcc], rgb[1][indxcf]); - //Gint is bilinear interpolation of G at CA shift point - float Gint = intp(shiftvfrac[c], Ginthceil, Ginthfloor); - - //determine R/B at grid points using colour differences at shift point plus interpolated G value at grid point - //but first we need to interpolate G-R/G-B to grid points... - grbdiff[indx] = Gint - rgb[c][indx]; - gshift[indx] = Gint; - } - } - - shifthfrac[0] /= 2.f; - shifthfrac[2] /= 2.f; - shiftvfrac[0] /= 2.f; - shiftvfrac[2] /= 2.f; - -#ifdef __SSE2__ - vfloat zd25v = F2V(0.25f); - vfloat onev = F2V(1.f); - vfloat zd5v = F2V(0.5f); - vfloat epsv = F2V(eps); -#endif - for (int rr = 8; rr < rr1 - 8; rr++) { - int cc = 8 + (FC(rr, 2) & 1); - int c = FC(rr, cc); - int GRBdir0 = GRBdir[0][c]; - int GRBdir1 = GRBdir[1][c]; -#ifdef __SSE2__ - vfloat shifthfracc = F2V(shifthfrac[c]); - vfloat shiftvfracc = F2V(shiftvfrac[c]); - for (int indx = rr * ts + cc; cc < cc1 - 14; cc += 8, indx += 8) { - //interpolate colour difference from optical R/B locations to grid locations - vfloat grbdiffinthfloor = vintpf(shifthfracc, LVFU(grbdiff[(indx - GRBdir1) >> 1]), LVFU(grbdiff[indx >> 1])); - vfloat grbdiffinthceil = vintpf(shifthfracc, LVFU(grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1]), LVFU(grbdiff[((rr - GRBdir0) * ts + cc) >> 1])); - //grbdiffint is bilinear interpolation of G-R/G-B at grid point - vfloat grbdiffint = vintpf(shiftvfracc, grbdiffinthceil, grbdiffinthfloor); - - //now determine R/B at grid points using interpolated colour differences and interpolated G value at grid point - vfloat cinv = LVFU(rgb[c][indx >> 1]); - vfloat rinv = LC2VFU(rgb[1][indx]); - vfloat RBint = rinv - grbdiffint; - vmask cmask = vmaskf_ge(vabsf(RBint - cinv), zd25v * (RBint + cinv)); - if(_mm_movemask_ps((vfloat)cmask)) { - // if for any of the 4 pixels the condition is true, do the math for all 4 pixels and mask the unused out at the end - //gradient weights using difference from G at CA shift points and G at grid points - vfloat p0 = onev / (epsv + vabsf(rinv - LVFU(gshift[indx >> 1]))); - vfloat p1 = onev / (epsv + vabsf(rinv - LVFU(gshift[(indx - GRBdir1) >> 1]))); - vfloat p2 = onev / (epsv + vabsf(rinv - LVFU(gshift[((rr - GRBdir0) * ts + cc) >> 1]))); - vfloat p3 = onev / (epsv + vabsf(rinv - LVFU(gshift[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1]))); - - grbdiffint = vself(cmask, (p0 * LVFU(grbdiff[indx >> 1]) + p1 * LVFU(grbdiff[(indx - GRBdir1) >> 1]) + - p2 * LVFU(grbdiff[((rr - GRBdir0) * ts + cc) >> 1]) + p3 * LVFU(grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1])) / (p0 + p1 + p2 + p3), grbdiffint); - - } - vfloat grbdiffold = rinv - cinv; - RBint = rinv - grbdiffint; - RBint = vself(vmaskf_gt(vabsf(grbdiffold), vabsf(grbdiffint)), RBint, cinv); - RBint = vself(vmaskf_lt(grbdiffold * grbdiffint, ZEROV), rinv - zd5v * (grbdiffold + grbdiffint), RBint); - STVFU(rgb[c][indx >> 1], RBint); - } -#endif - for (int c = FC(rr, cc), indx = rr * ts + cc; cc < cc1 - 8; cc += 2, indx += 2) { - float grbdiffold = rgb[1][indx] - rgb[c][indx >> 1]; - - //interpolate colour difference from optical R/B locations to grid locations - float grbdiffinthfloor = intp(shifthfrac[c], grbdiff[(indx - GRBdir1) >> 1], grbdiff[indx >> 1]); - float grbdiffinthceil = intp(shifthfrac[c], grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1], grbdiff[((rr - GRBdir0) * ts + cc) >> 1]); - //grbdiffint is bilinear interpolation of G-R/G-B at grid point - float grbdiffint = intp(shiftvfrac[c], grbdiffinthceil, grbdiffinthfloor); - - //now determine R/B at grid points using interpolated colour differences and interpolated G value at grid point - float RBint = rgb[1][indx] - grbdiffint; - - if (fabsf(RBint - rgb[c][indx >> 1]) < 0.25f * (RBint + rgb[c][indx >> 1])) { - if (fabsf(grbdiffold) > fabsf(grbdiffint) ) { - rgb[c][indx >> 1] = RBint; + for (; col < min(cc1 + left - 3, width) - 7; col+=8, indx+=8) { + STVFU(Gtmp[(row * width + col) >> 1], LC2VFU(rgb[1][indx])); } +#endif + for (; col < min(cc1 + left - 3, width); col+=2, indx+=2) { + Gtmp[(row * width + col) >> 1] = rgb[1][indx]; + } + } + } + +#ifdef __SSE2__ + vfloat zd25v = F2V(0.25f); +#endif + for (int rr = 4; rr < rr1 - 4; rr++) { + int cc = 4 + (FC(rr, 2) & 1); + int indx = rr * ts + cc; + int c = FC(rr, cc); +#ifdef __SSE2__ + for (; cc < cc1 - 10; cc += 8, indx += 8) { + vfloat rgb1v = LC2VFU(rgb[1][indx]); + vfloat rgbcv = LVFU(rgb[c][indx >> 1]); + vfloat rgb1mv4 = LC2VFU(rgb[1][indx - v4]); + vfloat rgb1pv4 = LC2VFU(rgb[1][indx + v4]); + vfloat temp1v = vabsf(vabsf((rgb1v - rgbcv) - (rgb1pv4 - LVFU(rgb[c][(indx + v4) >> 1]))) + + vabsf(rgb1mv4 - LVFU(rgb[c][(indx - v4) >> 1]) - rgb1v + rgbcv) - + vabsf(rgb1mv4 - LVFU(rgb[c][(indx - v4) >> 1]) - rgb1pv4 + LVFU(rgb[c][(indx + v4) >> 1]))); + STVFU(rbhpfv[indx >> 1], temp1v); + vfloat rgb1m4 = LC2VFU(rgb[1][indx - 4]); + vfloat rgb1p4 = LC2VFU(rgb[1][indx + 4]); + vfloat temp2v = vabsf(vabsf((rgb1v - rgbcv) - (rgb1p4 - LVFU(rgb[c][(indx + 4) >> 1]))) + + vabsf(rgb1m4 - LVFU(rgb[c][(indx - 4) >> 1]) - rgb1v + rgbcv) - + vabsf(rgb1m4 - LVFU(rgb[c][(indx - 4) >> 1]) - rgb1p4 + LVFU(rgb[c][(indx + 4) >> 1]))); + STVFU(rbhpfh[indx >> 1], temp2v); + + //low and high pass 1D filters of G in vertical/horizontal directions + rgb1v = vmul2f(rgb1v); + vfloat glpfvv = (rgb1v + LC2VFU(rgb[1][indx + v2]) + LC2VFU(rgb[1][indx - v2])); + vfloat glpfhv = (rgb1v + LC2VFU(rgb[1][indx + 2]) + LC2VFU(rgb[1][indx - 2])); + rgbcv = vmul2f(rgbcv); + STVFU(rblpfv[indx >> 1], zd25v * vabsf(glpfvv - (rgbcv + LVFU(rgb[c][(indx + v2) >> 1]) + LVFU(rgb[c][(indx - v2) >> 1])))); + STVFU(rblpfh[indx >> 1], zd25v * vabsf(glpfhv - (rgbcv + LVFU(rgb[c][(indx + 2) >> 1]) + LVFU(rgb[c][(indx - 2) >> 1])))); + STVFU(grblpfv[indx >> 1], zd25v * (glpfvv + (rgbcv + LVFU(rgb[c][(indx + v2) >> 1]) + LVFU(rgb[c][(indx - v2) >> 1])))); + STVFU(grblpfh[indx >> 1], zd25v * (glpfhv + (rgbcv + LVFU(rgb[c][(indx + 2) >> 1]) + LVFU(rgb[c][(indx - 2) >> 1])))); + } +#endif + for (; cc < cc1 - 4; cc += 2, indx += 2) { + rbhpfv[indx >> 1] = fabsf(fabsf((rgb[1][indx] - rgb[c][indx >> 1]) - (rgb[1][indx + v4] - rgb[c][(indx + v4) >> 1])) + + fabsf((rgb[1][indx - v4] - rgb[c][(indx - v4) >> 1]) - (rgb[1][indx] - rgb[c][indx >> 1])) - + fabsf((rgb[1][indx - v4] - rgb[c][(indx - v4) >> 1]) - (rgb[1][indx + v4] - rgb[c][(indx + v4) >> 1]))); + rbhpfh[indx >> 1] = fabsf(fabsf((rgb[1][indx] - rgb[c][indx >> 1]) - (rgb[1][indx + 4] - rgb[c][(indx + 4) >> 1])) + + fabsf((rgb[1][indx - 4] - rgb[c][(indx - 4) >> 1]) - (rgb[1][indx] - rgb[c][indx >> 1])) - + fabsf((rgb[1][indx - 4] - rgb[c][(indx - 4) >> 1]) - (rgb[1][indx + 4] - rgb[c][(indx + 4) >> 1]))); + + //low and high pass 1D filters of G in vertical/horizontal directions + float glpfv = (2.f * rgb[1][indx] + rgb[1][indx + v2] + rgb[1][indx - v2]); + float glpfh = (2.f * rgb[1][indx] + rgb[1][indx + 2] + rgb[1][indx - 2]); + rblpfv[indx >> 1] = 0.25f * fabsf(glpfv - (2.f * rgb[c][indx >> 1] + rgb[c][(indx + v2) >> 1] + rgb[c][(indx - v2) >> 1])); + rblpfh[indx >> 1] = 0.25f * fabsf(glpfh - (2.f * rgb[c][indx >> 1] + rgb[c][(indx + 2) >> 1] + rgb[c][(indx - 2) >> 1])); + grblpfv[indx >> 1] = 0.25f * (glpfv + (2.f * rgb[c][indx >> 1] + rgb[c][(indx + v2) >> 1] + rgb[c][(indx - v2) >> 1])); + grblpfh[indx >> 1] = 0.25f * (glpfh + (2.f * rgb[c][indx >> 1] + rgb[c][(indx + 2) >> 1] + rgb[c][(indx - 2) >> 1])); + } + } + + for (int dir = 0; dir < 2; dir++) { + for (int k = 0; k < 3; k++) { + for (int c = 0; c < 2; c++) { + coeff[dir][k][c] = 0; + } + } + } + +#ifdef __SSE2__ + vfloat zd3v = F2V(0.3f); + vfloat zd1v = F2V(0.1f); + vfloat zd5v = F2V(0.5f); +#endif + + // along line segments, find the point along each segment that minimizes the colour variance + // averaged over the tile; evaluate for up/down and left/right away from R/B grid point + for (int rr = 8; rr < rr1 - 8; rr++) { + int cc = 8 + (FC(rr, 2) & 1); + int indx = rr * ts + cc; + int c = FC(rr, cc); +#ifdef __SSE2__ + vfloat coeff00v = ZEROV; + vfloat coeff01v = ZEROV; + vfloat coeff02v = ZEROV; + vfloat coeff10v = ZEROV; + vfloat coeff11v = ZEROV; + vfloat coeff12v = ZEROV; + for (; cc < cc1 - 14; cc += 8, indx += 8) { + //in linear interpolation, colour differences are a quadratic function of interpolation position; + //solve for the interpolation position that minimizes colour difference variance over the tile + + //vertical + vfloat temp1 = zd3v * (LC2VFU(rgb[1][indx + ts + 1]) - LC2VFU(rgb[1][indx - ts - 1])); + vfloat temp2 = zd3v * (LC2VFU(rgb[1][indx - ts + 1]) - LC2VFU(rgb[1][indx + ts - 1])); + vfloat gdiffvv = (LC2VFU(rgb[1][indx + ts]) - LC2VFU(rgb[1][indx - ts])) + (temp1 - temp2); + vfloat deltgrbv = LVFU(rgb[c][indx >> 1]) - LC2VFU(rgb[1][indx]); + + vfloat gradwtvv = (LVFU(rbhpfv[indx >> 1]) + zd5v * (LVFU(rbhpfv[(indx >> 1) + 1]) + LVFU(rbhpfv[(indx >> 1) - 1]))) * (LVFU(grblpfv[(indx >> 1) - v1]) + LVFU(grblpfv[(indx >> 1) + v1])) / (epsv + zd1v * (LVFU(grblpfv[(indx >> 1) - v1]) + LVFU(grblpfv[(indx >> 1) + v1])) + LVFU(rblpfv[(indx >> 1) - v1]) + LVFU(rblpfv[(indx >> 1) + v1])); + + coeff00v += gradwtvv * deltgrbv * deltgrbv; + coeff01v += gradwtvv * gdiffvv * deltgrbv; + coeff02v += gradwtvv * gdiffvv * gdiffvv; + + //horizontal + vfloat gdiffhv = (LC2VFU(rgb[1][indx + 1]) - LC2VFU(rgb[1][indx - 1])) + (temp1 + temp2); + + vfloat gradwthv = (LVFU(rbhpfh[indx >> 1]) + zd5v * (LVFU(rbhpfh[(indx >> 1) + v1]) + LVFU(rbhpfh[(indx >> 1) - v1]))) * (LVFU(grblpfh[(indx >> 1) - 1]) + LVFU(grblpfh[(indx >> 1) + 1])) / (epsv + zd1v * (LVFU(grblpfh[(indx >> 1) - 1]) + LVFU(grblpfh[(indx >> 1) + 1])) + LVFU(rblpfh[(indx >> 1) - 1]) + LVFU(rblpfh[(indx >> 1) + 1])); + + coeff10v += gradwthv * deltgrbv * deltgrbv; + coeff11v += gradwthv * gdiffhv * deltgrbv; + coeff12v += gradwthv * gdiffhv * gdiffhv; + } + + coeff[0][0][c>>1] += vhadd(coeff00v); + coeff[0][1][c>>1] += vhadd(coeff01v); + coeff[0][2][c>>1] += vhadd(coeff02v); + coeff[1][0][c>>1] += vhadd(coeff10v); + coeff[1][1][c>>1] += vhadd(coeff11v); + coeff[1][2][c>>1] += vhadd(coeff12v); + +#endif + for (; cc < cc1 - 8; cc += 2, indx += 2) { + //in linear interpolation, colour differences are a quadratic function of interpolation position; + //solve for the interpolation position that minimizes colour difference variance over the tile + + //vertical + float gdiff = (rgb[1][indx + ts] - rgb[1][indx - ts]) + 0.3f * (rgb[1][indx + ts + 1] - rgb[1][indx - ts + 1] + rgb[1][indx + ts - 1] - rgb[1][indx - ts - 1]); + float deltgrb = (rgb[c][indx >> 1] - rgb[1][indx]); + + float gradwt = (rbhpfv[indx >> 1] + 0.5f * (rbhpfv[(indx >> 1) + 1] + rbhpfv[(indx >> 1) - 1])) * (grblpfv[(indx >> 1) - v1] + grblpfv[(indx >> 1) + v1]) / (eps + 0.1f * (grblpfv[(indx >> 1) - v1] + grblpfv[(indx >> 1) + v1]) + rblpfv[(indx >> 1) - v1] + rblpfv[(indx >> 1) + v1]); + + coeff[0][0][c>>1] += gradwt * deltgrb * deltgrb; + coeff[0][1][c>>1] += gradwt * gdiff * deltgrb; + coeff[0][2][c>>1] += gradwt * gdiff * gdiff; + + //horizontal + gdiff = (rgb[1][indx + 1] - rgb[1][indx - 1]) + 0.3f * (rgb[1][indx + 1 + ts] - rgb[1][indx - 1 + ts] + rgb[1][indx + 1 - ts] - rgb[1][indx - 1 - ts]); + + gradwt = (rbhpfh[indx >> 1] + 0.5f * (rbhpfh[(indx >> 1) + v1] + rbhpfh[(indx >> 1) - v1])) * (grblpfh[(indx >> 1) - 1] + grblpfh[(indx >> 1) + 1]) / (eps + 0.1f * (grblpfh[(indx >> 1) - 1] + grblpfh[(indx >> 1) + 1]) + rblpfh[(indx >> 1) - 1] + rblpfh[(indx >> 1) + 1]); + + coeff[1][0][c>>1] += gradwt * deltgrb * deltgrb; + coeff[1][1][c>>1] += gradwt * gdiff * deltgrb; + coeff[1][2][c>>1] += gradwt * gdiff * gdiff; + + // In Mathematica, + // f[x_]=Expand[Total[Flatten[ + // ((1-x) RotateLeft[Gint,shift1]+x RotateLeft[Gint,shift2]-cfapad)^2[[dv;;-1;;2,dh;;-1;;2]]]]]; + // extremum = -.5Coefficient[f[x],x]/Coefficient[f[x],x^2] + } + } + + for (int dir = 0; dir < 2; dir++) { + for (int k = 0; k < 3; k++) { + for (int c = 0; c < 2; c++) { + coeff[dir][k][c] *= 0.25f; + if (k == 1) { + coeff[dir][k][c] *= 0.3125f; + } else if (k == 2) { + coeff[dir][k][c] *= SQR(0.3125f); + } + } + } + } + + for (int c = 0; c < 2; c++) { + for (int dir = 0; dir < 2; dir++) { // vert/hor + + // CAshift[dir][c] are the locations + // that minimize colour difference variances; + // This is the approximate _optical_ location of the R/B pixels + if (coeff[dir][2][c] > eps2) { + CAshift[dir][c] = coeff[dir][1][c] / coeff[dir][2][c]; + blockwt[vblock * hblsz + hblock] = coeff[dir][2][c] / (eps + coeff[dir][0][c]) ; + } else { + CAshift[dir][c] = 17.0; + blockwt[vblock * hblsz + hblock] = 0; + } + + //data structure = CAshift[vert/hor][colour] + //dir : 0=vert, 1=hor + + //offset gives NW corner of square containing the min; dir : 0=vert, 1=hor + if (fabsf(CAshift[dir][c]) < 2.0f) { + blockavethr[dir][c] += CAshift[dir][c]; + blocksqavethr[dir][c] += SQR(CAshift[dir][c]); + blockdenomthr[dir][c] += 1; + } + //evaluate the shifts to the location that minimizes CA within the tile + blockshifts[vblock * hblsz + hblock][c][dir] = CAshift[dir][c]; //vert/hor CA shift for R/B + }//vert/hor + }//colour + + if (plistener) { + progresscounter++; + + if (progresscounter % 8 == 0) { + #pragma omp critical (cadetectpass1) + { + progress += 4.0 * SQR(ts - border2) / (iterations * height * width); + progress = std::min(progress, 1.0); + plistener->setProgress(progress); + } + } + } + } + } + //end of diagnostic pass + #pragma omp critical (cadetectpass2) + { + for (int dir = 0; dir < 2; dir++) { + for (int c = 0; c < 2; c++) { + blockdenom[dir][c] += blockdenomthr[dir][c]; + blocksqave[dir][c] += blocksqavethr[dir][c]; + blockave[dir][c] += blockavethr[dir][c]; + } + } + } + #pragma omp barrier + + #pragma omp single + { + for (int dir = 0; dir < 2; dir++) + for (int c = 0; c < 2; c++) { + if (blockdenom[dir][c]) { + blockvar[dir][c] = blocksqave[dir][c] / blockdenom[dir][c] - SQR(blockave[dir][c] / blockdenom[dir][c]); } else { + processpasstwo = false; + std::cout << "blockdenom vanishes" << std::endl; + break; + } + } - //gradient weights using difference from G at CA shift points and G at grid points - float p0 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[indx >> 1])); - float p1 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[(indx - GRBdir1) >> 1])); - float p2 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[((rr - GRBdir0) * ts + cc) >> 1])); - float p3 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1])); - - grbdiffint = (p0 * grbdiff[indx >> 1] + p1 * grbdiff[(indx - GRBdir1) >> 1] + - p2 * grbdiff[((rr - GRBdir0) * ts + cc) >> 1] + p3 * grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1]) / (p0 + p1 + p2 + p3) ; - - //now determine R/B at grid points using interpolated colour differences and interpolated G value at grid point - if (fabsf(grbdiffold) > fabsf(grbdiffint) ) { - rgb[c][indx >> 1] = rgb[1][indx] - grbdiffint; + //now prepare for CA correction pass + //first, fill border blocks of blockshift array + if (processpasstwo) { + for (int vblock = 1; vblock < vblsz - 1; vblock++) { //left and right sides + for (int c = 0; c < 2; c++) { + for (int i = 0; i < 2; i++) { + blockshifts[vblock * hblsz][c][i] = blockshifts[(vblock) * hblsz + 2][c][i]; + blockshifts[vblock * hblsz + hblsz - 1][c][i] = blockshifts[(vblock) * hblsz + hblsz - 3][c][i]; } } + } - //if colour difference interpolation overshot the correction, just desaturate - if (grbdiffold * grbdiffint < 0) { - rgb[c][indx >> 1] = rgb[1][indx] - 0.5f * (grbdiffold + grbdiffint); + for (int hblock = 0; hblock < hblsz; hblock++) { //top and bottom sides + for (int c = 0; c < 2; c++) { + for (int i = 0; i < 2; i++) { + blockshifts[hblock][c][i] = blockshifts[2 * hblsz + hblock][c][i]; + blockshifts[(vblsz - 1)*hblsz + hblock][c][i] = blockshifts[(vblsz - 3) * hblsz + hblock][c][i]; + } + } + } + + //end of filling border pixels of blockshift array + + //initialize fit arrays + double polymat[2][2][256], shiftmat[2][2][16]; + + for (int i = 0; i < 256; i++) { + polymat[0][0][i] = polymat[0][1][i] = polymat[1][0][i] = polymat[1][1][i] = 0; + } + + for (int i = 0; i < 16; i++) { + shiftmat[0][0][i] = shiftmat[0][1][i] = shiftmat[1][0][i] = shiftmat[1][1][i] = 0; + } + + int numblox[2] = {0, 0}; + + for (int vblock = 1; vblock < vblsz - 1; vblock++) { + for (int hblock = 1; hblock < hblsz - 1; hblock++) { + // block 3x3 median of blockshifts for robustness + for (int c = 0; c < 2; c ++) { + float bstemp[2]; + for (int dir = 0; dir < 2; dir++) { + //temporary storage for median filter + const std::array p = { + blockshifts[(vblock - 1) * hblsz + hblock - 1][c][dir], + blockshifts[(vblock - 1) * hblsz + hblock][c][dir], + blockshifts[(vblock - 1) * hblsz + hblock + 1][c][dir], + blockshifts[(vblock) * hblsz + hblock - 1][c][dir], + blockshifts[(vblock) * hblsz + hblock][c][dir], + blockshifts[(vblock) * hblsz + hblock + 1][c][dir], + blockshifts[(vblock + 1) * hblsz + hblock - 1][c][dir], + blockshifts[(vblock + 1) * hblsz + hblock][c][dir], + blockshifts[(vblock + 1) * hblsz + hblock + 1][c][dir] + }; + bstemp[dir] = median(p); + } + + //now prepare coefficient matrix; use only data points within caAutostrength/2 std devs of zero + if (SQR(bstemp[0]) > caAutostrength * blockvar[0][c] || SQR(bstemp[1]) > caAutostrength * blockvar[1][c]) { + continue; + } + + numblox[c]++; + + for (int dir = 0; dir < 2; dir++) { + double powVblockInit = 1.0; + for (int i = 0; i < polyord; i++) { + double powHblockInit = 1.0; + for (int j = 0; j < polyord; j++) { + double powVblock = powVblockInit; + for (int m = 0; m < polyord; m++) { + double powHblock = powHblockInit; + for (int n = 0; n < polyord; n++) { + polymat[c][dir][numpar * (polyord * i + j) + (polyord * m + n)] += powVblock * powHblock * blockwt[vblock * hblsz + hblock]; + powHblock *= hblock; + } + powVblock *= vblock; + } + shiftmat[c][dir][(polyord * i + j)] += powVblockInit * powHblockInit * bstemp[dir] * blockwt[vblock * hblsz + hblock]; + powHblockInit *= hblock; + } + powVblockInit *= vblock; + }//monomials + }//dir + }//c + }//blocks + } + numblox[1] = min(numblox[0], numblox[1]); + + //if too few data points, restrict the order of the fit to linear + if (numblox[1] < 32) { + polyord = 2; + numpar = 4; + + if (numblox[1] < 10) { + std::cout << "numblox = " << numblox[1] << std::endl; + processpasstwo = false; + } + } + + if (processpasstwo) { + //fit parameters to blockshifts + for (int c = 0; c < 2; c++) { + for (int dir = 0; dir < 2; dir++) { + if (!LinEqSolve(numpar, polymat[c][dir], shiftmat[c][dir], fitparams[c][dir])) { + std::cout << "CA correction pass failed -- can't solve linear equations for colour %d direction " << c << std::endl; + processpasstwo = false; + } + } } } } - - // copy CA corrected results to temporary image matrix - for (int rr = border; rr < rr1 - border; rr++) { - int c = FC(rr + top, left + border + (FC(rr + top, 2) & 1)); - int row = rr + top; - int cc = border + (FC(rr, 2) & 1); - int indx = (row * width + cc + left) >> 1; - int indx1 = (rr * ts + cc) >> 1; -#ifdef __SSE2__ - for (; indx < (row * width + cc1 - border - 7 + left) >> 1; indx+=4, indx1 += 4) { - STVFU(RawDataTmp[indx], c65535v * LVFU(rgb[c][indx1])); - } -#endif - for (; indx < (row * width + cc1 - border + left) >> 1; indx++, indx1++) { - RawDataTmp[indx] = 65535.f * rgb[c][indx1]; - } - } - - if(plistener) { - progresscounter++; - - if(progresscounter % 8 == 0) - #pragma omp critical (cacorrect) - { - progress += (double)(8.0 * (ts - border2) * (ts - border2)) / (2 * height * width); - - if (progress > 1.0) { - progress = 1.0; - } - - plistener->setProgress(progress); - } - } - - } - - #pragma omp barrier -// copy temporary image matrix back to image matrix - #pragma omp for - - for(int row = 0; row < height; row++) { - int col = FC(row, 0) & 1; - int indx = (row * width + col) >> 1; -#ifdef __SSE2__ - for(; col < width - 7; col += 8, indx += 4) { - STC2VFU(rawData[row][col], LVFU(RawDataTmp[indx])); - } -#endif - for(; col < width - (W & 1); col += 2, indx++) { - rawData[row][col] = RawDataTmp[indx]; + //fitparams[polyord*i+j] gives the coefficients of (vblock^i hblock^j) in a polynomial fit for i,j<=4 } + //end of initialization for CA correction pass + //only executed if autoCA is true } - } + // Main algorithm: Tile loop + if (processpasstwo) { + float* grbdiff = (float (*)) (data + 2 * sizeof(float) * ts * ts + 3 * 64); // there is no overlap in buffer usage => share + //green interpolated to optical sample points for R/B + float* gshift = (float (*)) (data + 2 * sizeof(float) * ts * ts + sizeof(float) * ts * tsh + 4 * 64); // there is no overlap in buffer usage => share + #pragma omp for schedule(dynamic) collapse(2) + for (int top = -border; top < height; top += ts - border2) { + for (int left = -border; left < width - (W & 1); left += ts - border2) { + memset(bufferThr, 0, buffersizePassTwo); + float lblockshifts[2][2]; + const int vblock = ((top + border) / (ts - border2)) + 1; + const int hblock = ((left + border) / (ts - border2)) + 1; + const int bottom = min(top + ts, height + border); + const int right = min(left + ts, width - (W & 1) + border); + const int rr1 = bottom - top; + const int cc1 = right - left; - // clean up - free(bufferThr); + const int rrmin = top < 0 ? border : 0; + const int rrmax = bottom > height ? height - top : rr1; + const int ccmin = left < 0 ? border : 0; + const int ccmax = (right > width - (W & 1)) ? width - (W & 1) - left : cc1; + + // rgb from input CFA data + // rgb values should be floating point number between 0 and 1 + // after white balance multipliers are applied + +#ifdef __SSE2__ + vfloat c65535v = F2V(65535.f); + vmask gmask = _mm_set_epi32(0, 0xffffffff, 0, 0xffffffff); +#endif + for (int rr = rrmin; rr < rrmax; rr++) { + int row = rr + top; + int cc = ccmin; + int col = cc + left; + int indx = row * width + col; + int indx1 = rr * ts + cc; +#ifdef __SSE2__ + int c = FC(rr, cc); + if (c & 1) { + rgb[1][indx1] = rawData[row][col] / 65535.f; + indx++; + indx1++; + cc++; + col++; + c = FC(rr, cc); + } + for (; cc < ccmax - 7; cc += 8, col += 8, indx += 8, indx1 += 8) { + vfloat val1v = LVFU(rawData[row][col]) / c65535v; + vfloat val2v = LVFU(rawData[row][col + 4]) / c65535v; + STVFU(rgb[c][indx1 >> 1], _mm_shuffle_ps(val1v, val2v, _MM_SHUFFLE(2, 0, 2, 0))); + vfloat gtmpv = LVFU(Gtmp[indx >> 1]); + STVFU(rgb[1][indx1], vself(gmask, PERMUTEPS(gtmpv, _MM_SHUFFLE(1, 1, 0, 0)), val1v)); + STVFU(rgb[1][indx1 + 4], vself(gmask, PERMUTEPS(gtmpv, _MM_SHUFFLE(3, 3, 2, 2)), val2v)); + } +#endif + for (; cc < ccmax; cc++, col++, indx++, indx1++) { + int c = FC(rr, cc); + rgb[c][indx1 >> ((c & 1) ^ 1)] = rawData[row][col] / 65535.f; + + if ((c & 1) == 0) { + rgb[1][indx1] = Gtmp[indx >> 1]; + } + } + } + + //fill borders + if (rrmin > 0) { + for (int rr = 0; rr < border; rr++) { + for (int cc = ccmin; cc < ccmax; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][((border2 - rr) * ts + cc) >> ((c & 1) ^ 1)]; + rgb[1][rr * ts + cc] = rgb[1][(border2 - rr) * ts + cc]; + } + } + } + + if (rrmax < rr1) { + for (int rr = 0; rr < std::min(border, rr1 - rrmax); rr++) { + for (int cc = ccmin; cc < ccmax; cc++) { + int c = FC(rr, cc); + rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = (rawData[(height - rr - 2)][left + cc]) / 65535.f; + if ((c & 1) == 0) { + rgb[1][(rrmax + rr)*ts + cc] = Gtmp[((height - rr - 2) * width + left + cc) >> 1]; + } + } + } + } + + if (ccmin > 0) { + for (int rr = rrmin; rr < rrmax; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = rgb[c][(rr * ts + border2 - cc) >> ((c & 1) ^ 1)]; + rgb[1][rr * ts + cc] = rgb[1][rr * ts + border2 - cc]; + } + } + } + + if (ccmax < cc1) { + for (int rr = rrmin; rr < rrmax; rr++) { + for (int cc = 0; cc < std::min(border, cc1 - ccmax); cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = (rawData[(top + rr)][(width - cc - 2)]) / 65535.f; + if ((c & 1) == 0) { + rgb[1][rr * ts + ccmax + cc] = Gtmp[((top + rr) * width + (width - cc - 2)) >> 1]; + } + } + } + } + + //also, fill the image corners + if (rrmin > 0 && ccmin > 0) { + for (int rr = 0; rr < border; rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + cc) >> ((c & 1) ^ 1)] = (rawData[border2 - rr][border2 - cc]) / 65535.f; + if ((c & 1) == 0) { + rgb[1][rr * ts + cc] = Gtmp[((border2 - rr) * width + border2 - cc) >> 1]; + } + } + } + } + + if (rrmax < rr1 && ccmax < cc1) { + for (int rr = 0; rr < std::min(border, rr1 - rrmax); rr++) { + for (int cc = 0; cc < std::min(border, cc1 - ccmax); cc++) { + int c = FC(rr, cc); + rgb[c][((rrmax + rr)*ts + ccmax + cc) >> ((c & 1) ^ 1)] = (rawData[(height - rr - 2)][(width - cc - 2)]) / 65535.f; + if ((c & 1) == 0) { + rgb[1][(rrmax + rr)*ts + ccmax + cc] = Gtmp[((height - rr - 2) * width + (width - cc - 2)) >> 1]; + } + } + } + } + + if (rrmin > 0 && ccmax < cc1) { + for (int rr = 0; rr < border; rr++) { + for (int cc = 0; cc < std::min(border, cc1 - ccmax); cc++) { + int c = FC(rr, cc); + rgb[c][(rr * ts + ccmax + cc) >> ((c & 1) ^ 1)] = (rawData[(border2 - rr)][(width - cc - 2)]) / 65535.f; + if ((c & 1) == 0) { + rgb[1][rr * ts + ccmax + cc] = Gtmp[((border2 - rr) * width + (width - cc - 2)) >> 1]; + } + } + } + } + + if (rrmax < rr1 && ccmin > 0) { + for (int rr = 0; rr < std::min(border, rr1 - rrmax); rr++) { + for (int cc = 0; cc < border; cc++) { + int c = FC(rr, cc); + rgb[c][((rrmax + rr)*ts + cc) >> ((c & 1) ^ 1)] = (rawData[(height - rr - 2)][(border2 - cc)]) / 65535.f; + if ((c & 1) == 0) { + rgb[1][(rrmax + rr)*ts + cc] = Gtmp[((height - rr - 2) * width + (border2 - cc)) >> 1]; + } + } + } + } + //end of border fill + + if (!autoCA || fitParamsIn) { +#ifdef __SSE2__ + const vfloat onev = F2V(1.f); + const vfloat epsv = F2V(eps); +#endif + //manual CA correction; use red/blue slider values to set CA shift parameters + for (int rr = 3; rr < rr1 - 3; rr++) { + int cc = 3 + FC(rr, 1), c = FC(rr,cc), indx = rr * ts + cc; +#ifdef __SSE2__ + for (; cc < cc1 - 10; cc += 8, indx += 8) { + //compute directional weights using image gradients + vfloat val1v = epsv + vabsf(LC2VFU(rgb[1][(rr + 1) * ts + cc]) - LC2VFU(rgb[1][(rr - 1) * ts + cc])); + vfloat val2v = epsv + vabsf(LC2VFU(rgb[1][indx + 1]) - LC2VFU(rgb[1][indx - 1])); + vfloat wtuv = onev / SQRV(val1v + vabsf(LVFU(rgb[c][(rr * ts + cc) >> 1]) - LVFU(rgb[c][((rr - 2) * ts + cc) >> 1])) + vabsf(LC2VFU(rgb[1][(rr - 1) * ts + cc]) - LC2VFU(rgb[1][(rr - 3) * ts + cc]))); + vfloat wtdv = onev / SQRV(val1v + vabsf(LVFU(rgb[c][(rr * ts + cc) >> 1]) - LVFU(rgb[c][((rr + 2) * ts + cc) >> 1])) + vabsf(LC2VFU(rgb[1][(rr + 1) * ts + cc]) - LC2VFU(rgb[1][(rr + 3) * ts + cc]))); + vfloat wtlv = onev / SQRV(val2v + vabsf(LVFU(rgb[c][indx >> 1]) - LVFU(rgb[c][(indx - 2) >> 1])) + vabsf(LC2VFU(rgb[1][indx - 1]) - LC2VFU(rgb[1][indx - 3]))); + vfloat wtrv = onev / SQRV(val2v + vabsf(LVFU(rgb[c][indx >> 1]) - LVFU(rgb[c][(indx + 2) >> 1])) + vabsf(LC2VFU(rgb[1][indx + 1]) - LC2VFU(rgb[1][indx + 3]))); + + //store in rgb array the interpolated G value at R/B grid points using directional weighted average + STC2VFU(rgb[1][indx], (wtuv * LC2VFU(rgb[1][indx - v1]) + wtdv * LC2VFU(rgb[1][indx + v1]) + wtlv * LC2VFU(rgb[1][indx - 1]) + wtrv * LC2VFU(rgb[1][indx + 1])) / (wtuv + wtdv + wtlv + wtrv)); + } +#endif + for (; cc < cc1 - 3; cc += 2, indx += 2) { + //compute directional weights using image gradients + float wtu = 1.f / SQR(eps + fabsf(rgb[1][(rr + 1) * ts + cc] - rgb[1][(rr - 1) * ts + cc]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][((rr - 2) * ts + cc) >> 1]) + fabsf(rgb[1][(rr - 1) * ts + cc] - rgb[1][(rr - 3) * ts + cc])); + float wtd = 1.f / SQR(eps + fabsf(rgb[1][(rr + 1) * ts + cc] - rgb[1][(rr - 1) * ts + cc]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][((rr + 2) * ts + cc) >> 1]) + fabsf(rgb[1][(rr + 1) * ts + cc] - rgb[1][(rr + 3) * ts + cc])); + float wtl = 1.f / SQR(eps + fabsf(rgb[1][rr * ts + cc + 1] - rgb[1][rr * ts + cc - 1]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][(rr * ts + cc - 2) >> 1]) + fabsf(rgb[1][rr * ts + cc - 1] - rgb[1][rr * ts + cc - 3])); + float wtr = 1.f / SQR(eps + fabsf(rgb[1][rr * ts + cc + 1] - rgb[1][rr * ts + cc - 1]) + fabsf(rgb[c][(rr * ts + cc) >> 1] - rgb[c][(rr * ts + cc + 2) >> 1]) + fabsf(rgb[1][rr * ts + cc + 1] - rgb[1][rr * ts + cc + 3])); + + //store in rgb array the interpolated G value at R/B grid points using directional weighted average + rgb[1][indx] = (wtu * rgb[1][indx - v1] + wtd * rgb[1][indx + v1] + wtl * rgb[1][indx - 1] + wtr * rgb[1][indx + 1]) / (wtu + wtd + wtl + wtr); + } + } + } + + if (!autoCA) { + float hfrac = -((float)(hblock - 0.5) / (hblsz - 2) - 0.5); + float vfrac = -((float)(vblock - 0.5) / (vblsz - 2) - 0.5) * height / width; + lblockshifts[0][0] = 2 * vfrac * cared; + lblockshifts[0][1] = 2 * hfrac * cared; + lblockshifts[1][0] = 2 * vfrac * cablue; + lblockshifts[1][1] = 2 * hfrac * cablue; + } else { + //CA auto correction; use CA diagnostic pass to set shift parameters + lblockshifts[0][0] = lblockshifts[0][1] = 0; + lblockshifts[1][0] = lblockshifts[1][1] = 0; + double powVblock = 1.0; + for (int i = 0; i < polyord; i++) { + double powHblock = powVblock; + for (int j = 0; j < polyord; j++) { + lblockshifts[0][0] += powHblock * fitparams[0][0][polyord * i + j]; + lblockshifts[0][1] += powHblock * fitparams[0][1][polyord * i + j]; + lblockshifts[1][0] += powHblock * fitparams[1][0][polyord * i + j]; + lblockshifts[1][1] += powHblock * fitparams[1][1][polyord * i + j]; + powHblock *= hblock; + } + powVblock *= vblock; + } + constexpr float bslim = 3.99; //max allowed CA shift + lblockshifts[0][0] = LIM(lblockshifts[0][0], -bslim, bslim); + lblockshifts[0][1] = LIM(lblockshifts[0][1], -bslim, bslim); + lblockshifts[1][0] = LIM(lblockshifts[1][0], -bslim, bslim); + lblockshifts[1][1] = LIM(lblockshifts[1][1], -bslim, bslim); + }//end of setting CA shift parameters + + for (int c = 0; c < 3; c += 2) { + + //some parameters for the bilinear interpolation + shiftvfloor[c] = floor((float)lblockshifts[c>>1][0]); + shiftvceil[c] = ceil((float)lblockshifts[c>>1][0]); + if (lblockshifts[c>>1][0] < 0.f) { + std::swap(shiftvfloor[c], shiftvceil[c]); + } + shiftvfrac[c] = fabs(lblockshifts[c>>1][0] - shiftvfloor[c]); + + shifthfloor[c] = floor((float)lblockshifts[c>>1][1]); + shifthceil[c] = ceil((float)lblockshifts[c>>1][1]); + if (lblockshifts[c>>1][1] < 0.f) { + std::swap(shifthfloor[c], shifthceil[c]); + } + shifthfrac[c] = fabs(lblockshifts[c>>1][1] - shifthfloor[c]); + + GRBdir[0][c] = lblockshifts[c>>1][0] > 0 ? 2 : -2; + GRBdir[1][c] = lblockshifts[c>>1][1] > 0 ? 2 : -2; + } + + for (int rr = 4; rr < rr1 - 4; rr++) { + int cc = 4 + (FC(rr, 2) & 1); + int c = FC(rr, cc); + int indx = (rr * ts + cc) >> 1; + int indxfc = (rr + shiftvfloor[c]) * ts + cc + shifthceil[c]; + int indxff = (rr + shiftvfloor[c]) * ts + cc + shifthfloor[c]; + int indxcc = (rr + shiftvceil[c]) * ts + cc + shifthceil[c]; + int indxcf = (rr + shiftvceil[c]) * ts + cc + shifthfloor[c]; +#ifdef __SSE2__ + vfloat shifthfracv = F2V(shifthfrac[c]); + vfloat shiftvfracv = F2V(shiftvfrac[c]); + for (; cc < cc1 - 10; cc += 8, indxfc += 8, indxff += 8, indxcc += 8, indxcf += 8, indx += 4) { + //perform CA correction using colour ratios or colour differences + vfloat Ginthfloorv = vintpf(shifthfracv, LC2VFU(rgb[1][indxfc]), LC2VFU(rgb[1][indxff])); + vfloat Ginthceilv = vintpf(shifthfracv, LC2VFU(rgb[1][indxcc]), LC2VFU(rgb[1][indxcf])); + //Gint is bilinear interpolation of G at CA shift point + vfloat Gintv = vintpf(shiftvfracv, Ginthceilv, Ginthfloorv); + + //determine R/B at grid points using colour differences at shift point plus interpolated G value at grid point + //but first we need to interpolate G-R/G-B to grid points... + STVFU(grbdiff[indx], Gintv - LVFU(rgb[c][indx])); + STVFU(gshift[indx], Gintv); + } + +#endif + for (; cc < cc1 - 4; cc += 2, indxfc += 2, indxff += 2, indxcc += 2, indxcf += 2, ++indx) { + //perform CA correction using colour ratios or colour differences + float Ginthfloor = intp(shifthfrac[c], rgb[1][indxfc], rgb[1][indxff]); + float Ginthceil = intp(shifthfrac[c], rgb[1][indxcc], rgb[1][indxcf]); + //Gint is bilinear interpolation of G at CA shift point + float Gint = intp(shiftvfrac[c], Ginthceil, Ginthfloor); + + //determine R/B at grid points using colour differences at shift point plus interpolated G value at grid point + //but first we need to interpolate G-R/G-B to grid points... + grbdiff[indx] = Gint - rgb[c][indx]; + gshift[indx] = Gint; + } + } + + shifthfrac[0] /= 2.f; + shifthfrac[2] /= 2.f; + shiftvfrac[0] /= 2.f; + shiftvfrac[2] /= 2.f; + +#ifdef __SSE2__ + vfloat zd25v = F2V(0.25f); + vfloat onev = F2V(1.f); + vfloat zd5v = F2V(0.5f); + vfloat epsv = F2V(eps); +#endif + for (int rr = 8; rr < rr1 - 8; rr++) { + int cc = 8 + (FC(rr, 2) & 1); + int c = FC(rr, cc); + int GRBdir0 = GRBdir[0][c]; + int GRBdir1 = GRBdir[1][c]; +#ifdef __SSE2__ + vfloat shifthfracc = F2V(shifthfrac[c]); + vfloat shiftvfracc = F2V(shiftvfrac[c]); + for (int indx = rr * ts + cc; cc < cc1 - 14; cc += 8, indx += 8) { + //interpolate colour difference from optical R/B locations to grid locations + vfloat grbdiffinthfloor = vintpf(shifthfracc, LVFU(grbdiff[(indx - GRBdir1) >> 1]), LVFU(grbdiff[indx >> 1])); + vfloat grbdiffinthceil = vintpf(shifthfracc, LVFU(grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1]), LVFU(grbdiff[((rr - GRBdir0) * ts + cc) >> 1])); + //grbdiffint is bilinear interpolation of G-R/G-B at grid point + vfloat grbdiffint = vintpf(shiftvfracc, grbdiffinthceil, grbdiffinthfloor); + + //now determine R/B at grid points using interpolated colour differences and interpolated G value at grid point + vfloat cinv = LVFU(rgb[c][indx >> 1]); + vfloat rinv = LC2VFU(rgb[1][indx]); + vfloat RBint = rinv - grbdiffint; + vmask cmask = vmaskf_ge(vabsf(RBint - cinv), zd25v * (RBint + cinv)); + if (_mm_movemask_ps((vfloat)cmask)) { + // if for any of the 4 pixels the condition is true, do the math for all 4 pixels and mask the unused out at the end + //gradient weights using difference from G at CA shift points and G at grid points + vfloat p0 = onev / (epsv + vabsf(rinv - LVFU(gshift[indx >> 1]))); + vfloat p1 = onev / (epsv + vabsf(rinv - LVFU(gshift[(indx - GRBdir1) >> 1]))); + vfloat p2 = onev / (epsv + vabsf(rinv - LVFU(gshift[((rr - GRBdir0) * ts + cc) >> 1]))); + vfloat p3 = onev / (epsv + vabsf(rinv - LVFU(gshift[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1]))); + + grbdiffint = vself(cmask, (p0 * LVFU(grbdiff[indx >> 1]) + p1 * LVFU(grbdiff[(indx - GRBdir1) >> 1]) + + p2 * LVFU(grbdiff[((rr - GRBdir0) * ts + cc) >> 1]) + p3 * LVFU(grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1])) / (p0 + p1 + p2 + p3), grbdiffint); + + } + vfloat grbdiffold = rinv - cinv; + RBint = rinv - grbdiffint; + RBint = vself(vmaskf_gt(vabsf(grbdiffold), vabsf(grbdiffint)), RBint, cinv); + RBint = vself(vmaskf_lt(grbdiffold * grbdiffint, ZEROV), rinv - zd5v * (grbdiffold + grbdiffint), RBint); + STVFU(rgb[c][indx >> 1], RBint); + } +#endif + for (int c = FC(rr, cc), indx = rr * ts + cc; cc < cc1 - 8; cc += 2, indx += 2) { + float grbdiffold = rgb[1][indx] - rgb[c][indx >> 1]; + + //interpolate colour difference from optical R/B locations to grid locations + float grbdiffinthfloor = intp(shifthfrac[c], grbdiff[(indx - GRBdir1) >> 1], grbdiff[indx >> 1]); + float grbdiffinthceil = intp(shifthfrac[c], grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1], grbdiff[((rr - GRBdir0) * ts + cc) >> 1]); + //grbdiffint is bilinear interpolation of G-R/G-B at grid point + float grbdiffint = intp(shiftvfrac[c], grbdiffinthceil, grbdiffinthfloor); + + //now determine R/B at grid points using interpolated colour differences and interpolated G value at grid point + float RBint = rgb[1][indx] - grbdiffint; + + if (fabsf(RBint - rgb[c][indx >> 1]) < 0.25f * (RBint + rgb[c][indx >> 1])) { + if (fabsf(grbdiffold) > fabsf(grbdiffint)) { + rgb[c][indx >> 1] = RBint; + } + } else { + + //gradient weights using difference from G at CA shift points and G at grid points + float p0 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[indx >> 1])); + float p1 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[(indx - GRBdir1) >> 1])); + float p2 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[((rr - GRBdir0) * ts + cc) >> 1])); + float p3 = 1.f / (eps + fabsf(rgb[1][indx] - gshift[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1])); + + grbdiffint = (p0 * grbdiff[indx >> 1] + p1 * grbdiff[(indx - GRBdir1) >> 1] + + p2 * grbdiff[((rr - GRBdir0) * ts + cc) >> 1] + p3 * grbdiff[((rr - GRBdir0) * ts + cc - GRBdir1) >> 1]) / (p0 + p1 + p2 + p3) ; + + //now determine R/B at grid points using interpolated colour differences and interpolated G value at grid point + if (fabsf(grbdiffold) > fabsf(grbdiffint)) { + rgb[c][indx >> 1] = rgb[1][indx] - grbdiffint; + } + } + + //if colour difference interpolation overshot the correction, just desaturate + if (grbdiffold * grbdiffint < 0) { + rgb[c][indx >> 1] = rgb[1][indx] - 0.5f * (grbdiffold + grbdiffint); + } + } + } + + // copy CA corrected results to temporary image matrix + for (int rr = border; rr < rr1 - border; rr++) { + int c = FC(rr + top, left + border + (FC(rr + top, 2) & 1)); + int row = rr + top; + int cc = border + (FC(rr, 2) & 1); + int indx = (row * width + cc + left) >> 1; + int indx1 = (rr * ts + cc) >> 1; +#ifdef __SSE2__ + for (; indx < (row * width + cc1 - border - 7 + left) >> 1; indx+=4, indx1 += 4) { + STVFU(RawDataTmp[indx], c65535v * LVFU(rgb[c][indx1])); + } +#endif + for (; indx < (row * width + cc1 - border + left) >> 1; indx++, indx1++) { + RawDataTmp[indx] = 65535.f * rgb[c][indx1]; + } + } + + if (plistener) { + progresscounter++; + + if (progresscounter % 8 == 0) + #pragma omp critical (cacorrect) + { + progress += 4.0 * SQR(ts - border2) / (iterations * height * width); + progress = std::min(progress, 1.0); + plistener->setProgress(progress); + } + } + } + } + + // copy temporary image matrix back to image matrix + #pragma omp for + + for (int row = 0; row < height; row++) { + int col = FC(row, 0) & 1; + int indx = (row * width + col) >> 1; +#ifdef __SSE2__ + for (; col < width - 7 - (3 * (W & 1)); col += 8, indx += 4) { + STC2VFU(rawData[row][col], LVFU(RawDataTmp[indx])); + } +#endif + for (; col < width - (3 * (W & 1)); col += 2, indx++) { + rawData[row][col] = RawDataTmp[indx]; + } + } + + } + // clean up + free(bufferThr); + } + if (avoidColourshift) { + // to avoid or at least reduce the colour shift caused by raw ca correction we compute the per pixel difference factors + // of red and blue channel and apply a gaussian blur to them. + // Then we apply the resulting factors per pixel on the result of raw ca correction + + #pragma omp parallel + { + #ifdef __SSE2__ + const vfloat onev = F2V(1.f); + const vfloat twov = F2V(2.f); + const vfloat zd5v = F2V(0.5f); + #endif + #pragma omp for + for (int i = 0; i < H; ++i) { + const int firstCol = FC(i, 0) & 1; + const int colour = FC(i, firstCol); + const array2D* nonGreen = colour == 0 ? redFactor : blueFactor; + int j = firstCol; + #ifdef __SSE2__ + for (; j < W - 7; j += 8) { + const vfloat newvals = LC2VFU(rawData[i][j]); + const vfloat oldvals = LVFU((*oldraw)[i][j / 2]); + vfloat factors = oldvals / newvals; + factors = vself(vmaskf_le(newvals, onev), onev, factors); + factors = vself(vmaskf_le(oldvals, onev), onev, factors); + STVFU((*nonGreen)[i/2][j/2], LIMV(factors, zd5v, twov)); + } + #endif + for (; j < W; j += 2) { + (*nonGreen)[i/2][j/2] = (rawData[i][j] <= 1.f || (*oldraw)[i][j / 2] <= 1.f) ? 1.f : rtengine::LIM((*oldraw)[i][j / 2] / rawData[i][j], 0.5f, 2.f); + } + } + + #pragma omp single + { + if (H % 2) { + // odd height => factors for one channel are not set in last row => use values of preceding row + const int firstCol = FC(0, 0) & 1; + const int colour = FC(0, firstCol); + const array2D* nonGreen = colour == 0 ? blueFactor : redFactor; + for (int j = 0; j < (W + 1) / 2; ++j) { + (*nonGreen)[(H + 1) / 2 - 1][j] = (*nonGreen)[(H + 1) / 2 - 2][j]; + } + } + + if (W % 2) { + // odd width => factors for one channel are not set in last column => use value of preceding column + const int ngRow = 1 - (FC(0, 0) & 1); + const int ngCol = FC(ngRow, 0) & 1; + const int colour = FC(ngRow, ngCol); + const array2D* nonGreen = colour == 0 ? redFactor : blueFactor; + for (int i = 0; i < (H + 1) / 2; ++i) { + (*nonGreen)[i][(W + 1) / 2 - 1] = (*nonGreen)[i][(W + 1) / 2 - 2]; + } + } + } + + // blur correction factors + gaussianBlur(*redFactor, *redFactor, (W+1)/2, (H+1)/2, 30.0); + gaussianBlur(*blueFactor, *blueFactor, (W+1)/2, (H+1)/2, 30.0); + + // apply correction factors to avoid (reduce) colour shift + #pragma omp for + for (int i = 0; i < H; ++i) { + const int firstCol = FC(i, 0) & 1; + const int colour = FC(i, firstCol); + const array2D* nonGreen = colour == 0 ? redFactor : blueFactor; + for (int j = firstCol; j < W; j += 2) { + rawData[i][j] *= (*nonGreen)[i/2][j/2]; + } + } + } + } } - if(autoCA && fitParamsTransfer && fitParamsOut) { + if (autoCA && fitParamsTransfer && fitParamsOut) { // store calculated parameters int index = 0; - for(int c = 0; c < 2; ++c) { - for(int d = 0; d < 2; ++d) { - for(int e = 0; e < 16; ++e) { + for (int c = 0; c < 2; ++c) { + for (int d = 0; d < 2; ++d) { + for (int e = 0; e < 16; ++e) { fitParamsTransfer[index++] = fitparams[c][d][e]; } } } } - if(freeBuffer) { + if (freeBuffer) { free(buffer); buffer = nullptr; } - if(plistener) { + if (avoidColourshift) { + delete oldraw; + delete redFactor; + delete blueFactor; + } + + if (plistener) { plistener->setProgress(1.0); } return buffer; diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 06e398fad..91c66f751 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -32,8 +32,8 @@ set(RTENGINESOURCEFILES EdgePreservingDecomposition.cc FTblockDN.cc PF_correct_RT.cc + ahd_demosaic_RT.cc amaze_demosaic_RT.cc - amaze_vng4_demosaic_RT.cc cJSON.c calc_distort.cc camconst.cc @@ -53,7 +53,9 @@ set(RTENGINESOURCEFILES dfmanager.cc diagonalcurves.cc dirpyr_equalizer.cc + dual_demosaic_RT.cc dynamicprofile.cc + eahd_demosaic.cc expo_before_b.cc fast_demo.cc ffmanager.cc @@ -125,6 +127,7 @@ set(RTENGINESOURCEFILES ipshadowshighlights.cc xtrans_demosaic.cc vng4_demosaic_RT.cc + ipsoftlight.cc ) if(LENSFUN_HAS_LOAD_DIRECTORY) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index fdc00e0ce..43985ea2a 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -547,7 +547,7 @@ BENCHFUN if (useNoiseLCurve || useNoiseCCurve) { int hei = calclum->getHeight(); int wid = calclum->getWidth(); - TMatrix wprofi = ICCStore::getInstance()->workingSpaceMatrix(params->icm.working); + TMatrix wprofi = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); const float wpi[3][3] = { {static_cast(wprofi[0][0]), static_cast(wprofi[0][1]), static_cast(wprofi[0][2])}, @@ -815,7 +815,7 @@ BENCHFUN } } - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.workingProfile); //inverse matrix user select const float wip[3][3] = { {static_cast(wiprof[0][0]), static_cast(wiprof[0][1]), static_cast(wiprof[0][2])}, @@ -823,7 +823,7 @@ BENCHFUN {static_cast(wiprof[2][0]), static_cast(wiprof[2][1]), static_cast(wiprof[2][2])} }; - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); const float wp[3][3] = { {static_cast(wprof[0][0]), static_cast(wprof[0][1]), static_cast(wprof[0][2])}, @@ -3338,7 +3338,7 @@ void ImProcFunctions::RGB_denoise_info(Imagefloat * src, Imagefloat * provicalc, float** bcalc; hei = provicalc->getHeight(); wid = provicalc->getWidth(); - TMatrix wprofi = ICCStore::getInstance()->workingSpaceMatrix(params->icm.working); + TMatrix wprofi = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); const float wpi[3][3] = { {static_cast(wprofi[0][0]), static_cast(wprofi[0][1]), static_cast(wprofi[0][2])}, @@ -3413,7 +3413,7 @@ void ImProcFunctions::RGB_denoise_info(Imagefloat * src, Imagefloat * provicalc, //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); const float wp[3][3] = { {static_cast(wprof[0][0]), static_cast(wprof[0][1]), static_cast(wprof[0][2])}, {static_cast(wprof[1][0]), static_cast(wprof[1][1]), static_cast(wprof[1][2])}, diff --git a/rtengine/ahd_demosaic_RT.cc b/rtengine/ahd_demosaic_RT.cc new file mode 100644 index 000000000..7931bf17d --- /dev/null +++ b/rtengine/ahd_demosaic_RT.cc @@ -0,0 +1,226 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Ingo Weyrich (heckflosse67@gmx.de) + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ + +// +// Adaptive Homogeneity-Directed interpolation is based on +// the work of Keigo Hirakawa, Thomas Parks, and Paul Lee. +// Optimized for speed and reduced memory usage 2018 Ingo Weyrich +// + +#include +#include "rtengine.h" +#include "rawimagesource.h" +#include "rt_math.h" +#include "../rtgui/multilangmgr.h" +#include "median.h" +//#define BENCHMARK +#include "StopWatch.h" + +namespace rtengine +{ +#define TS 144 +void RawImageSource::ahd_demosaic() +{ + BENCHFUN + + constexpr int dir[4] = { -1, 1, -TS, TS }; + float xyz_cam[3][3]; + LUTf cbrt(65536); + + int width = W, height = H; + + constexpr double xyz_rgb[3][3] = { /* XYZ from RGB */ + { 0.412453, 0.357580, 0.180423 }, + { 0.212671, 0.715160, 0.072169 }, + { 0.019334, 0.119193, 0.950227 } + }; + + constexpr float d65_white[3] = { 0.950456, 1, 1.088754 }; + + double progress = 0.0; + if (plistener) { + plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AHD))); + plistener->setProgress (0.0); + } + + for (int i = 0; i < 65536; i++) { + const double r = i / 65535.0; + cbrt[i] = r > 0.008856 ? std::cbrt(r) : 7.787 * r + 16 / 116.0; + } + + for (int i = 0; i < 3; i++) + for (unsigned int j = 0; j < 3; j++) { + xyz_cam[i][j] = 0; + for (int k = 0; k < 3; k++) { + xyz_cam[i][j] += xyz_rgb[i][k] * imatrices.rgb_cam[k][j] / d65_white[i]; + } + } + + border_interpolate2(W, H, 5, rawData, red, green, blue); + +#ifdef _OPENMP +#pragma omp parallel +#endif +{ + int progresscounter = 0; + float *buffer = new float[13 * TS * TS]; /* 1053 kB per core */ + auto rgb = (float(*)[TS][TS][3]) buffer; + auto lab = (float(*)[TS][TS][3])(buffer + 6 * TS * TS); + auto homo = (uint16_t(*)[TS][TS])(buffer + 12 * TS * TS); + +#ifdef _OPENMP + #pragma omp for collapse(2) schedule(dynamic) nowait +#endif + for (int top = 2; top < height - 5; top += TS - 6) { + for (int left = 2; left < width - 5; left += TS - 6) { + // Interpolate green horizontally and vertically: + for (int row = top; row < top + TS && row < height - 2; row++) { + for (int col = left + (FC(row, left) & 1); col < std::min(left + TS, width - 2); col += 2) { + auto pix = &rawData[row][col]; + float val0 = 0.25f * ((pix[-1] + pix[0] + pix[1]) * 2 + - pix[-2] - pix[2]) ; + rgb[0][row - top][col - left][1] = median(val0, pix[-1], pix[1]); + float val1 = 0.25f * ((pix[-width] + pix[0] + pix[width]) * 2 + - pix[-2 * width] - pix[2 * width]) ; + rgb[1][row - top][col - left][1] = median(val1, pix[-width], pix[width]); + } + } + + // Interpolate red and blue, and convert to CIELab: + for (int d = 0; d < 2; d++) + for (int row = top + 1; row < top + TS - 1 && row < height - 3; row++) { + int cng = FC(row + 1, FC(row + 1, 0) & 1); + for (int col = left + 1; col < std::min(left + TS - 1, width - 3); col++) { + auto pix = &rawData[row][col]; + auto rix = &rgb[d][row - top][col - left]; + auto lix = lab[d][row - top][col - left]; + if (FC(row, col) == 1) { + rix[0][2 - cng] = CLIP(pix[0] + (0.5f * (pix[-1] + pix[1] + - rix[-1][1] - rix[1][1] ) )); + rix[0][cng] = CLIP(pix[0] + (0.5f * (pix[-width] + pix[width] + - rix[-TS][1] - rix[TS][1]))); + rix[0][1] = pix[0]; + } else { + rix[0][cng] = CLIP(rix[0][1] + (0.25f * (pix[-width - 1] + pix[-width + 1] + + pix[+width - 1] + pix[+width + 1] + - rix[-TS - 1][1] - rix[-TS + 1][1] + - rix[+TS - 1][1] - rix[+TS + 1][1]))); + rix[0][2 - cng] = pix[0]; + } + float xyz[3] = {}; + + for(unsigned int c = 0; c < 3; ++c) { + xyz[0] += xyz_cam[0][c] * rix[0][c]; + xyz[1] += xyz_cam[1][c] * rix[0][c]; + xyz[2] += xyz_cam[2][c] * rix[0][c]; + } + + xyz[0] = cbrt[xyz[0]]; + xyz[1] = cbrt[xyz[1]]; + xyz[2] = cbrt[xyz[2]]; + + lix[0] = 116.f * xyz[1] - 16.f; + lix[1] = 500.f * (xyz[0] - xyz[1]); + lix[2] = 200.f * (xyz[1] - xyz[2]); + } + } + + // Build homogeneity maps from the CIELab images: + + for (int row = top + 2; row < top + TS - 2 && row < height - 4; row++) { + int tr = row - top; + float ldiff[2][4], abdiff[2][4]; + + for (int col = left + 2, tc = 2; col < left + TS - 2 && col < width - 4; col++, tc++) { + for (int d = 0; d < 2; d++) { + auto lix = &lab[d][tr][tc]; + + for (int i = 0; i < 4; i++) { + ldiff[d][i] = std::fabs(lix[0][0] - lix[dir[i]][0]); + abdiff[d][i] = SQR(lix[0][1] - lix[dir[i]][1]) + + SQR(lix[0][2] - lix[dir[i]][2]); + } + } + + float leps = std::min(std::max(ldiff[0][0], ldiff[0][1]), + std::max(ldiff[1][2], ldiff[1][3])); + float abeps = std::min(std::max(abdiff[0][0], abdiff[0][1]), + std::max(abdiff[1][2], abdiff[1][3])); + + for (int d = 0; d < 2; d++) { + homo[d][tr][tc] = 0; + for (int i = 0; i < 4; i++) { + homo[d][tr][tc] += (ldiff[d][i] <= leps) * (abdiff[d][i] <= abeps); + } + } + } + } + + // Combine the most homogenous pixels for the final result: + for (int row = top + 3; row < top + TS - 3 && row < height - 5; row++) { + int tr = row - top; + + for (int col = left + 3, tc = 3; col < std::min(left + TS - 3, width - 5); col++, tc++) { + uint16_t hm0 = 0, hm1 = 0; + for (int i = tr - 1; i <= tr + 1; i++) + for (int j = tc - 1; j <= tc + 1; j++) { + hm0 += homo[0][i][j]; + hm1 += homo[1][i][j]; + } + + if (hm0 != hm1) { + int dir = hm1 > hm0; + red[row][col] = rgb[dir][tr][tc][0]; + green[row][col] = rgb[dir][tr][tc][1]; + blue[row][col] = rgb[dir][tr][tc][2]; + } else { + red[row][col] = 0.5f * (rgb[0][tr][tc][0] + rgb[1][tr][tc][0]); + green[row][col] = 0.5f * (rgb[0][tr][tc][1] + rgb[1][tr][tc][1]); + blue[row][col] = 0.5f * (rgb[0][tr][tc][2] + rgb[1][tr][tc][2]); + } + } + } + + if(plistener) { + progresscounter++; + + if(progresscounter % 32 == 0) { +#ifdef _OPENMP + #pragma omp critical (ahdprogress) +#endif + { + progress += 32.0 * SQR(TS - 6) / (height * width); + progress = std::min(progress, 1.0); + plistener->setProgress(progress); + } + } + } + + } + } + delete [] buffer; +} + if(plistener) { + plistener->setProgress (1.0); + } + +} +#undef TS + +} \ No newline at end of file diff --git a/rtengine/amaze_demosaic_RT.cc b/rtengine/amaze_demosaic_RT.cc index 1e1b97768..31419022d 100644 --- a/rtengine/amaze_demosaic_RT.cc +++ b/rtengine/amaze_demosaic_RT.cc @@ -1584,6 +1584,9 @@ void RawImageSource::amaze_demosaic_RT(int winx, int winy, int winw, int winh, c // clean up free(buffer); } + if(border < 4) { + border_interpolate2(W, H, 3, rawData, red, green, blue); + } if(plistener) { plistener->setProgress(1.0); diff --git a/rtengine/amaze_vng4_demosaic_RT.cc b/rtengine/amaze_vng4_demosaic_RT.cc deleted file mode 100644 index 08e142a4e..000000000 --- a/rtengine/amaze_vng4_demosaic_RT.cc +++ /dev/null @@ -1,93 +0,0 @@ -//////////////////////////////////////////////////////////////// -// -// combined AMaZE + VNG4 demosaic algorithm -// -// -// copyright (c) 2018 Ingo Weyrich -// -// blends AMaZE and VNG4 output based on contrast -// -// -// amaze_vng4_demosaic_RT.cc is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -// -//////////////////////////////////////////////////////////////// - -#include "rtengine.h" -#include "rawimagesource.h" -#include "rt_math.h" -//#define BENCHMARK -#include "StopWatch.h" -#include "rt_algo.h" - -using namespace std; - -namespace rtengine -{ - -void RawImageSource::amaze_vng4_demosaic_RT(int winw, int winh, const array2D &rawData, array2D &red, array2D &green, array2D &blue, double contrast) -{ - BENCHFUN - - if (contrast == 0.0) { - // contrast == 0.0 means only AMaZE will be used - amaze_demosaic_RT(0, 0, winw, winh, rawData, red, green, blue); - return; - } - - vng4_demosaic(rawData, red, green, blue); - - array2D redTmp(winw, winh); - array2D greenTmp(winw, winh); - array2D blueTmp(winw, winh); - array2D L(winw, winh); - - amaze_demosaic_RT(0, 0, winw, winh, rawData, redTmp, greenTmp, blueTmp); - const float xyz_rgb[3][3] = { // XYZ from RGB - { 0.412453, 0.357580, 0.180423 }, - { 0.212671, 0.715160, 0.072169 }, - { 0.019334, 0.119193, 0.950227 } - }; - #pragma omp parallel - { - #pragma omp for - for(int i = 0; i < winh; ++i) { - Color::RGB2L(redTmp[i], greenTmp[i], blueTmp[i], L[i], xyz_rgb, winw); - } - } - // calculate contrast based blend factors to use vng4 in regions with low contrast - JaggedArray blend(winw, winh); - buildBlendMask(L, blend, winw, winh, contrast / 100.f); - - // the following is split into 3 loops intentionally to avoid cache conflicts on CPUs with only 4-way cache - #pragma omp parallel for - for(int i = 0; i < winh; ++i) { - for(int j = 0; j < winw; ++j) { - red[i][j] = intp(blend[i][j], redTmp[i][j], red[i][j]); - } - } - #pragma omp parallel for - for(int i = 0; i < winh; ++i) { - for(int j = 0; j < winw; ++j) { - green[i][j] = intp(blend[i][j], greenTmp[i][j], green[i][j]); - } - } - #pragma omp parallel for - for(int i = 0; i < winh; ++i) { - for(int j = 0; j < winw; ++j) { - blue[i][j] = intp(blend[i][j], blueTmp[i][j], blue[i][j]); - } - } - -} -} diff --git a/rtengine/cJSON.c b/rtengine/cJSON.c index 7e71ea9e8..fb8ce27e8 100644 --- a/rtengine/cJSON.c +++ b/rtengine/cJSON.c @@ -505,7 +505,7 @@ static cJSON_bool print_number(const cJSON * const item, printbuffer * const out } } - /* sprintf failed or buffer overrun occured */ + /* sprintf failed or buffer overrun occurred */ if ((length < 0) || (length > (int)(sizeof(number_buffer) - 1))) { return false; @@ -1556,7 +1556,7 @@ static cJSON_bool parse_object(cJSON * const item, parse_buffer * const input_bu buffer_skip_whitespace(input_buffer); if (!parse_string(current_item, input_buffer)) { - goto fail; /* faile to parse name */ + goto fail; /* failed to parse name */ } buffer_skip_whitespace(input_buffer); diff --git a/rtengine/cJSON.h b/rtengine/cJSON.h index a9c68fa2c..786dd2e0e 100644 --- a/rtengine/cJSON.h +++ b/rtengine/cJSON.h @@ -217,7 +217,7 @@ CJSON_PUBLIC(void) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJ CJSON_PUBLIC(void) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); CJSON_PUBLIC(void) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item); -/* Remove/Detatch items from Arrays/Objects. */ +/* Remove/Detach items from Arrays/Objects. */ CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item); CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which); CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which); diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 449484e8a..fd7b4bf0f 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -660,7 +660,7 @@ Camera constants: } }, - { // Quality A, ISO and aperture WL data copyed from Shalrath's 60D data at RawTherapee forums + { // Quality A, ISO and aperture WL data copied from Shalrath's 60D data at RawTherapee forums "make_model": "Canon EOS 60Da", "dcraw_matrix": [ 17492,-7240,-2023,-1791,10323,1701,-186,1329,5406 ], // 60Da dng d65 "ranges": { @@ -912,7 +912,7 @@ Camera constants: } }, - { // Quality C, white levels and apperture scaling copied from Canon EOS77d + { // Quality C, white levels and aperture scaling copied from Canon EOS77d "make_model": [ "Canon EOS Rebel T7i", "Canon EOS 800D", "Canon EOS Kiss X9i" ], "dcraw_matrix": [ 6970,-512,-968,-4425,12161,2553,-739,1982,5601 ], // DNG_V9.10.1 D65 "raw_crop": [ 264, 36, 6024, 4020 ], // full size 6288x4056, official crop 276,48,6275,4047 @@ -944,7 +944,7 @@ Camera constants: } }, - { // Quality B, apperture scaling copied from Canon EOS77d + { // Quality B, aperture scaling copied from Canon EOS77d "make_model": [ "Canon EOS Rebel SL2", "Canon EOS 200D", "Canon EOS Kiss X9" ], "dcraw_matrix": [ 7377,-742,-998,-4235,11981,2549,-673,1918,5538 ], // DNG_V9.12 D65 "raw_crop": [ 264, 36, 6024, 4020 ], // full size 6288x4056, official crop 276,48,6275,4047 @@ -1213,6 +1213,13 @@ Camera constants: "ranges": { "white": 4050 } // nominal 4080-4093 }, + { // Quality C + "make_model": [ "DJI FC2103" ], + "ranges": { + "black": 4080 + } + }, + { // Quality B "make_model": "FUJIFILM GFX 50S", "dcraw_matrix": [ 11756,-4754,-874,-3056,11045,2305,-381,1457,6006 ], // DNGv9.9 D65 @@ -2496,6 +2503,11 @@ Camera constants: "dcraw_matrix": [ 4932, -835, 141, -4878, 11868, 3437, -1138, 1961, 7067 ] }, + { // Quality C + "make_model": [ "Hasselblad H6D-100cMS" ], + "raw_crop": [ 64, 108, 11608, 8708 ] + }, + // Dummy test entry to test the parser and show the format with all entries active { "make_model": "DummyMake DummyModel", diff --git a/rtengine/clutstore.cc b/rtengine/clutstore.cc index 4124e38bb..87ce25d97 100644 --- a/rtengine/clutstore.cc +++ b/rtengine/clutstore.cc @@ -50,7 +50,7 @@ bool loadFile( const PreviewProps pp(0, 0, fw, fh, 1); rtengine::procparams::ColorManagementParams icm; - icm.working = working_color_space; + icm.workingProfile = working_color_space; img_src.getImage(curr_wb, TR_NONE, img_float.get(), pp, rtengine::procparams::ToneCurveParams(), rtengine::procparams::RAWParams()); diff --git a/rtengine/color.cc b/rtengine/color.cc index b5fdbe9fe..3f8fddacd 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -192,7 +192,6 @@ void Color::init() { gammatab_srgb[i] = gammatab_srgb1[i] = gamma2(i / 65535.0); } - gammatab_srgb *= 65535.f; gamma2curve.share(gammatab_srgb, LUT_CLIP_BELOW | LUT_CLIP_ABOVE); // shares the buffer with gammatab_srgb but has different clip flags } @@ -411,7 +410,7 @@ void Color::rgb2lab01(const Glib::ustring &profile, const Glib::ustring &profile r = pow_F(r, 1.8f); g = pow_F(g, 1.8f); b = pow_F(b, 1.8f); - } else if (profile == "Rec2020") { + } else if (profileW == "Rec2020") { if (r > 0.0795f) { r = pow_F(((r + 0.0954f) / 1.0954f), 2.2f); } else { @@ -435,17 +434,17 @@ void Color::rgb2lab01(const Glib::ustring &profile, const Glib::ustring &profile b = pow_F(b, 2.2f); } } else { //display output profile - if (profile == "RT_sRGB" || profile == "RT_sRGB_gBT709" || profile == "RT_sRGB_g10") { + if (profile == settings->srgb) { // use default "sRGB" - } else if (profile == "ProPhoto" || profile == "RT_Large_gBT709" || profile == "RT_Large_g10" || profile == "RT_Large_gsRGB") { + } else if (profile == "ProPhoto" || profile == settings->prophoto) { profileCalc = "ProPhoto"; - } else if (profile == "AdobeRGB1998" || profile == "RT_Medium_gsRGB") { + } else if (profile == "AdobeRGB1998" || profile == settings->adobe) { profileCalc = "Adobe RGB"; - } else if (profile == "WideGamutRGB") { + } else if (profile == settings->widegamut) { profileCalc = "WideGamut"; } - if (profile == "RT_sRGB" || profile == "RT_Large_gsRGB" || profile == "RT_Medium_gsRGB") { //apply sRGB inverse gamma + if (profile == settings->srgb || profile == settings->adobe) { //apply sRGB inverse gamma if (r > 0.04045f) { r = pow_F(((r + 0.055f) / 1.055f), rtengine::Color::sRGBGammaCurve); } else { @@ -463,7 +462,7 @@ void Color::rgb2lab01(const Glib::ustring &profile, const Glib::ustring &profile } else { b /= 12.92f; } - } else if (profile == "RT_sRGB_gBT709" || profile == "RT_Large_gBT709" || profile == "Rec2020") { + } else if (profile == settings->prophoto || profile == settings->rec2020) { if (r > 0.0795f) { r = pow_F(((r + 0.0954f) / 1.0954f), 2.2f); } else { @@ -487,9 +486,6 @@ void Color::rgb2lab01(const Glib::ustring &profile, const Glib::ustring &profile r = pow_F(r, 1.8f); g = pow_F(g, 1.8f); b = pow_F(b, 1.8f); - } else if (profile == "RT_sRGB_g10" || profile == "RT_Large_g10") { - // gamma 1.0, do nothing - } else {// apply inverse gamma 2.2 r = pow_F(r, 2.2f); @@ -1613,7 +1609,7 @@ void Color::calcGamma(double pwr, double ts, int mode, GammaValues &gamma) bnd[g[1] >= 1.] = 1.; if (g[1] && (g[1] - 1.) * (g[0] - 1.) <= 0.) { - for (i = 0; i < 48; i++) { + for (i = 0; i < 99; i++) { g[2] = (bnd[0] + bnd[1]) / 2.; if (g[0]) { diff --git a/rtengine/color.h b/rtengine/color.h index b0527bc9b..239997110 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -20,11 +20,13 @@ #pragma once #include +#include #include "rt_math.h" #include "LUT.h" #include "labimage.h" #include "iccmatrices.h" +#include "lcms2.h" #include "sleef.c" #define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c) @@ -1075,25 +1077,35 @@ public: /** * @brief sRGB gamma - * See also calcGamma above with the following values: pwr=2.4 ts=12.92 mode=0.003041 imax=0.055011 + * See also calcGamma above with the following values: pwr=2.399 ts=12.92310 mode=0.003041 imax=0.055 * @param x red, green or blue channel's value [0 ; 1] * @return the gamma modified's value [0 ; 1] */ static inline double gamma2(double x) // g3 1+g4 { - return x <= 0.003041 ? x * 12.92 : 1.055011 * exp(log(x) / sRGBGammaCurve) - 0.055011; + // return x <= 0.003041 ? x * 12.92310 : 1.055 * exp(log(x) / 2.39990) - 0.055;//calculate with calcgamma + //return x <= 0.0031308 ? x * 12.92310 : 1.055 * exp(log(x) / sRGBGammaCurve) - 0.055;//standard discontinuous + //very small differences between the 2 + return x <= 0.003040 ? x * 12.92310 : 1.055 * exp(log(x) / sRGBGammaCurve) - 0.055;//continuous + // return x <= 0.003041 ? x * 12.92310 : 1.055011 * exp(log(x) / sRGBGammaCurve) - 0.055011;//continuous + } /** * @brief Inverse sRGB gamma - * See also calcGamma above with the following values: pwr=2.4 ts=12.92 mode=0.003041 imax=0.055011 + * See also calcGamma above with the following values: pwr=2.3999 ts=12.92310 mode=0.003041 imax=0.055 * @param x red, green or blue channel's value [0 ; 1] * @return the inverse gamma modified's value [0 ; 1] */ static inline double igamma2(double x) //g2 { - return x <= 0.039293 ? x / 12.92 : exp(log((x + 0.055011) / 1.055011) * sRGBGammaCurve); + // return x <= 0.039289 ? x / 12.92310 : exp(log((x + 0.055) / 1.055) * 2.39990);//calculate with calcgamma + // return x <= 0.04045 ? x / 12.92310 : exp(log((x + 0.055) / 1.055) * sRGBGammaCurve);//standard discontinuous + //very small differences between the 4 + return x <= 0.039286 ? x / 12.92310 : exp(log((x + 0.055) / 1.055) * sRGBGammaCurve);//continuous + // return x <= 0.039293 ? x / 12.92310 : exp(log((x + 0.055011) / 1.055011) * sRGBGammaCurve);//continuous + } diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 75b32c83c..a7a769d93 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -1102,7 +1102,7 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, // only for lamp different of tungstene // first calcul with illuminant (choice) // and calcul with : blackbody at equivalent temp of lamp - // CRI_color-1 = dispaly Lab values of color CRI_color -1 + // CRI_color-1 = display Lab values of color CRI_color -1 const double whiteD50[3] = {0.9646019585, 1.0, 0.8244507152}; //calculate with this tool : spect 5nm double CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22; //for CIECAT02 double Xchk[50], Ychk[50], Zchk[50]; //50 : I think it's a good limit for number of color : for CRI and Palette diff --git a/rtengine/curves.h b/rtengine/curves.h index 6b5119a26..3e6c52734 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -267,19 +267,19 @@ public: // standard srgb gamma and its inverse static inline double gamma2(double x) { - return x <= 0.00304 ? x * 12.92 : 1.055 * exp(log(x) / sRGBGammaCurve) - 0.055; + return x <= 0.00304 ? x * 12.92310 : 1.055 * exp(log(x) / sRGBGammaCurve) - 0.055; } static inline double igamma2(double x) { - return x <= 0.03928 ? x / 12.92 : exp(log((x + 0.055) / 1.055) * sRGBGammaCurve); + return x <= 0.03928 ? x / 12.92310 : exp(log((x + 0.055) / 1.055) * sRGBGammaCurve); } static inline float gamma2(float x) { - return x <= 0.00304 ? x * 12.92 : 1.055 * expf(logf(x) / sRGBGammaCurve) - 0.055; + return x <= 0.00304 ? x * 12.92310 : 1.055 * expf(logf(x) / sRGBGammaCurve) - 0.055; } static inline float igamma2(float x) { - return x <= 0.03928 ? x / 12.92 : expf(logf((x + 0.055) / 1.055) * sRGBGammaCurve); + return x <= 0.03928 ? x / 12.92310 : expf(logf((x + 0.055) / 1.055) * sRGBGammaCurve); } // gamma function with adjustable parameters static inline double gamma(double x, double gamma, double start, double slope, double mul, double add) @@ -462,6 +462,7 @@ protected: DiagonalCurveType kind; void spline_cubic_set(); + void catmull_rom_set(); void NURBS_set(); public: diff --git a/rtengine/dcp.cc b/rtengine/dcp.cc index ec65a030a..c18ee8915 100644 --- a/rtengine/dcp.cc +++ b/rtengine/dcp.cc @@ -1813,7 +1813,7 @@ void DCPStore::init(const Glib::ustring& rt_profile_dir, bool loadAll) try { if (!Glib::file_test(dirname, Glib::FILE_TEST_IS_DIR)) { - return; + continue; } dir.reset(new Glib::Dir(dirname)); diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 05f1a32a2..bd9fa4b47 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -27,10 +27,12 @@ #include #include #include "opthelper.h" +//#define BENCHMARK +#include "StopWatch.h" /* dcraw.c -- Dave Coffin's raw photo decoder - Copyright 1997-2016 by Dave Coffin, dcoffin a cybercom o net + Copyright 1997-2018 by Dave Coffin, dcoffin a cybercom o net This is a command-line ANSI C program to convert raw photos from any digital camera on any computer running any operating system. @@ -49,11 +51,11 @@ *If you have not modified dcraw.c in any way, a link to my homepage qualifies as "full source code". - $Revision: 1.477 $ - $Date: 2016/05/10 21:30:43 $ + $Revision: 1.478 $ + $Date: 2018/06/01 20:36:25 $ */ -#define DCRAW_VERSION "9.27" +#define DCRAW_VERSION "9.28" #ifndef _GNU_SOURCE #define _GNU_SOURCE @@ -602,6 +604,36 @@ inline unsigned CLASS getbithuff_t::operator() (int nbits, ushort *huff) #define getbits(n) getbithuff(n,0) #define gethuff(h) getbithuff(*h,h+1) +inline unsigned CLASS nikbithuff_t::operator() (int nbits, ushort *huff) +{ + unsigned c; + + if (UNLIKELY(nbits == 0)) { + return 0; + } + if (vbits < nbits && LIKELY((c = fgetc(ifp)) != EOF)) { + bitbuf = (bitbuf << 8) | c; + vbits += 8; + if (vbits < nbits && LIKELY((c = fgetc(ifp)) != EOF)) { + bitbuf = (bitbuf << 8) | c; + vbits += 8; + } + } + c = bitbuf << (32-vbits) >> (32-nbits); + if (huff) { + vbits -= huff[c] >> 8; + c = (uchar) huff[c]; + derror(vbits < 0); + } else { + vbits -= nbits; + } + return c; +} + +#define nikinit(n) nikbithuff() +#define nikbits(n) nikbithuff(n,0) +#define nikhuff(h) nikbithuff(*h,h+1) + /* Construct a decode tree according the specification in *source. The first 16 bytes specify how many codes should be 1-bit, 2-bit @@ -1104,7 +1136,7 @@ void CLASS lossless_dng_load_raw() fseek (ifp, get4(), SEEK_SET); if (!ljpeg_start (&jh, 0)) break; jwide = jh.wide; - if (filters) jwide *= jh.clrs; + if (filters || (colors == 1 && jh.clrs > 1)) jwide *= jh.clrs; jwide /= MIN (is_raw, tiff_samples); switch (jh.algo) { case 0xc1: @@ -1188,67 +1220,101 @@ void CLASS pentax_load_raw() void CLASS nikon_load_raw() { - static const uchar nikon_tree[][32] = { - { 0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0, /* 12-bit lossy */ - 5,4,3,6,2,7,1,0,8,9,11,10,12 }, - { 0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0, /* 12-bit lossy after split */ - 0x39,0x5a,0x38,0x27,0x16,5,4,3,2,1,0,11,12,12 }, - { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0, /* 12-bit lossless */ - 5,4,6,3,7,2,8,1,9,0,10,11,12 }, - { 0,1,4,3,1,1,1,1,1,2,0,0,0,0,0,0, /* 14-bit lossy */ - 5,6,4,7,8,3,9,2,1,0,10,11,12,13,14 }, - { 0,1,5,1,1,1,1,1,1,1,2,0,0,0,0,0, /* 14-bit lossy after split */ - 8,0x5c,0x4b,0x3a,0x29,7,6,5,4,3,2,1,0,13,14 }, - { 0,1,4,2,2,3,1,2,0,0,0,0,0,0,0,0, /* 14-bit lossless */ - 7,6,8,5,9,4,10,3,11,12,2,0,1,13,14 } }; - ushort *huff, ver0, ver1, vpred[2][2], hpred[2], csize; - int i, min, max, step=0, tree=0, split=0, row, col, len, shl, diff; + static const uchar nikon_tree[][32] = { + { 0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0, /* 12-bit lossy */ + 5,4,3,6,2,7,1,0,8,9,11,10,12 }, + { 0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0, /* 12-bit lossy after split */ + 0x39,0x5a,0x38,0x27,0x16,5,4,3,2,1,0,11,12,12 }, + { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0, /* 12-bit lossless */ + 5,4,6,3,7,2,8,1,9,0,10,11,12 }, + { 0,1,4,3,1,1,1,1,1,2,0,0,0,0,0,0, /* 14-bit lossy */ + 5,6,4,7,8,3,9,2,1,0,10,11,12,13,14 }, + { 0,1,5,1,1,1,1,1,1,1,2,0,0,0,0,0, /* 14-bit lossy after split */ + 8,0x5c,0x4b,0x3a,0x29,7,6,5,4,3,2,1,0,13,14 }, + { 0,1,4,2,2,3,1,2,0,0,0,0,0,0,0,0, /* 14-bit lossless */ + 7,6,8,5,9,4,10,3,11,12,2,0,1,13,14 } }; + ushort *huff, ver0, ver1, vpred[2][2], hpred[2], csize; + int max, step=0, tree=0, split=0; - fseek (ifp, meta_offset, SEEK_SET); - ver0 = fgetc(ifp); - ver1 = fgetc(ifp); - if (ver0 == 0x49 || ver1 == 0x58) - fseek (ifp, 2110, SEEK_CUR); - if (ver0 == 0x46) tree = 2; - if (tiff_bps == 14) tree += 3; - read_shorts (vpred[0], 4); - max = 1 << tiff_bps & 0x7fff; - if ((csize = get2()) > 1) - step = max / (csize-1); - if (ver0 == 0x44 && ver1 == 0x20 && step > 0) { - for (i=0; i < csize; i++) - curve[i*step] = get2(); - for (i=0; i < max; i++) - curve[i] = ( curve[i-i%step]*(step-i%step) + - curve[i-i%step+step]*(i%step) ) / step; - fseek (ifp, meta_offset+562, SEEK_SET); - split = get2(); - } else if (ver0 != 0x46 && csize <= 0x4001) - read_shorts (curve, max=csize); - while (curve[max-2] == curve[max-1]) max--; - huff = make_decoder (nikon_tree[tree]); - fseek (ifp, data_offset, SEEK_SET); - getbits(-1); - for (min=row=0; row < height; row++) { - if (split && row == split) { - free (huff); - huff = make_decoder (nikon_tree[tree+1]); - max += (min = 16) << 1; + fseek (ifp, meta_offset, SEEK_SET); + ver0 = fgetc(ifp); + ver1 = fgetc(ifp); + if (ver0 == 0x49 || ver1 == 0x58) + fseek (ifp, 2110, SEEK_CUR); + if (ver0 == 0x46) tree = 2; + if (tiff_bps == 14) tree += 3; + read_shorts (vpred[0], 4); + max = 1 << tiff_bps & 0x7fff; + if ((csize = get2()) > 1) + step = max / (csize-1); + if (ver0 == 0x44 && ver1 == 0x20 && step > 0) { + for (int i=0; i < csize; i++) + curve[i*step] = get2(); + for (int i=0; i < max; i++) + curve[i] = ( curve[i-i%step]*(step-i%step) + + curve[i-i%step+step]*(i%step) ) / step; + fseek (ifp, meta_offset+562, SEEK_SET); + split = get2(); + } else if (ver0 != 0x46 && csize <= 0x4001) + read_shorts (curve, max=csize); + while (curve[max-2] == curve[max-1]) max--; + + // instead of accessing curve[LIM((short)hpred[col & 1],0,0x3fff)] in the inner loop, we just fill the curve with the correct values and access curve[hpred[col & 1]] + for(int i = 0x4000; i < 0x8000; ++i) + curve[i] = curve[0x3fff]; + for(int i = 0x8000; i < 0x10000; ++i) + curve[i] = curve[0]; + + huff = make_decoder (nikon_tree[tree]); + fseek (ifp, data_offset, SEEK_SET); + nikinit(); + if (split) { + for (int min = 0, row = 0; row < height; row++) { + if (row == split) { + free (huff); + huff = make_decoder (nikon_tree[tree+1]); + max += (min = 16) << 1; + } + for (int col=0; col < raw_width; col++) { + int i = nikhuff(huff); + int len = i & 15; + int shl = i >> 4; + int diff = ((nikbits(len-shl) << 1) + 1) << shl >> 1; + if ((diff & (1 << (len-1))) == 0) + diff -= (1 << len) - !shl; + if (col < 2) hpred[col] = vpred[row & 1][col] += diff; + else hpred[col & 1] += diff; + derror((ushort)(hpred[col & 1] + min) >= max); + RAW(row,col) = curve[hpred[col & 1]]; + } + } + } else { + for (int row=0; row < height; row++) { + for (int col=0; col < 2; col++) { + int len = nikhuff(huff); + int diff = nikbits(len); + if ((diff & (1 << (len-1))) == 0) + diff -= (1 << len) - 1; + hpred[col] = vpred[row & 1][col] += diff; + derror(hpred[col] >= max); + RAW(row,col) = curve[hpred[col]]; + } + for (int col=2; col < raw_width; col++) { + int len = nikhuff(huff); + int diff = nikbits(len); + if ((diff & (1 << (len-1))) == 0) + diff -= (1 << len) - 1; + hpred[col & 1] += diff; + derror(hpred[col & 1] >= max); + RAW(row,col) = curve[hpred[col & 1]]; + } + } } - for (col=0; col < raw_width; col++) { - i = gethuff(huff); - len = i & 15; - shl = i >> 4; - diff = ((getbits(len-shl) << 1) + 1) << shl >> 1; - if ((diff & (1 << (len-1))) == 0) - diff -= (1 << len) - !shl; - if (col < 2) hpred[col] = vpred[row & 1][col] += diff; - else hpred[col & 1] += diff; - if ((ushort)(hpred[col & 1] + min) >= max) derror(); - RAW(row,col) = curve[LIM((short)hpred[col & 1],0,0x3fff)]; + free (huff); + data_error += nikbithuff.errorCount(); + if(data_error) { + std::cerr << ifname << " decoded with " << data_error << " errors. File possibly corrupted." << std::endl; } - } - free (huff); } void CLASS nikon_yuv_load_raw() @@ -2010,7 +2076,7 @@ void CLASS parse_hasselblad_gain() hbd.unknown1 = offset ? base + offset : 0; fseek(ifp, 32, SEEK_CUR); offset = get4(); - hbd.flatfield = offset ? base + offset : 0; + hbd.flatfield = (offset && (base + offset < ifp->size)) ? base + offset : 0; } void CLASS hasselblad_correct() @@ -2080,8 +2146,12 @@ void CLASS hasselblad_correct() ffcols = get2(); ffrows = get2(); fseek(ifp, hbd.flatfield + 16 * 2, SEEK_SET); + unsigned toRead = sizeof(ushort) * 4 * ffcols * ffrows; + if (toRead > ifp->size) { // there must be something wrong, see Issue #4748 + return; + } - ushort *ffmap = (ushort *)malloc(sizeof(*ffmap) * 4 * ffcols * ffrows); + ushort *ffmap = (ushort *)malloc(toRead); for (i = 0; i < 4 * ffcols * ffrows; i++) ffmap[i] = get2(); /* Get reference values from center of field. This seems to be what Phocus does too, @@ -2432,10 +2502,10 @@ void CLASS packed_load_raw() UINT64 bitbuf=0; bwide = raw_width * tiff_bps / 8; - bwide += bwide & load_flags >> 7; + bwide += bwide & load_flags >> 9; rbits = bwide * 8 - raw_width * tiff_bps; if (load_flags & 1) bwide = bwide * 16 / 15; - bite = 8 + (load_flags & 24); + bite = 8 + (load_flags & 56); half = (raw_height+1) >> 1; for (irow=0; irow < raw_height; irow++) { row = irow; @@ -2453,10 +2523,10 @@ void CLASS packed_load_raw() for (vbits -= tiff_bps; vbits < 0; vbits += bite) { bitbuf <<= bite; for (i=0; i < bite; i+=8) - bitbuf |= (unsigned) (fgetc(ifp) << i); + bitbuf |= ((UINT64) fgetc(ifp) << i); } val = bitbuf << (64-tiff_bps-vbits) >> (64-tiff_bps); - RAW(row,col ^ (load_flags >> 6 & 1)) = val; + RAW(row,col ^ (load_flags >> 6 & 3)) = val; if (load_flags & 1 && (col % 10) == 9 && fgetc(ifp) && row < height+top_margin && col < width+left_margin) derror(); } @@ -2896,7 +2966,7 @@ void CLASS lossy_dng_load_raw() } order = sorder; } else { - gamma_curve (1/2.4, 12.92, 1, 255); + gamma_curve (1/2.4, 12.92310, 1, 255); FORC3 memcpy (cur[c], curve, sizeof cur[0]); } cinfo.err = jpeg_std_error (&jerr); @@ -4334,7 +4404,7 @@ void CLASS crop_masked_pixels() load_raw == &CLASS sony_load_raw || (load_raw == &CLASS eight_bit_load_raw && strncmp(model,"DC2",3)) || load_raw == &CLASS kodak_262_load_raw || - (load_raw == &CLASS packed_load_raw && (load_flags & 32))) { + (load_raw == &CLASS packed_load_raw && (load_flags & 256))) { sides: mask[0][0] = mask[1][0] = top_margin; mask[0][2] = mask[1][2] = top_margin+height; @@ -5974,14 +6044,13 @@ int CLASS parse_tiff_ifd (int base) case 258: /* BitsPerSample */ case 61443: tiff_ifd[ifd].samples = len & 7; - tiff_ifd[ifd].bps = getint(type); + if ((tiff_ifd[ifd].bps = getint(type)) > 32) + tiff_ifd[ifd].bps = 8; if (tiff_bps < tiff_ifd[ifd].bps) tiff_bps = tiff_ifd[ifd].bps; break; case 61446: raw_height = 0; - if (tiff_ifd[ifd].bps > 12) break; - load_raw = &CLASS packed_load_raw; load_flags = get4() ? 24:80; break; case 259: /* Compression */ @@ -6548,6 +6617,7 @@ void CLASS apply_tiff() case 32767: if (tiff_ifd[raw].bytes == raw_width*raw_height) { tiff_bps = 12; + maximum = 4095; load_raw = &CLASS sony_arw2_load_raw; break; } if (tiff_ifd[raw].bytes*8 != raw_width*raw_height*tiff_bps) { @@ -6563,7 +6633,9 @@ void CLASS apply_tiff() if (!strncmp(make,"OLYMPUS",7) && tiff_ifd[raw].bytes*2 == raw_width*raw_height*3) load_flags = 24; - if (tiff_ifd[raw].bytes*5 == raw_width*raw_height*8) { + if (!strcmp(make,"SONY") && tiff_bps < 14 && + tiff_ifd[raw].bytes == raw_width*raw_height*2) + tiff_bps = 14; if (tiff_ifd[raw].bytes*5 == raw_width*raw_height*8) { load_flags = 81; tiff_bps = 12; } slr: @@ -6577,7 +6649,9 @@ void CLASS apply_tiff() load_raw = &CLASS packed_load_raw; break; } - case 14: load_flags = 0; + case 14: load_raw = &CLASS packed_load_raw; + if (tiff_ifd[raw].bytes*4 == raw_width*raw_height*7) break; + load_flags = 0; case 16: load_raw = &CLASS unpacked_load_raw; if (!strncmp(make,"OLYMPUS",7) && tiff_ifd[raw].bytes*7 > raw_width*raw_height) @@ -6594,6 +6668,9 @@ void CLASS apply_tiff() } // ------------------ } +// if (filters == 9 && tiff_ifd[raw].bytes*8 < raw_width*raw_height*tiff_bps) +// load_raw = &CLASS fuji_xtrans_load_raw; + break; case 6: case 7: case 99: load_raw = &CLASS lossless_jpeg_load_raw; break; @@ -6608,7 +6685,7 @@ void CLASS apply_tiff() if (model[0] == 'N') load_flags = 80; } else if (raw_width*raw_height*3 == tiff_ifd[raw].bytes) { load_raw = &CLASS nikon_yuv_load_raw; - gamma_curve (1/2.4, 12.92, 1, 4095); + gamma_curve (1/2.4, 12.92310, 1, 4095); memset (cblack, 0, sizeof cblack); filters = 0; } else if (raw_width*raw_height*2 == tiff_ifd[raw].bytes) { @@ -7052,7 +7129,7 @@ void CLASS parse_fuji (int offset) FORC(36) xtrans_abs[0][35-c] = fgetc(ifp) & 3; } else if (tag == 0x2ff0) { FORC4 cam_mul[c ^ 1] = get2(); - } else if (tag == 0xc000) { + } else if (tag == 0xc000 && len > 20000) { c = order; order = 0x4949; while ((tag = get4()) > raw_width); @@ -7378,12 +7455,16 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } }, { "Canon EOS 5DS", 0, 0x3c96, { 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 } }, + { "Canon EOS 5D Mark IV", 0, 0, + { 6446,-366,-864,-4436,12204,2513,-952,2496,6348 } }, { "Canon EOS 5D Mark III", 0, 0x3c80, { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } }, { "Canon EOS 5D Mark II", 0, 0x3cf0, { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } }, { "Canon EOS 5D", 0, 0xe6c, { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } }, + { "Canon EOS 6D Mark II", 0, 0, + { 6875,-970,-932,-4691,12459,2501,-874,1953,5809 } }, { "Canon EOS 6D", 0, 0x3c82, { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } }, { "Canon EOS 7D Mark II", 0, 0x3510, @@ -7406,10 +7487,14 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } }, { "Canon EOS 70D", 0, 0x3bc7, { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } }, + { "Canon EOS 77D", 0, 0, + { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } }, { "Canon EOS 80D", 0, 0, { 7457,-671,-937,-4849,12495,2643,-1213,2354,5492 } }, { "Canon EOS 100D", 0, 0x350f, { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } }, + { "Canon EOS 200D", 0, 0, + { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } }, { "Canon EOS 300D", 0, 0xfa0, { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } }, { "Canon EOS 350D", 0, 0xfff, @@ -7432,6 +7517,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } }, { "Canon EOS 760D", 0, 0x350f, { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } }, + { "Canon EOS 800D", 0, 0, + { 6970,-512,-968,-4425,12161,2553,-739,1982,5601 } }, { "Canon EOS 1000D", 0, 0xe43, { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } }, { "Canon EOS 1100D", 0, 0x3510, @@ -7440,8 +7527,18 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } }, { "Canon EOS 1300D", 0, 0x3510, { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } }, + { "Canon EOS 1500D", 0, 0, + { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } }, + { "Canon EOS 3000D", 0, 0, + { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } }, + { "Canon EOS M6", 0, 0, + { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } }, + { "Canon EOS M5", 0, 0, /* also M50 */ + { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } }, { "Canon EOS M3", 0, 0, { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } }, + { "Canon EOS M100", 0, 0, + { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } }, { "Canon EOS M10", 0, 0, { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } }, { "Canon EOS M", 0, 0, @@ -7486,6 +7583,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 7474,-2301,-567,-4056,11456,2975,-222,716,4181 } }, { "Canon PowerShot G16", 0, 0, { 8020,-2687,-682,-3704,11879,2052,-965,1921,5556 } }, + { "Canon PowerShot G1 X Mark III", 0, 0, + { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } }, { "Canon PowerShot G1 X", 0, 0, { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } }, { "Canon PowerShot G1", 0, 0, @@ -7504,6 +7603,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 9877,-3775,-871,-7613,14807,3072,-1448,1305,7485 } }, { "Canon PowerShot G7 X", 0, 0, { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } }, + { "Canon PowerShot G9 X Mark II", 0, 0, + { 10056,-4131,-944,-2576,11143,1625,-238,1294,5179 } }, { "Canon PowerShot G9 X", 0, 0, { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } }, { "Canon PowerShot G9", 0, 0, @@ -7598,6 +7699,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } }, { "Fujifilm F8", 0, 0, { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } }, + { "Fujifilm GFX 50S", 0, 0, + { 11756,-4754,-874,-3056,11045,2305,-381,1457,6006 } }, { "Fujifilm S100FS", 514, 0, { 11521,-4355,-1065,-6524,13767,3058,-1466,1984,6045 } }, { "Fujifilm S1", 0, 0, @@ -7606,9 +7709,9 @@ void CLASS adobe_coeff (const char *make, const char *model) { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } }, { "Fujifilm S20", 512, 0x3fff, { 11401,-4498,-1312,-5088,12751,2613,-838,1568,5941 } }, - { "Fujifilm S2Pro", 128, 0, + { "Fujifilm S2Pro", 128, 0xf15, { 12492,-4690,-1402,-7033,15423,1647,-1507,2111,7697 } }, - { "Fujifilm S3Pro", 0, 0, + { "Fujifilm S3Pro", 0, 0x3dff, { 11807,-4612,-1294,-8927,16968,1988,-2120,2741,8006 } }, { "Fujifilm S5Pro", 0, 0, { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } }, @@ -7642,7 +7745,7 @@ void CLASS adobe_coeff (const char *make, const char *model) { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } }, { "Fujifilm HS10 HS11", 0, 0xf68, { 12440,-3954,-1183,-1123,9674,1708,-83,1614,4086 } }, - { "Fujifilm HS2", 0, 0, + { "Fujifilm HS2", 0, 0xfef, { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } }, { "Fujifilm HS3", 0, 0, { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } }, @@ -7650,6 +7753,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } }, { "Fujifilm F900EXR", 0, 0, { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } }, + { "Fujifilm X100F", 0, 0, + { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } }, { "Fujifilm X100S", 0, 0, { 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 } }, { "Fujifilm X100T", 0, 0, @@ -7668,26 +7773,42 @@ void CLASS adobe_coeff (const char *make, const char *model) { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } }, { "Fujifilm X-Pro2", 0, 0, { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } }, + { "Fujifilm X-A10", 0, 0, + { 11540,-4999,-991,-2949,10963,2278,-382,1049,5605 } }, + { "Fujifilm X-A20", 0, 0, + { 11540,-4999,-991,-2949,10963,2278,-382,1049,5605 } }, { "Fujifilm X-A1", 0, 0, { 11086,-4555,-839,-3512,11310,2517,-815,1341,5940 } }, { "Fujifilm X-A2", 0, 0, { 10763,-4560,-917,-3346,11311,2322,-475,1135,5843 } }, + { "Fujifilm X-A3", 0, 0, + { 12407,-5222,-1086,-2971,11116,2120,-294,1029,5284 } }, + { "Fujifilm X-A5", 0, 0, + { 11673,-4760,-1041,-3988,12058,2166,-771,1417,5569 } }, { "Fujifilm X-E1", 0, 0, { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } }, { "Fujifilm X-E2S", 0, 0, { 11562,-5118,-961,-3022,11007,2311,-525,1569,6097 } }, { "Fujifilm X-E2", 0, 0, { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } }, + { "Fujifilm X-E3", 0, 0, + { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } }, + { "Fujifilm X-H1", 0, 0, + { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } }, { "Fujifilm X-M1", 0, 0, { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } }, { "Fujifilm X-S1", 0, 0, { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } }, { "Fujifilm X-T1", 0, 0, /* also X-T10 */ { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } }, + { "Fujifilm X-T2", 0, 0, /* also X-T20 */ + { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } }, { "Fujifilm XF1", 0, 0, { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } }, { "Fujifilm XQ", 0, 0, /* XQ1 and XQ2 */ { 9252,-2704,-1064,-5893,14265,1717,-1101,2341,4349 } }, + { "GoPro HERO5 Black", 0, 0, + { 10344,-4210,-620,-2315,10625,1948,93,1058,5541 } }, { "Imacon Ixpress", 0, 0, /* DJC */ { 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } }, { "Kodak NC2000", 0, 0, @@ -7800,6 +7921,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 7013,-1408,-635,-5268,12902,2640,-1470,2801,7379 } }, { "Nikon D3300", 0, 0, { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } }, + { "Nikon D3400", 0, 0, + { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } }, { "Nikon D300", 0, 0, { 9030,-1992,-715,-8465,16302,2255,-2689,3217,8069 } }, { "Nikon D3X", 0, 0, @@ -7828,6 +7951,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } }, { "Nikon D5500", 0, 0, { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } }, + { "Nikon D5600", 0, 0, + { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } }, { "Nikon D500", 0, 0, { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } }, { "Nikon D50", 0, 0, @@ -7846,12 +7971,16 @@ void CLASS adobe_coeff (const char *make, const char *model) { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } }, { "Nikon D7200", 0, 0, { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } }, + { "Nikon D7500", 0, 0, + { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } }, { "Nikon D750", 0, 0, { 9020,-2890,-715,-4535,12436,2348,-934,1919,7086 } }, { "Nikon D700", 0, 0, { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } }, { "Nikon D70", 0, 0, { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } }, + { "Nikon D850", 0, 0, + { 10405,-3755,-1270,-5461,13787,1793,-1040,2015,6785 } }, { "Nikon D810", 0, 0, { 9369,-3195,-791,-4488,12430,2301,-893,1796,6872 } }, { "Nikon D800", 0, 0, @@ -7892,6 +8021,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } }, { "Nikon COOLPIX A", 0, 0, { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } }, + { "Nikon COOLPIX B700", 200, 0, + { 14387,-6014,-1299,-1357,9975,1616,467,1047,4744 } }, { "Nikon COOLPIX P330", 200, 0, { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } }, { "Nikon COOLPIX P340", 200, 0, @@ -7990,12 +8121,18 @@ void CLASS adobe_coeff (const char *make, const char *model) { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } }, { "Olympus E-PL7", 0, 0, { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } }, + { "Olympus E-PL8", 0, 0, + { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } }, + { "Olympus E-PL9", 0, 0, + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } }, { "Olympus E-PM1", 0, 0, { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } }, { "Olympus E-PM2", 0, 0, { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } }, - { "Olympus E-M10", 0, 0, /* also E-M10 Mark II */ + { "Olympus E-M10", 0, 0, /* also E-M10 Mark II & III */ { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } }, + { "Olympus E-M1Mark II", 0, 0, + { 9383,-3170,-763,-2457,10702,2020,-384,1236,5552 } }, { "Olympus E-M1", 0, 0, { 7687,-1984,-606,-4327,11928,2721,-1381,2339,6452 } }, { "Olympus E-M5MarkII", 0, 0, @@ -8024,6 +8161,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 8360,-2420,-880,-3928,12353,1739,-1381,2416,5173 } }, { "Olympus TG-4", 0, 0, { 11426,-4159,-1126,-2066,10678,1593,-120,1327,4998 } }, + { "Olympus TG-5", 0, 0, + { 10899,-3833,-1082,-2112,10736,1575,-267,1452,5269 } }, { "Olympus XZ-10", 0, 0, { 9777,-3483,-925,-2886,11297,1800,-602,1663,5134 } }, { "Olympus XZ-1", 0, 0, @@ -8059,7 +8198,7 @@ void CLASS adobe_coeff (const char *make, const char *model) { "Pentax K-r", 0, 0, { 9895,-3077,-850,-5304,13035,2521,-883,1768,6936 } }, { "Pentax K-1", 0, 0, - { 8566,-2746,-1201,-3612,12204,1550,-893,1680,6264 } }, + { 8596,-2981,-639,-4202,12046,2431,-685,1424,6122 } }, { "Pentax K-30", 0, 0, { 8710,-2632,-1167,-3995,12301,1881,-981,1719,6535 } }, { "Pentax K-3 II", 0, 0, @@ -8070,37 +8209,45 @@ void CLASS adobe_coeff (const char *make, const char *model) { 8170,-2725,-639,-4440,12017,2744,-771,1465,6599 } }, { "Pentax K-5", 0, 0, { 8713,-2833,-743,-4342,11900,2772,-722,1543,6247 } }, + { "Pentax K-70", 0, 0, + { 8270,-2117,-1299,-4359,12953,1515,-1078,1933,5975 } }, { "Pentax K-7", 0, 0, { 9142,-2947,-678,-8648,16967,1663,-2224,2898,8615 } }, { "Pentax K-S1", 0, 0, { 8512,-3211,-787,-4167,11966,2487,-638,1288,6054 } }, { "Pentax K-S2", 0, 0, { 8662,-3280,-798,-3928,11771,2444,-586,1232,6054 } }, + { "Pentax KP", 0, 0, + { 8617,-3228,-1034,-4674,12821,2044,-803,1577,5728 } }, { "Pentax Q-S1", 0, 0, { 12995,-5593,-1107,-1879,10139,2027,-64,1233,4919 } }, { "Pentax 645D", 0, 0x3e00, { 10646,-3593,-1158,-3329,11699,1831,-667,2874,6287 } }, { "Panasonic DMC-CM1", 15, 0, { 8770,-3194,-820,-2871,11281,1803,-513,1552,4434 } }, + { "Panasonic DC-FZ80", 0, 0, + { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } }, { "Panasonic DMC-FZ8", 0, 0xf7f, { 8986,-2755,-802,-6341,13575,3077,-1476,2144,6379 } }, { "Panasonic DMC-FZ18", 0, 0, { 9932,-3060,-935,-5809,13331,2753,-1267,2155,5575 } }, { "Panasonic DMC-FZ28", 15, 0xf96, { 10109,-3488,-993,-5412,12812,2916,-1305,2140,5543 } }, + { "Panasonic DMC-FZ2500", 15, 0, + { 7386,-2443,-743,-3437,11864,1757,-608,1660,4766 } }, { "Panasonic DMC-FZ330", 15, 0, { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } }, { "Panasonic DMC-FZ300", 15, 0, { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } }, { "Panasonic DMC-FZ30", 0, 0xf94, { 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } }, - { "Panasonic DMC-FZ3", 15, 0, + { "Panasonic DMC-FZ3", 15, 0, /* FZ35, FZ38 */ { 9938,-2780,-890,-4604,12393,2480,-1117,2304,4620 } }, - { "Panasonic DMC-FZ4", 15, 0, + { "Panasonic DMC-FZ4", 15, 0, /* FZ40, FZ45 */ { 13639,-5535,-1371,-1698,9633,2430,316,1152,4108 } }, { "Panasonic DMC-FZ50", 0, 0, { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } }, - { "Panasonic DMC-FZ7", 15, 0, + { "Panasonic DMC-FZ7", 15, 0, /* FZ70, FZ72 */ { 11532,-4324,-1066,-2375,10847,1749,-564,1699,4351 } }, { "Leica V-LUX1", 0, 0, { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } }, @@ -8142,6 +8289,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } }, { "Leica D-LUX 6", 15, 0, { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } }, + { "Panasonic DMC-LX9", 15, 0, + { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } }, { "Panasonic DMC-FZ1000", 15, 0, { 7830,-2696,-763,-3325,11667,1866,-641,1712,4824 } }, { "Leica V-LUX (Typ 114)", 15, 0, @@ -8174,6 +8323,10 @@ void CLASS adobe_coeff (const char *make, const char *model) { 8294,-2891,-651,-3869,11590,2595,-1183,2267,5352 } }, { "Panasonic DMC-G7", 15, 0xfff, { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } }, + { "Panasonic DMC-G8", 15, 0xfff, /* G8, G80, G81, G85 */ + { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } }, + { "Panasonic DC-G9", 15, 0xfff, + { 7685,-2375,-634,-3687,11700,2249,-748,1546,5111 } }, { "Panasonic DMC-GF1", 15, 0xf92, { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } }, { "Panasonic DMC-GF2", 15, 0xfff, @@ -8188,6 +8341,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } }, { "Panasonic DMC-GF8", 15, 0, { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } }, + { "Panasonic DC-GF9", 15, 0, + { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } }, { "Panasonic DMC-GH1", 15, 0xf92, { 6299,-1466,-532,-6535,13852,2969,-2331,3112,5984 } }, { "Panasonic DMC-GH2", 15, 0xf95, @@ -8196,6 +8351,10 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6559,-1752,-491,-3672,11407,2586,-962,1875,5130 } }, { "Panasonic DMC-GH4", 15, 0, { 7122,-2108,-512,-3155,11201,2231,-541,1423,5045 } }, + { "Panasonic DC-GH5S", 15, 0, + { 6929,-2355,-708,-4192,12534,1828,-1097,1989,5195 } }, + { "Panasonic DC-GH5", 15, 0, + { 7641,-2336,-605,-3218,11299,2187,-485,1338,5121 } }, { "Panasonic DMC-GM1", 15, 0, { 6770,-1895,-744,-5232,13145,2303,-1664,2691,5703 } }, { "Panasonic DMC-GM5", 15, 0, @@ -8204,24 +8363,26 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } }, { "Panasonic DMC-GX7", 15, 0, { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } }, + { "Panasonic DMC-GX85", 15, 0, + { 7771,-3020,-629,-4029,11950,2345,-821,1977,6119 } }, { "Panasonic DMC-GX8", 15, 0, { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } }, - { "Panasonic DMC-TZ1", 15, 0, + { "Panasonic DC-GX9", 15, 0, + { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } }, + { "Panasonic DMC-ZS100", 15, 0, { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } }, - { "Panasonic DMC-ZS1", 15, 0, + { "Panasonic DC-ZS200", 15, 0, { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } }, - { "Panasonic DMC-TZ6", 15, 0, + { "Panasonic DMC-ZS40", 15, 0, { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } }, - { "Panasonic DMC-ZS4", 15, 0, - { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } }, - { "Panasonic DMC-TZ7", 15, 0, + { "Panasonic DMC-ZS50", 15, 0, { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } }, - { "Panasonic DMC-ZS5", 15, 0, - { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } }, - { "Panasonic DMC-TZ8", 15, 0, + { "Panasonic DMC-TZ82", 15, 0, { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } }, { "Panasonic DMC-ZS6", 15, 0, { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } }, + { "Panasonic DMC-ZS70", 15, 0, + { 9052,-3117,-883,-3045,11346,1927,-205,1520,4730 } }, { "Leica S (Typ 007)", 0, 0, { 6063,-2234,-231,-5210,13787,1500,-1043,2866,6997 } }, { "Leica X", 0, 0, /* X and X-U, both (Typ 113) */ @@ -8231,7 +8392,15 @@ void CLASS adobe_coeff (const char *make, const char *model) { "Leica M (Typ 262)", 0, 0, { 6653,-1486,-611,-4221,13303,929,-881,2416,7226 } }, { "Leica SL (Typ 601)", 0, 0, - { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830} }, + { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830 } }, + { "Leica TL2", 0, 0, + { 5836,-1626,-647,-5384,13326,2261,-1207,2129,5861 } }, + { "Leica TL", 0, 0, + { 5463,-988,-364,-4634,12036,2946,-766,1389,6522 } }, + { "Leica CL", 0, 0, + { 7414,-2393,-840,-5127,13180,2138,-1585,2468,5064 } }, + { "Leica M10", 0, 0, + { 8249,-2849,-620,-5415,14756,565,-957,3074,6517 } }, { "Phase One H 20", 0, 0, /* DJC */ { 1313,1855,-109,-6715,15908,808,-327,1840,6020 } }, { "Phase One H 25", 0, 0, @@ -8302,16 +8471,20 @@ void CLASS adobe_coeff (const char *make, const char *model) { 8512,-2641,-694,-8042,15670,2526,-1821,2117,7414 } }, { "Sony DSC-V3", 0, 0, { 7511,-2571,-692,-7894,15088,3060,-948,1111,8128 } }, - { "Sony DSC-RX100M", 0, 0, /* M2, M3, and M4 */ + { "Sony DSC-RX100M", 0, 0, /* M2, M3, M4, and M5 */ { 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 } }, { "Sony DSC-RX100", 0, 0, { 8651,-2754,-1057,-3464,12207,1373,-568,1398,4434 } }, - { "Sony DSC-RX10", 0, 0, + { "Sony DSC-RX10M4", 0, 0, + { 7699,-2566,-629,-2967,11270,1928,-378,1286,4807 } }, + { "Sony DSC-RX10", 0, 0, /* also RX10M2, RX10M3 */ { 6679,-1825,-745,-5047,13256,1953,-1580,2422,5183 } }, { "Sony DSC-RX1RM2", 0, 0, { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } }, { "Sony DSC-RX1", 0, 0, { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } }, + { "Sony DSC-RX0", 200, 0, + { 9396,-3507,-843,-2497,11111,1572,-343,1355,5089 } }, { "Sony DSLR-A100", 0, 0xfeb, { 9437,-2811,-774,-8405,16215,2290,-710,596,7181 } }, { "Sony DSLR-A290", 0, 0, @@ -8346,18 +8519,26 @@ void CLASS adobe_coeff (const char *make, const char *model) { 6435,-1903,-536,-4722,12449,2550,-663,1363,6517 } }, { "Sony ILCA-77M2", 0, 0, { 5991,-1732,-443,-4100,11989,2381,-704,1467,5992 } }, - { "Sony ILCE-6300", 0, 0, + { "Sony ILCA-99M2", 0, 0, + { 6660,-1918,-471,-4613,12398,2485,-649,1433,6447 } }, + { "Sony ILCE-6", 0, 0, /* 6300, 6500 */ { 5973,-1695,-419,-3826,11797,2293,-639,1398,5789 } }, { "Sony ILCE-7M2", 0, 0, { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } }, + { "Sony ILCE-7M3", 0, 0, + { 7374,-2389,-551,-5435,13162,2519,-1006,1795,6552 } }, { "Sony ILCE-7S", 0, 0, /* also ILCE-7SM2 */ { 5838,-1430,-246,-3497,11477,2297,-748,1885,5778 } }, + { "Sony ILCE-7RM3", 0, 0, + { 6640,-1847,-503,-5238,13010,2474,-993,1673,6527 } }, { "Sony ILCE-7RM2", 0, 0, { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } }, { "Sony ILCE-7R", 0, 0, { 4913,-541,-202,-6130,13513,2906,-1564,2151,7183 } }, { "Sony ILCE-7", 0, 0, { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } }, + { "Sony ILCE-9", 0, 0, + { 6389,-1703,-378,-4562,12265,2587,-670,1489,6550 } }, { "Sony ILCE", 0, 0, /* 3000, 5000, 5100, 6000, and QX1 */ { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } }, { "Sony NEX-5N", 0, 0, @@ -8400,6 +8581,8 @@ void CLASS adobe_coeff (const char *make, const char *model) { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } }, { "Sony SLT-A99", 0, 0, { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } }, + { "YI M1", 0, 0, + { 7712,-2059,-653,-3882,11494,2726,-710,1332,5958 } }, }; double cam_xyz[4][3]; char name[130]; @@ -8582,8 +8765,11 @@ void CLASS identify() { 5712, 3774, 62, 20, 10, 2 }, { 5792, 3804, 158, 51, 0, 0 }, { 5920, 3950, 122, 80, 2, 0 }, + { 6096, 4051, 76, 35, 0, 0 }, { 6096, 4056, 72, 34, 0, 0 }, - { 6288, 4056, 264, 34, 0, 0 }, + { 6288, 4056, 264, 36, 0, 0 }, + { 6384, 4224, 120, 44, 0, 0 }, + { 6880, 4544, 136, 42, 0, 0 }, { 8896, 5920, 160, 64, 0, 0 }, }; static const struct { @@ -8597,7 +8783,10 @@ void CLASS identify() { 0x261, "EOS 50D" }, { 0x281, "EOS-1D Mark IV" }, { 0x287, "EOS 60D" }, { 0x167, "EOS-1DS" }, { 0x325, "EOS 70D" }, + { 0x408, "EOS 77D" }, { 0x331, "EOS M" }, { 0x350, "EOS 80D" }, { 0x328, "EOS-1D X Mark II" }, + { 0x346, "EOS 100D" }, + { 0x417, "EOS 200D" }, { 0x170, "EOS 300D" }, { 0x188, "EOS-1Ds Mark II" }, { 0x176, "EOS 450D" }, { 0x215, "EOS-1Ds Mark III" }, { 0x189, "EOS 350D" }, { 0x324, "EOS-1D C" }, @@ -8608,12 +8797,14 @@ void CLASS identify() { 0x301, "EOS 650D" }, { 0x302, "EOS 6D" }, { 0x326, "EOS 700D" }, { 0x250, "EOS 7D" }, { 0x393, "EOS 750D" }, { 0x289, "EOS 7D Mark II" }, - { 0x347, "EOS 760D" }, + { 0x347, "EOS 760D" }, { 0x406, "EOS 6D Mark II" }, + { 0x405, "EOS 800D" }, { 0x349, "EOS 5D Mark IV" }, { 0x254, "EOS 1000D" }, { 0x288, "EOS 1100D" }, - { 0x327, "EOS 1200D" }, { 0x382, "Canon EOS 5DS" }, - { 0x404, "EOS 1300D" }, { 0x401, "Canon EOS 5DS R" }, - { 0x346, "EOS 100D" }, + { 0x327, "EOS 1200D" }, { 0x382, "EOS 5DS" }, + { 0x404, "EOS 1300D" }, { 0x401, "EOS 5DS R" }, + { 0x422, "EOS 1500D" }, + { 0x432, "EOS 3000D" }, }, sonique[] = { { 0x002, "DSC-R1" }, { 0x100, "DSLR-A100" }, { 0x101, "DSLR-A900" }, { 0x102, "DSLR-A700" }, @@ -8643,7 +8834,30 @@ void CLASS identify() { 0x155, "DSC-RX100M4" },{ 0x156, "DSC-RX10M2" }, { 0x158, "DSC-RX1RM2" }, { 0x15a, "ILCE-QX1" }, { 0x15b, "ILCE-7RM2" }, { 0x15e, "ILCE-7SM2" }, - { 0x161, "ILCA-68" }, { 0x165, "ILCE-6300" }, + { 0x161, "ILCA-68" }, { 0x162, "ILCA-99M2" }, + { 0x163, "DSC-RX10M3" }, { 0x164, "DSC-RX100M5" }, + { 0x165, "ILCE-6300" }, { 0x166, "ILCE-9" }, + { 0x168, "ILCE-6500" }, { 0x16a, "ILCE-7RM3" }, + { 0x16b, "ILCE-7M3" }, { 0x16c, "DSC-RX0" }, + { 0x16d, "DSC-RX10M4" }, + }; + static const char *orig, panalias[][12] = { + "@DC-FZ80", "DC-FZ82", "DC-FZ85", + "@DC-FZ81", "DC-FZ83", + "@DC-GF9", "DC-GX800", "DC-GX850", + "@DC-GF10", "DC-GF90", + "@DC-GX9", "DC-GX7MK3", + "@DC-ZS70", "DC-TZ90", "DC-TZ91", "DC-TZ92", "DC-TZ93", + "@DMC-FZ40", "DMC-FZ45", + "@DMC-FZ2500", "DMC-FZ2000", "DMC-FZH1", + "@DMC-G8", "DMC-G80", "DMC-G81", "DMC-G85", + "@DMC-GX85", "DMC-GX80", "DMC-GX7MK2", + "@DMC-LX9", "DMC-LX10", "DMC-LX15", + "@DMC-ZS40", "DMC-TZ60", "DMC-TZ61", + "@DMC-ZS50", "DMC-TZ70", "DMC-TZ71", + "@DMC-ZS60", "DMC-TZ80", "DMC-TZ81", "DMC-TZ85", + "@DMC-ZS100", "DMC-ZS110", "DMC-TZ100", "DMC-TZ101", "DMC-TZ110", "DMC-TX1", + "@DC-ZS200", "DC-TX2", "DC-TZ200", "DC-TZ202", "DC-TZ220", "DC-ZS220", }; static const struct { unsigned fsize; @@ -8663,25 +8877,24 @@ void CLASS identify() { 15980544,3264,2448, 0, 0, 0, 0, 8,0x61,0,1,"AgfaPhoto","DC-833m" }, { 9631728,2532,1902, 0, 0, 0, 0,96,0x61,0,0,"Alcatel","5035D" }, { 2868726,1384,1036, 0, 0, 0, 0,64,0x49,0,8,"Baumer","TXG14",1078 }, - { 5298000,2400,1766,12,12,44, 2,40,0x94,0,2,"Canon","PowerShot SD300" }, - { 6553440,2664,1968, 4, 4,44, 4,40,0x94,0,2,"Canon","PowerShot A460" }, - { 6573120,2672,1968,12, 8,44, 0,40,0x94,0,2,"Canon","PowerShot A610" }, - { 6653280,2672,1992,10, 6,42, 2,40,0x94,0,2,"Canon","PowerShot A530" }, - { 7710960,2888,2136,44, 8, 4, 0,40,0x94,0,2,"Canon","PowerShot S3 IS" }, - { 9219600,3152,2340,36,12, 4, 0,40,0x94,0,2,"Canon","PowerShot A620" }, - { 9243240,3152,2346,12, 7,44,13,40,0x49,0,2,"Canon","PowerShot A470" }, - { 10341600,3336,2480, 6, 5,32, 3,40,0x94,0,2,"Canon","PowerShot A720 IS" }, - { 10383120,3344,2484,12, 6,44, 6,40,0x94,0,2,"Canon","PowerShot A630" }, - { 12945240,3736,2772,12, 6,52, 6,40,0x94,0,2,"Canon","PowerShot A640" }, - { 15636240,4104,3048,48,12,24,12,40,0x94,0,2,"Canon","PowerShot A650" }, - { 15467760,3720,2772, 6,12,30, 0,40,0x94,0,2,"Canon","PowerShot SX110 IS" }, - { 15534576,3728,2778,12, 9,44, 9,40,0x94,0,2,"Canon","PowerShot SX120 IS" }, - { 18653760,4080,3048,24,12,24,12,40,0x94,0,2,"Canon","PowerShot SX20 IS" }, - { 19131120,4168,3060,92,16, 4, 1,40,0x94,0,2,"Canon","PowerShot SX220 HS" }, - { 21936096,4464,3276,25,10,73,12,40,0x16,0,2,"Canon","PowerShot SX30 IS" }, - { 24724224,4704,3504, 8,16,56, 8,40,0x94,0,2,"Canon","PowerShot A3300 IS" }, - { 30858240,5248,3920, 8,16,56,16,40,0x94,0,2,"Canon","IXUS 160" }, - { 1976352,1632,1211, 0, 2, 0, 1, 0,0x94,0,1,"Casio","QV-2000UX" }, + { 5298000,2400,1766,12,12,44, 2, 8,0x94,0,2,"Canon","PowerShot SD300" }, + { 6553440,2664,1968, 4, 4,44, 4, 8,0x94,0,2,"Canon","PowerShot A460" }, + { 6573120,2672,1968,12, 8,44, 0, 8,0x94,0,2,"Canon","PowerShot A610" }, + { 6653280,2672,1992,10, 6,42, 2, 8,0x94,0,2,"Canon","PowerShot A530" }, + { 7710960,2888,2136,44, 8, 4, 0, 8,0x94,0,2,"Canon","PowerShot S3 IS" }, + { 9219600,3152,2340,36,12, 4, 0, 8,0x94,0,2,"Canon","PowerShot A620" }, + { 9243240,3152,2346,12, 7,44,13, 8,0x49,0,2,"Canon","PowerShot A470" }, + { 10341600,3336,2480, 6, 5,32, 3, 8,0x94,0,2,"Canon","PowerShot A720 IS" }, + { 10383120,3344,2484,12, 6,44, 6, 8,0x94,0,2,"Canon","PowerShot A630" }, + { 12945240,3736,2772,12, 6,52, 6, 8,0x94,0,2,"Canon","PowerShot A640" }, + { 15636240,4104,3048,48,12,24,12, 8,0x94,0,2,"Canon","PowerShot A650" }, + { 15467760,3720,2772, 6,12,30, 0, 8,0x94,0,2,"Canon","PowerShot SX110 IS" }, + { 15534576,3728,2778,12, 9,44, 9, 8,0x94,0,2,"Canon","PowerShot SX120 IS" }, + { 18653760,4080,3048,24,12,24,12, 8,0x94,0,2,"Canon","PowerShot SX20 IS" }, + { 19131120,4168,3060,92,16, 4, 1, 8,0x94,0,2,"Canon","PowerShot SX220 HS" }, + { 21936096,4464,3276,25,10,73,12, 8,0x16,0,2,"Canon","PowerShot SX30 IS" }, + { 24724224,4704,3504, 8,16,56, 8, 8,0x94,0,2,"Canon","PowerShot A3300 IS" }, + { 30858240,5248,3920, 8,16,56,16, 8,0x94,0,2,"Canon","IXUS 160" }, { 1976352,1632,1211, 0, 2, 0, 1, 0,0x94,0,1,"Casio","QV-2000UX" }, { 3217760,2080,1547, 0, 0,10, 1, 0,0x94,0,1,"Casio","QV-3*00EX" }, { 6218368,2585,1924, 0, 0, 9, 0, 0,0x94,0,1,"Casio","QV-5700" }, { 7816704,2867,2181, 0, 0,34,36, 0,0x16,0,1,"Casio","EX-Z60" }, @@ -8753,12 +8966,13 @@ void CLASS identify() { 44390468,4080,5440, 0, 0, 0, 0,33,0x61,0,0,"Sinar","",68 }, { 1409024,1376,1024, 0, 0, 1, 0, 0,0x49,0,0,"Sony","XCD-SX910CR" }, { 2818048,1376,1024, 0, 0, 1, 0,97,0x49,0,0,"Sony","XCD-SX910CR" }, + { 17496000,4320,3240, 0, 0, 0,0,224,0x94,0,0,"Xiro","Xplorer V" }, }; static const char *corp[] = { "AgfaPhoto", "Canon", "Casio", "Epson", "Fujifilm", "Mamiya", "Minolta", "Motorola", "Kodak", "Konica", "Leica", "Nikon", "Nokia", "Olympus", "Ricoh", "Pentax", "Phase One", - "Samsung", "Sigma", "Sinar", "Sony" }; + "Samsung", "Sigma", "Sinar", "Sony", "YI" }; char head[32], *cp; int hlen, flen, fsize, zero_fsize=1, i, c; struct jhead jh; @@ -8792,16 +9006,18 @@ void CLASS identify() colors = 3; for (i=0; i < 0x10000; i++) curve[i] = i; - order = get2(); - hlen = get4(); - fseek (ifp, 0, SEEK_SET); - fread (head, 1, 32, ifp); - fseek (ifp, 0, SEEK_END); - flen = fsize = ftell(ifp); + flen = fsize = ifp->size; + + // currently fsize is of type signed int which means for files larger than 0x7fffffff byte fsize will be < 0. We need to check for large files if we change the type to unsigned int /*RT*/ if (fsize<100000) { is_raw = 0; return; } + + order = get2(); + hlen = get4(); + fseek (ifp, 0, SEEK_SET); + fread (head, 1, 32, ifp); /* RT: changed string constant */ if ((cp = (char *) memmem (head, 32, (char*)"MMMM", 4)) || (cp = (char *) memmem (head, 32, (char*)"IIII", 4))) { @@ -8853,12 +9069,15 @@ void CLASS identify() if (is_raw == 2 && shot_select) parse_fuji (i); } - load_raw = &CLASS unpacked_load_raw; fseek (ifp, 100+28*(shot_select > 0 && shot_select < is_raw), SEEK_SET); parse_tiff (data_offset = get4()); parse_tiff (thumb_offset+12); /*RT*/ exif_base = thumb_offset+12; apply_tiff(); + if (!load_raw) { + load_raw = &CLASS unpacked_load_raw; + tiff_bps = 14; + } } else if (!memcmp (head,"RIFF",4)) { fseek (ifp, 0, SEEK_SET); parse_riff(); @@ -8920,7 +9139,7 @@ void CLASS identify() strcpy (model,"One"); parse_redcine(); load_raw = &CLASS redcine_load_raw; - gamma_curve (1/2.4, 12.92, 1, 4095); + gamma_curve (1/2.4, 12.92310, 1, 4095); filters = 0x49494949; } else if (!memcmp (head,"DSC-Image",9)) parse_rollei(); @@ -8957,7 +9176,8 @@ void CLASS identify() case 8: load_raw = &CLASS eight_bit_load_raw; break; case 10: case 12: - load_flags |= 128; + load_flags |= 512; + if (!strcmp(make,"Canon")) load_flags |= 256; load_raw = &CLASS packed_load_raw; break; case 16: order = 0x4949 | 0x404 * (load_flags & 1); @@ -9014,17 +9234,25 @@ void CLASS identify() { height = 2616; width = 3896; } if (height == 3136 && width == 4864) /* Pentax K20D and Samsung GX20 */ { height = 3124; width = 4688; filters = 0x16161616; } - if (width == 4352 && (!strcmp(model,"K-r") || !strcmp(model,"K-x"))) + if (raw_height == 2868 && (!strcmp(model,"K-r") || !strcmp(model,"K-x"))) /*RT*/ { width = 4308; filters = 0x16161616; } - if (width >= 4960 && !strncmp(model,"K-5",3)) - { left_margin = 10; width = 4950; filters = 0x16161616; } - if (width == 4736 && !strcmp(model,"K-7")) + if (raw_height == 3136 && !strcmp(model,"K-7")) { height = 3122; width = 4684; filters = 0x16161616; top_margin = 2; } - if (width == 6080 && !strcmp(model,"K-3")) - { left_margin = 4; width = 6040; } - if (width == 7424 && !strcmp(model,"645D")) - { height = 5502; width = 7328; filters = 0x61616161; top_margin = 29; - left_margin = 48; } + if (raw_height == 3284 && !strncmp(model,"K-5",3)) + { left_margin = 10; width = 4950; filters = 0x16161616; } + if (raw_height == 3300 && !strncmp(model,"K-50",4)) + { height = 3288, width = 4952; left_margin = 0; top_margin = 12; } + if (raw_height == 3664 && !strncmp(model,"K-S",3)) + { width = 5492; left_margin = 0; } + if (raw_height == 4032 && !strcmp(model,"K-3")) + { height = 4032; width = 6040; left_margin = 4; } + if (raw_height == 4060 && !strcmp(model,"KP")) + { height = 4032; width = 6032; left_margin = 52; top_margin = 28; } + if (raw_height == 4950 && !strcmp(model,"K-1")) + { height = 4932; width = 7380; left_margin = 4; top_margin = 18; } + if (raw_height == 5552 && !strcmp(model,"645D")) + { height = 5502; width = 7328; left_margin = 48; top_margin = 29; + filters = 0x61616161; } if (width == 7392 && !strncmp(model,"K-1",3)) { left_margin = 6; width = 7376; if(!dng_version) {top_margin = 18; height -= top_margin; }} if (width == 4832 && !strncmp(model,"K-1",3)) // K-1 APS-C format @@ -9074,6 +9302,10 @@ void CLASS identify() for (i=0; i < sizeof sonique / sizeof *sonique; i++) if (unique_id == sonique[i].id) strcpy (model, sonique[i].model); + for (i=0; i < sizeof panalias / sizeof *panalias; i++) + if (panalias[i][0] == '@') orig = panalias[i]+1; + else if (!strcmp(model,panalias[i])) + adobe_coeff ("Panasonic", orig); if (!strcmp(make,"Nikon")) { if (!load_raw) load_raw = &CLASS packed_load_raw; @@ -9160,7 +9392,7 @@ canon_a5: colors = 4; tiff_bps = 10; load_raw = &CLASS packed_load_raw; - load_flags = 40; + load_flags = 264; } else if (!strcmp(model,"PowerShot Pro90 IS") || !strcmp(model,"PowerShot G1")) { colors = 4; @@ -9172,6 +9404,9 @@ canon_a5: } else if (!strcmp(model,"EOS D2000C")) { filters = 0x61616161; black = curve[200]; + } else if (!strcmp(model,"EOS 80D")) { + top_margin -= 2; + height += 2; } else if (!strcmp(model,"D1")) { cam_mul[0] *= 256/527.0; cam_mul[2] *= 256/317.0; @@ -9226,6 +9461,8 @@ canon_a5: else width -= 8; } else if (!strncmp(model,"D300",4)) { width -= 32; + } else if (!strncmp(model,"COOLPIX B",9)) { + load_flags = 24; } else if (!strncmp(model,"COOLPIX P",9) && raw_width != 4032) { load_flags = 24; filters = 0x94949494; @@ -9298,8 +9535,7 @@ canon_a5: height = 2144; width = 2880; flip = 6; - } else if (load_raw != &CLASS packed_load_raw) - maximum = (is_raw == 2 && shot_select) ? 0x2f00 : 0x3e00; + } if (!strncmp(model,"X-A10",5)) { width = raw_width = 4912; height = raw_height = 3278; @@ -9310,7 +9546,7 @@ canon_a5: top_margin = (raw_height - height) >> 2 << 1; left_margin = (raw_width - width ) >> 2 << 1; if (width == 2848 || width == 3664) filters = 0x16161616; - if (width == 4032 || width == 4952 || width == 6032) left_margin = 0; + if (width == 4032 || width == 4952 || width == 6032 || width == 8280) left_margin = 0; if (width == 3328 && (width -= 66)) left_margin = 34; if (width == 4936) left_margin = 4; if (!strcmp(model,"HS50EXR") || @@ -9372,7 +9608,7 @@ konica_400z: } else if (!strcmp(make,"Samsung") && raw_width == 4704) { height -= top_margin = 8; width -= 2 * (left_margin = 8); - load_flags = 32; + load_flags = 256; } else if (!strcmp(make,"Samsung") && raw_height == 3714) { height -= top_margin = 18; left_margin = raw_width - (width = 5536); @@ -9444,6 +9680,11 @@ konica_400z: top_margin = 4; left_margin = 41; filters = 0x61616161; + } else if (raw_width == 8384) { + height = 6208; + width = 8280; + top_margin = 96; + left_margin = 46; } else if (raw_width == 6542) { // RT, H3D-31, H3DII-31, H4D-31 if (!strcmp(model, "H3D")) strcpy(model, "H3D-31"); if (!strcmp(model, "H4D")) strcpy(model, "H4D-31"); @@ -9586,6 +9827,8 @@ konica_400z: thumb_width = 640; } else if (!strcmp(model,"TG-4")) { width -= 16; + } else if (!strcmp(model,"TG-5")) { + width -= 6; } } else if (!strcmp(model,"N Digital")) { height = 2047; @@ -9937,6 +10180,7 @@ static void decodeFPDeltaRow(Bytef * src, Bytef * dst, size_t tileWidth, size_t } +#ifndef __F16C__ // From DNG SDK dng_utils.h static inline uint32_t DNG_HalfToFloat(uint16_t halfValue) { int32_t sign = (halfValue >> 15) & 0x00000001; @@ -9970,6 +10214,7 @@ static inline uint32_t DNG_HalfToFloat(uint16_t halfValue) { // Assemble sign, exponent and mantissa. return (uint32_t) ((sign << 31) | (exponent << 23) | mantissa); } +#endif static inline uint32_t DNG_FP24ToFloat(const uint8_t * input) { int32_t sign = (input [0] >> 7) & 0x01; @@ -10006,11 +10251,32 @@ static inline uint32_t DNG_FP24ToFloat(const uint8_t * input) { static void expandFloats(Bytef * dst, int tileWidth, int bytesps) { if (bytesps == 2) { - uint16_t * dst16 = (uint16_t *) dst; - uint32_t * dst32 = (uint32_t *) dst; + uint16_t* const dst16 = reinterpret_cast(dst); +#ifndef __F16C__ + uint32_t* const dst32 = reinterpret_cast(dst); for (int index = tileWidth - 1; index >= 0; --index) { - dst32[index] = DNG_HalfToFloat(dst16[index]); + dst32[index] = DNG_HalfToFloat(dst16[index]); } +#else + float* const dst32 = reinterpret_cast(dst); + int index = tileWidth - 8; + for (; index >= 0; index -= 8) { + __m128i halfFloatv = _mm_loadu_si128((__m128i*)&dst16[index]); + STVFU(dst32[index], _mm_cvtph_ps(halfFloatv)); + STVFU(dst32[index + 4], _mm_cvtph_ps(_mm_shuffle_epi32(halfFloatv, _MM_SHUFFLE(0,0,3,2)))); + } + index += 4; + if(index >= 0) { + __m128i halfFloatv = _mm_loadu_si128((__m128i*)&dst16[index]); + STVFU(dst32[index], _mm_cvtph_ps(halfFloatv)); + index--; + } else { + index += 3; + } + for (; index >= 0; --index) { + dst32[index] = _cvtsh_ss(dst16[index]); + } +#endif } else if (bytesps == 3) { uint8_t * dst8 = ((uint8_t *) dst) + (tileWidth - 1) * 3; uint32_t * dst32 = (uint32_t *) dst; @@ -10020,29 +10286,6 @@ static void expandFloats(Bytef * dst, int tileWidth, int bytesps) { } } -static void copyFloatDataToInt(float * src, ushort * dst, size_t size, float max) { - bool negative = false, nan = false; - -#ifdef _OPENMP -#pragma omp parallel for -#endif - for (size_t i = 0; i < size; ++i) { - if (src[i] < 0.0f) { - negative = true; - src[i] = 0.0f; - } else if (std::isnan(src[i])) { - nan = true; - src[i] = max; - } - // Copy the data to the integer buffer to build the thumbnail - dst[i] = (ushort)src[i]; - } - if (negative) - fprintf(stderr, "DNG Float: Negative data found in input file\n"); - if (nan) - fprintf(stderr, "DNG Float: NaN data found in input file\n"); -} - static int decompress(size_t srcLen, size_t dstLen, unsigned char *in, unsigned char *out) { // At least in zlib 1.2.11 the uncompress function is not thread save while it is thread save in zlib 1.2.8 // This simple replacement is thread save. Used example code from https://zlib.net/zlib_how.html @@ -10184,9 +10427,6 @@ void CLASS deflate_dng_load_raw() { } } - if (ifd->sample_format == 3) { // Floating point data - copyFloatDataToInt(float_raw_image, raw_image, raw_width*raw_height, maximum); - } } /* RT: removed unused functions */ diff --git a/rtengine/dcraw.h b/rtengine/dcraw.h index 9edc4196b..9c6ac4aec 100644 --- a/rtengine/dcraw.h +++ b/rtengine/dcraw.h @@ -60,6 +60,7 @@ public: ,RT_matrix_from_constant(0) ,RT_from_adobe_dng_converter(false) ,getbithuff(this,ifp,zero_after_ff) + ,nikbithuff(ifp) { memset(&hbd, 0, sizeof(hbd)); aber[0]=aber[1]=aber[2]=aber[3]=1; @@ -214,6 +215,7 @@ protected: int fcol (int row, int col); void merror (void *ptr, const char *where); void derror(); +inline void derror(bool condition) {if(UNLIKELY(condition)) ++data_error;} ushort sget2 (uchar *s); ushort get2(); unsigned sget4 (uchar *s); @@ -252,6 +254,26 @@ private: }; getbithuff_t getbithuff; +class nikbithuff_t +{ +public: + 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; } +private: + inline bool derror(bool condition){ + if (UNLIKELY(condition)) { + ++errors; + } + return condition; + } + unsigned bitbuf, errors; + int vbits; + IMFILE *&ifp; +}; +nikbithuff_t nikbithuff; + ushort * make_decoder_ref (const uchar **source); ushort * make_decoder (const uchar *source); void crw_init_tables (unsigned table, ushort *huff[2]); diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 40fd8e17a..0e1c25fe9 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -301,19 +301,19 @@ void Crop::update(int todo) float adjustr = 1.f; - if (params.icm.working == "ProPhoto") { + if (params.icm.workingProfile == "ProPhoto") { adjustr = 1.f; - } else if (params.icm.working == "Adobe RGB") { + } else if (params.icm.workingProfile == "Adobe RGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "sRGB") { + } else if (params.icm.workingProfile == "sRGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "WideGamut") { + } else if (params.icm.workingProfile == "WideGamut") { adjustr = 1.f / 1.1f; - } else if (params.icm.working == "Beta RGB") { + } else if (params.icm.workingProfile == "Beta RGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BestRGB") { + } else if (params.icm.workingProfile == "BestRGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BruceRGB") { + } else if (params.icm.workingProfile == "BruceRGB") { adjustr = 1.f / 1.2f; } @@ -521,19 +521,19 @@ void Crop::update(int todo) float adjustr = 1.f; - if (params.icm.working == "ProPhoto") { + if (params.icm.workingProfile == "ProPhoto") { adjustr = 1.f; // - } else if (params.icm.working == "Adobe RGB") { + } else if (params.icm.workingProfile == "Adobe RGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "sRGB") { + } else if (params.icm.workingProfile == "sRGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "WideGamut") { + } else if (params.icm.workingProfile == "WideGamut") { adjustr = 1.f / 1.1f; - } else if (params.icm.working == "Beta RGB") { + } else if (params.icm.workingProfile == "Beta RGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BestRGB") { + } else if (params.icm.workingProfile == "BestRGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BruceRGB") { + } else if (params.icm.workingProfile == "BruceRGB") { adjustr = 1.f / 1.2f; } @@ -810,12 +810,55 @@ void Crop::update(int todo) const int W = baseCrop->getWidth(); const int H = baseCrop->getHeight(); LabImage labcbdl(W, H); - parent->ipf.rgb2lab(*baseCrop, labcbdl, params.icm.working); + parent->ipf.rgb2lab(*baseCrop, labcbdl, params.icm.workingProfile); parent->ipf.dirpyrequalizer(&labcbdl, skip); - parent->ipf.lab2rgb(labcbdl, *baseCrop, params.icm.working); + parent->ipf.lab2rgb(labcbdl, *baseCrop, params.icm.workingProfile); } + if (todo & (M_AUTOEXP | M_RGBCURVE)) { + if (params.icm.workingTRC == "Custom") { //exec TRC IN free + Glib::ustring profile; + 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") { + + //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); + #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); + } + } + + 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); + #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); + } + } + + delete readyImg; + } + } + } + if (todo & M_RGBCURVE) { double rrm, ggm, bbm; DCPProfile::ApplyState as; diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index f94f6bad6..c0d0c2a2b 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -37,6 +37,7 @@ #include "sleef.c" #include "opthelper.h" #include "median.h" +#define BENCHMARK #include "StopWatch.h" #ifdef _OPENMP #include @@ -46,11 +47,12 @@ using namespace std; namespace rtengine { + +extern const Settings* settings; + #undef ABS -#undef DIST #define ABS(a) ((a)<0?-(a):(a)) -#define DIST(a,b) (ABS(a-b)) #define CLIREF(x) LIM(x,-200000.0f,200000.0f) // avoid overflow : do not act directly on image[] or pix[] #define x1125(a) (a + xdivf(a, 3)) #define x0875(a) (a - xdivf(a, 3)) @@ -58,243 +60,6 @@ namespace rtengine #define x00625(a) xdivf(a, 4) #define x0125(a) xdivf(a, 3) -extern const Settings* settings; -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -void RawImageSource::eahd_demosaic () -{ - if (plistener) { - plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::EAHD))); - plistener->setProgress (0.0); - } - - // prepare cache and constants for cielab conversion - //TODO: revisit after conversion to D50 illuminant - lc00 = (0.412453 * imatrices.rgb_cam[0][0] + 0.357580 * imatrices.rgb_cam[0][1] + 0.180423 * imatrices.rgb_cam[0][2]) ;// / 0.950456; - lc01 = (0.412453 * imatrices.rgb_cam[1][0] + 0.357580 * imatrices.rgb_cam[1][1] + 0.180423 * imatrices.rgb_cam[1][2]) ;// / 0.950456; - lc02 = (0.412453 * imatrices.rgb_cam[2][0] + 0.357580 * imatrices.rgb_cam[2][1] + 0.180423 * imatrices.rgb_cam[2][2]) ;// / 0.950456; - - lc10 = 0.212671 * imatrices.rgb_cam[0][0] + 0.715160 * imatrices.rgb_cam[0][1] + 0.072169 * imatrices.rgb_cam[0][2]; - lc11 = 0.212671 * imatrices.rgb_cam[1][0] + 0.715160 * imatrices.rgb_cam[1][1] + 0.072169 * imatrices.rgb_cam[1][2]; - lc12 = 0.212671 * imatrices.rgb_cam[2][0] + 0.715160 * imatrices.rgb_cam[2][1] + 0.072169 * imatrices.rgb_cam[2][2]; - - lc20 = (0.019334 * imatrices.rgb_cam[0][0] + 0.119193 * imatrices.rgb_cam[0][1] + 0.950227 * imatrices.rgb_cam[0][2]) ;// / 1.088754; - lc21 = (0.019334 * imatrices.rgb_cam[1][0] + 0.119193 * imatrices.rgb_cam[1][1] + 0.950227 * imatrices.rgb_cam[1][2]) ;// / 1.088754; - lc22 = (0.019334 * imatrices.rgb_cam[2][0] + 0.119193 * imatrices.rgb_cam[2][1] + 0.950227 * imatrices.rgb_cam[2][2]) ;// / 1.088754; - - int maxindex = 3 * 65536; //2*65536 3 = avoid crash 3/2013 J.Desmis - cache = new double[maxindex]; - threshold = (int)(0.008856 * MAXVALD); - - for (int i = 0; i < maxindex; i++) { - cache[i] = std::cbrt(double(i) / MAXVALD); - } - - // end of cielab preparation - - JaggedArray - rh (W, 3), gh (W, 4), bh (W, 3), - rv (W, 3), gv (W, 4), bv (W, 3), - lLh (W, 3), lah (W, 3), lbh (W, 3), - lLv (W, 3), lav (W, 3), lbv (W, 3), - homh (W, 3), homv (W, 3); - - // interpolate first two lines - interpolate_row_g (gh[0], gv[0], 0); - interpolate_row_g (gh[1], gv[1], 1); - interpolate_row_g (gh[2], gv[2], 2); - interpolate_row_rb (rh[0], bh[0], nullptr, gh[0], gh[1], 0); - interpolate_row_rb (rv[0], bv[0], nullptr, gv[0], gv[1], 0); - interpolate_row_rb (rh[1], bh[1], gh[0], gh[1], gh[2], 1); - interpolate_row_rb (rv[1], bv[1], gv[0], gv[1], gv[2], 1); - - convert_to_cielab_row (rh[0], gh[0], bh[0], lLh[0], lah[0], lbh[0]); - convert_to_cielab_row (rv[0], gv[0], bv[0], lLv[0], lav[0], lbv[0]); - convert_to_cielab_row (rh[1], gh[1], bh[1], lLh[1], lah[1], lbh[1]); - convert_to_cielab_row (rv[1], gv[1], bv[1], lLv[1], lav[1], lbv[1]); - - for (int j = 0; j < W; j++) { - homh[0][j] = 0; - homv[0][j] = 0; - homh[1][j] = 0; - homv[1][j] = 0; - } - - int dLmaph[9]; - int dLmapv[9]; - int dCamaph[9]; - int dCamapv[9]; - int dCbmaph[9]; - int dCbmapv[9]; - - for (int i = 1; i < H - 1; i++) { - int ix = i % 3; - int imx = (i - 1) % 3; - int ipx = (i + 1) % 3; - - if (i < H - 2) { - interpolate_row_g (gh[(i + 2) % 4], gv[(i + 2) % 4], i + 2); - interpolate_row_rb (rh[(i + 1) % 3], bh[(i + 1) % 3], gh[i % 4], gh[(i + 1) % 4], gh[(i + 2) % 4], i + 1); - interpolate_row_rb (rv[(i + 1) % 3], bv[(i + 1) % 3], gv[i % 4], gv[(i + 1) % 4], gv[(i + 2) % 4], i + 1); - } else { - interpolate_row_rb (rh[(i + 1) % 3], bh[(i + 1) % 3], gh[i % 4], gh[(i + 1) % 4], nullptr, i + 1); - interpolate_row_rb (rv[(i + 1) % 3], bv[(i + 1) % 3], gv[i % 4], gv[(i + 1) % 4], nullptr, i + 1); - } - - convert_to_cielab_row (rh[(i + 1) % 3], gh[(i + 1) % 4], bh[(i + 1) % 3], lLh[(i + 1) % 3], lah[(i + 1) % 3], lbh[(i + 1) % 3]); - convert_to_cielab_row (rv[(i + 1) % 3], gv[(i + 1) % 4], bv[(i + 1) % 3], lLv[(i + 1) % 3], lav[(i + 1) % 3], lbv[(i + 1) % 3]); - - for (int j = 0; j < W; j++) { - homh[ipx][j] = 0; - homv[ipx][j] = 0; - } - - int sh, sv, idx; - - for (int j = 1; j < W - 1; j++) { - int dmi = 0; - - for (int x = -1; x <= 1; x++) { - idx = (i + x) % 3; - - for (int y = -1; y <= 1; y++) { - // compute distance in a, b, and L - if (dmi < 4) { - sh = homh[idx][j + y]; - sv = homv[idx][j + y]; - - if (sh > sv) { // fixate horizontal pixel - dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); - dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); - dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); - dLmapv[dmi] = DIST(lLv[ix][j], lLh[idx][j + y]); - dCamapv[dmi] = DIST(lav[ix][j], lah[idx][j + y]); - dCbmapv[dmi] = DIST(lbv[ix][j], lbh[idx][j + y]); - } else if (sh < sv) { - dLmaph[dmi] = DIST(lLh[ix][j], lLv[idx][j + y]); - dCamaph[dmi] = DIST(lah[ix][j], lav[idx][j + y]); - dCbmaph[dmi] = DIST(lbh[ix][j], lbv[idx][j + y]); - dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); - dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); - dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); - } else { - dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); - dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); - dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); - dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); - dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); - dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); - } - } else { - dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); - dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); - dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); - dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); - dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); - dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); - } - - dmi++; - } - } - - // compute eL & eC - int eL = min(max(dLmaph[3], dLmaph[5]), max(dLmapv[1], dLmapv[7])); - int eCa = min(max(dCamaph[3], dCamaph[5]), max(dCamapv[1], dCamapv[7])); - int eCb = min(max(dCbmaph[3], dCbmaph[5]), max(dCbmapv[1], dCbmapv[7])); - - int wh = 0; - - for (int dmi = 0; dmi < 9; dmi++) - if (dLmaph[dmi] <= eL && dCamaph[dmi] <= eCa && dCbmaph[dmi] <= eCb) { - wh++; - } - - int wv = 0; - - for (int dmi = 0; dmi < 9; dmi++) - if (dLmapv[dmi] <= eL && dCamapv[dmi] <= eCa && dCbmapv[dmi] <= eCb) { - wv++; - } - - homh[imx][j - 1] += wh; - homh[imx][j] += wh; - homh[imx][j + 1] += wh; - homh[ix][j - 1] += wh; - homh[ix][j] += wh; - homh[ix][j + 1] += wh; - homh[ipx][j - 1] += wh; - homh[ipx][j] += wh; - homh[ipx][j + 1] += wh; - - homv[imx][j - 1] += wv; - homv[imx][j] += wv; - homv[imx][j + 1] += wv; - homv[ix][j - 1] += wv; - homv[ix][j] += wv; - homv[ix][j + 1] += wv; - homv[ipx][j - 1] += wv; - homv[ipx][j] += wv; - homv[ipx][j + 1] += wv; - } - -//} - // finalize image - int hc, vc; - - for (int j = 0; j < W; j++) { - if (ri->ISGREEN(i - 1, j)) { - green[i - 1][j] = rawData[i - 1][j]; - } else { - hc = homh[imx][j]; - vc = homv[imx][j]; - - if (hc > vc) { - green[i - 1][j] = gh[(i - 1) % 4][j]; - } else if (hc < vc) { - green[i - 1][j] = gv[(i - 1) % 4][j]; - } else { - green[i - 1][j] = (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2; - } - } - } - - if (!(i % 20) && plistener) { - plistener->setProgress ((double)i / (H - 2)); - } - } - - // finish H-2th and H-1th row, homogenity value is still valailable - int hc, vc; - - for (int i = H - 1; i < H + 1; i++) - for (int j = 0; j < W; j++) { - hc = homh[(i - 1) % 3][j]; - vc = homv[(i - 1) % 3][j]; - - if (hc > vc) { - green[i - 1][j] = gh[(i - 1) % 4][j]; - } else if (hc < vc) { - green[i - 1][j] = gv[(i - 1) % 4][j]; - } else { - green[i - 1][j] = (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2; - } - } - - // Interpolate R and B - for (int i = 0; i < H; i++) { - if (i == 0) { - interpolate_row_rb_mul_pp (rawData, red[i], blue[i], nullptr, green[i], green[i + 1], i, 1.0, 1.0, 1.0, 0, W, 1); - } else if (i == H - 1) { - interpolate_row_rb_mul_pp (rawData, red[i], blue[i], green[i - 1], green[i], nullptr, i, 1.0, 1.0, 1.0, 0, W, 1); - } else { - interpolate_row_rb_mul_pp (rawData, red[i], blue[i], green[i - 1], green[i], green[i + 1], i, 1.0, 1.0, 1.0, 0, W, 1); - } - } -} - -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - void RawImageSource::hphd_vertical (float** hpmap, int col_from, int col_to) { float* temp = new float[max(W, H)]; @@ -553,6 +318,8 @@ void RawImageSource::hphd_demosaic () } } + border_interpolate2(W, H, 4, rawData, red, green, blue); + if (plistener) { plistener->setProgress (1.0); } @@ -682,7 +449,8 @@ void RawImageSource::ppg_demosaic() void RawImageSource::border_interpolate(unsigned int border, float (*image)[4], unsigned int start, unsigned int end) { - unsigned row, col, y, x, f, sum[8]; + unsigned row, col, y, x, f; + float sum[8]; unsigned int width = W, height = H; unsigned int colors = 3; @@ -714,7 +482,7 @@ void RawImageSource::border_interpolate(unsigned int border, float (*image)[4], } } -void RawImageSource::border_interpolate2( int winw, int winh, int lborders) +void RawImageSource::border_interpolate2( int winw, int winh, int lborders, const array2D &rawData, array2D &red, array2D &green, array2D &blue) { int bord = lborders; int width = winw; @@ -1182,7 +950,7 @@ void RawImageSource::lmmse_interpolate_omp(int winw, int winh, array2D &r // apply low pass filter on differential colors #ifdef _OPENMP - #pragma omp for + #pragma omp for #endif for (int rr = 4; rr < rr1 - 4; rr++) @@ -1408,7 +1176,7 @@ void RawImageSource::lmmse_interpolate_omp(int winw, int winh, array2D &r // interpolate R/B at B/R location #ifdef _OPENMP - #pragma omp for + #pragma omp for #endif for (int rr = 1; rr < rr1 - 1; rr++) @@ -1657,7 +1425,7 @@ void RawImageSource::igv_interpolate(int winw, int winh) chr[2] = hdif; chr[3] = vdif; - border_interpolate2(winw, winh, 7); + border_interpolate2(winw, winh, 7, rawData, red, green, blue); if (plistener) { plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::IGV))); @@ -2047,7 +1815,7 @@ void RawImageSource::igv_interpolate(int winw, int winh) vdif = (float (*)) calloc(width * height / 2, sizeof * vdif); hdif = (float (*)) calloc(width * height / 2, sizeof * hdif); - border_interpolate2(winw, winh, 7); + border_interpolate2(winw, winh, 7, rawData, red, green, blue); if (plistener) { plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::IGV))); @@ -2289,217 +2057,6 @@ void RawImageSource::igv_interpolate(int winw, int winh) } #endif - -/* - Adaptive Homogeneity-Directed interpolation is based on - the work of Keigo Hirakawa, Thomas Parks, and Paul Lee. - */ -#define TS 256 /* Tile Size */ -#define FORC(cnt) for (c=0; c < cnt; c++) -#define FORC3 FORC(3) - -void RawImageSource::ahd_demosaic() -{ - int i, j, k, top, left, row, col, tr, tc, c, d, val, hm[2]; - float (*pix)[4], (*rix)[3]; - static const int dir[4] = { -1, 1, -TS, TS }; - float ldiff[2][4], abdiff[2][4], leps, abeps; - float xyz[3], xyz_cam[3][4]; - float* cbrt; - float (*rgb)[TS][TS][3]; - float (*lab)[TS][TS][3]; - float (*lix)[3]; - char (*homo)[TS][TS], *buffer; - double r; - - int width = W, height = H; - float (*image)[4]; - unsigned int colors = 3; - - const double xyz_rgb[3][3] = { /* XYZ from RGB */ - { 0.412453, 0.357580, 0.180423 }, - { 0.212671, 0.715160, 0.072169 }, - { 0.019334, 0.119193, 0.950227 } - }; - - const float d65_white[3] = { 0.950456, 1, 1.088754 }; - - if (plistener) { - plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AHD))); - plistener->setProgress (0.0); - } - - image = (float (*)[4]) calloc (H * W, sizeof * image); - - for (int ii = 0; ii < H; ii++) - for (int jj = 0; jj < W; jj++) { - image[ii * W + jj][fc(ii, jj)] = rawData[ii][jj]; - } - - cbrt = (float (*)) calloc (0x10000, sizeof * cbrt); - - for (i = 0; i < 0x10000; i++) { - r = (double)i / 65535.0; - cbrt[i] = r > 0.008856 ? std::cbrt(r) : 7.787 * r + 16 / 116.0; - } - - for (i = 0; i < 3; i++) - for (unsigned int j = 0; j < colors; j++) - for (xyz_cam[i][j] = k = 0; k < 3; k++) { - xyz_cam[i][j] += xyz_rgb[i][k] * imatrices.rgb_cam[k][j] / d65_white[i]; - } - - border_interpolate(5, image); - buffer = (char *) malloc (13 * TS * TS * sizeof(float)); /* 1664 kB */ - //merror (buffer, "ahd_interpolate()"); - rgb = (float(*)[TS][TS][3]) buffer; - lab = (float(*)[TS][TS][3])(buffer + 6 * TS * TS * sizeof(float)); - homo = (char (*)[TS][TS]) (buffer + 12 * TS * TS * sizeof(float)); - - // helper variables for progress indication - int n_tiles = ((height - 7 + (TS - 7)) / (TS - 6)) * ((width - 7 + (TS - 7)) / (TS - 6)); - int tile = 0; - - for (top = 2; top < height - 5; top += TS - 6) - for (left = 2; left < width - 5; left += TS - 6) { - /* Interpolate green horizontally and vertically: */ - for (row = top; row < top + TS && row < height - 2; row++) { - col = left + (FC(row, left) & 1); - - for (c = FC(row, col); col < left + TS && col < width - 2; col += 2) { - pix = image + (row * width + col); - val = 0.25 * ((pix[-1][1] + pix[0][c] + pix[1][1]) * 2 - - pix[-2][c] - pix[2][c]) ; - rgb[0][row - top][col - left][1] = median(static_cast(val), pix[-1][1], pix[1][1]); - val = 0.25 * ((pix[-width][1] + pix[0][c] + pix[width][1]) * 2 - - pix[-2 * width][c] - pix[2 * width][c]) ; - rgb[1][row - top][col - left][1] = median(static_cast(val), pix[-width][1], pix[width][1]); - } - } - - /* Interpolate red and blue, and convert to CIELab: */ - for (d = 0; d < 2; d++) - for (row = top + 1; row < top + TS - 1 && row < height - 3; row++) - for (col = left + 1; col < left + TS - 1 && col < width - 3; col++) { - pix = image + (row * width + col); - rix = &rgb[d][row - top][col - left]; - lix = &lab[d][row - top][col - left]; - - if ((c = 2 - FC(row, col)) == 1) { - c = FC(row + 1, col); - val = pix[0][1] + (0.5 * ( pix[-1][2 - c] + pix[1][2 - c] - - rix[-1][1] - rix[1][1] ) ); - rix[0][2 - c] = CLIP(val); - val = pix[0][1] + (0.5 * ( pix[-width][c] + pix[width][c] - - rix[-TS][1] - rix[TS][1] ) ); - } else - val = rix[0][1] + (0.25 * ( pix[-width - 1][c] + pix[-width + 1][c] - + pix[+width - 1][c] + pix[+width + 1][c] - - rix[-TS - 1][1] - rix[-TS + 1][1] - - rix[+TS - 1][1] - rix[+TS + 1][1]) ); - - rix[0][c] = CLIP(val); - c = FC(row, col); - rix[0][c] = pix[0][c]; - xyz[0] = xyz[1] = xyz[2] = 0.0; - FORCC { - xyz[0] += xyz_cam[0][c] * rix[0][c]; - xyz[1] += xyz_cam[1][c] * rix[0][c]; - xyz[2] += xyz_cam[2][c] * rix[0][c]; - } - - xyz[0] = CurveFactory::flinterp(cbrt, xyz[0]); - xyz[1] = CurveFactory::flinterp(cbrt, xyz[1]); - xyz[2] = CurveFactory::flinterp(cbrt, xyz[2]); - - //xyz[0] = xyz[0] > 0.008856 ? pow(xyz[0]/65535,1/3.0) : 7.787*xyz[0] + 16/116.0; - //xyz[1] = xyz[1] > 0.008856 ? pow(xyz[1]/65535,1/3.0) : 7.787*xyz[1] + 16/116.0; - //xyz[2] = xyz[2] > 0.008856 ? pow(xyz[2]/65535,1/3.0) : 7.787*xyz[2] + 16/116.0; - - lix[0][0] = (116 * xyz[1] - 16); - lix[0][1] = 500 * (xyz[0] - xyz[1]); - lix[0][2] = 200 * (xyz[1] - xyz[2]); - } - - /* Build homogeneity maps from the CIELab images: */ - memset (homo, 0, 2 * TS * TS); - - for (row = top + 2; row < top + TS - 2 && row < height - 4; row++) { - tr = row - top; - - for (col = left + 2; col < left + TS - 2 && col < width - 4; col++) { - tc = col - left; - - for (d = 0; d < 2; d++) { - lix = &lab[d][tr][tc]; - - for (i = 0; i < 4; i++) { - ldiff[d][i] = ABS(lix[0][0] - lix[dir[i]][0]); - abdiff[d][i] = SQR(lix[0][1] - lix[dir[i]][1]) - + SQR(lix[0][2] - lix[dir[i]][2]); - } - } - - leps = min(max(ldiff[0][0], ldiff[0][1]), - max(ldiff[1][2], ldiff[1][3])); - abeps = min(max(abdiff[0][0], abdiff[0][1]), - max(abdiff[1][2], abdiff[1][3])); - - for (d = 0; d < 2; d++) - for (i = 0; i < 4; i++) - if (ldiff[d][i] <= leps && abdiff[d][i] <= abeps) { - homo[d][tr][tc]++; - } - } - } - - /* Combine the most homogenous pixels for the final result: */ - for (row = top + 3; row < top + TS - 3 && row < height - 5; row++) { - tr = row - top; - - for (col = left + 3; col < left + TS - 3 && col < width - 5; col++) { - tc = col - left; - - for (d = 0; d < 2; d++) - for (hm[d] = 0, i = tr - 1; i <= tr + 1; i++) - for (j = tc - 1; j <= tc + 1; j++) { - hm[d] += homo[d][i][j]; - } - - if (hm[0] != hm[1]) { - FORC3 image[row * width + col][c] = rgb[hm[1] > hm[0]][tr][tc][c]; - } else - FORC3 image[row * width + col][c] = - 0.5 * (rgb[0][tr][tc][c] + rgb[1][tr][tc][c]) ; - } - } - - tile++; - - if(plistener) { - plistener->setProgress((double)tile / n_tiles); - } - } - - if(plistener) { - plistener->setProgress (1.0); - } - - free (buffer); - - for (int i = 0; i < H; i++) { - for (int j = 0; j < W; j++) { - red[i][j] = image[i * W + j][0]; - green[i][j] = image[i * W + j][1]; - blue[i][j] = image[i * W + j][2]; - } - } - - free (image); - free (cbrt); -} -#undef TS - void RawImageSource::nodemosaic(bool bw) { red(W, H); diff --git a/rtengine/diagonalcurves.cc b/rtengine/diagonalcurves.cc index a3b00b165..f478ba719 100644 --- a/rtengine/diagonalcurves.cc +++ b/rtengine/diagonalcurves.cc @@ -86,7 +86,8 @@ DiagonalCurve::DiagonalCurve (const std::vector& p, int poly_pn) if (!identity) { if (kind == DCT_Spline && N > 2) { - spline_cubic_set (); + //spline_cubic_set (); + catmull_rom_set(); } else if (kind == DCT_NURBS && N > 2) { NURBS_set (); fillHash(); @@ -270,6 +271,164 @@ void DiagonalCurve::NURBS_set () fillDyByDx(); } + +/***************************************************************************** + * Catmull Rom Spline + * (https://en.wikipedia.org/wiki/Centripetal_Catmull%E2%80%93Rom_spline) + *****************************************************************************/ + +namespace { + +inline double pow2(double x) +{ + return x*x; +} + + +inline double catmull_rom_tj(double ti, + double xi, double yi, + double xj, double yj) +{ + // see https://github.com/Beep6581/RawTherapee/pull/4701#issuecomment-414054187 + static constexpr double alpha = 0.375; + return pow(sqrt(pow2(xj-xi) + pow2(yj-yi)), alpha) + ti; +} + + +inline void catmull_rom_spline(int n_points, + double p0_x, double p0_y, + double p1_x, double p1_y, + double p2_x, double p2_y, + double p3_x, double p3_y, + std::vector &res_x, + std::vector &res_y) +{ + res_x.reserve(n_points); + res_y.reserve(n_points); + + double t0 = 0; + double t1 = catmull_rom_tj(t0, p0_x, p0_y, p1_x, p1_y); + double t2 = catmull_rom_tj(t1, p1_x, p1_y, p2_x, p2_y); + double t3 = catmull_rom_tj(t2, p2_x, p2_y, p3_x, p3_y); + + double space = (t2-t1) / n_points; + + double t; + int i; + double c, d, A1_x, A1_y, A2_x, A2_y, A3_x, A3_y; + double B1_x, B1_y, B2_x, B2_y, C_x, C_y; + + res_x.push_back(p1_x); + res_y.push_back(p1_y); + + // special case, a segment at 0 or 1 is computed exactly + if (p1_y == p2_y && (p1_y == 0 || p1_y == 1)) { + for (i = 1; i < n_points-1; ++i) { + t = p1_x + space * i; + res_x.push_back(t); + res_y.push_back(p1_y); + } + } else { + for (i = 1; i < n_points-1; ++i) { + t = t1 + space * i; + + c = (t1 - t)/(t1 - t0); + d = (t - t0)/(t1 - t0); + A1_x = c * p0_x + d * p1_x; + A1_y = c * p0_y + d * p1_y; + + c = (t2 - t)/(t2 - t1); + d = (t - t1)/(t2 - t1); + A2_x = c * p1_x + d * p2_x; + A2_y = c * p1_y + d * p2_y; + + c = (t3 - t)/(t3 - t2); + d = (t - t2)/(t3 - t2); + A3_x = c * p2_x + d * p3_x; + A3_y = c * p2_y + d * p3_y; + + c = (t2 - t)/(t2 - t0); + d = (t - t0)/(t2 - t0); + B1_x = c * A1_x + d * A2_x; + B1_y = c * A1_y + d * A2_y; + + c = (t3 - t)/(t3 - t1); + d = (t - t1)/(t3 - t1); + B2_x = c * A2_x + d * A3_x; + B2_y = c * A2_y + d * A3_y; + + c = (t2 - t)/(t2 - t1); + d = (t - t1)/(t2 - t1); + C_x = c * B1_x + d * B2_x; + C_y = c * B1_y + d * B2_y; + + res_x.push_back(C_x); + res_y.push_back(C_y); + } + } + + res_x.push_back(p2_x); + res_y.push_back(p2_y); +} + + +inline void catmull_rom_reflect(double px, double py, double cx, double cy, + double &rx, double &ry) +{ +#if 0 + double dx = px - cx; + double dy = py - cy; + rx = cx - dx; + ry = cy - dy; +#else + // see https://github.com/Beep6581/RawTherapee/pull/4701#issuecomment-414054187 + static constexpr double epsilon = 1e-5; + double dx = px - cx; + double dy = py - cy; + rx = cx - dx * 0.01; + ry = dx > epsilon ? (dy / dx) * (rx - cx) + cy : cy; +#endif +} + + +void catmull_rom_chain(int n_points, int n_cp, double *x, double *y, + std::vector &res_x, std::vector &res_y) +{ + double x_first, y_first; + double x_last, y_last; + catmull_rom_reflect(x[1], y[1], x[0], y[0], x_first, y_first); + catmull_rom_reflect(x[n_cp-2], y[n_cp-2], x[n_cp-1], y[n_cp-1], x_last, y_last); + + int segments = n_cp - 1; + + res_x.reserve(n_points); + res_y.reserve(n_points); + + for (int i = 0; i < segments; ++i) { + int n = max(int(n_points * (x[i+1] - x[i]) + 0.5), 2); + catmull_rom_spline( + n, i == 0 ? x_first : x[i-1], i == 0 ? y_first : y[i-1], + x[i], y[i], x[i+1], y[i+1], + i == segments-1 ? x_last : x[i+2], + i == segments-1 ? y_last : y[i+2], + res_x, res_y); + } +} + +} // namespace + + +void DiagonalCurve::catmull_rom_set() +{ + int n_points = max(ppn * 65, 65000); + poly_x.clear(); + poly_y.clear(); + catmull_rom_chain(n_points, N, x, y, poly_x, poly_y); +} + +/*****************************************************************************/ + + double DiagonalCurve::getVal (double t) const { @@ -300,7 +459,8 @@ double DiagonalCurve::getVal (double t) const } case DCT_Linear : - case DCT_Spline : { + // case DCT_Spline : + { // values under and over the first and last point if (t > x[N - 1]) { return y[N - 1]; @@ -324,20 +484,33 @@ double DiagonalCurve::getVal (double t) const double h = x[k_hi] - x[k_lo]; // linear - if (kind == DCT_Linear) { + // if (kind == DCT_Linear) { return y[k_lo] + (t - x[k_lo]) * ( y[k_hi] - y[k_lo] ) / h; - } - // spline curve - else { // if (kind==Spline) { - double a = (x[k_hi] - t) / h; - double b = (t - x[k_lo]) / h; - double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666; - return CLIPD(r); - } + // } + // // spline curve + // else { // if (kind==Spline) { + // double a = (x[k_hi] - t) / h; + // double b = (t - x[k_lo]) / h; + // double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666; + // return CLIPD(r); + // } break; } + case DCT_Spline: { + auto it = std::lower_bound(poly_x.begin(), poly_x.end(), t); + if (it == poly_x.end()) { + return poly_y.back(); + } + auto d = it - poly_x.begin(); + if (it+1 < poly_x.end() && t - *it > *(it+1) - t) { + ++d; + } + return LIM01(*(poly_y.begin() + d)); + break; + } + case DCT_NURBS : { // get the hash table entry by rounding the value (previously multiplied by "hashSize") unsigned short int i = (unsigned short int)(t * hashSize); diff --git a/rtengine/dual_demosaic_RT.cc b/rtengine/dual_demosaic_RT.cc new file mode 100644 index 000000000..6e92fd1e2 --- /dev/null +++ b/rtengine/dual_demosaic_RT.cc @@ -0,0 +1,144 @@ +//////////////////////////////////////////////////////////////// +// +// combine demosaic algorithms +// +// +// copyright (c) 2018 Ingo Weyrich +// +// blends output of two demosaicers based on contrast +// +// +// dual_demosaic_RT.cc is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +//////////////////////////////////////////////////////////////// + +#include "jaggedarray.h" +#include "rtengine.h" +#include "rawimagesource.h" +#include "rt_math.h" +//#define BENCHMARK +#include "StopWatch.h" +#include "rt_algo.h" + +using namespace std; + +namespace rtengine +{ + +void RawImageSource::dual_demosaic_RT(bool isBayer, const RAWParams &raw, int winw, int winh, const array2D &rawData, array2D &red, array2D &green, array2D &blue, double &contrast, bool autoContrast, int autoX, int autoY) +{ + BENCHFUN + + if (contrast == 0.0 && !autoContrast) { + // contrast == 0.0 means only first demosaicer will be used + if(isBayer) { + if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4) ) { + amaze_demosaic_RT(0, 0, winw, winh, rawData, red, green, blue); + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCBVNG4) ) { + dcb_demosaic(raw.bayersensor.dcb_iterations, raw.bayersensor.dcb_enhance); + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::RCDVNG4) ) { + rcd_demosaic(); + } + } else { + if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) ) { + xtrans_interpolate (3, true); + } else { + xtrans_interpolate (1, false); + } + } + + return; + } + + array2D redTmp(winw, winh); + array2D greenTmp(winw, winh); + array2D blueTmp(winw, winh); + array2D L(winw, winh); + + if (isBayer) { + vng4_demosaic(rawData, redTmp, greenTmp, blueTmp); + + if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4) || raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { + amaze_demosaic_RT(0, 0, winw, winh, rawData, red, green, blue); + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCBVNG4) ) { + dcb_demosaic(raw.bayersensor.dcb_iterations, raw.bayersensor.dcb_enhance); + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::RCDVNG4) ) { + rcd_demosaic(); + } + } else { + if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) ) { + xtrans_interpolate (3, true); + } else { + xtrans_interpolate (1, false); + } + fast_xtrans_interpolate(rawData, redTmp, greenTmp, blueTmp); + } + + const float xyz_rgb[3][3] = { // XYZ from RGB + { 0.412453, 0.357580, 0.180423 }, + { 0.212671, 0.715160, 0.072169 }, + { 0.019334, 0.119193, 0.950227 } + }; + + if (autoContrast && autoX >= 0 && autoY >= 0) { + constexpr int rectSize = 40; + const int autoWidth = min(rectSize, winw - autoX); + const int autoHeight = min(rectSize, winh - autoY); + if (std::min(autoWidth, autoHeight) > 20) { + array2D autoL(autoWidth, autoHeight); + for(int i = 0; i < autoHeight; ++i) { + Color::RGB2L(red[i + autoY] + autoX, green[i + autoY] + autoX, blue[i + autoY] + autoX, autoL[i], xyz_rgb, autoWidth); + } + // calculate contrast based blend factors to use vng4 in regions with low contrast + JaggedArray blend(autoWidth - 2, autoHeight - 2); + int c = calcContrastThreshold(autoL, blend, autoWidth, autoHeight); + if(c < 100) { + contrast = c; // alternative : contrast = c - 1 + } + } + } + + #pragma omp parallel + { + #pragma omp for + for(int i = 0; i < winh; ++i) { + Color::RGB2L(red[i], green[i], blue[i], L[i], xyz_rgb, winw); + } + } + // calculate contrast based blend factors to use vng4 in regions with low contrast + JaggedArray blend(winw, winh); + buildBlendMask(L, blend, winw, winh, contrast / 100.f); + + // the following is split into 3 loops intentionally to avoid cache conflicts on CPUs with only 4-way cache + #pragma omp parallel for + for(int i = 0; i < winh; ++i) { + for(int j = 0; j < winw; ++j) { + red[i][j] = intp(blend[i][j], red[i][j], redTmp[i][j]); + } + } + #pragma omp parallel for + for(int i = 0; i < winh; ++i) { + for(int j = 0; j < winw; ++j) { + green[i][j] = intp(blend[i][j], green[i][j], greenTmp[i][j]); + } + } + #pragma omp parallel for + for(int i = 0; i < winh; ++i) { + for(int j = 0; j < winw; ++j) { + blue[i][j] = intp(blend[i][j], blue[i][j], blueTmp[i][j]); + } + } + +} +} diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc new file mode 100644 index 000000000..aef016386 --- /dev/null +++ b/rtengine/eahd_demosaic.cc @@ -0,0 +1,446 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2018 Gabor Horvath and other RawTherapee contributors + * Split out to own compilation unit and made speedup 2018 Ingo Weyrich (heckflosse67@gmx.de) + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include + +#include "color.h" +#include "rawimagesource.h" +#include "rawimagesource_i.h" +#include "jaggedarray.h" +#include "rawimage.h" +#include "iccmatrices.h" +#include "rt_math.h" +#include "../rtgui/multilangmgr.h" +#include "procparams.h" +//#define BENCHMARK +#include "StopWatch.h" + +using namespace std; + +namespace rtengine +{ + + +inline void RawImageSource::interpolate_row_g (float* agh, float* agv, int i) +{ + + for (int j = 0; j < W; j++) { + if (ri->ISGREEN(i, j)) { + agh[j] = rawData[i][j]; + agv[j] = rawData[i][j]; + } else { + int gh = 0; + int gv = 0; + + if (j > 1 && j < W - 2) { + gh = (-rawData[i][j - 2] + 2 * rawData[i][j - 1] + 2 * rawData[i][j] + 2 * rawData[i][j + 1] - rawData[i][j + 2]) / 4; + int maxgh = max(rawData[i][j - 1], rawData[i][j + 1]); + int mingh = min(rawData[i][j - 1], rawData[i][j + 1]); + + if (gh > maxgh) { + gh = maxgh; + } else if (gh < mingh) { + gh = mingh; + } + } else if (j == 0) { + gh = rawData[i][1]; + } else if (j == 1) { + gh = (rawData[i][0] + rawData[i][2]) / 2; + } else if (j == W - 1) { + gh = rawData[i][W - 2]; + } else if (j == W - 2) { + gh = (rawData[i][W - 1] + rawData[i][W - 3]) / 2; + } + + if (i > 1 && i < H - 2) { + gv = (-rawData[i - 2][j] + 2 * rawData[i - 1][j] + 2 * rawData[i][j] + 2 * rawData[i + 1][j] - rawData[i + 2][j]) / 4; + int maxgv = max(rawData[i - 1][j], rawData[i + 1][j]); + int mingv = min(rawData[i - 1][j], rawData[i + 1][j]); + + if (gv > maxgv) { + gv = maxgv; + } else if (gv < mingv) { + gv = mingv; + } + } else if (i == 0) { + gv = rawData[1][j]; + } else if (i == 1) { + gv = (rawData[0][j] + rawData[2][j]) / 2; + } else if (i == H - 1) { + gv = rawData[H - 2][j]; + } else if (i == H - 2) { + gv = (rawData[H - 1][j] + rawData[H - 3][j]) / 2; + } + + agh[j] = gh; + agv[j] = gv; + } + } +} + +inline void RawImageSource::interpolate_row_rb (float* ar, float* ab, float* pg, float* cg, float* ng, int i) +{ + const auto getPg = [pg](int index) { + return + pg + ? pg[index] + : 0.f; + }; + + const auto getNg = [ng](int index) { + return + ng + ? ng[index] + : 0.f; + }; + + float *nonGreen1 = ar; + float *nonGreen2 = ab; + + if ((ri->ISBLUE(i, 0) || ri->ISBLUE(i, 1))) { + std::swap(nonGreen1, nonGreen2); + } + int j = FC(i, 0) & 1; + if (j) { + // linear R-G interp. horizontally + float val1; + + val1 = cg[0] + rawData[i][1] - cg[1]; + + nonGreen1[0] = CLIP(val1); + // linear B-G interp. vertically + float val2; + + if (i == 0) { + val2 = getNg(0) + rawData[1][0] - cg[0]; + } else if (i == H - 1) { + val2 = getPg(0) + rawData[H - 2][0] - cg[0]; + } else { + val2 = cg[0] + (rawData[i - 1][0] - getPg(0) + rawData[i + 1][0] - getNg(0)) / 2; + } + + nonGreen2[0] = val2; + } + // RGRGR or GRGRGR line + for (; j < W - 1; j += 2) { + // nonGreen of row is simple + nonGreen1[j] = rawData[i][j]; + // non green of next row: cross interpolation + float nonGreen = 0.f; + int n = 0; + + if (i > 0) { + if (j > 0) { + nonGreen += rawData[i - 1][j - 1] - getPg(j - 1); + n++; + } + nonGreen += rawData[i - 1][j + 1] - getPg(j + 1); + n++; + } + + if (i < H - 1) { + if (j > 0) { + nonGreen += rawData[i + 1][j - 1] - getNg(j - 1); + n++; + } + nonGreen += rawData[i + 1][j + 1] - getNg(j + 1); + n++; + } + + nonGreen2[j] = cg[j] + nonGreen / n; + + // linear R-G interp. horizontally + float val1; + + if (j == W - 2) { + val1 = cg[W - 1] + rawData[i][W - 2] - cg[W - 2]; + } else { + val1 = cg[j + 1] + (rawData[i][j] - cg[j] + rawData[i][j + 2] - cg[j + 2]) / 2; + } + + nonGreen1[j + 1] = CLIP(val1); + // linear B-G interp. vertically + float val2; + + if (i == 0) { + val2 = getNg(j + 1) + rawData[1][j + 1] - cg[j + 1]; + } else if (i == H - 1) { + val2 = getPg(j + 1) + rawData[H - 2][j + 1] - cg[j + 1]; + } else { + val2 = cg[j + 1] + (rawData[i - 1][j + 1] - getPg(j + 1) + rawData[i + 1][j + 1] - getNg(j + 1)) / 2; + } + + nonGreen2[j + 1] = val2; + } + + if(j == W - 1) { + // nonGreen of row is simple + nonGreen1[j] = rawData[i][j]; + // non green of next row: cross interpolation + float nonGreen = 0.f; + int n = 0; + + if (i > 0) { + nonGreen += rawData[i - 1][j - 1] - getPg(j - 1); + n++; + } + + if (i < H - 1) { + nonGreen += rawData[i + 1][j - 1] - getNg(j - 1); + n++; + } + + nonGreen2[j] = cg[j] + nonGreen / n; + } +} + +#define DIST(a,b) (std::fabs(a-b)) + +void RawImageSource::eahd_demosaic () +{ + BENCHFUN + if (plistener) { + plistener->setProgressStr (Glib::ustring::compose(M("TP_RAW_DMETHOD_PROGRESSBAR"), RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::EAHD))); + plistener->setProgress (0.0); + } + + // prepare constants for cielab conversion + //TODO: revisit after conversion to D50 illuminant + const float lc00 = (0.412453 * imatrices.rgb_cam[0][0] + 0.357580 * imatrices.rgb_cam[0][1] + 0.180423 * imatrices.rgb_cam[0][2]) ;// / 0.950456; + const float lc01 = (0.412453 * imatrices.rgb_cam[1][0] + 0.357580 * imatrices.rgb_cam[1][1] + 0.180423 * imatrices.rgb_cam[1][2]) ;// / 0.950456; + const float lc02 = (0.412453 * imatrices.rgb_cam[2][0] + 0.357580 * imatrices.rgb_cam[2][1] + 0.180423 * imatrices.rgb_cam[2][2]) ;// / 0.950456; + + const float lc10 = 0.212671 * imatrices.rgb_cam[0][0] + 0.715160 * imatrices.rgb_cam[0][1] + 0.072169 * imatrices.rgb_cam[0][2]; + const float lc11 = 0.212671 * imatrices.rgb_cam[1][0] + 0.715160 * imatrices.rgb_cam[1][1] + 0.072169 * imatrices.rgb_cam[1][2]; + const float lc12 = 0.212671 * imatrices.rgb_cam[2][0] + 0.715160 * imatrices.rgb_cam[2][1] + 0.072169 * imatrices.rgb_cam[2][2]; + + const float lc20 = (0.019334 * imatrices.rgb_cam[0][0] + 0.119193 * imatrices.rgb_cam[0][1] + 0.950227 * imatrices.rgb_cam[0][2]) ;// / 1.088754; + const float lc21 = (0.019334 * imatrices.rgb_cam[1][0] + 0.119193 * imatrices.rgb_cam[1][1] + 0.950227 * imatrices.rgb_cam[1][2]) ;// / 1.088754; + const float lc22 = (0.019334 * imatrices.rgb_cam[2][0] + 0.119193 * imatrices.rgb_cam[2][1] + 0.950227 * imatrices.rgb_cam[2][2]) ;// / 1.088754; + + const float wp[3][3] = {{lc00, lc01, lc02}, {lc10, lc11, lc12}, {lc20, lc21, lc22}}; + + // end of cielab preparation + + JaggedArray + rh (W, 3), gh (W, 4), bh (W, 3), + rv (W, 3), gv (W, 4), bv (W, 3), + lLh (W, 3), lah (W, 3), lbh (W, 3), + lLv (W, 3), lav (W, 3), lbv (W, 3); + JaggedArray homh (W, 3), homv (W, 3); + + // interpolate first two lines + interpolate_row_g (gh[0], gv[0], 0); + interpolate_row_g (gh[1], gv[1], 1); + interpolate_row_g (gh[2], gv[2], 2); + interpolate_row_rb (rh[0], bh[0], nullptr, gh[0], gh[1], 0); + interpolate_row_rb (rv[0], bv[0], nullptr, gv[0], gv[1], 0); + interpolate_row_rb (rh[1], bh[1], gh[0], gh[1], gh[2], 1); + interpolate_row_rb (rv[1], bv[1], gv[0], gv[1], gv[2], 1); + + Color::RGB2Lab(rh[0], gh[0], bh[0], lLh[0], lah[0], lbh[0], wp, W); + Color::RGB2Lab(rv[0], gv[0], bv[0], lLv[0], lav[0], lbv[0], wp, W); + Color::RGB2Lab(rh[1], gh[1], bh[1], lLh[1], lah[1], lbh[1], wp, W); + Color::RGB2Lab(rv[1], gv[1], bv[1], lLv[1], lav[1], lbv[1], wp, W); + + for (int j = 0; j < W; j++) { + homh[0][j] = 0; + homv[0][j] = 0; + homh[1][j] = 0; + homv[1][j] = 0; + } + + float dLmaph[9]; + float dLmapv[9]; + float dCamaph[9]; + float dCamapv[9]; + float dCbmaph[9]; + float dCbmapv[9]; + + for (int i = 1; i < H - 1; i++) { + int mod[3] = {(i-1) % 3, i % 3, (i+1) %3}; + int ix = i % 3; + int imx = (i - 1) % 3; + int ipx = (i + 1) % 3; + + if (i < H - 2) { + interpolate_row_g (gh[(i + 2) % 4], gv[(i + 2) % 4], i + 2); + interpolate_row_rb (rh[(i + 1) % 3], bh[(i + 1) % 3], gh[i % 4], gh[(i + 1) % 4], gh[(i + 2) % 4], i + 1); + interpolate_row_rb (rv[(i + 1) % 3], bv[(i + 1) % 3], gv[i % 4], gv[(i + 1) % 4], gv[(i + 2) % 4], i + 1); + } else { + interpolate_row_rb (rh[(i + 1) % 3], bh[(i + 1) % 3], gh[i % 4], gh[(i + 1) % 4], nullptr, i + 1); + interpolate_row_rb (rv[(i + 1) % 3], bv[(i + 1) % 3], gv[i % 4], gv[(i + 1) % 4], nullptr, i + 1); + } + + Color::RGB2Lab(rh[(i + 1) % 3], gh[(i + 1) % 4], bh[(i + 1) % 3], lLh[(i + 1) % 3], lah[(i + 1) % 3], lbh[(i + 1) % 3], wp, W); + Color::RGB2Lab(rv[(i + 1) % 3], gv[(i + 1) % 4], bv[(i + 1) % 3], lLv[(i + 1) % 3], lav[(i + 1) % 3], lbv[(i + 1) % 3], wp, W); + + for (int j = 0; j < W; j++) { + homh[ipx][j] = 0; + homv[ipx][j] = 0; + } + + for (int j = 1; j < W - 1; j++) { + int dmi = 0; + for (int x = -1; x <= 0; x++) { + int idx = mod[x + 1]; + + for (int y = -1; y <= 1; y++) { + // compute distance in a, b, and L + if (dmi < 4) { + int sh = homh[idx][j + y]; + int sv = homv[idx][j + y]; + + if (sh > sv) { // fixate horizontal pixel + dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); + dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); + dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); + dLmapv[dmi] = DIST(lLv[ix][j], lLh[idx][j + y]); + dCamapv[dmi] = DIST(lav[ix][j], lah[idx][j + y]); + dCbmapv[dmi] = DIST(lbv[ix][j], lbh[idx][j + y]); + } else if (sh < sv) { + dLmaph[dmi] = DIST(lLh[ix][j], lLv[idx][j + y]); + dCamaph[dmi] = DIST(lah[ix][j], lav[idx][j + y]); + dCbmaph[dmi] = DIST(lbh[ix][j], lbv[idx][j + y]); + dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); + dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); + dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); + } else { + dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); + dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); + dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); + dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); + dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); + dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); + } + } else { + dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); + dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); + dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); + dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); + dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); + dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); + } + + dmi++; + } + } + int idx = mod[2]; + + for (int y = -1; y <= 1; y++) { + // compute distance in a, b, and L + dLmaph[dmi] = DIST(lLh[ix][j], lLh[idx][j + y]); + dCamaph[dmi] = DIST(lah[ix][j], lah[idx][j + y]); + dCbmaph[dmi] = DIST(lbh[ix][j], lbh[idx][j + y]); + dLmapv[dmi] = DIST(lLv[ix][j], lLv[idx][j + y]); + dCamapv[dmi] = DIST(lav[ix][j], lav[idx][j + y]); + dCbmapv[dmi] = DIST(lbv[ix][j], lbv[idx][j + y]); + dmi++; + } + + // compute eL & eC + float eL = min(max(dLmaph[3], dLmaph[5]), max(dLmapv[1], dLmapv[7])); + float eCa = min(max(dCamaph[3], dCamaph[5]), max(dCamapv[1], dCamapv[7])); + float eCb = min(max(dCbmaph[3], dCbmaph[5]), max(dCbmapv[1], dCbmapv[7])); + + int wh = 0; + + for (int dmi = 0; dmi < 9; dmi++) { + wh += (dLmaph[dmi] <= eL) * (dCamaph[dmi] <= eCa) * (dCbmaph[dmi] <= eCb); + } + + homh[imx][j - 1] += wh; + homh[imx][j] += wh; + homh[imx][j + 1] += wh; + homh[ix][j - 1] += wh; + homh[ix][j] += wh; + homh[ix][j + 1] += wh; + homh[ipx][j - 1] += wh; + homh[ipx][j] += wh; + homh[ipx][j + 1] += wh; + + int wv = 0; + + for (int dmi = 0; dmi < 9; dmi++) { + wv += (dLmapv[dmi] <= eL) * (dCamapv[dmi] <= eCa) * (dCbmapv[dmi] <= eCb); + } + + homv[imx][j - 1] += wv; + homv[imx][j] += wv; + homv[imx][j + 1] += wv; + homv[ix][j - 1] += wv; + homv[ix][j] += wv; + homv[ix][j + 1] += wv; + homv[ipx][j - 1] += wv; + homv[ipx][j] += wv; + homv[ipx][j + 1] += wv; + } + + // finalize image + for (int j = 0; j < W; j++) { + if (ri->ISGREEN(i - 1, j)) { + green[i - 1][j] = rawData[i - 1][j]; + } else { + int hc = homh[imx][j]; + int vc = homv[imx][j]; + + if (hc > vc) { + green[i - 1][j] = gh[(i - 1) % 4][j]; + } else if (hc < vc) { + green[i - 1][j] = gv[(i - 1) % 4][j]; + } else { + green[i - 1][j] = (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2; + } + } + } + + if (!(i % 20) && plistener) { + plistener->setProgress ((double)i / (H - 2)); + } + } + + // finish H-2th and H-1th row, homogenity value is still valailable + for (int i = H - 1; i < H + 1; i++) + for (int j = 0; j < W; j++) { + int hc = homh[(i - 1) % 3][j]; + int vc = homv[(i - 1) % 3][j]; + + if (hc > vc) { + green[i - 1][j] = gh[(i - 1) % 4][j]; + } else if (hc < vc) { + green[i - 1][j] = gv[(i - 1) % 4][j]; + } else { + green[i - 1][j] = (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2; + } + } + + // Interpolate R and B + #pragma omp parallel for + for (int i = 0; i < H; i++) { + if (i == 0) { + interpolate_row_rb_mul_pp (rawData, red[i], blue[i], nullptr, green[i], green[i + 1], i, 1.0, 1.0, 1.0, 0, W, 1); + } else if (i == H - 1) { + interpolate_row_rb_mul_pp (rawData, red[i], blue[i], green[i - 1], green[i], nullptr, i, 1.0, 1.0, 1.0, 0, W, 1); + } else { + interpolate_row_rb_mul_pp (rawData, red[i], blue[i], green[i - 1], green[i], green[i + 1], i, 1.0, 1.0, 1.0, 0, W, 1); + } + } +} + +} \ No newline at end of file diff --git a/rtengine/gamutwarning.cc b/rtengine/gamutwarning.cc index 87be430b2..84b4b3c08 100644 --- a/rtengine/gamutwarning.cc +++ b/rtengine/gamutwarning.cc @@ -34,7 +34,7 @@ GamutWarning::GamutWarning(cmsHPROFILE iprof, cmsHPROFILE gamutprof, RenderingIn softproof2ref(nullptr) { if (cmsIsMatrixShaper(gamutprof) && !cmsIsCLUT(gamutprof, intent, LCMS_USED_AS_OUTPUT)) { - cmsHPROFILE aces = ICCStore::getInstance()->getProfile("ACES"); + cmsHPROFILE aces = ICCStore::getInstance()->getProfile("RTv4_ACES-AP0"); if (aces) { lab2ref = cmsCreateTransform(iprof, TYPE_Lab_FLT, aces, TYPE_RGB_FLT, INTENT_ABSOLUTE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); lab2softproof = cmsCreateTransform(iprof, TYPE_Lab_FLT, gamutprof, TYPE_RGB_FLT, INTENT_ABSOLUTE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); diff --git a/rtengine/gauss.cc b/rtengine/gauss.cc index caa5e28b5..513932517 100644 --- a/rtengine/gauss.cc +++ b/rtengine/gauss.cc @@ -1020,14 +1020,14 @@ template void gaussVerticaldiv (T** src, T** dst, T** divBuffer, const } for (int k = 0; k < numcols; k++) { - dst[H - 1][i + k] = rtengine::max(divBuffer[H - 1][i + k] / (temp2[H - 1][k] = temp2Hm1[k]), 0.f); - dst[H - 2][i + k] = rtengine::max(divBuffer[H - 2][i + k] / (temp2[H - 2][k] = B * temp2[H - 2][k] + b1 * temp2[H - 1][k] + b2 * temp2H[k] + b3 * temp2Hp1[k]), 0.f); - dst[H - 3][i + k] = rtengine::max(divBuffer[H - 3][i + k] / (temp2[H - 3][k] = B * temp2[H - 3][k] + b1 * temp2[H - 2][k] + b2 * temp2[H - 1][k] + b3 * temp2H[k]), 0.f); + dst[H - 1][i + k] = rtengine::max(divBuffer[H - 1][i + k] / (temp2[H - 1][k] = temp2Hm1[k]), 0.0); + dst[H - 2][i + k] = rtengine::max(divBuffer[H - 2][i + k] / (temp2[H - 2][k] = B * temp2[H - 2][k] + b1 * temp2[H - 1][k] + b2 * temp2H[k] + b3 * temp2Hp1[k]), 0.0); + dst[H - 3][i + k] = rtengine::max(divBuffer[H - 3][i + k] / (temp2[H - 3][k] = B * temp2[H - 3][k] + b1 * temp2[H - 2][k] + b2 * temp2[H - 1][k] + b3 * temp2H[k]), 0.0); } for (int j = H - 4; j >= 0; j--) { for (int k = 0; k < numcols; k++) { - dst[j][i + k] = rtengine::max(divBuffer[j][i + k] / (temp2[j][k] = B * temp2[j][k] + b1 * temp2[j + 1][k] + b2 * temp2[j + 2][k] + b3 * temp2[j + 3][k]), 0.f); + dst[j][i + k] = rtengine::max(divBuffer[j][i + k] / (temp2[j][k] = B * temp2[j][k] + b1 * temp2[j + 1][k] + b2 * temp2[j + 2][k] + b3 * temp2[j + 3][k]), 0.0); } } } @@ -1050,12 +1050,12 @@ template void gaussVerticaldiv (T** src, T** dst, T** divBuffer, const double temp2H = src[H - 1][i] + M[1][0] * (temp2[H - 1][0] - src[H - 1][i]) + M[1][1] * (temp2[H - 2][0] - src[H - 1][i]) + M[1][2] * (temp2[H - 3][0] - src[H - 1][i]); double temp2Hp1 = src[H - 1][i] + M[2][0] * (temp2[H - 1][0] - src[H - 1][i]) + M[2][1] * (temp2[H - 2][0] - src[H - 1][i]) + M[2][2] * (temp2[H - 3][0] - src[H - 1][i]); - dst[H - 1][i] = rtengine::max(divBuffer[H - 1][i] / (temp2[H - 1][0] = temp2Hm1), 0.f); - dst[H - 2][i] = rtengine::max(divBuffer[H - 2][i] / (temp2[H - 2][0] = B * temp2[H - 2][0] + b1 * temp2[H - 1][0] + b2 * temp2H + b3 * temp2Hp1), 0.f); - dst[H - 3][i] = rtengine::max(divBuffer[H - 3][i] / (temp2[H - 3][0] = B * temp2[H - 3][0] + b1 * temp2[H - 2][0] + b2 * temp2[H - 1][0] + b3 * temp2H), 0.f); + dst[H - 1][i] = rtengine::max(divBuffer[H - 1][i] / (temp2[H - 1][0] = temp2Hm1), 0.0); + dst[H - 2][i] = rtengine::max(divBuffer[H - 2][i] / (temp2[H - 2][0] = B * temp2[H - 2][0] + b1 * temp2[H - 1][0] + b2 * temp2H + b3 * temp2Hp1), 0.0); + dst[H - 3][i] = rtengine::max(divBuffer[H - 3][i] / (temp2[H - 3][0] = B * temp2[H - 3][0] + b1 * temp2[H - 2][0] + b2 * temp2[H - 1][0] + b3 * temp2H), 0.0); for (int j = H - 4; j >= 0; j--) { - dst[j][i] = rtengine::max(divBuffer[j][i] / (temp2[j][0] = B * temp2[j][0] + b1 * temp2[j + 1][0] + b2 * temp2[j + 2][0] + b3 * temp2[j + 3][0]), 0.f); + dst[j][i] = rtengine::max(divBuffer[j][i] / (temp2[j][0] = B * temp2[j][0] + b1 * temp2[j + 1][0] + b2 * temp2[j + 2][0] + b3 * temp2[j + 3][0]), 0.0); } } } diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index a1f5b5e4a..b8ad23e70 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -28,8 +28,6 @@ #include "rawimagesource.h" #include "rt_math.h" #include "opthelper.h" -#include "gauss.h" - namespace rtengine { @@ -414,8 +412,6 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b constexpr float itrans[ColorCount][ColorCount] = { { 1.f, 0.8660254f, -0.5f }, { 1.f, -0.8660254f, -0.5f }, { 1.f, 0.f, 1.f } }; - std::unique_ptr recovered_partial; - if(settings->verbose) for(int c = 0; c < 3; c++) { printf("chmax[%d] : %f\tclmax[%d] : %f\tratio[%d] : %f\n", c, chmax[c], c, clmax[c], c, chmax[c] / clmax[c]); @@ -570,7 +566,7 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b //blur highlight data boxblur2(hilite_full[3], hilite_full4, temp, height, width, 1); - //temp.free(); // free temporary buffer + temp.free(); // free temporary buffer if(plistener) { progress += 0.05; @@ -1109,34 +1105,29 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b if (pixel[0] > max_f[0] && pixel[1] > max_f[1] && pixel[2] > max_f[2]) { //all channels clipped float Y = (0.299 * clipfix[0] + 0.587 * clipfix[1] + 0.114 * clipfix[2]); + float factor = whitept / Y; - red[i][j] = CLIP(clipfix[0] * factor); - green[i][j] = CLIP(clipfix[1] * factor); - blue[i][j] = CLIP(clipfix[2] * factor); - + red[i][j] = clipfix[0] * factor; + green[i][j] = clipfix[1] * factor; + blue[i][j] = clipfix[2] * factor; } else {//some channels clipped float notclipped[3] = {pixel[0] <= max_f[0] ? 1.f : 0.f, pixel[1] <= max_f[1] ? 1.f : 0.f, pixel[2] <= max_f[2] ? 1.f : 0.f}; if (notclipped[0] == 0.f) { //red clipped - red[i][j] = CLIP((clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / + red[i][j] = max(red[i][j], (clipfix[0] * ((notclipped[1] * pixel[1] + notclipped[2] * pixel[2]) / (notclipped[1] * clipfix[1] + notclipped[2] * clipfix[2] + epsilon)))); } if (notclipped[1] == 0.f) { //green clipped - green[i][j] = CLIP((clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / + green[i][j] = max(green[i][j], (clipfix[1] * ((notclipped[2] * pixel[2] + notclipped[0] * pixel[0]) / (notclipped[2] * clipfix[2] + notclipped[0] * clipfix[0] + epsilon)))); } if (notclipped[2] == 0.f) { //blue clipped - blue[i][j] = CLIP((clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / + blue[i][j] = max(blue[i][j], (clipfix[2] * ((notclipped[0] * pixel[0] + notclipped[1] * pixel[1]) / (notclipped[0] * clipfix[0] + notclipped[1] * clipfix[1] + epsilon)))); } - - if (!recovered_partial) { - recovered_partial.reset(new PixelsMap(width, height)); - } - recovered_partial->set(j, i); - } + } Y = (0.299 * red[i][j] + 0.587 * green[i][j] + 0.114 * blue[i][j]); @@ -1150,33 +1141,6 @@ void RawImageSource :: HLRecovery_inpaint (float** red, float** green, float** b } } - { - for (int c = 0; c < 3; ++c) { - float **color = c == 0 ? red : c == 1 ? green : blue; - - if (recovered_partial) { -#ifdef _OPENMP - #pragma omp parallel -#endif - gaussianBlur(color, temp, width, height, 1.5f); - -#ifdef _OPENMP - #pragma omp parallel for -#endif - for (int i = 0; i < height; ++i) { - for (int j = 0; j < width; ++j) { - int skip = recovered_partial->skipIfZero(j, i); - if (skip) { - j += skip-1; - } else if (recovered_partial->get(j, i)) { - color[i][j] = temp[i][j]; - } - } - } - } - } - } - if(plistener) { plistener->setProgress(1.00); } diff --git a/rtengine/histmatching.cc b/rtengine/histmatching.cc index 0faa8c357..b2fe436fd 100644 --- a/rtengine/histmatching.cc +++ b/rtengine/histmatching.cc @@ -26,6 +26,7 @@ #include "iccstore.h" #include "../rtgui/mydiagonalcurve.h" #include "improcfun.h" +//#define BENCHMARK #include "StopWatch.h" #include @@ -51,7 +52,7 @@ CdfInfo getCdf(const IImage8 &img) for (int y = 0; y < img.getHeight(); ++y) { for (int x = 0; x < img.getWidth(); ++x) { - int lum = LIM(0, int(Color::rgbLuminance(float(img.r(y, x)), float(img.g(y, x)), float(img.b(y, x)))), 255); + int lum = LIM(int(Color::rgbLuminance(float(img.r(y, x)), float(img.g(y, x)), float(img.b(y, x)))), 0, 255); ++ret.cdf[lum]; } } @@ -96,11 +97,59 @@ int findMatch(int val, const std::vector &cdf, int j) } +class CubicSplineCurve: public DiagonalCurve { +public: + CubicSplineCurve(const std::vector &points): + DiagonalCurve({DCT_Linear}) + { + N = points.size() / 2; + x = new double[N]; + y = new double[N]; + + for (int i = 0; i < N; ++i) { + x[i] = points[2*i]; + y[i] = points[2*i+1]; + } + kind = DCT_Spline; + spline_cubic_set(); + } + + double getVal(double t) const + { + // values under and over the first and last point + if (t > x[N - 1]) { + return y[N - 1]; + } else if (t < x[0]) { + return y[0]; + } + + // do a binary search for the right interval: + unsigned int k_lo = 0, k_hi = N - 1; + + while (k_hi > 1 + k_lo) { + unsigned int k = (k_hi + k_lo) / 2; + + if (x[k] > t) { + k_hi = k; + } else { + k_lo = k; + } + } + + double h = x[k_hi] - x[k_lo]; + + double a = (x[k_hi] - t) / h; + double b = (t - x[k_lo]) / h; + double r = a * y[k_lo] + b * y[k_hi] + ((a * a * a - a) * ypp[k_lo] + (b * b * b - b) * ypp[k_hi]) * (h * h) * 0.1666666666666666666666666666666; + return LIM01(r); + } +}; + + void mappingToCurve(const std::vector &mapping, std::vector &curve) { curve.clear(); - const int npoints = 8; int idx = 15; for (; idx < int(mapping.size()); ++idx) { if (mapping[idx] >= idx) { @@ -114,12 +163,12 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) } } } - int step = std::max(int(mapping.size())/npoints, 1); auto coord = [](int v) -> double { return double(v)/255.0; }; auto doit = - [&](int start, int stop, int step, bool addstart) -> void + [&](int start, int stop, int step, bool addstart, int maxdelta=0) -> void { + if (!maxdelta) maxdelta = step * 2; int prev = start; if (addstart && mapping[start] >= 0) { curve.push_back(coord(start)); @@ -132,7 +181,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) } bool change = i > 0 && v != mapping[i-1]; int diff = i - prev; - if ((change && std::abs(diff - step) <= 1) || diff > step * 2) { + if ((change && std::abs(diff - step) <= 1) || diff > maxdelta) { curve.push_back(coord(i)); curve.push_back(coord(v)); prev = i; @@ -147,22 +196,42 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) while (start < idx && (mapping[start] < 0 || start < idx / 2)) { ++start; } + + const int npoints = 8; + int step = std::max(int(mapping.size())/npoints, 1); + int end = mapping.size(); + if (idx <= end / 3) { + doit(start, idx, idx / 2, true); + step = (end - idx) / 4; + doit(idx, end, step, false, step); + } else { + doit(start, idx, idx > step ? step : idx / 2, true); + doit(idx, end, step, idx - step > step / 2 && std::abs(curve[curve.size()-2] - coord(idx)) > 0.01); + } - doit(start, idx, idx > step ? step : idx / 2, true); - doit(idx, int(mapping.size()), step, idx - step > step / 2 && std::abs(curve[curve.size()-2] - coord(idx)) > 0.01); - - if (curve.size() > 2 && (1 - curve[curve.size()-2] <= step / (256.0 * 3))) { + if (curve.size() > 2 && (1 - curve[curve.size()-2] <= coord(step) / 3)) { curve.pop_back(); curve.pop_back(); } - + curve.push_back(1.0); curve.push_back(1.0); if (curve.size() < 4) { curve = { DCT_Linear }; // not enough points, fall back to linear } else { - curve.insert(curve.begin(), DCT_Spline); + CubicSplineCurve c(curve); + double gap = 0.05; + double x = 0.0; + curve = { DCT_Spline }; + while (x < 1.0) { + curve.push_back(x); + curve.push_back(c.getVal(x)); + x += gap; + gap *= 1.4; + } + curve.push_back(1.0); + curve.push_back(c.getVal(1.0)); } } @@ -180,7 +249,7 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st const auto same_profile = [](const ColorManagementParams &a, const ColorManagementParams &b) -> bool { - return (a.input == b.input + return (a.inputProfile == b.inputProfile && a.toneCurve == b.toneCurve && a.applyLookTable == b.applyLookTable && a.applyBaselineExposureOffset == b.applyBaselineExposureOffset @@ -200,6 +269,9 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st int fw, fh; getFullSize(fw, fh, TR_NONE); + if (getRotateDegree() == 90 || getRotateDegree() == 270) { + std::swap(fw, fh); + } int skip = 3; if (settings->verbose) { @@ -210,9 +282,7 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st neutral.icm = cp; neutral.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); neutral.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); - neutral.icm.output = "sRGB"; - neutral.icm.gamma = "default"; - neutral.icm.freegamma = false; + neutral.icm.outputProfile = ColorManagementParams::NoICMString; std::unique_ptr source; { diff --git a/rtengine/iccmatrices.h b/rtengine/iccmatrices.h index a6fd8d9e6..29426c62d 100644 --- a/rtengine/iccmatrices.h +++ b/rtengine/iccmatrices.h @@ -32,6 +32,19 @@ constexpr double d50_d65[3][3] = { { -0.0092345, 0.0150436, 0.7521316} }; +//J.Desmis 04 2018 +constexpr double d50_d60[3][3] = { + { 1.034368, 0.016908, -0.037658}, + {0.021752, 0.992183, -0.012785}, + { -0.006971, 0.011377, 0.812150} +}; + +constexpr double d60_d50[3][3] = { + { 0.96743198, -0.01699717, 0.044590689}, + {-0.02109893, 1.008067172, 0.014890785}, + {0.008598998, -0.01426777, 1.231474467} +}; + // Color space conversion to/from XYZ; color spaces adapted to D65 constexpr double xyz_sRGBd65[3][3] = { {0.4124564, 0.3575761, 0.1804375}, @@ -66,6 +79,31 @@ constexpr double xyz_sRGB[3][3] = { {0.0139322, 0.0971045, 0.7141733} }; +constexpr double xyz_ACESp0[3][3] = { + {0.9908526, 0.0122334, -0.0388654}, + {0.3618807, 0.72255045 , -0.0843859}, + {-0.0027093, 0.0082323, 0.8196880} +}; + +constexpr double ACESp0_xyz[3][3] = { + {1.01583320, -0.01772807, 0.04634052}, + {-0.50781231, 1.39131494 , 0.11915641}, + {0.00845768, -0.01403193, 1.21893277} +}; + +constexpr double xyz_ACESp1[3][3] = { + {0.689697, 0.149944, 0.124559}, + {0.284448, 0.671758 , 0.043794}, + {-0.006043, 0.009998, 0.820945} +}; + +constexpr double ACESp1_xyz[3][3] = { + {1.5932624, -0.352316, -0.222945}, + {-0.6759496, 1.639286 , 0.01511026}, + {0.0199602, -0.0225577, 1.2162833} +}; + + constexpr double sRGB_xyz[3][3] = { {3.1338561, -1.6168667, -0.4906146}, { -0.9787684, 1.9161415, 0.0334540}, diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index eeb9ef1c4..4d490c0a0 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -36,9 +36,10 @@ #include "../rtgui/options.h" #include "../rtgui/threadutils.h" +#include "lcms2_plugin.h" #include "cJSON.h" - +#define inkc_constant 0x696E6B43 namespace rtengine { @@ -157,6 +158,7 @@ bool loadProfile( if (profileContents) { profileContents->emplace(name, content); } + return true; } } @@ -196,12 +198,11 @@ cmsHPROFILE createXYZProfile() return rtengine::ICCStore::createFromMatrix(mat, false, "XYZ"); } -const double(*wprofiles[])[3] = {xyz_sRGB, xyz_adobe, xyz_prophoto, xyz_widegamut, xyz_bruce, xyz_beta, xyz_best, xyz_rec2020}; -const double(*iwprofiles[])[3] = {sRGB_xyz, adobe_xyz, prophoto_xyz, widegamut_xyz, bruce_xyz, beta_xyz, best_xyz, rec2020_xyz}; -const char* wpnames[] = {"sRGB", "Adobe RGB", "ProPhoto", "WideGamut", "BruceRGB", "Beta RGB", "BestRGB", "Rec2020"}; -const char* wpgamma[] = {"default", "BT709_g2.2_s4.5", "sRGB_g2.4_s12.92", "linear_g1.0", "standard_g2.2", "standard_g1.8", "High_g1.3_s3.35", "Low_g2.6_s6.9"}; //gamma free +const double(*wprofiles[])[3] = {xyz_sRGB, xyz_adobe, xyz_prophoto, xyz_widegamut, xyz_bruce, xyz_beta, xyz_best, xyz_rec2020, xyz_ACESp0, xyz_ACESp1};// +const double(*iwprofiles[])[3] = {sRGB_xyz, adobe_xyz, prophoto_xyz, widegamut_xyz, bruce_xyz, beta_xyz, best_xyz, rec2020_xyz, ACESp0_xyz, ACESp1_xyz};// +const char* wpnames[] = {"sRGB", "Adobe RGB", "ProPhoto", "WideGamut", "BruceRGB", "Beta RGB", "BestRGB", "Rec2020", "ACESp0", "ACESp1"};// //default = gamma inside profile -//BT709 g=2.22 s=4.5 sRGB g=2.4 s=12.92 +//BT709 g=2.22 s=4.5 sRGB g=2.4 s=12.92310 //linear g=1.0 //std22 g=2.2 std18 g=1.8 // high g=1.3 s=3.35 for high dynamic images @@ -221,7 +222,8 @@ rtengine::ProfileContent::ProfileContent(const Glib::ustring& fileName) fseek(f, 0, SEEK_END); long length = ftell(f); - if(length > 0) { + + if (length > 0) { char* d = new char[length + 1]; fseek(f, 0, SEEK_SET); length = fread(d, 1, length, f); @@ -231,6 +233,7 @@ rtengine::ProfileContent::ProfileContent(const Glib::ustring& fileName) } else { data.clear(); } + fclose(f); } @@ -255,8 +258,8 @@ cmsHPROFILE rtengine::ProfileContent::toProfile() const return !data.empty() - ? cmsOpenProfileFromMem(data.c_str(), data.size()) - : nullptr; + ? cmsOpenProfileFromMem(data.c_str(), data.size()) + : nullptr; } const std::string& rtengine::ProfileContent::getData() const @@ -291,20 +294,23 @@ public: cmsCloseProfile(p.second); } } + // for (auto &p : wProfilesGamma) { // if (p.second) { // cmsCloseProfile(p.second); // } // } for (auto &p : fileProfiles) { - if(p.second) { + if (p.second) { cmsCloseProfile(p.second); } } - if(srgb) { + + if (srgb) { cmsCloseProfile(srgb); } - if(xyz) { + + if (xyz) { cmsCloseProfile(xyz); } } @@ -322,6 +328,7 @@ public: userICCDir = usrICCDir; fileProfiles.clear(); fileProfileContents.clear(); + if (loadAll) { loadProfiles(profilesDir, &fileProfiles, &fileProfileContents, nullptr, false); loadProfiles(userICCDir, &fileProfiles, &fileProfileContents, nullptr, false); @@ -332,6 +339,7 @@ public: stdProfilesDir = Glib::build_filename(rtICCDir, "input"); fileStdProfiles.clear(); fileStdProfilesFileNames.clear(); + if (loadAll) { loadProfiles(stdProfilesDir, nullptr, nullptr, &fileStdProfilesFileNames, true); Glib::ustring user_input_icc_dir = Glib::build_filename(options.rtdir, "iccprofiles", "input"); @@ -342,7 +350,7 @@ public: loadWorkingSpaces(rtICCDir); loadWorkingSpaces(userICCDir); - + // initialize the alarm colours for lcms gamut checking -- we use bright green cmsUInt16Number cms_alarm_codes[cmsMAXCHANNELS] = { 0, 65535, 65535 }; cmsSetAlarmCodes(cms_alarm_codes); @@ -354,8 +362,8 @@ public: return r != wProfiles.end() - ? r->second - : wProfiles.find("sRGB")->second; + ? r->second + : wProfiles.find("sRGB")->second; } // cmsHPROFILE workingSpaceGamma(const Glib::ustring& name) const @@ -375,8 +383,8 @@ public: return r != wMatrices.end() - ? r->second - : wMatrices.find("sRGB")->second; + ? r->second + : wMatrices.find("sRGB")->second; } TMatrix workingSpaceInverseMatrix(const Glib::ustring& name) const @@ -386,8 +394,8 @@ public: return r != iwMatrices.end() - ? r->second - : iwMatrices.find("sRGB")->second; + ? r->second + : iwMatrices.find("sRGB")->second; } bool outputProfileExist(const Glib::ustring& name) const @@ -421,7 +429,9 @@ public: if (!loadProfile(name, profilesDir, &fileProfiles, &fileProfileContents)) { loadProfile(name, userICCDir, &fileProfiles, &fileProfileContents); } + const ProfileMap::const_iterator r = fileProfiles.find(name); + if (r != fileProfiles.end()) { return r->second; } @@ -446,7 +456,9 @@ public: if (!loadProfile(name, profilesDir, &fileProfiles, &fileProfileContents)) { loadProfile(name, userICCDir, &fileProfiles, &fileProfileContents); } + const ProfileMap::const_iterator r = fileProfiles.find(name); + if (r != fileProfiles.end()) { return r->second; } @@ -481,8 +493,8 @@ public: return r != fileProfileContents.end() - ? r->second - : ProfileContent(); + ? r->second + : ProfileContent(); } cmsHPROFILE getXYZProfile() const @@ -503,22 +515,22 @@ public: for (const auto profile : fileProfiles) { if ( - ( - type==ICCStore::ProfileType::MONITOR - && cmsGetDeviceClass(profile.second) == cmsSigDisplayClass - && cmsGetColorSpace(profile.second) == cmsSigRgbData - ) - ||( - type==ICCStore::ProfileType::PRINTER - && cmsGetDeviceClass(profile.second) == cmsSigOutputClass - ) - ||( - type==ICCStore::ProfileType::OUTPUT - && (cmsGetDeviceClass(profile.second) == cmsSigDisplayClass - || cmsGetDeviceClass(profile.second) == cmsSigInputClass - || cmsGetDeviceClass(profile.second) == cmsSigOutputClass) - && cmsGetColorSpace(profile.second) == cmsSigRgbData - ) + ( + type == ICCStore::ProfileType::MONITOR + && cmsGetDeviceClass(profile.second) == cmsSigDisplayClass + && cmsGetColorSpace(profile.second) == cmsSigRgbData + ) + || ( + type == ICCStore::ProfileType::PRINTER + && cmsGetDeviceClass(profile.second) == cmsSigOutputClass + ) + || ( + type == ICCStore::ProfileType::OUTPUT + && (cmsGetDeviceClass(profile.second) == cmsSigDisplayClass + || cmsGetDeviceClass(profile.second) == cmsSigInputClass + || cmsGetDeviceClass(profile.second) == cmsSigOutputClass) + && cmsGetColorSpace(profile.second) == cmsSigRgbData + ) ) { res.push_back(profile.first); } @@ -601,7 +613,7 @@ public: for (const auto &p : wProfiles) { res.push_back(p.first); } - + return res; } @@ -619,11 +631,13 @@ private: CMatrix toMatrix() const { CMatrix ret; + for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { ret[i][j] = matrix[i][j]; } } + return ret; } @@ -640,22 +654,28 @@ private: bool computeWorkingSpaceMatrix(const Glib::ustring &path, const Glib::ustring &filename, PMatrix &out) { Glib::ustring fullpath = filename; + if (!Glib::path_is_absolute(fullpath)) { fullpath = Glib::build_filename(path, filename); } + ProfileContent content(fullpath); cmsHPROFILE prof = content.toProfile(); + if (!prof) { return false; } + if (cmsGetColorSpace(prof) != cmsSigRgbData) { cmsCloseProfile(prof); return false; } + if (!cmsIsMatrixShaper(prof)) { cmsCloseProfile(prof); return false; } + cmsCIEXYZ *red = static_cast(cmsReadTag(prof, cmsSigRedMatrixColumnTag)); cmsCIEXYZ *green = static_cast(cmsReadTag(prof, cmsSigGreenMatrixColumnTag)); cmsCIEXYZ *blue = static_cast(cmsReadTag(prof, cmsSigBlueMatrixColumnTag)); @@ -670,13 +690,18 @@ private: CVector({ red->Y, green->Y, blue->Y }), CVector({ red->Z, green->Z, blue->Z }) }; - + m[1][0] = red->Y; + m[1][1] = green->Y; + m[1][2] = blue->Y; + m[2][0] = red->Z; + m[2][1] = green->Z; + m[2][2] = blue->Z; out.set(m); - + cmsCloseProfile(prof); return true; } - + bool loadWorkingSpaces(const Glib::ustring &path) { Glib::ustring fileName = Glib::build_filename(path, "workingspaces.json"); @@ -685,29 +710,32 @@ private: if (settings->verbose) { std::cout << "trying to load extra working spaces from " << fileName << std::flush; } - + if (!f) { if (settings->verbose) { std::cout << " FAIL" << std::endl; } + return false; } fseek(f, 0, SEEK_END); long length = ftell(f); + if (length <= 0) { if (settings->verbose) { std::cout << " FAIL" << std::endl; } + fclose(f); return false; } - + char *buf = new char[length + 1]; fseek(f, 0, SEEK_SET); length = fread(buf, 1, length, f); buf[length] = 0; - + fclose(f); cJSON_Minify(buf); @@ -717,21 +745,23 @@ private: if (settings->verbose) { std::cout << " FAIL" << std::endl; } + return false; } delete[] buf; cJSON *js = cJSON_GetObjectItem(root, "working_spaces"); + if (!js) { goto parse_error; } - + for (js = js->child; js != nullptr; js = js->next) { cJSON *ji = cJSON_GetObjectItem(js, "name"); std::unique_ptr m(new PMatrix); std::string name; - + if (!ji || ji->type != cJSON_String) { goto parse_error; } @@ -743,19 +773,22 @@ private: } bool found_matrix = false; - + ji = cJSON_GetObjectItem(js, "matrix"); + if (ji) { if (ji->type != cJSON_Array) { goto parse_error; } ji = ji->child; + for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j, ji = ji->next) { if (!ji || ji->type != cJSON_Number) { goto parse_error; } + m->matrix[i][j] = ji->valuedouble; } } @@ -763,12 +796,15 @@ private: if (ji) { goto parse_error; } + found_matrix = true; } else { ji = cJSON_GetObjectItem(js, "file"); + if (!ji || ji->type != cJSON_String) { goto parse_error; } + found_matrix = computeWorkingSpaceMatrix(path, ji->valuestring, *m); } @@ -776,6 +812,7 @@ private: if (settings->verbose) { std::cout << "Could not find suitable matrix for working space: " << name << std::endl; } + continue; } @@ -783,10 +820,12 @@ private: TMatrix w = pMatrices.back()->matrix; CMatrix b = {}; + if (!rtengine::invertMatrix(pMatrices.back()->toMatrix(), b)) { if (settings->verbose) { std::cout << "Matrix for working space: " << name << " is not invertible, skipping" << std::endl; } + pMatrices.pop_back(); } else { wMatrices[name] = w; @@ -798,29 +837,36 @@ private: if (settings->verbose) { std::cout << "Added working space: " << name << std::endl; std::cout << " matrix: ["; + for (int i = 0; i < 3; ++i) { std::cout << " ["; + for (int j = 0; j < 3; ++j) { std::cout << " " << w[i][j]; } + std::cout << "]"; } + std::cout << " ]" << std::endl; } } } cJSON_Delete(root); + if (settings->verbose) { std::cout << " OK" << std::endl; } + return true; - parse_error: +parse_error: + if (settings->verbose) { std::cout << " ERROR in parsing " << fileName << std::endl; } - + cJSON_Delete(root); return false; } @@ -983,88 +1029,6 @@ std::vector rtengine::ICCStore::getWorkingProfiles() return implementation->getWorkingProfiles(); } -std::vector rtengine::ICCStore::getGamma() -{ - - std::vector res; - - for (unsigned int i = 0; i < sizeof(wpgamma) / sizeof(wpgamma[0]); i++) { - res.push_back(wpgamma[i]); - } - - return res; -} - -void rtengine::ICCStore::getGammaArray(const procparams::ColorManagementParams &icm, GammaValues &ga) -{ - const double eps = 0.000000001; // not divide by zero - if (!icm.freegamma) {//if Free gamma not selected - // gamma : ga[0],ga[1],ga[2],ga[3],ga[4],ga[5] by calcul - if(icm.gamma == "BT709_g2.2_s4.5") { - ga[0] = 2.22; //BT709 2.2 4.5 - my preferred as D.Coffin - ga[1] = 0.909995; - ga[2] = 0.090005; - ga[3] = 0.222222; - ga[4] = 0.081071; - } else if (icm.gamma == "sRGB_g2.4_s12.92") { - ga[0] = 2.40; //sRGB 2.4 12.92 - RT default as Lightroom - ga[1] = 0.947858; - ga[2] = 0.052142; - ga[3] = 0.077399; - ga[4] = 0.039293; - } else if (icm.gamma == "High_g1.3_s3.35") { - ga[0] = 1.3 ; //for high dynamic images - ga[1] = 0.998279; - ga[2] = 0.001721; - ga[3] = 0.298507; - ga[4] = 0.005746; - } else if (icm.gamma == "Low_g2.6_s6.9") { - ga[0] = 2.6 ; //gamma 2.6 variable : for low contrast images - ga[1] = 0.891161; - ga[2] = 0.108839; - ga[3] = 0.144928; - ga[4] = 0.076332; - } else if (icm.gamma == "standard_g2.2") { - ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else if (icm.gamma == "standard_g1.8") { - ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } else /* if (icm.gamma == "linear_g1.0") */ { - ga[0] = 1.0; //gamma=1 linear : for high dynamic images(cf : D.Coffin...) - ga[1] = 1.; - ga[2] = 0.; - ga[3] = 1. / eps; - ga[4] = 0.; - } - ga[5] = 0.0; - ga[6] = 0.0; - } else { //free gamma selected - GammaValues g_a; //gamma parameters - double pwr = 1.0 / icm.gampos; - double ts = icm.slpos; - double slope = icm.slpos == 0 ? eps : icm.slpos; - - int mode = 0; - Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 - ga[4] = g_a[3] * ts; - //printf("g_a.gamma0=%f g_a.gamma1=%f g_a.gamma2=%f g_a.gamma3=%f g_a.gamma4=%f\n", g_a.gamma0,g_a.gamma1,g_a.gamma2,g_a.gamma3,g_a.gamma4); - ga[0] = icm.gampos; - ga[1] = 1. /(1.0 + g_a[4]); - ga[2] = g_a[4] /(1.0 + g_a[4]); - ga[3] = 1. / slope; - ga[5] = 0.0; - ga[6] = 0.0; - //printf("ga[0]=%f ga[1]=%f ga[2]=%f ga[3]=%f ga[4]=%f\n", ga[0],ga[1],ga[2],ga[3],ga[4]); - } -} - // WARNING: the caller must lock lcmsMutex cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) { @@ -1096,7 +1060,7 @@ cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) const uint32_t gamma = 0x239; int gamma_size = 14; - int data_size =(gamma_size + 3) & ~3; + int data_size = (gamma_size + 3) & ~3; for (uint32_t i = 0; i < tag_count; i++) { memcpy(&tags[i], p, 12); @@ -1109,7 +1073,7 @@ cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) tags[i].sig != 0x67545243 && // gTRC tags[i].sig != 0x72545243 && // rTRC tags[i].sig != 0x6B545243) { // kTRC - data_size +=(tags[i].size + 3) & ~3; + data_size += (tags[i].size + 3) & ~3; } } @@ -1140,7 +1104,7 @@ cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) memcpy(&nd[offset + 12], &gm, 2); } - offset +=(gamma_size + 3) & ~3; + offset += (gamma_size + 3) & ~3; } tag.offset = htonl(gamma_offset); @@ -1149,7 +1113,7 @@ cmsHPROFILE rtengine::ICCStore::makeStdGammaProfile(cmsHPROFILE iprof) tag.offset = htonl(offset); tag.size = htonl(tags[i].size); memcpy(&nd[offset], &data[tags[i].offset], tags[i].size); - offset +=(tags[i].size + 3) & ~3; + offset += (tags[i].size + 3) & ~3; } memcpy(&nd[128 + 4 + i * 12], &tag, 12); @@ -1191,7 +1155,7 @@ cmsHPROFILE rtengine::ICCStore::createFromMatrix(const double matrix[3][3], bool pcurve[2] = 1; // pcurve[3] = 0x1f00000;// pcurve for gamma BT709 : g=2.22 s=4.5 // normalize gamma in RT, default(Emil's choice = sRGB) - pcurve[3] = 0x2390000;//pcurve for gamma sRGB : g:2.4 s=12.92 + pcurve[3] = 0x2390000;//pcurve for gamma sRGB : g:2.4 s=12.92310 } else { // lcms2 up to 2.4 has a bug with linear gamma causing precision loss(banding) @@ -1214,9 +1178,9 @@ cmsHPROFILE rtengine::ICCStore::createFromMatrix(const double matrix[3][3], bool // 0x74657874 : text // 0x64657363 : description tag for (unsigned int i = 0; i < pbody[0]; i++) { - oprof[oprof[0] / 4] = i ?(i > 1 ? 0x58595a20 : 0x64657363) : 0x74657874; + oprof[oprof[0] / 4] = i ? (i > 1 ? 0x58595a20 : 0x64657363) : 0x74657874; pbody[i * 3 + 2] = oprof[0]; - oprof[0] +=(pbody[i * 3 + 3] + 3) & -4; + oprof[0] += (pbody[i * 3 + 3] + 3) & -4; } memcpy(oprof + 32, pbody, sizeof(pbody)); @@ -1255,232 +1219,3 @@ cmsHPROFILE rtengine::ICCStore::createFromMatrix(const double matrix[3][3], bool delete [] oprof; return p; } - -cmsHPROFILE rtengine::ICCStore::createGammaProfile(const procparams::ColorManagementParams &icm, GammaValues &ga) -{ - float p[6]; //primaries - ga[6] = 0.0; - - enum class ColorTemp { - D50 = 5003, // for Widegamut, Prophoto Best, Beta -> D50 - D65 = 6504 // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 - }; - ColorTemp temp = ColorTemp::D50; - - //primaries for 7 working profiles ==> output profiles - // eventually to adapt primaries if RT used special profiles ! - if (icm.output == "WideGamut") { - p[0] = 0.7350; //Widegamut primaries - p[1] = 0.2650; - p[2] = 0.1150; - p[3] = 0.8260; - p[4] = 0.1570; - p[5] = 0.0180; - } else if (icm.output == "Adobe RGB") { - p[0] = 0.6400; //Adobe primaries - p[1] = 0.3300; - p[2] = 0.2100; - p[3] = 0.7100; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (icm.output == "sRGB") { - p[0] = 0.6400; // sRGB primaries - p[1] = 0.3300; - p[2] = 0.3000; - p[3] = 0.6000; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (icm.output == "BruceRGB") { - p[0] = 0.6400; // Bruce primaries - p[1] = 0.3300; - p[2] = 0.2800; - p[3] = 0.6500; - p[4] = 0.1500; - p[5] = 0.0600; - temp = ColorTemp::D65; - } else if (icm.output == "Beta RGB") { - p[0] = 0.6888; // Beta primaries - p[1] = 0.3112; - p[2] = 0.1986; - p[3] = 0.7551; - p[4] = 0.1265; - p[5] = 0.0352; - } else if (icm.output == "BestRGB") { - p[0] = 0.7347; // Best primaries - p[1] = 0.2653; - p[2] = 0.2150; - p[3] = 0.7750; - p[4] = 0.1300; - p[5] = 0.0350; - } else if (icm.output == "Rec2020") { - p[0] = 0.7080; // Rec2020 primaries - p[1] = 0.2920; - p[2] = 0.1700; - p[3] = 0.7970; - p[4] = 0.1310; - p[5] = 0.0460; - temp = ColorTemp::D65; - } else { - p[0] = 0.7347; //ProPhoto and default primaries - p[1] = 0.2653; - p[2] = 0.1596; - p[3] = 0.8404; - p[4] = 0.0366; - p[5] = 0.0001; - } - - cmsCIExyY xyD; - cmsCIExyYTRIPLE Primaries = { - {p[0], p[1], 1.0}, // red - {p[2], p[3], 1.0}, // green - {p[4], p[5], 1.0} // blue - }; - cmsToneCurve* GammaTRC[3]; - - // 7 parameters for smoother curves - cmsFloat64Number Parameters[7] = { ga[0], ga[1], ga[2], ga[3], ga[4], ga[5], ga[6] } ; - - //lcmsMutex->lock(); Mutex acquired by the caller - cmsWhitePointFromTemp(&xyD,(double)temp); - GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, Parameters); //5 = smoother than 4 - cmsHPROFILE oprofdef = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); //oprofdef become Outputprofile - cmsFreeToneCurve(GammaTRC[0]); - //lcmsMutex->unlock(); - - return oprofdef; -} - -// WARNING: the caller must lock lcmsMutex -cmsHPROFILE rtengine::ICCStore::createCustomGammaOutputProfile(const procparams::ColorManagementParams &icm, GammaValues &ga) -{ - bool pro = false; - Glib::ustring outProfile; - cmsHPROFILE outputProfile = nullptr; - - if (icm.freegamma && icm.gampos < 1.35) { - pro = true; //select profil with gammaTRC modified : - } else if (icm.gamma == "linear_g1.0" ||(icm.gamma == "High_g1.3_s3.35")) { - pro = true; //pro=0 RT_sRGB || Prophoto - } - - // Check that output profiles exist, otherwise use LCMS2 - // Use the icc/icm profiles associated to possible working profiles, set in "options" - if (icm.working == "ProPhoto" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.prophoto) && !pro) { - outProfile = options.rtSettings.prophoto; - } else if (icm.working == "Adobe RGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.adobe) ) { - outProfile = options.rtSettings.adobe; - } else if (icm.working == "WideGamut" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.widegamut) ) { - outProfile = options.rtSettings.widegamut; - } else if (icm.working == "Beta RGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.beta) ) { - outProfile = options.rtSettings.beta; - } else if (icm.working == "BestRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.best) ) { - outProfile = options.rtSettings.best; - } else if (icm.working == "BruceRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.bruce) ) { - outProfile = options.rtSettings.bruce; - } else if (icm.working == "sRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.srgb) && !pro) { - outProfile = options.rtSettings.srgb; - } else if (icm.working == "sRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.srgb10) && pro) { - outProfile = options.rtSettings.srgb10; - } else if (icm.working == "ProPhoto" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.prophoto10) && pro) { - outProfile = options.rtSettings.prophoto10; - } else if (icm.working == "Rec2020" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.rec2020) ) { - outProfile = options.rtSettings.rec2020; - } else { - // Should not occurs - if (settings->verbose) { - printf("\"%s\": unknown working profile! - use LCMS2 substitution\n", icm.working.c_str() ); - } - - return nullptr; - } - - //begin adaptation rTRC gTRC bTRC - //"outputProfile" profile has the same characteristics than RGB values, but TRC are adapted... for applying profile - if (settings->verbose) { - printf("Output Gamma - profile: \"%s\"\n", outProfile.c_str() ); //c_str() - } - - outputProfile = ICCStore::getInstance()->getProfile(outProfile); //get output profile - - if (outputProfile == nullptr) { - - if (settings->verbose) { - printf("\"%s\" ICC output profile not found!\n", outProfile.c_str()); - } - return nullptr; - } - - // 7 parameters for smoother curves - cmsFloat64Number Parameters[7] = { ga[0], ga[1], ga[2], ga[3], ga[4], ga[5], ga[6] }; - - //change desc Tag , to "free gamma", or "BT709", etc. - cmsMLU *mlu; - cmsContext ContextID = cmsGetProfileContextID(outputProfile); // create context to modify some TAGs - mlu = cmsMLUalloc(ContextID, 1); - - // instruction with //ICC are used to generate ICC profile - if (mlu == nullptr) { - printf("Description error\n"); - } else { - - // Description TAG : selection of gamma and Primaries - if (!icm.freegamma) { - std::wstring gammaStr; - - if(icm.gamma == "High_g1.3_s3.35") { - gammaStr = std::wstring(L"GammaTRC: High g=1.3 s=3.35"); - } else if (icm.gamma == "Low_g2.6_s6.9") { - gammaStr = std::wstring(L"GammaTRC: Low g=2.6 s=6.9"); - } else if (icm.gamma == "sRGB_g2.4_s12.92") { - gammaStr = std::wstring(L"GammaTRC: sRGB g=2.4 s=12.92"); - } else if (icm.gamma == "BT709_g2.2_s4.5") { - gammaStr = std::wstring(L"GammaTRC: BT709 g=2.2 s=4.5"); - } else if (icm.gamma == "linear_g1.0") { - gammaStr = std::wstring(L"GammaTRC: Linear g=1.0"); - } else if (icm.gamma == "standard_g2.2") { - gammaStr = std::wstring(L"GammaTRC: g=2.2"); - } else if (icm.gamma == "standard_g1.8") { - gammaStr = std::wstring(L"GammaTRC: g=1.8"); - } - - cmsMLUsetWide(mlu, "en", "US", gammaStr.c_str()); - } else { - // create description with gamma + slope + primaries - std::wostringstream gammaWs; - gammaWs.precision(2); - gammaWs << "Manual GammaTRC: g=" <<(float)icm.gampos << " s=" <<(float)icm.slpos; - - cmsMLUsetWide(mlu, "en", "US", gammaWs.str().c_str()); - } - - cmsWriteTag(outputProfile, cmsSigProfileDescriptionTag, mlu);//desc changed - - /* - cmsMLUsetWide(mlu, "en", "US", L"General Public License - AdobeRGB compatible");//adapt to profil - cmsWriteTag(outputProfile, cmsSigCopyrightTag, mlu); - - cmsMLUsetWide(mlu, "en", "US", L"RawTherapee"); - cmsWriteTag(outputProfile, cmsSigDeviceMfgDescTag, mlu); - - cmsMLUsetWide(mlu, "en", "US", L"RTMedium"); //adapt to profil - cmsWriteTag(outputProfile, cmsSigDeviceModelDescTag, mlu); - - */ - - cmsMLUfree(mlu); - } - - // Calculate output profile's rTRC gTRC bTRC - cmsToneCurve* GammaTRC = cmsBuildParametricToneCurve(nullptr, 5, Parameters); - cmsWriteTag(outputProfile, cmsSigRedTRCTag,(void*)GammaTRC ); - cmsWriteTag(outputProfile, cmsSigGreenTRCTag,(void*)GammaTRC ); - cmsWriteTag(outputProfile, cmsSigBlueTRCTag,(void*)GammaTRC ); - - if (GammaTRC) { - cmsFreeToneCurve(GammaTRC); - } - - return outputProfile; -} diff --git a/rtengine/iccstore.h b/rtengine/iccstore.h index c23ecd112..6b57fd072 100644 --- a/rtengine/iccstore.h +++ b/rtengine/iccstore.h @@ -96,13 +96,9 @@ public: std::uint8_t getProofIntents(const Glib::ustring& name) const; /*static*/ std::vector getWorkingProfiles(); - static std::vector getGamma(); - static void getGammaArray(const procparams::ColorManagementParams& icm, GammaValues& ga); static cmsHPROFILE makeStdGammaProfile(cmsHPROFILE iprof); static cmsHPROFILE createFromMatrix(const double matrix[3][3], bool gamma = false, const Glib::ustring& name = Glib::ustring()); - static cmsHPROFILE createGammaProfile(const procparams::ColorManagementParams& icm, GammaValues& ga); - static cmsHPROFILE createCustomGammaOutputProfile(const procparams::ColorManagementParams& icm, GammaValues& ga); private: class Implementation; diff --git a/rtengine/icons.cc b/rtengine/icons.cc index aa3b67cbf..ccc5ebd09 100644 --- a/rtengine/icons.cc +++ b/rtengine/icons.cc @@ -108,10 +108,7 @@ void setPaths () imagePaths.clear (); - imagePaths.push_back (Glib::build_filename(argv0, "images", "Dark")); - imagePaths.push_back (Glib::build_filename(argv0, "images", "Dark", "actions")); - imagePaths.push_back (Glib::build_filename(argv0, "images", "Dark", "devices")); - imagePaths.push_back (Glib::build_filename(argv0, "images", "Dark", "places")); + imagePaths.push_back (Glib::build_filename(argv0, "images", "dark")); // The images folder is the second fallback solution. imagePaths.push_back (Glib::build_filename(argv0, "images")); diff --git a/rtengine/iimage.h b/rtengine/iimage.h index d09f46a3a..af2969581 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -587,6 +587,14 @@ public: } } + void fill (T value) { + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + v(i, j) = value; + } + } + } + }; @@ -1765,8 +1773,9 @@ public: /** @brief Saves the image to file in a tif format. * @param fname is the name of the file * @param bps can be 8 or 16 depending on the bits per pixels the output file will have + * @param isFloat is true for saving float images. Will be ignored by file format not supporting float data @return the error code, 0 if none */ - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool uncompressed = false) = 0; + virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) = 0; /** @brief Sets the progress listener if you want to follow the progress of the image saving operations (optional). * @param pl is the pointer to the class implementing the ProgressListener interface */ virtual void setSaveProgressListener (ProgressListener* pl) = 0; diff --git a/rtengine/image16.cc b/rtengine/image16.cc index 68dd4bb40..c014d1c06 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -25,7 +25,7 @@ namespace { -void getScanline8 (const uint16_t *red, const uint16_t *green, const uint16_t *blue, int width, unsigned char* buffer) +void getScanline8(const uint16_t *red, const uint16_t *green, const uint16_t *blue, int width, unsigned char* buffer) { for (int i = 0, ix = 0; i < width; i++) { buffer[ix++] = rtengine::uint16ToUint8Rounded(red[i]); @@ -34,7 +34,7 @@ void getScanline8 (const uint16_t *red, const uint16_t *green, const uint16_t *b } } -void getScanline16 (const uint16_t *red, const uint16_t *green, const uint16_t *blue, int width, unsigned short* buffer) +void getScanline16(const uint16_t *red, const uint16_t *green, const uint16_t *blue, int width, unsigned short* buffer) { for (int i = 0, ix = 0; i < width; i++) { buffer[ix++] = red[i]; @@ -47,20 +47,20 @@ void getScanline16 (const uint16_t *red, const uint16_t *green, const uint16_t * using namespace rtengine; -Image16::Image16 () +Image16::Image16() { } -Image16::Image16 (int w, int h) +Image16::Image16(int w, int h) { - allocate (w, h); + allocate(w, h); } -Image16::~Image16 () +Image16::~Image16() { } -void Image16::getScanline (int row, unsigned char* buffer, int bps) +void Image16::getScanline(int row, unsigned char* buffer, int bps, bool isFloat) { if (data == nullptr) { @@ -68,31 +68,24 @@ void Image16::getScanline (int row, unsigned char* buffer, int bps) } if (bps == 16) { - getScanline16 (r(row), g(row), b(row), width, (unsigned short*)buffer); + getScanline16(r(row), g(row), b(row), width, (unsigned short*)buffer); } else if (bps == 8) { - getScanline8 (r(row), g(row), b(row), width, buffer); + getScanline8(r(row), g(row), b(row), width, buffer); } } -/* - * void Image16::setScanline (int row, unsigned char* buffer, int bps, int minValue[3], int maxValue[3]); - * has not been implemented yet, because as of now, this method is called for IIOSF_FLOATxx sample format only - */ -void Image16::setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples, float *minValue, float *maxValue) +void Image16::setScanline(int row, unsigned char* buffer, int bps, unsigned int numSamples) { if (data == nullptr) { return; } - // For optimization purpose, we're assuming that this class never has to provide min/max bounds - assert(!minValue); - switch (sampleFormat) { case (IIOSF_UNSIGNED_CHAR): { int ix = 0; - if(numSamples == 1) { + if (numSamples == 1) { for (int i = 0; i < width; ++i) { r(row, i) = g(row, i) = b(row, i) = static_cast(buffer[ix++]) * 257; } @@ -103,6 +96,7 @@ void Image16::setScanline (int row, unsigned char* buffer, int bps, unsigned int b(row, i) = static_cast(buffer[ix++]) * 257; } } + break; } @@ -130,22 +124,23 @@ void Image16::setScanline (int row, unsigned char* buffer, int bps, unsigned int */ } -Image16* Image16::copy () +Image16* Image16::copy() { - Image16* cp = new Image16 (width, height); + Image16* cp = new Image16(width, height); copyData(cp); return cp; } -void Image16::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) +void Image16::getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp) { // compute channel multipliers float rm = 1.f, gm = 1.f, bm = 1.f; + if (ctemp.getTemp() >= 0) { double drm, dgm, dbm; - ctemp.getMultipliers (drm, dgm, dbm); + ctemp.getMultipliers(drm, dgm, dbm); rm = drm; gm = dgm; bm = dbm; @@ -161,7 +156,7 @@ void Image16::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, Preview int sx1, sy1, sx2, sy2; - transform (pp, tran, sx1, sy1, sx2, sy2); + transform(pp, tran, sx1, sy1, sx2, sy2); int imwidth = image->getWidth(); // Destination image int imheight = image->getHeight(); // Destination image @@ -271,25 +266,22 @@ void Image16::getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, Preview } } - if (mtran == TR_NONE) + if (mtran == TR_NONE) for (int dst_x = 0, src_x = sx1; dst_x < imwidth; dst_x++, src_x += skip) { image->r(iy, dst_x) = lineR[dst_x]; image->g(iy, dst_x) = lineG[dst_x]; image->b(iy, dst_x) = lineB[dst_x]; - } - else if (mtran == TR_R180) + } else if (mtran == TR_R180) for (int dst_x = 0; dst_x < imwidth; dst_x++) { image->r(imheight - 1 - iy, imwidth - 1 - dst_x) = lineR[dst_x]; image->g(imheight - 1 - iy, imwidth - 1 - dst_x) = lineG[dst_x]; image->b(imheight - 1 - iy, imwidth - 1 - dst_x) = lineB[dst_x]; - } - else if (mtran == TR_R90) + } else if (mtran == TR_R90) for (int dst_x = 0, src_x = sx1; dst_x < imwidth; dst_x++, src_x += skip) { image->r(dst_x, imheight - 1 - iy) = lineR[dst_x]; image->g(dst_x, imheight - 1 - iy) = lineG[dst_x]; image->b(dst_x, imheight - 1 - iy) = lineB[dst_x]; - } - else if (mtran == TR_R270) + } else if (mtran == TR_R270) for (int dst_x = 0, src_x = sx1; dst_x < imwidth; dst_x++, src_x += skip) { image->r(imwidth - 1 - dst_x, iy) = lineR[dst_x]; image->g(imwidth - 1 - dst_x, iy) = lineG[dst_x]; @@ -334,6 +326,48 @@ Image16::tofloat() return imgfloat; } +// Parallelized transformation; create transform with cmsFLAGS_NOCACHE! +void Image16::ExecCMSTransform(cmsHTRANSFORM hTransform) +{ + //cmsDoTransform(hTransform, data, data, planestride); + + // LittleCMS cannot parallelize planar setups -- Hombre: LCMS2.4 can! But it we use this new feature, memory allocation have to be modified too + // so build temporary buffers to allow multi processor execution +#ifdef _OPENMP + #pragma omp parallel +#endif + { + AlignedBuffer buffer(width * 3); + +#ifdef _OPENMP + #pragma omp for schedule(static) +#endif + + for (int y = 0; y < height; y++) + { + unsigned short *p = buffer.data, *pR = r(y), *pG = g(y), *pB = b(y); + + for (int x = 0; x < width; x++) { + *(p++) = *(pR++); + *(p++) = *(pG++); + *(p++) = *(pB++); + } + + cmsDoTransform(hTransform, buffer.data, buffer.data, width); + + p = buffer.data; + pR = r(y); + pG = g(y); + pB = b(y); + + for (int x = 0; x < width; x++) { + *(pR++) = *(p++); + *(pG++) = *(p++); + *(pB++) = *(p++); + } + } // End of parallelization + } +} // // Parallelized transformation; create transform with cmsFLAGS_NOCACHE! // void Image16::ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy) diff --git a/rtengine/image16.h b/rtengine/image16.h index af5642638..1c5504bd9 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -36,65 +36,66 @@ class Image16 : public IImage16, public ImageIO public: - Image16 (); - Image16 (int width, int height); - ~Image16 (); + Image16(); + Image16(int width, int height); + ~Image16(); - Image16* copy (); + Image16* copy(); Image8* to8(); Imagefloat* tofloat(); - virtual void getStdImage (ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); + virtual void getStdImage(ColorTemp ctemp, int tran, Imagefloat* image, PreviewProps pp, bool first, procparams::ToneCurveParams hrp); - virtual const char* getType () const + virtual const char* getType() const { return sImage16; } - virtual int getBPS () + virtual int getBPS() { return 8 * sizeof(unsigned short); } - virtual void getScanline (int row, unsigned char* buffer, int bps); - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples, float *minValue = nullptr, float *maxValue = nullptr); + virtual void getScanline(int row, unsigned char* buffer, int bps, bool isFloat = false); + virtual void setScanline(int row, unsigned char* buffer, int bps, unsigned int numSamples); // functions inherited from IImage16: - virtual MyMutex& getMutex () + virtual MyMutex& getMutex() { - return mutex (); + return mutex(); } - virtual cmsHPROFILE getProfile () + virtual cmsHPROFILE getProfile() { - return getEmbeddedProfile (); + return getEmbeddedProfile(); } - virtual int getBitsPerPixel () + virtual int getBitsPerPixel() { return 8 * sizeof(unsigned short); } - virtual int saveToFile (Glib::ustring fname) + virtual int saveToFile(Glib::ustring fname) { - return save (fname); + return save(fname); } - virtual int saveAsPNG (Glib::ustring fname, int bps = -1) + virtual int saveAsPNG(Glib::ustring fname, int bps = -1) { - return savePNG (fname, bps); + return savePNG(fname, bps); } - virtual int saveAsJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3) + virtual int saveAsJPEG(Glib::ustring fname, int quality = 100, int subSamp = 3) { - return saveJPEG (fname, quality, subSamp); + return saveJPEG(fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool uncompressed = false) + virtual int saveAsTIFF(Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) { - return saveTIFF (fname, bps, uncompressed); + return saveTIFF(fname, bps, isFloat, uncompressed); } - virtual void setSaveProgressListener (ProgressListener* pl) + virtual void setSaveProgressListener(ProgressListener* pl) { - setProgressListener (pl); + setProgressListener(pl); } - virtual void free () + virtual void free() { delete this; } + void ExecCMSTransform(cmsHTRANSFORM hTransform); /* void ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy); */ }; diff --git a/rtengine/image8.cc b/rtengine/image8.cc index 69066f2dd..ab7393100 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -37,7 +37,7 @@ Image8::~Image8 () { } -void Image8::getScanline (int row, unsigned char* buffer, int bps) +void Image8::getScanline (int row, unsigned char* buffer, int bps, bool isFloat) { if (data == nullptr) { @@ -55,16 +55,13 @@ void Image8::getScanline (int row, unsigned char* buffer, int bps) } } -void Image8::setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples, float *minValue, float *maxValue) +void Image8::setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples) { if (data == nullptr) { return; } - // For optimization purpose, we're assuming that this class never have to provide min/max bound - assert(!minValue); - switch (sampleFormat) { case (IIOSF_UNSIGNED_CHAR): if(numSamples == 1) { diff --git a/rtengine/image8.h b/rtengine/image8.h index eafaa2d46..59d13c298 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -50,8 +50,8 @@ public: { return 8 * sizeof(unsigned char); } - virtual void getScanline (int row, unsigned char* buffer, int bps); - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples, float *minValue = nullptr, float *maxValue = nullptr); + virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false); + virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples); // functions inherited from IImage*: virtual MyMutex& getMutex () @@ -78,9 +78,9 @@ public: { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool uncompressed = false) + virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) { - return saveTIFF (fname, bps, uncompressed); + return saveTIFF (fname, bps, isFloat, uncompressed); } virtual void setSaveProgressListener (ProgressListener* pl) { diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index e79678194..2cf73204d 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -44,7 +44,7 @@ Imagefloat::~Imagefloat () } // Call this method to handle floating points input values of different size -void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples, float *minValue, float *maxValue) +void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples) { if (data == nullptr) { @@ -55,45 +55,27 @@ void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, unsigned // DNG_HalfToFloat and DNG_FP24ToFloat from dcraw.cc can be used to manually convert // from 16 and 24 bits to 32 bits float respectively switch (sampleFormat) { - case (IIOSF_FLOAT16): - case (IIOSF_FLOAT24): + case (IIOSF_FLOAT16): { + int ix = 0; + uint16_t* sbuffer = (uint16_t*) buffer; + + for (int i = 0; i < width; i++) { + r(row, i) = 65535.f * DNG_HalfToFloat(sbuffer[ix++]); + g(row, i) = 65535.f * DNG_HalfToFloat(sbuffer[ix++]); + b(row, i) = 65535.f * DNG_HalfToFloat(sbuffer[ix++]); + } + + break; + } + //case (IIOSF_FLOAT24): case (IIOSF_FLOAT32): { int ix = 0; float* sbuffer = (float*) buffer; for (int i = 0; i < width; i++) { - r(row, i) = 65535.f * sbuffer[ix]; - - if (minValue) { - if (sbuffer[ix] < minValue[0]) { - minValue[0] = sbuffer[ix]; - } else if (sbuffer[ix] > maxValue[0]) { - maxValue[0] = sbuffer[ix]; - } - } - ++ix; - - g(row, i) = 65535.f * sbuffer[ix]; - - if (minValue) { - if (sbuffer[ix] < minValue[1]) { - minValue[1] = sbuffer[ix]; - } else if (sbuffer[ix] > maxValue[1]) { - maxValue[1] = sbuffer[ix]; - } - } - ++ix; - - b(row, i) = 65535.f * sbuffer[ix]; - - if (minValue) { - if (sbuffer[ix] < minValue[2]) { - minValue[2] = sbuffer[ix]; - } else if (sbuffer[ix] > maxValue[2]) { - maxValue[2] = sbuffer[ix]; - } - } - ++ix; + r(row, i) = 65535.f * sbuffer[ix++]; + g(row, i) = 65535.f * sbuffer[ix++]; + b(row, i) = 65535.f * sbuffer[ix++]; } break; @@ -112,34 +94,8 @@ void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, unsigned // TODO: we may have to handle other color space than sRGB! Color::xyz2srgb(xyzvalues[0], xyzvalues[1], xyzvalues[2], rgbvalues[0], rgbvalues[1], rgbvalues[2]); r(row, i) = rgbvalues[0]; - - if (minValue) { - if (rgbvalues[0] < minValue[0]) { - minValue[0] = rgbvalues[0]; - } else if (rgbvalues[0] > maxValue[0]) { - maxValue[0] = rgbvalues[0]; - } - } - g(row, i) = rgbvalues[1]; - - if (minValue) { - if (rgbvalues[1] < minValue[1]) { - minValue[1] = rgbvalues[1]; - } else if (rgbvalues[1] > maxValue[1]) { - maxValue[1] = rgbvalues[1]; - } - } - b(row, i) = rgbvalues[2]; - - if (minValue) { - if (rgbvalues[2] < minValue[2]) { - minValue[2] = rgbvalues[2]; - } else if (rgbvalues[2] > maxValue[2]) { - maxValue[2] = rgbvalues[2]; - } - } } break; @@ -154,22 +110,32 @@ void Imagefloat::setScanline (int row, unsigned char* buffer, int bps, unsigned namespace rtengine { extern void filmlike_clip(float *r, float *g, float *b); } -void Imagefloat::getScanline (int row, unsigned char* buffer, int bps) +void Imagefloat::getScanline (int row, unsigned char* buffer, int bps, bool isFloat) { if (data == nullptr) { return; } - if (bps == 32) { - int ix = 0; - float* sbuffer = (float*) buffer; - - // agriggio -- assume the image is normalized to [0, 65535] - for (int i = 0; i < width; i++) { - sbuffer[ix++] = r(row, i) / 65535.f; - sbuffer[ix++] = g(row, i) / 65535.f; - sbuffer[ix++] = b(row, i) / 65535.f; + if (isFloat) { + if (bps == 32) { + int ix = 0; + float* sbuffer = (float*) buffer; + // agriggio -- assume the image is normalized to [0, 65535] + for (int i = 0; i < width; i++) { + sbuffer[ix++] = r(row, i) / 65535.f; + sbuffer[ix++] = g(row, i) / 65535.f; + sbuffer[ix++] = b(row, i) / 65535.f; + } + } else if (bps == 16) { + int ix = 0; + uint16_t* sbuffer = (uint16_t*) buffer; + // agriggio -- assume the image is normalized to [0, 65535] + for (int i = 0; i < width; i++) { + sbuffer[ix++] = DNG_FloatToHalf(r(row, i) / 65535.f); + sbuffer[ix++] = DNG_FloatToHalf(g(row, i) / 65535.f); + sbuffer[ix++] = DNG_FloatToHalf(b(row, i) / 65535.f); + } } } else { unsigned short *sbuffer = (unsigned short *)buffer; @@ -467,7 +433,7 @@ void Imagefloat::calcCroppedHistogram(const ProcParams ¶ms, float scale, LUT hist.clear(); // Set up factors to calc the lightness - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.workingProfile); float facRed = wprof[1][0]; float facGreen = wprof[1][1]; @@ -508,6 +474,52 @@ void Imagefloat::calcCroppedHistogram(const ProcParams ¶ms, float scale, LUT } +// Parallelized transformation; create transform with cmsFLAGS_NOCACHE! +void Imagefloat::ExecCMSTransform2(cmsHTRANSFORM hTransform) +{ + + // LittleCMS cannot parallelize planar setups -- Hombre: LCMS2.4 can! But it we use this new feature, memory allocation + // have to be modified too to build temporary buffers that allow multi processor execution +#ifdef _OPENMP + #pragma omp parallel +#endif + { + AlignedBuffer pBuf(width * 3); + +#ifdef _OPENMP + #pragma omp for schedule(static) +#endif + + for (int y = 0; y < height; y++) + { + float *p = pBuf.data, *pR = r(y), *pG = g(y), *pB = b(y); + + for (int x = 0; x < width; x++) { + *(p++) = *(pR++)/ 65535.f; + *(p++) = *(pG++)/ 65535.f; + *(p++) = *(pB++)/ 65535.f; + + } + + cmsDoTransform (hTransform, pBuf.data, pBuf.data, width); + + p = pBuf.data; + pR = r(y); + pG = g(y); + pB = b(y); + + for (int x = 0; x < width; x++) { + *(pR++) = *(p++); + *(pG++) = *(p++); + *(pB++) = *(p++); + } + } // End of parallelization + } +} + + + + // Parallelized transformation; create transform with cmsFLAGS_NOCACHE! void Imagefloat::ExecCMSTransform(cmsHTRANSFORM hTransform) { @@ -532,6 +544,7 @@ void Imagefloat::ExecCMSTransform(cmsHTRANSFORM hTransform) *(p++) = *(pR++); *(p++) = *(pG++); *(p++) = *(pB++); + } cmsDoTransform (hTransform, pBuf.data, pBuf.data, width); diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index 5246a2f6e..65c291775 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -59,8 +59,8 @@ public: { return 8 * sizeof(float); } - virtual void getScanline (int row, unsigned char* buffer, int bps); - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples, float *minValue = nullptr, float *maxValue = nullptr); + virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false); + virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples); // functions inherited from IImagefloat: virtual MyMutex& getMutex () @@ -87,9 +87,9 @@ public: { return saveJPEG (fname, quality, subSamp); } - virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, bool uncompressed = false) + virtual int saveAsTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false) { - return saveTIFF (fname, bps, uncompressed); + return saveTIFF (fname, bps, isFloat, uncompressed); } virtual void setSaveProgressListener (ProgressListener* pl) { @@ -100,10 +100,127 @@ public: delete this; } + inline uint16_t DNG_FloatToHalf(float f) + { + union { + float f; + uint32_t i; + } tmp; + + tmp.f = f; + int32_t sign = (tmp.i >> 16) & 0x00008000; + int32_t exponent = ((tmp.i >> 23) & 0x000000ff) - (127 - 15); + int32_t mantissa = tmp.i & 0x007fffff; + if (exponent <= 0) { + if (exponent < -10) { + return (uint16_t)sign; + } + mantissa = (mantissa | 0x00800000) >> (1 - exponent); + if (mantissa & 0x00001000) + mantissa += 0x00002000; + return (uint16_t)(sign | (mantissa >> 13)); + } else if (exponent == 0xff - (127 - 15)) { + if (mantissa == 0) { + return (uint16_t)(sign | 0x7c00); + } else { + return (uint16_t)(sign | 0x7c00 | (mantissa >> 13)); + } + } + if (mantissa & 0x00001000) { + mantissa += 0x00002000; + if (mantissa & 0x00800000) { + mantissa = 0; // overflow in significand, + exponent += 1; // adjust exponent + } + } + if (exponent > 30) { + return (uint16_t)(sign | 0x7c00); // infinity with the same sign as f. + } + return (uint16_t)(sign | (exponent << 10) | (mantissa >> 13)); + } + + // From DNG SDK dng_utils.h + inline float DNG_HalfToFloat(uint16_t halfValue) + { + union { + float f; + uint32_t i; + } tmp; + + int32_t sign = (halfValue >> 15) & 0x00000001; + int32_t exponent = (halfValue >> 10) & 0x0000001f; + int32_t mantissa = halfValue & 0x000003ff; + if (exponent == 0) { + if (mantissa == 0) { + // Plus or minus zero + tmp.i = (uint32_t) (sign << 31); + return tmp.f; + } else { + // Denormalized number -- renormalize it + while (!(mantissa & 0x00000400)) { + mantissa <<= 1; + exponent -= 1; + } + exponent += 1; + mantissa &= ~0x00000400; + } + } else if (exponent == 31) { + if (mantissa == 0) { + // Positive or negative infinity, convert to maximum (16 bit) values. + tmp.i = (uint32_t)((sign << 31) | ((0x1eL + 127 - 15) << 23) | (0x3ffL << 13)); + return tmp.f; + } else { + // Nan -- Just set to zero. + return 0; + } + } + // Normalized number + exponent += (127 - 15); + mantissa <<= 13; + // Assemble sign, exponent and mantissa. + tmp.i = (uint32_t) ((sign << 31) | (exponent << 23) | mantissa); + return tmp.f; + } + + inline uint32_t DNG_FP24ToFloat(const uint8_t * input) + { + int32_t sign = (input [0] >> 7) & 0x01; + int32_t exponent = (input [0] ) & 0x7F; + int32_t mantissa = (((int32_t) input [1]) << 8) | input[2]; + if (exponent == 0) { + if (mantissa == 0) { + // Plus or minus zero + return (uint32_t) (sign << 31); + } else { + // Denormalized number -- renormalize it + while (!(mantissa & 0x00010000)) { + mantissa <<= 1; + exponent -= 1; + } + exponent += 1; + mantissa &= ~0x00010000; + } + } else if (exponent == 127) { + if (mantissa == 0) { + // Positive or negative infinity, convert to maximum (24 bit) values. + return (uint32_t) ((sign << 31) | ((0x7eL + 128 - 64) << 23) | (0xffffL << 7)); + } else { + // Nan -- Just set to zero. + return 0; + } + } + // Normalized number + exponent += (128 - 64); + mantissa <<= 7; + // Assemble sign, exponent and mantissa. + return (uint32_t) ((sign << 31) | (exponent << 23) | mantissa); + } + virtual void normalizeFloat(float srcMinVal, float srcMaxVal); void normalizeFloatTo1(); void normalizeFloatTo65535(); void calcCroppedHistogram(const ProcParams ¶ms, float scale, LUTu & hist); + void ExecCMSTransform2(cmsHTRANSFORM hTransform); void ExecCMSTransform(cmsHTRANSFORM hTransform); void ExecCMSTransform(cmsHTRANSFORM hTransform, const LabImage &labImage, int cx, int cy); diff --git a/rtengine/imageio.cc b/rtengine/imageio.cc index 6c70869ec..08922e436 100644 --- a/rtengine/imageio.cc +++ b/rtengine/imageio.cc @@ -1027,6 +1027,9 @@ int ImageIO::savePNG (Glib::ustring fname, volatile int bps) if (bps < 0) { bps = getBPS (); } + if (bps > 16) { + bps = 16; + } png_set_IHDR(png, info, width, height, bps, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_BASE); @@ -1298,13 +1301,12 @@ int ImageIO::saveJPEG (Glib::ustring fname, int quality, int subSamp) return IMIO_SUCCESS; } -int ImageIO::saveTIFF (Glib::ustring fname, int bps, bool uncompressed) +int ImageIO::saveTIFF (Glib::ustring fname, int bps, float isFloat, bool uncompressed) { if (getWidth() < 1 || getHeight() < 1) { return IMIO_HEADERERROR; } - //TODO: Handling 32 bits floating point output images! bool writeOk = true; int width = getWidth (); int height = getHeight (); @@ -1456,26 +1458,36 @@ int ImageIO::saveTIFF (Glib::ustring fname, int bps, bool uncompressed) TIFFSetField (out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); TIFFSetField (out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); TIFFSetField (out, TIFFTAG_COMPRESSION, uncompressed ? COMPRESSION_NONE : COMPRESSION_ADOBE_DEFLATE); - TIFFSetField (out, TIFFTAG_SAMPLEFORMAT, bps == 32 ? SAMPLEFORMAT_IEEEFP : SAMPLEFORMAT_UINT); + TIFFSetField (out, TIFFTAG_SAMPLEFORMAT, (bps == 16 || bps == 32) && isFloat ? SAMPLEFORMAT_IEEEFP : SAMPLEFORMAT_UINT); if (!uncompressed) { - TIFFSetField (out, TIFFTAG_PREDICTOR, bps == 32 ? PREDICTOR_FLOATINGPOINT : PREDICTOR_HORIZONTAL); + TIFFSetField (out, TIFFTAG_PREDICTOR, (bps == 16 || bps == 32) && isFloat ? PREDICTOR_FLOATINGPOINT : PREDICTOR_HORIZONTAL); } if (profileData) { TIFFSetField (out, TIFFTAG_ICCPROFILE, profileLength, profileData); } for (int row = 0; row < height; row++) { - getScanline (row, linebuffer, bps); + getScanline (row, linebuffer, bps, isFloat); - if(needsReverse && !uncompressed && bps == 32) { - for(int i = 0; i < lineWidth; i += 4) { - char temp = linebuffer[i]; - linebuffer[i] = linebuffer[i + 3]; - linebuffer[i + 3] = temp; - temp = linebuffer[i + 1]; - linebuffer[i + 1] = linebuffer[i + 2]; - linebuffer[i + 2] = temp; + if (bps == 16) { + if(needsReverse && !uncompressed && isFloat) { + for(int i = 0; i < lineWidth; i += 2) { + char temp = linebuffer[i]; + linebuffer[i] = linebuffer[i + 1]; + linebuffer[i + 1] = temp; + } + } + } else if (bps == 32) { + if(needsReverse && !uncompressed) { + for(int i = 0; i < lineWidth; i += 4) { + char temp = linebuffer[i]; + linebuffer[i] = linebuffer[i + 3]; + linebuffer[i + 3] = temp; + temp = linebuffer[i + 1]; + linebuffer[i + 1] = linebuffer[i + 2]; + linebuffer[i + 2] = temp; + } } } diff --git a/rtengine/imageio.h b/rtengine/imageio.h index 294a3d476..cbf245291 100644 --- a/rtengine/imageio.h +++ b/rtengine/imageio.h @@ -112,8 +112,8 @@ public: } virtual int getBPS () = 0; - virtual void getScanline (int row, unsigned char* buffer, int bps) {} - virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples = 3, float minValue[3] = nullptr, float maxValue[3] = nullptr) {} + virtual void getScanline (int row, unsigned char* buffer, int bps, bool isFloat = false) {} + virtual void setScanline (int row, unsigned char* buffer, int bps, unsigned int numSamples = 3) {} virtual bool readImage (Glib::ustring &fname, FILE *fh) { @@ -138,7 +138,7 @@ public: int savePNG (Glib::ustring fname, volatile int bps = -1); int saveJPEG (Glib::ustring fname, int quality = 100, int subSamp = 3); - int saveTIFF (Glib::ustring fname, int bps = -1, bool uncompressed = false); + int saveTIFF (Glib::ustring fname, int bps = -1, float isFloat = false, bool uncompressed = false); cmsHPROFILE getEmbeddedProfile () { diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index c0565a4a3..e01f22b16 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -68,7 +68,7 @@ public: virtual ~ImageSource () {} 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) {}; + virtual void demosaic (const RAWParams &raw, bool autoContrast, double &contrastThreshold) {}; virtual void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &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) {}; virtual void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {}; virtual void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI) {}; @@ -80,6 +80,7 @@ public: virtual bool isRGBSourceModified () const = 0; // tracks whether cached rgb output of demosaic has been modified + virtual void setBorder (unsigned int border) {} virtual void setCurrentFrame (unsigned int frameNum) = 0; virtual int getFrameCount () = 0; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index cba4174a4..63e932eca 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -29,6 +29,11 @@ #include #include "iccstore.h" +#include +#include +#include +#include "color.h" + #ifdef _OPENMP #include #endif @@ -96,7 +101,7 @@ ImProcCoordinator::ImProcCoordinator() fw(0), fh(0), tr(0), fullw(1), fullh(1), pW(-1), pH(-1), - plistener(nullptr), awbListener(nullptr), imageListener(nullptr), aeListener(nullptr), acListener(nullptr), abwListener(nullptr), actListener(nullptr), adnListener(nullptr), awavListener(nullptr), dehaListener(nullptr), frameCountListener(nullptr), imageTypeListener(nullptr), hListener(nullptr), + plistener(nullptr), imageListener(nullptr), aeListener(nullptr), acListener(nullptr), abwListener(nullptr), awbListener(nullptr), frameCountListener(nullptr), imageTypeListener(nullptr), actListener(nullptr), adnListener(nullptr), awavListener(nullptr), dehaListener(nullptr), hListener(nullptr), resultValid(false), lastOutputProfile("BADFOOD"), lastOutputIntent(RI__COUNT), lastOutputBPC(false), thread(nullptr), changeSinceLast(0), updaterRunning(false), destroying(false), utili(false), autili(false), butili(false), ccutili(false), cclutili(false), clcutili(false), opautili(false), wavcontlutili(false), locallutili(false), localcutili(false), localskutili(false), localexutili(false), LHutili(false), HHutili(false), @@ -258,8 +263,17 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) printf("Demosaic X-Trans image with using method: %s\n", rp.xtranssensor.method.c_str()); } } + if(imgsrc->getSensorType() == ST_BAYER) { + if(params.raw.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { + imgsrc->setBorder(params.raw.bayersensor.border); + } else { + imgsrc->setBorder(std::max(params.raw.bayersensor.border, 2)); + } + } + bool autoContrast = false; + double contrastThreshold = 0.f; + imgsrc->demosaic(rp, autoContrast, contrastThreshold); //enabled demosaic - imgsrc->demosaic(rp); //enabled demosaic // if a demosaic happened we should also call getimage later, so we need to set the M_INIT flag todo |= M_INIT; @@ -340,6 +354,30 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) awbListener->WBChanged(params.wb.temperature, params.wb.green); } + /* + GammaValues g_a; + double pwr = 1.0 / params.icm.gampos; + double ts = params.icm.slpos; + + + int mode = 0; + Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope + printf("ga[0]=%f ga[1]=%f ga[2]=%f ga[3]=%f ga[4]=%f\n", g_a[0],g_a[1],g_a[2],g_a[3],g_a[4]); + + Glib::ustring datal; + datal = "lutsrgb.txt"; + ofstream fou(datal, ios::out | ios::trunc); + + for(int i=0; i < 212; i++) { + //printf("igamma2=%i\n", (int) 65535.f*Color::igamma2(i/212.0)); + float gam = Color::igamma2(i/211.0); + int lutga = nearbyint(65535.f* gam); + // fou << 65535*(int)Color::igamma2(i/212.0) << endl; + fou << i << " " << lutga << endl; + + } + fou.close(); + */ int tr = getCoarseBitMask(params.coarse); imgsrc->getFullSize(fw, fh, tr); @@ -438,9 +476,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) const int W = oprevi->getWidth(); const int H = oprevi->getHeight(); LabImage labcbdl(W, H); - ipf.rgb2lab(*oprevi, labcbdl, params.icm.working); + ipf.rgb2lab(*oprevi, labcbdl, params.icm.workingProfile); ipf.dirpyrequalizer(&labcbdl, scale); - ipf.lab2rgb(labcbdl, *oprevi, params.icm.working); + ipf.lab2rgb(labcbdl, *oprevi, params.icm.workingProfile); } readyphase++; @@ -462,7 +500,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) } if (params.toneCurve.histmatching) { - imgsrc->getAutoMatchedToneCurve(params.icm, params.toneCurve.curve); + if (!params.toneCurve.fromHistMatching) { + imgsrc->getAutoMatchedToneCurve(params.icm, params.toneCurve.curve); + } if (params.toneCurve.autoexp) { params.toneCurve.expcomp = 0.0; @@ -474,6 +514,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) params.toneCurve.brightness = 0; params.toneCurve.contrast = 0; params.toneCurve.black = 0; + params.toneCurve.fromHistMatching = true; if (aeListener) { aeListener->autoMatchedToneCurveChanged(params.toneCurve.curveMode, params.toneCurve.curve); @@ -483,6 +524,48 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) progress("Exposure curve & CIELAB conversion...", 100 * readyphase / numofphases); + if (todo & (M_AUTOEXP | M_RGBCURVE)) { + if (params.icm.workingTRC == "Custom") { //exec TRC IN free + Glib::ustring profile; + 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); + #pragma omp parallel for + + for (int row = 0; row < ch; row++) { + for (int col = 0; col < cw; col++) { + oprevi->r(row, col) = (float)readyImg0->r(row, col); + oprevi->g(row, col) = (float)readyImg0->g(row, col); + oprevi->b(row, col) = (float)readyImg0->b(row, col); + } + } + + delete readyImg0; + //adjust TRC + Imagefloat* readyImg = NULL; + 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++) { + for (int col = 0; col < cw; col++) { + oprevi->r(row, col) = (float)readyImg->r(row, col); + oprevi->g(row, col) = (float)readyImg->g(row, col); + oprevi->b(row, col) = (float)readyImg->b(row, col); + } + } + + delete readyImg; + + } + } + } + + if ((todo & M_RGBCURVE) || (todo & M_CROP)) { // if (hListener) oprevi->calcCroppedHistogram(params, scale, histCropped); @@ -501,7 +584,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) opautili = false; if (params.colorToning.enabled) { - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params.icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params.icm.workingProfile); double wp[3][3] = { {wprof[0][0], wprof[0][1], wprof[0][2]}, {wprof[1][0], wprof[1][1], wprof[1][2]}, @@ -614,6 +697,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) lhist16(32768); if (todo & (M_LUMACURVE | M_CROP)) { + LUTu lhist16(32768); lhist16.clear(); #ifdef _OPENMP const int numThreads = min(max(pW * pH / (int)lhist16.getSize(), 1), omp_get_max_threads()); @@ -933,8 +1017,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, Crop* cropCall) } // Update the monitor color transform if necessary - if ((todo & M_MONITOR) || (lastOutputProfile != params.icm.output) || lastOutputIntent != params.icm.outputIntent || lastOutputBPC != params.icm.outputBPC) { - lastOutputProfile = params.icm.output; + if ((todo & M_MONITOR) || (lastOutputProfile != params.icm.outputProfile) || lastOutputIntent != params.icm.outputIntent || lastOutputBPC != params.icm.outputBPC) { + lastOutputProfile = params.icm.outputProfile; lastOutputIntent = params.icm.outputIntent; lastOutputBPC = params.icm.outputBPC; ipf.updateColorProfiles(monitorProfile, monitorIntent, softProof, gamutCheck); @@ -1194,7 +1278,7 @@ bool ImProcCoordinator::getAutoWB(double& temp, double& green, double equal, dou } } -void ImProcCoordinator::getCamWB(double & temp, double & green) +void ImProcCoordinator::getCamWB(double& temp, double& green) { if (imgsrc) { @@ -1203,7 +1287,7 @@ void ImProcCoordinator::getCamWB(double & temp, double & green) } } -void ImProcCoordinator::getSpotWB(int x, int y, int rect, double & temp, double & tgreen) +void ImProcCoordinator::getSpotWB(int x, int y, int rect, double& temp, double& tgreen) { ColorTemp ret; @@ -1270,13 +1354,13 @@ void ImProcCoordinator::getAutoCrop(double ratio, int &x, int &y, int &w, int &h y = (fullh - h) / 2; } -void ImProcCoordinator::setMonitorProfile(const Glib::ustring & profile, RenderingIntent intent) +void ImProcCoordinator::setMonitorProfile(const Glib::ustring& profile, RenderingIntent intent) { monitorProfile = profile; monitorIntent = intent; } -void ImProcCoordinator::getMonitorProfile(Glib::ustring & profile, RenderingIntent & intent) const +void ImProcCoordinator::getMonitorProfile(Glib::ustring& profile, RenderingIntent& intent) const { profile = monitorProfile; intent = monitorIntent; @@ -1288,7 +1372,7 @@ void ImProcCoordinator::setSoftProofing(bool softProof, bool gamutCheck) this->gamutCheck = gamutCheck; } -void ImProcCoordinator::getSoftProofing(bool & softProof, bool & gamutCheck) +void ImProcCoordinator::getSoftProofing(bool &softProof, bool &gamutCheck) { softProof = this->softProof; gamutCheck = this->gamutCheck; @@ -1299,7 +1383,7 @@ void ImProcCoordinator::setSharpMask(bool sharpMask) this->sharpMask = sharpMask; } -void ImProcCoordinator::saveInputICCReference(const Glib::ustring & fname, bool apply_wb) +void ImProcCoordinator::saveInputICCReference(const Glib::ustring& fname, bool apply_wb) { MyMutex::MyLock lock(mProcessing); @@ -1312,10 +1396,11 @@ void ImProcCoordinator::saveInputICCReference(const Glib::ustring & fname, bool PreviewProps pp(0, 0, fW, fH, 1); ProcParams ppar = params; ppar.toneCurve.hrenabled = false; - ppar.icm.input = "(none)"; + ppar.icm.inputProfile = "(none)"; Imagefloat* im = new Imagefloat(fW, fH); imgsrc->preprocess(ppar.raw, ppar.lensProf, ppar.coarse); - imgsrc->demosaic(ppar.raw); + double dummy = 0.0; + imgsrc->demosaic(ppar.raw, false, dummy); ColorTemp currWB = ColorTemp(params.wb.temperature, params.wb.green, params.wb.equal, params.wb.method); if (params.wb.method == "Camera") { diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index c299d5b43..cb04e00c9 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -177,17 +177,17 @@ protected: int pW, pH; ProgressListener* plistener; - AutoWBListener* awbListener; PreviewImageListener* imageListener; AutoExpListener* aeListener; AutoCamListener* acListener; AutoBWListener* abwListener; + AutoWBListener* awbListener; + FrameCountListener *frameCountListener; + ImageTypeListener *imageTypeListener; AutoColorTonListener* actListener; AutoChromaListener* adnListener; WaveletListener* awavListener; RetinexListener* dehaListener; - FrameCountListener *frameCountListener; - ImageTypeListener *imageTypeListener; HistogramListener* hListener; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 08072550c..53c10f2e6 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -312,7 +312,7 @@ void ImProcFunctions::updateColorProfiles(const Glib::ustring& monitorProfile, R #if !defined(__APPLE__) // No support for monitor profiles on OS X, all data is sRGB monitor = ICCStore::getInstance()->getProfile(monitorProfile); #else - monitor = ICCStore::getInstance()->getProfile("RT_sRGB"); + monitor = ICCStore::getInstance()->getProfile (options.rtSettings.srgb); #endif } @@ -342,8 +342,7 @@ void ImProcFunctions::updateColorProfiles(const Glib::ustring& monitorProfile, R outIntent = settings->printerIntent; } else { - oprof = ICCStore::getInstance()->getProfile(params->icm.output); - + oprof = ICCStore::getInstance()->getProfile(params->icm.outputProfile); if (params->icm.outputBPC) { flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; } @@ -421,7 +420,7 @@ void ImProcFunctions::updateColorProfiles(const Glib::ustring& monitorProfile, R void ImProcFunctions::firstAnalysis(const Imagefloat* const original, const ProcParams ¶ms, LUTu & histogram) { - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params.icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.workingProfile); lumimul[0] = wprof[1][0]; lumimul[1] = wprof[1][1]; @@ -986,7 +985,7 @@ void ImProcFunctions::ciecam_02float(CieImage* ncie, float adap, int pW, int pwb //matrix for current working space - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.workingProfile); const float wip[3][3] = { { (float)wiprof[0][0], (float)wiprof[0][1], (float)wiprof[0][2]}, { (float)wiprof[1][0], (float)wiprof[1][1], (float)wiprof[1][2]}, @@ -2076,8 +2075,8 @@ void ImProcFunctions::rgbProc(Imagefloat* working, LabImage* lab, PipetteBuffer } } - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.working); - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params->icm.workingProfile); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.workingProfile); float toxyz[3][3] = { { @@ -2186,7 +2185,7 @@ void ImProcFunctions::rgbProc(Imagefloat* working, LabImage* lab, PipetteBuffer hald_clut = CLUTStore::getInstance().getClut(params->filmSimulation.clutFilename); if (hald_clut) { - clutAndWorkingProfilesAreSame = hald_clut->getProfile() == params->icm.working; + clutAndWorkingProfilesAreSame = hald_clut->getProfile() == params->icm.workingProfile; if (!clutAndWorkingProfilesAreSame) { xyz2clut = ICCStore::getInstance()->workingSpaceInverseMatrix(hald_clut->getProfile()); @@ -2215,7 +2214,7 @@ void ImProcFunctions::rgbProc(Imagefloat* working, LabImage* lab, PipetteBuffer const float comp = (max(0.0, expcomp) + 1.0) * hlcompr / 100.0; const float shoulder = ((65536.0 / max(1.0f, exp_scale)) * (hlcomprthresh / 200.0)) + 0.1; const float hlrange = 65536.0 - shoulder; - const bool isProPhoto = (params->icm.working == "ProPhoto"); + const bool isProPhoto = (params->icm.workingProfile == "ProPhoto"); // extracting datas from 'params' to avoid cache flush (to be confirmed) ToneCurveParams::TcMode curveMode = params->toneCurve.curveMode; ToneCurveParams::TcMode curveMode2 = params->toneCurve.curveMode2; @@ -2232,12 +2231,12 @@ void ImProcFunctions::rgbProc(Imagefloat* working, LabImage* lab, PipetteBuffer if (hasToneCurve1 && curveMode == ToneCurveParams::TcMode::PERCEPTUAL) { const PerceptualToneCurve& userToneCurve = static_cast(customToneCurve1); - userToneCurve.initApplyState(ptc1ApplyState, params->icm.working); + userToneCurve.initApplyState (ptc1ApplyState, params->icm.workingProfile); } if (hasToneCurve2 && curveMode2 == ToneCurveParams::TcMode::PERCEPTUAL) { const PerceptualToneCurve& userToneCurve = static_cast(customToneCurve2); - userToneCurve.initApplyState(ptc2ApplyState, params->icm.working); + userToneCurve.initApplyState (ptc2ApplyState, params->icm.workingProfile); } bool hasColorToning = params->colorToning.enabled && bool (ctOpacityCurve) && bool (ctColorCurve) && params->colorToning.method != "LabGrid"; @@ -2290,15 +2289,15 @@ void ImProcFunctions::rgbProc(Imagefloat* working, LabImage* lab, PipetteBuffer float Balan = float (params->colorToning.balance); - float chMixRR = float (params->chmixer.red[0]); - float chMixRG = float (params->chmixer.red[1]); - float chMixRB = float (params->chmixer.red[2]); - float chMixGR = float (params->chmixer.green[0]); - float chMixGG = float (params->chmixer.green[1]); - float chMixGB = float (params->chmixer.green[2]); - float chMixBR = float (params->chmixer.blue[0]); - float chMixBG = float (params->chmixer.blue[1]); - float chMixBB = float (params->chmixer.blue[2]); + float chMixRR = float (params->chmixer.red[0])/10.f; + float chMixRG = float (params->chmixer.red[1])/10.f; + float chMixRB = float (params->chmixer.red[2])/10.f; + float chMixGR = float (params->chmixer.green[0])/10.f; + float chMixGG = float (params->chmixer.green[1])/10.f; + float chMixGB = float (params->chmixer.green[2])/10.f; + float chMixBR = float (params->chmixer.blue[0])/10.f; + float chMixBG = float (params->chmixer.blue[1])/10.f; + float chMixBB = float (params->chmixer.blue[2])/10.f; bool blackwhite = params->blackwhite.enabled; bool complem = params->blackwhite.enabledcc; @@ -3230,7 +3229,8 @@ void ImProcFunctions::rgbProc(Imagefloat* working, LabImage* lab, PipetteBuffer } } - + softLight(rtemp, gtemp, btemp, istart, jstart, tW, tH, TS); + if (!blackwhite) { if (editImgFloat || editWhatever) { for (int i = istart, ti = 0; i < tH; i++, ti++) { @@ -4137,24 +4137,22 @@ void ImProcFunctions::labtoning(float r, float g, float b, float &ro, float &go, // get the opacity and tweak it to preserve saturated colors //float l_ = Color::gamma_srgb(l*65535.f)/65535.f; - float opacity; - opacity = (1.f - min (s / satLimit, 1.f) * (1.f - satLimitOpacity)) * ctOpacityCurve.lutOpacityCurve[l * 500.f]; + float opacity = (1.f - min (s / satLimit, 1.f) * (1.f - satLimitOpacity)) * ctOpacityCurve.lutOpacityCurve[l * 500.f]; float opacity2 = (1.f - min (s / satLimit, 1.f) * (1.f - satLimitOpacity)); - //float ro, go, bo; - float lm = l; - float chromat, luma; + l *= 65535.f; + float chromat = 0.f, luma = 0.f; - if (clToningcurve[lm * 65535.f] / (lm * 65535.f) < 1.f) { - chromat = (clToningcurve[(lm) * 65535.f] / (lm * 65535.f)) - 1.f; //special effect - } else { - chromat = 1.f - SQR(SQR((lm * 65535.f) / clToningcurve[(lm) * 65535.f])); //apply C=f(L) acts on 'a' and 'b' + if (clToningcurve[l] < l) { + chromat = clToningcurve[l] / l - 1.f; //special effect + } else if (clToningcurve[l] > l) { + chromat = 1.f - SQR(SQR(l / clToningcurve[l])); //apply C=f(L) acts on 'a' and 'b' } - if (cl2Toningcurve[lm * 65535.f] / (lm * 65535.f) < 1.f) { - luma = (cl2Toningcurve[(lm) * 65535.f] / (lm * 65535.f)) - 1.f; //special effect - } else { - luma = 1.f - SQR(SQR((lm * 65535.f) / (cl2Toningcurve[(lm) * 65535.f]))); //apply C2=f(L) acts only on 'b' + if (cl2Toningcurve[l] < l) { + luma = cl2Toningcurve[l] / l - 1.f; //special effect + } else if (cl2Toningcurve[l] > l) { + luma = 1.f - SQR(SQR(l / cl2Toningcurve[l])); //apply C2=f(L) acts only on 'b' } if (algm == 1) { @@ -4185,22 +4183,8 @@ void ImProcFunctions::luminanceCurve(LabImage* lold, LabImage* lnew, LUTf & curv void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, LabImage* lold, LabImage* lnew, LUTf & acurve, LUTf & bcurve, LUTf & satcurve, LUTf & lhskcurve, LUTf & clcurve, LUTf & curve, bool utili, bool autili, bool butili, bool ccutili, bool cclutili, bool clcutili, LUTu &histCCurve, LUTu &histLCurve) { - if (!params->labCurve.enabled) { - if (params->blackwhite.enabled && !params->colorToning.enabled) { - for (int i = 0; i < lnew->H; ++i) { - for (int j = 0; j < lnew->W; ++j) { - lnew->a[i][j] = lnew->b[i][j] = 0.f; - } - } - } - - return; - } - int W = lold->W; int H = lold->H; - // lhskcurve.dump("lh_curve"); - //init Flatcurve for C=f(H) PlanarWhateverData* editWhatever = nullptr; EditUniqueID editID = EUID_None; @@ -4226,6 +4210,25 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, } } + if (!params->labCurve.enabled) { + if (editPipette && (editID == EUID_Lab_LCurve || editID == EUID_Lab_aCurve || editID == EUID_Lab_bCurve || editID == EUID_Lab_LHCurve || editID == EUID_Lab_CHCurve || editID == EUID_Lab_HHCurve || editID == EUID_Lab_CLCurve || editID == EUID_Lab_CCurve || editID == EUID_Lab_LCCurve)) { + // fill pipette buffer with zeros to avoid crashes + editWhatever->fill(0.f); + } + if (params->blackwhite.enabled && !params->colorToning.enabled) { + for (int i = 0; i < lnew->H; ++i) { + for (int j = 0; j < lnew->W; ++j) { + lnew->a[i][j] = lnew->b[i][j] = 0.f; + } + } + } + return; + } + + // lhskcurve.dump("lh_curve"); + //init Flatcurve for C=f(H) + + FlatCurve* chCurve = nullptr;// curve C=f(H) bool chutili = false; @@ -4302,19 +4305,19 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, // if(params->labCurve.avoidclip ){ // parameter to adapt curve C=f(C) to gamut - if (params->icm.working == "ProPhoto") { + if (params->icm.workingProfile == "ProPhoto") { adjustr = 1.2f; // 1.2 instead 1.0 because it's very rare to have C>170.. - } else if (params->icm.working == "Adobe RGB") { + } else if (params->icm.workingProfile == "Adobe RGB") { adjustr = 1.8f; - } else if (params->icm.working == "sRGB") { + } else if (params->icm.workingProfile == "sRGB") { adjustr = 2.0f; - } else if (params->icm.working == "WideGamut") { + } else if (params->icm.workingProfile == "WideGamut") { adjustr = 1.2f; - } else if (params->icm.working == "Beta RGB") { + } else if (params->icm.workingProfile == "Beta RGB") { adjustr = 1.4f; - } else if (params->icm.working == "BestRGB") { + } else if (params->icm.workingProfile == "BestRGB") { adjustr = 1.4f; - } else if (params->icm.working == "BruceRGB") { + } else if (params->icm.workingProfile == "BruceRGB") { adjustr = 1.8f; } @@ -4381,14 +4384,14 @@ void ImProcFunctions::chromiLuminanceCurve(PipetteBuffer *pipetteBuffer, int pW, const bool gamutLch = settings->gamutLch; const float amountchroma = (float) settings->amchroma; - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.workingProfile); const double wip[3][3] = { {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, {wiprof[2][0], wiprof[2][1], wiprof[2][2]} }; - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params->icm.workingProfile); const double wp[3][3] = { {wprof[0][0], wprof[0][1], wprof[0][2]}, {wprof[1][0], wprof[1][1], wprof[1][2]}, @@ -5629,7 +5632,7 @@ void ImProcFunctions::getAutoExp(const LUTu &histogram, int histcompr, double cl //now tune hlcompr to bring back rawmax to 65535 - hlcomprthresh = 33; + hlcomprthresh = 0; //this is a series approximation of the actual formula for comp, //which is a transcendental equation float comp = (gain * ((float)whiteclip) / scale - 1.f) * 2.3f; // 2.3 instead of 2 to increase slightly comp @@ -5910,10 +5913,11 @@ void ImProcFunctions::lab2rgb(const LabImage &src, Imagefloat &dst, const Glib:: void ImProcFunctions::colorToningLabGrid(LabImage *lab, int xstart, int xend, int ystart, int yend, bool MultiThread) { const float factor = ColorToningParams::LABGRID_CORR_MAX * 3.f; - float a_scale = (params->colorToning.labgridAHigh - params->colorToning.labgridALow) / factor; - float a_base = params->colorToning.labgridALow; - float b_scale = (params->colorToning.labgridBHigh - params->colorToning.labgridBLow) / factor; - float b_base = params->colorToning.labgridBLow; + const float scaling = ColorToningParams::LABGRID_CORR_SCALE; + float a_scale = (params->colorToning.labgridAHigh - params->colorToning.labgridALow) / factor / scaling; + float a_base = params->colorToning.labgridALow / scaling; + float b_scale = (params->colorToning.labgridBHigh - params->colorToning.labgridBLow) / factor / scaling; + float b_base = params->colorToning.labgridBLow / scaling; #ifdef _OPENMP #pragma omp parallel for if (multiThread) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index bde24a6f8..c67a586a1 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -401,10 +401,12 @@ public: void localContrast(LabImage *lab); void colorToningLabGrid(LabImage *lab, int xstart, int xend, int ystart, int yend, bool MultiThread); void shadowsHighlights(LabImage *lab); + void softLight(float *red, float *green, float *blue, int istart, int jstart, int tW, int tH, int TS); Image8* lab2rgb(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings = true); - Imagefloat* lab2rgbOut(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, GammaValues *ga = nullptr); + Imagefloat* lab2rgbOut(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm); // CieImage *ciec; + Imagefloat* workingtrc(Imagefloat* working, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos); bool transCoord(int W, int H, int x, int y, int w, int h, int& xv, int& yv, int& wv, int& hv, double ascaleDef = -1, const LensCorrection *pLCPMap = nullptr); bool transCoord(int W, int H, const std::vector &src, std::vector &red, std::vector &green, std::vector &blue, double ascaleDef = -1, const LensCorrection *pLCPMap = nullptr); diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 4838ea1f7..c4707f16f 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -26,7 +26,6 @@ #include "curves.h" #include "alignedbuffer.h" #include "color.h" - namespace rtengine { @@ -93,7 +92,7 @@ inline void copyAndClamp(const LabImage *src, unsigned char *dst, const double r // // If monitorTransform, divide by 327.68 then apply monitorTransform (which can integrate soft-proofing) // otherwise divide by 327.68, convert to xyz and apply the sRGB transform, before converting with gamma2curve -void ImProcFunctions::lab2monitorRgb (LabImage* lab, Image8* image) +void ImProcFunctions::lab2monitorRgb(LabImage* lab, Image8* image) { if (monitorTransform) { @@ -111,11 +110,12 @@ void ImProcFunctions::lab2monitorRgb (LabImage* lab, Image8* image) AlignedBuffer gwBuf1; AlignedBuffer gwBuf2; + if (gamutWarning) { gwBuf1.resize(3 * lab->W); gwBuf2.resize(3 * lab->W); } - + float *buffer = pBuf.data; float *outbuffer = mBuf.data; @@ -160,7 +160,7 @@ void ImProcFunctions::lab2monitorRgb (LabImage* lab, Image8* image) // // If output profile used, divide by 327.68 then apply the "profile" profile (eventually with a standard gamma) // otherwise divide by 327.68, convert to xyz and apply the RGB transform, before converting with gamma2curve -Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings) +Image8* ImProcFunctions::lab2rgb(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, bool consider_histogram_settings) { //gamutmap(lab); @@ -180,23 +180,25 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, ch = lab->H - cy; } - Image8* image = new Image8 (cw, ch); + Image8* image = new Image8(cw, ch); Glib::ustring profile; bool standard_gamma; - if(settings->HistogramWorking && consider_histogram_settings) { - profile = icm.working; + if (settings->HistogramWorking && consider_histogram_settings) { + profile = icm.workingProfile; standard_gamma = true; } else { - profile = icm.output; - if (icm.output.empty() || icm.output == ColorManagementParams::NoICMString) { + profile = icm.outputProfile; + + if (icm.outputProfile.empty() || icm.outputProfile == ColorManagementParams::NoICMString) { profile = "sRGB"; } + standard_gamma = false; } - cmsHPROFILE oprof = ICCStore::getInstance()->getProfile (profile); + cmsHPROFILE oprof = ICCStore::getInstance()->getProfile(profile); if (oprof) { cmsHPROFILE oprofG = oprof; @@ -206,14 +208,16 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, } cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; + if (icm.outputBPC) { flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; } - lcmsMutex->lock (); + + lcmsMutex->lock(); cmsHPROFILE LabIProf = cmsCreateLab4Profile(nullptr); cmsHTRANSFORM hTransform = cmsCreateTransform (LabIProf, TYPE_Lab_DBL, oprofG, TYPE_RGB_FLT, icm.outputIntent, flags); // NOCACHE is important for thread safety cmsCloseProfile(LabIProf); - lcmsMutex->unlock (); + lcmsMutex->unlock(); unsigned char *data = image->data; @@ -256,7 +260,7 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, cmsCloseProfile(oprofG); } } else { - const auto xyz_rgb = ICCStore::getInstance()->workingSpaceInverseMatrix (profile); + const auto xyz_rgb = ICCStore::getInstance()->workingSpaceInverseMatrix(profile); copyAndClamp(lab, image->data, xyz_rgb, multiThread); } @@ -279,7 +283,7 @@ Image8* ImProcFunctions::lab2rgb (LabImage* lab, int cx, int cy, int cw, int ch, * If a custom gamma profile can be created, divide by 327.68, convert to xyz and apply the custom gamma transform * otherwise divide by 327.68, convert to xyz and apply the sRGB transform, before converting with gamma2curve */ -Imagefloat* ImProcFunctions::lab2rgbOut (LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm, GammaValues *ga) +Imagefloat* ImProcFunctions::lab2rgbOut(LabImage* lab, int cx, int cy, int cw, int ch, const procparams::ColorManagementParams &icm) { if (cx < 0) { @@ -298,27 +302,92 @@ Imagefloat* ImProcFunctions::lab2rgbOut (LabImage* lab, int cx, int cy, int cw, ch = lab->H - cy; } - Imagefloat* image = new Imagefloat (cw, ch); + Imagefloat* image = new Imagefloat(cw, ch); cmsHPROFILE oprof = nullptr; - if (ga) { - lcmsMutex->lock (); - ICCStore::getInstance()->getGammaArray(icm, *ga); - oprof = ICCStore::getInstance()->createGammaProfile(icm, *ga); - lcmsMutex->unlock (); - } else { - oprof = ICCStore::getInstance()->getProfile (icm.output); + + oprof = ICCStore::getInstance()->getProfile(icm.outputProfile); + Glib::ustring outtest = icm.outputProfile; + std::string fileis_RTv2 = outtest.substr(0, 4); + //printf("IsRTv2=%s\n", fileis_RTv2.c_str()); + if(fileis_RTv2 == "RTv2") {//Only fot ICC v2 : read tag from desc to retrieve gamma and slope save before in generate ICC v2 + //due to bug in LCMS in CmsToneCurve + //printf("icmout=%s \n",icm.output.c_str()); + GammaValues g_b; //gamma parameters + const double eps = 0.000000001; // not divide by zero + double gammatag = 2.4; + double slopetag = 12.92310; + cmsMLU *modelDescMLU = (cmsMLU*) (cmsReadTag(oprof, cmsSigDeviceModelDescTag)); + if (modelDescMLU) { + cmsUInt32Number count = cmsMLUgetWide(modelDescMLU, "en", "US", nullptr, 0); // get buffer length first + if (count) { + wchar_t *buffer = new wchar_t[count]; + count = cmsMLUgetWide(modelDescMLU, "en", "US", buffer, count); // now put the string in the buffer + Glib::ustring modelDesc; +#if __SIZEOF_WCHAR_T__ == 2 + char* cModelDesc = g_utf16_to_utf8((unsigned short int*)buffer, -1, nullptr, nullptr, nullptr); // convert to utf-8 in a buffer allocated by glib + if (cModelDesc) { + modelDesc.assign(cModelDesc); + g_free(cModelDesc); + } +#else + modelDesc = utf32_to_utf8(buffer, count); +#endif + delete [] buffer; + if (!modelDesc.empty()) { + printf("dmdd=%s\n", modelDesc.c_str()); + + std::size_t pos = modelDesc.find("g"); + std::size_t posmid = modelDesc.find("s"); + std::size_t posend = modelDesc.find("!"); + std::string strgamma = modelDesc.substr(pos + 1, (posmid - pos)); + gammatag = std::stod(strgamma.c_str()); + std::string strslope = modelDesc.substr(posmid + 1, (posend - posmid)); + slopetag = std::stod(strslope.c_str()); + // printf("gam=%f slo=%f\n", gammatag, slopetag); + } + } else { + printf("Error: lab2rgbOut / String length is null!\n"); + } + } else { + printf("Error: lab2rgbOut / cmsReadTag/cmsSigDeviceModelDescTag failed!\n"); + } + + double pwr = 1.0 / gammatag; + double ts = slopetag; + double slope = slopetag == 0 ? eps : slopetag; + + int mode = 0; + Color::calcGamma(pwr, ts, mode, g_b); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + cmsFloat64Number gammaParams[7]; //gamma parameters + gammaParams[4] = g_b[3] * ts; + gammaParams[0] = gammatag; + gammaParams[1] = 1. / (1.0 + g_b[4]); + gammaParams[2] = g_b[4] / (1.0 + g_b[4]); + gammaParams[3] = 1. / slope; + gammaParams[5] = 0.0; + gammaParams[6] = 0.0; + + cmsToneCurve* GammaTRC[3]; + + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, gammaParams); //5 = smoother than 4 + cmsWriteTag(oprof, cmsSigRedTRCTag, GammaTRC[0]); + cmsWriteTag(oprof, cmsSigGreenTRCTag, GammaTRC[1]); + cmsWriteTag(oprof, cmsSigBlueTRCTag, GammaTRC[2]); + cmsFreeToneCurve(GammaTRC[0]); } if (oprof) { cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; + if (icm.outputBPC) { flags |= cmsFLAGS_BLACKPOINTCOMPENSATION; } - lcmsMutex->lock (); + + lcmsMutex->lock(); cmsHPROFILE iprof = cmsCreateLab4Profile(nullptr); - cmsHTRANSFORM hTransform = cmsCreateTransform (iprof, TYPE_Lab_FLT, oprof, TYPE_RGB_FLT, icm.outputIntent, flags); - lcmsMutex->unlock (); + cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_Lab_FLT, oprof, TYPE_RGB_FLT, icm.outputIntent, flags); + lcmsMutex->unlock(); image->ExecCMSTransform(hTransform, *lab, cx, cy); cmsDeleteTransform(hTransform); @@ -328,6 +397,7 @@ Imagefloat* ImProcFunctions::lab2rgbOut (LabImage* lab, int cx, int cy, int cw, #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) if (multiThread) #endif + for (int i = cy; i < cy + ch; i++) { float R, G, B; float* rL = lab->L[i]; @@ -358,4 +428,237 @@ Imagefloat* ImProcFunctions::lab2rgbOut (LabImage* lab, int cx, int cy, int cw, return image; } + +Imagefloat* ImProcFunctions::workingtrc(Imagefloat* working, int cw, int ch, int mul, Glib::ustring profile, double gampos, double slpos) +{ + TMatrix wprof; + + wprof = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); + + double dx = Color::D50x; + double dz = Color::D50z; + { + dx = dz = 1.0; + } + double toxyz[3][3] = { + { + (wprof[0][0] / dx), //I have suppressed / Color::D50x + (wprof[0][1] / dx), + (wprof[0][2] / dx) + }, { + (wprof[1][0]), + (wprof[1][1]), + (wprof[1][2]) + }, { + (wprof[2][0] / dz), //I have suppressed / Color::D50z + (wprof[2][1] / dz), + (wprof[2][2] / dz) + } + }; + + Imagefloat* image = new Imagefloat(cw, ch); + + double pwr; + double ts; + ts = slpos; + + int five = mul; + + pwr = 1.0 / gampos; + + if (gampos < 1.0) { + pwr = gampos; + gampos = 1. / gampos; + five = -mul; + } + + // int select_temp = 1; //5003K + const double eps = 0.000000001; // not divide by zero + + enum class ColorTemp { + D50 = 5003, // for Widegamut, ProPhoto Best, Beta -> D50 + D65 = 6504, // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 + D60 = 6005 // for ACES AP0 and AP1 + + }; + ColorTemp temp = ColorTemp::D50; + + cmsHPROFILE oprofdef; + float p[6]; //primaries + + if (true) { + //primaries for 10 working profiles ==> output profiles + if (profile == "WideGamut") { + p[0] = 0.7350; //Widegamut primaries + p[1] = 0.2650; + p[2] = 0.1150; + p[3] = 0.8260; + p[4] = 0.1570; + p[5] = 0.0180; + } else if (profile == "Adobe RGB") { + p[0] = 0.6400; //Adobe primaries + p[1] = 0.3300; + p[2] = 0.2100; + p[3] = 0.7100; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "sRGB") { + p[0] = 0.6400; // sRGB primaries + p[1] = 0.3300; + p[2] = 0.3000; + p[3] = 0.6000; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "BruceRGB") { + p[0] = 0.6400; // Bruce primaries + p[1] = 0.3300; + p[2] = 0.2800; + p[3] = 0.6500; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (profile == "Beta RGB") { + p[0] = 0.6888; // Beta primaries + p[1] = 0.3112; + p[2] = 0.1986; + p[3] = 0.7551; + p[4] = 0.1265; + p[5] = 0.0352; + } else if (profile == "BestRGB") { + p[0] = 0.7347; // Best primaries + p[1] = 0.2653; + p[2] = 0.2150; + p[3] = 0.7750; + p[4] = 0.1300; + p[5] = 0.0350; + } else if (profile == "Rec2020") { + p[0] = 0.7080; // Rec2020 primaries + p[1] = 0.2920; + p[2] = 0.1700; + p[3] = 0.7970; + p[4] = 0.1310; + p[5] = 0.0460; + temp = ColorTemp::D65; + } else if (profile == "ACESp0") { + p[0] = 0.7347; // ACES P0 primaries + p[1] = 0.2653; + p[2] = 0.0000; + p[3] = 1.0; + p[4] = 0.0001; + p[5] = -0.0770; + temp = ColorTemp::D60; + } else if (profile == "ACESp1") { + p[0] = 0.713; // ACES P1 primaries + p[1] = 0.293; + p[2] = 0.165; + p[3] = 0.830; + p[4] = 0.128; + p[5] = 0.044; + temp = ColorTemp::D60; + } else if (profile == "ProPhoto") { + p[0] = 0.7347; //ProPhoto and default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } else { + p[0] = 0.7347; //default primaries always unused + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } + + if (slpos == 0) { + slpos = eps; + } + + GammaValues g_a; //gamma parameters + int mode = 0; + Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + + cmsCIExyY xyD; + + cmsCIExyYTRIPLE Primaries = { + {p[0], p[1], 1.0}, // red + {p[2], p[3], 1.0}, // green + {p[4], p[5], 1.0} // blue + }; + + cmsToneCurve* GammaTRC[3]; + cmsFloat64Number gammaParams[7]; + gammaParams[4] = g_a[3] * ts; + gammaParams[0] = gampos; + gammaParams[1] = 1. / (1.0 + g_a[4]); + gammaParams[2] = g_a[4] / (1.0 + g_a[4]); + gammaParams[3] = 1. / slpos; + gammaParams[5] = 0.0; + gammaParams[6] = 0.0; + // printf("ga0=%f ga1=%f ga2=%f ga3=%f ga4=%f\n", ga0, ga1, ga2, ga3, ga4); + + // 7 parameters for smoother curves + cmsWhitePointFromTemp(&xyD, (double)temp); + if (profile == "ACESp0") { + xyD = {0.32168, 0.33767, 1.0};//refine white point to avoid differences + } + + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(NULL, five, gammaParams);//5 = more smoother than 4 + oprofdef = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + cmsFreeToneCurve(GammaTRC[0]); + } + + if (oprofdef) { + #pragma omp parallel for if (multiThread) + + for (int i = 0; i < ch; i++) { + float* rr = working->r(i); + float* rg = working->g(i); + float* rb = working->b(i); + + float* xa = (float*)image->r(i); + float* ya = (float*)image->g(i); + float* za = (float*)image->b(i); + + for (int j = 0; j < cw; j++) { + float r1 = rr[j]; + float g1 = rg[j]; + float b1 = rb[j]; + + float x_ = toxyz[0][0] * r1 + toxyz[0][1] * g1 + toxyz[0][2] * b1; + float y_ = toxyz[1][0] * r1 + toxyz[1][1] * g1 + toxyz[1][2] * b1; + float z_ = toxyz[2][0] * r1 + toxyz[2][1] * g1 + toxyz[2][2] * b1; + + xa[j] = ( x_) ; + ya[j] = ( y_); + za[j] = ( z_); + + } + } + + cmsUInt32Number flags = cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE; + + + lcmsMutex->lock(); + cmsHPROFILE iprof = ICCStore::getInstance()->getXYZProfile(); + // cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_16, oprofdef, TYPE_RGB_16, params->icm.outputIntent, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); + cmsHTRANSFORM hTransform = cmsCreateTransform(iprof, TYPE_RGB_FLT, oprofdef, TYPE_RGB_FLT, params->icm.outputIntent, flags); + lcmsMutex->unlock(); + + image->ExecCMSTransform2(hTransform); + + cmsDeleteTransform(hTransform); + image->normalizeFloatTo65535(); + + } + + + return image; + +} + + } diff --git a/rtengine/iplocallab.cc b/rtengine/iplocallab.cc index bfb9c48b1..8ded508b4 100644 --- a/rtengine/iplocallab.cc +++ b/rtengine/iplocallab.cc @@ -1087,7 +1087,7 @@ void ImProcFunctions::vibrancelocal(int sp, int bfw, int bfh, LabImage* lab, La const bool protectskins = params->locallab.protectskins.at(sp); const bool avoidcolorshift = params->locallab.avoidcolorshift.at(sp); - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.workingProfile); //inverse matrix user select const double wip[3][3] = { {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, @@ -10361,19 +10361,19 @@ void ImProcFunctions::Lab_Local(int call, int maxspot, int sp, LUTf & huerefs, L float adjustr = 1.0f; //adapt chroma to working profile - if (params->icm.working == "ProPhoto") { + if (params->icm.workingProfile == "ProPhoto") { adjustr = 1.2f; // 1.2 instead 1.0 because it's very rare to have C>170.. - } else if (params->icm.working == "Adobe RGB") { + } else if (params->icm.workingProfile == "Adobe RGB") { adjustr = 1.8f; - } else if (params->icm.working == "sRGB") { + } else if (params->icm.workingProfile == "sRGB") { adjustr = 2.0f; - } else if (params->icm.working == "WideGamut") { + } else if (params->icm.workingProfile == "WideGamut") { adjustr = 1.2f; - } else if (params->icm.working == "Beta RGB") { + } else if (params->icm.workingProfile == "Beta RGB") { adjustr = 1.4f; - } else if (params->icm.working == "BestRGB") { + } else if (params->icm.workingProfile == "BestRGB") { adjustr = 1.4f; - } else if (params->icm.working == "BruceRGB") { + } else if (params->icm.workingProfile == "BruceRGB") { adjustr = 1.8f; } @@ -11732,7 +11732,7 @@ void ImProcFunctions::Lab_Local(int call, int maxspot, int sp, LUTf & huerefs, L // Gamut and Munsell control - very important do not desactivated to avoid crash if (params->locallab.avoid.at(sp)) { - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.workingProfile); float wip[3][3] = { {static_cast(wiprof[0][0]), static_cast(wiprof[0][1]), static_cast(wiprof[0][2])}, {static_cast(wiprof[1][0]), static_cast(wiprof[1][1]), static_cast(wiprof[1][2])}, diff --git a/rtengine/ipresize.cc b/rtengine/ipresize.cc index f9ff94ef9..b3275b2e4 100644 --- a/rtengine/ipresize.cc +++ b/rtengine/ipresize.cc @@ -373,6 +373,7 @@ float ImProcFunctions::resizeScale (const ProcParams* params, int fw, int fh, in } else { dScale = (double)params->resize.height / (double)refh; } + dScale = (dScale > 1.0 && !params->resize.allowUpscaling) ? 1.0 : dScale; break; diff --git a/rtengine/ipsoftlight.cc b/rtengine/ipsoftlight.cc new file mode 100644 index 000000000..35bf9577a --- /dev/null +++ b/rtengine/ipsoftlight.cc @@ -0,0 +1,73 @@ +/* -*- C++ -*- + * + * This file is part of RawTherapee. + * + * Copyright 2018 Alberto Griggio + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ + +#ifdef _OPENMP +#include +#endif + +#include "improcfun.h" + +namespace rtengine { + +void ImProcFunctions::softLight(float *red, float *green, float *blue, int istart, int jstart, int tW, int tH, int TS) +{ + if (!params->softlight.enabled || !params->softlight.strength) { + return; + } + + const float blend = params->softlight.strength / 100.f; + const float orig = 1.f - blend; + + const auto apply = + [=](float x) -> float + { + if (!OOG(x)) { + float v = Color::gamma_srgb(x) / MAXVALF; + // Pegtop's formula from + // https://en.wikipedia.org/wiki/Blend_modes#Soft_Light + float v2 = v * v; + float v22 = v2 * 2.f; + v = v2 + v22 - v22 * v; + x = blend * Color::igamma_srgb(v * MAXVALF) + orig * x; + } + return x; + }; + +#ifdef _OPENMP + #pragma omp parallel if (multiThread) +#endif + { + int ti = 0; +#ifdef _OPENMP + #pragma omp for +#endif + for (int i = istart; i < tH; i++) { + for (int j = jstart, tj = 0; j < tW; j++, tj++) { + const int idx = ti * TS + tj; + red[idx] = apply(red[idx]); + green[idx] = apply(green[idx]); + blue[idx] = apply(blue[idx]); + } + ++ti; + } + } +} + +} // namespace rtengine diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index ff976137e..a5ade7c53 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -327,25 +327,29 @@ void ImProcFunctions::transform (Imagefloat* original, Imagefloat* transformed, } else { bool highQuality; std::unique_ptr tmpimg; + Imagefloat *dest = transformed; if (!needsCA() && scale != 1) { highQuality = false; } else { highQuality = true; // agriggio: CA correction via the lens profile has to be - // performed before all the other transformations (except for the - // coarse rotation/flipping). In order to not change the code too - // much, I simply introduced a new mode - // TRANSFORM_HIGH_QUALITY_CA, which applies *only* - // profile-based CA correction. So, the correction in this case - // occurs in two steps, using an intermediate temporary - // image. There's room for optimization of course... + // performed before separately from the the other transformations + // (except for the coarse rotation/flipping). In order to not + // change the code too much, I simply introduced a new mode + // TRANSFORM_HIGH_QUALITY_CA, which applies *only* profile-based + // CA correction. So, the correction in this case occurs in two + // steps, using an intermediate temporary image. There's room for + // optimization of course... if (pLCPMap && params->lensProf.useCA && pLCPMap->isCACorrectionAvailable()) { tmpimg.reset(new Imagefloat(original->getWidth(), original->getHeight())); - transformLCPCAOnly(original, tmpimg.get(), cx, cy, pLCPMap.get()); - original = tmpimg.get(); + dest = tmpimg.get(); } } - transformGeneral(highQuality, original, transformed, cx, cy, sx, sy, oW, oH, fW, fH, pLCPMap.get()); + transformGeneral(highQuality, original, dest, cx, cy, sx, sy, oW, oH, fW, fH, pLCPMap.get()); + + if (highQuality && dest != transformed) { + transformLCPCAOnly(dest, transformed, cx, cy, pLCPMap.get()); + } } } diff --git a/rtengine/ipvibrance.cc b/rtengine/ipvibrance.cc index 26141423c..f7a938c33 100644 --- a/rtengine/ipvibrance.cc +++ b/rtengine/ipvibrance.cc @@ -162,7 +162,7 @@ void ImProcFunctions::vibrance (LabImage* lab) const bool protectskins = params->vibrance.protectskins; const bool avoidcolorshift = params->vibrance.avoidcolorshift; - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.workingProfile); //inverse matrix user select const float wip[3][3] = { {static_cast(wiprof[0][0]), static_cast(wiprof[0][1]), static_cast(wiprof[0][2])}, diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 20e37f871..fdb13f197 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -147,7 +147,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // init variables to display Munsell corrections MunsellDebugInfo* MunsDebugInfo = new MunsellDebugInfo(); #endif - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.workingProfile); const double wip[3][3] = { {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, diff --git a/rtengine/pixelshift.cc b/rtengine/pixelshift.cc index 174c02065..cdf4f990a 100644 --- a/rtengine/pixelshift.cc +++ b/rtengine/pixelshift.cc @@ -295,7 +295,7 @@ void calcFrameBrightnessFactor(unsigned int frame, uint32_t datalen, LUTu *histo using namespace std; using namespace rtengine; -void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RAWParams::BayerSensor &bayerParamsIn, unsigned int frame, const std::string &make, const std::string &model, float rawWpCorrection) +void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RAWParams &rawParamsIn, unsigned int frame, const std::string &make, const std::string &model, float rawWpCorrection) { BENCHFUN if(numFrames != 4) { // fallback for non pixelshift files @@ -303,7 +303,7 @@ BENCHFUN return; } - RAWParams::BayerSensor bayerParams = bayerParamsIn; + RAWParams::BayerSensor bayerParams = rawParamsIn.bayersensor; bool motionDetection = true; @@ -326,7 +326,7 @@ BENCHFUN if (bayerParams.pixelShiftDemosaicMethod == bayerParams.getPSDemosaicMethodString(RAWParams::BayerSensor::PSDemosaicMethod::LMMSE)) { lmmse_interpolate_omp(winw, winh, *(rawDataFrames[0]), red, green, blue, bayerParams.lmmse_iterations); } else if (bayerParams.pixelShiftDemosaicMethod == bayerParams.getPSDemosaicMethodString(RAWParams::BayerSensor::PSDemosaicMethod::AMAZEVNG4)) { - amaze_vng4_demosaic_RT (winw, winh, *(rawDataFrames[0]), red, green, blue, bayerParams.dualDemosaicContrast); + dual_demosaic_RT (true, rawParamsIn, winw, winh, *(rawDataFrames[0]), red, green, blue, bayerParams.dualDemosaicContrast); } else { amaze_demosaic_RT(winx, winy, winw, winh, *(rawDataFrames[0]), red, green, blue); } @@ -338,7 +338,7 @@ BENCHFUN if (bayerParams.pixelShiftDemosaicMethod == bayerParams.getPSDemosaicMethodString(RAWParams::BayerSensor::PSDemosaicMethod::LMMSE)) { lmmse_interpolate_omp(winw, winh, *(rawDataFrames[i + 1]), redTmp[i], greenTmp[i], blueTmp[i], bayerParams.lmmse_iterations); } else if (bayerParams.pixelShiftDemosaicMethod == bayerParams.getPSDemosaicMethodString(RAWParams::BayerSensor::PSDemosaicMethod::AMAZEVNG4)) { - amaze_vng4_demosaic_RT (winw, winh, *(rawDataFrames[i + 1]), redTmp[i], greenTmp[i], blueTmp[i], bayerParams.dualDemosaicContrast); + dual_demosaic_RT (true, rawParamsIn, winw, winh, *(rawDataFrames[i + 1]), redTmp[i], greenTmp[i], blueTmp[i], bayerParams.dualDemosaicContrast); } else { amaze_demosaic_RT(winx, winy, winw, winh, *(rawDataFrames[i + 1]), redTmp[i], greenTmp[i], blueTmp[i]); } @@ -365,7 +365,9 @@ BENCHFUN if (bayerParams.pixelShiftDemosaicMethod == bayerParams.getPSDemosaicMethodString(RAWParams::BayerSensor::PSDemosaicMethod::LMMSE)) { lmmse_interpolate_omp(winw, winh, rawData, red, green, blue, bayerParams.lmmse_iterations); } else if (bayerParams.pixelShiftDemosaicMethod == bayerParams.getPSDemosaicMethodString(RAWParams::BayerSensor::PSDemosaicMethod::AMAZEVNG4)) { - amaze_vng4_demosaic_RT (winw, winh, rawData, red, green, blue, bayerParams.dualDemosaicContrast); + RAWParams rawParamsTmp = rawParamsIn; + rawParamsTmp.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4); + dual_demosaic_RT (true, rawParamsTmp, winw, winh, rawData, red, green, blue, bayerParams.dualDemosaicContrast); } else { amaze_demosaic_RT(winx, winy, winw, winh, rawData, red, green, blue); } diff --git a/rtengine/previewimage.cc b/rtengine/previewimage.cc index 0b3610de2..f180469ad 100644 --- a/rtengine/previewimage.cc +++ b/rtengine/previewimage.cc @@ -107,13 +107,14 @@ PreviewImage::PreviewImage (const Glib::ustring &fname, const Glib::ustring &ext ColorTemp wb = rawImage.getWB (); rawImage.getFullSize (fw, fh, TR_NONE); PreviewProps pp (0, 0, fw, fh, 1); - params.icm.input = Glib::ustring("(embedded)"); + params.icm.inputProfile = Glib::ustring("(embedded)"); params.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); params.raw.deadPixelFilter = false; params.raw.ca_autocorrect = false; params.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); rawImage.preprocess(params.raw, params.lensProf, params.coarse); - rawImage.demosaic(params.raw); + double contrastThresholdDummy = 0.0; + rawImage.demosaic(params.raw, false, contrastThresholdDummy); Imagefloat image(fw, fh); rawImage.getImage (wb, TR_NONE, &image, pp, params.toneCurve, params.raw); rtengine::Image8 output(fw, fh); diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index eef798dd1..2d2305cd1 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -317,11 +317,11 @@ ToneCurveParams::ToneCurveParams() : method("Blend"), expcomp(0), curve{ - DCT_Linear -}, + DCT_Linear + }, curve2{ - DCT_Linear -}, + DCT_Linear + }, curveMode(ToneCurveParams::TcMode::STD), curveMode2(ToneCurveParams::TcMode::STD), brightness(0), @@ -330,8 +330,9 @@ ToneCurveParams::ToneCurveParams() : saturation(0), shcompr(50), hlcompr(0), - hlcomprthresh(33), + hlcomprthresh(0), histmatching(false), + fromHistMatching(false), clampOOG(true) { } @@ -356,6 +357,7 @@ bool ToneCurveParams::operator ==(const ToneCurveParams& other) const && hlcompr == other.hlcompr && hlcomprthresh == other.hlcomprthresh && histmatching == other.histmatching + && fromHistMatching == other.fromHistMatching && clampOOG == other.clampOOG; } @@ -610,6 +612,7 @@ bool LocalContrastParams::operator!=(const LocalContrastParams &other) const const double ColorToningParams::LABGRID_CORR_MAX = 12000.f; +const double ColorToningParams::LABGRID_CORR_SCALE = 3.f; ColorToningParams::ColorToningParams() : enabled(false), @@ -1791,19 +1794,19 @@ bool VignettingParams::operator !=(const VignettingParams& other) const ChannelMixerParams::ChannelMixerParams() : enabled(false), red{ - 100, + 1000, 0, 0 }, green{ 0, - 100, + 1000, 0 }, blue{ 0, 0, - 100 + 1000 } { } @@ -1923,7 +1926,8 @@ ResizeParams::ResizeParams() : method("Lanczos"), dataspec(3), width(900), - height(900) + height(900), + allowUpscaling(false) { } @@ -1936,7 +1940,8 @@ bool ResizeParams::operator ==(const ResizeParams& other) const && method == other.method && dataspec == other.dataspec && width == other.width - && height == other.height; + && height == other.height + && allowUpscaling == other.allowUpscaling; } bool ResizeParams::operator !=(const ResizeParams& other) const @@ -1947,40 +1952,38 @@ bool ResizeParams::operator !=(const ResizeParams& other) const const Glib::ustring ColorManagementParams::NoICMString = Glib::ustring("No ICM: sRGB output"); ColorManagementParams::ColorManagementParams() : - input("(cameraICC)"), + inputProfile("(cameraICC)"), toneCurve(false), applyLookTable(false), applyBaselineExposureOffset(true), applyHueSatMap(true), dcpIlluminant(0), - working("ProPhoto"), - output("RT_sRGB"), + workingProfile("ProPhoto"), + workingTRC("none"), + workingTRCGamma(2.4), + workingTRCSlope(12.92310), + outputProfile(options.rtSettings.srgb), outputIntent(RI_RELATIVE), - outputBPC(true), - gamma("default"), - gampos(2.22), - slpos(4.5), - freegamma(false) + outputBPC(true) { } bool ColorManagementParams::operator ==(const ColorManagementParams& other) const { return - input == other.input + inputProfile == other.inputProfile && toneCurve == other.toneCurve && applyLookTable == other.applyLookTable && applyBaselineExposureOffset == other.applyBaselineExposureOffset && applyHueSatMap == other.applyHueSatMap && dcpIlluminant == other.dcpIlluminant - && working == other.working - && output == other.output + && workingProfile == other.workingProfile + && workingTRC == other.workingTRC + && workingTRCGamma == other.workingTRCGamma + && workingTRCSlope == other.workingTRCSlope + && outputProfile == other.outputProfile && outputIntent == other.outputIntent - && outputBPC == other.outputBPC - && gamma == other.gamma - && gampos == other.gampos - && slpos == other.slpos - && freegamma == other.freegamma; + && outputBPC == other.outputBPC; } bool ColorManagementParams::operator !=(const ColorManagementParams& other) const @@ -2594,8 +2597,28 @@ bool FilmSimulationParams::operator !=(const FilmSimulationParams& other) const return !(*this == other); } + +SoftLightParams::SoftLightParams() : + enabled(false), + strength(30) +{ +} + +bool SoftLightParams::operator ==(const SoftLightParams& other) const +{ + return + enabled == other.enabled + && strength == other.strength; +} + +bool SoftLightParams::operator !=(const SoftLightParams& other) const +{ + return !(*this == other); +} + RAWParams::BayerSensor::BayerSensor() : method(getMethodString(Method::AMAZE)), + border(4), imageNum(0), ccSteps(0), black0(0.0), @@ -2632,6 +2655,7 @@ bool RAWParams::BayerSensor::operator ==(const BayerSensor& other) const { return method == other.method + && border == other.border && imageNum == other.imageNum && ccSteps == other.ccSteps && black0 == other.black0 @@ -2690,7 +2714,9 @@ const std::vector& RAWParams::BayerSensor::getMethodStrings() "amaze", "amazevng4", "rcd", + "rcdvng4", "dcb", + "dcbvng4", "lmmse", "igv", "ahd", @@ -2758,6 +2784,7 @@ const std::vector& RAWParams::XTransSensor::getMethodStrings() static const std::vector method_strings { "4-pass", "3-pass (best)", + "2-pass", "1-pass (medium)", "fast", "mono", @@ -2779,6 +2806,8 @@ RAWParams::RAWParams() : ff_AutoClipControl(false), ff_clipControl(0), ca_autocorrect(false), + ca_avoidcolourshift(true), + caautoiterations(2), cared(0.0), cablue(0.0), expos(1.0), @@ -2803,6 +2832,8 @@ bool RAWParams::operator ==(const RAWParams& other) const && ff_AutoClipControl == other.ff_AutoClipControl && ff_clipControl == other.ff_clipControl && ca_autocorrect == other.ca_autocorrect + && ca_avoidcolourshift == other.ca_avoidcolourshift + && caautoiterations == other.caautoiterations && cared == other.cared && cablue == other.cablue && expos == other.expos @@ -2939,6 +2970,8 @@ void ProcParams::setDefaults() filmSimulation = FilmSimulationParams(); + softlight = SoftLightParams(); + raw = RAWParams(); metadata = MetaDataParams(); @@ -2986,6 +3019,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->toneCurve.hlcomprthresh, "Exposure", "HighlightComprThreshold", toneCurve.hlcomprthresh, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.shcompr, "Exposure", "ShadowCompr", toneCurve.shcompr, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.histmatching, "Exposure", "HistogramMatching", toneCurve.histmatching, keyFile); + saveToKeyfile(!pedited || pedited->toneCurve.fromHistMatching, "Exposure", "FromHistogramMatching", toneCurve.fromHistMatching, keyFile); saveToKeyfile(!pedited || pedited->toneCurve.clampOOG, "Exposure", "ClampOOG", toneCurve.clampOOG, keyFile); // Highlight recovery @@ -3492,6 +3526,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->resize.dataspec, "Resize", "DataSpecified", resize.dataspec, keyFile); saveToKeyfile(!pedited || pedited->resize.width, "Resize", "Width", resize.width, keyFile); saveToKeyfile(!pedited || pedited->resize.height, "Resize", "Height", resize.height, keyFile); + saveToKeyfile(!pedited || pedited->resize.allowUpscaling, "Resize", "AllowUpscaling", resize.allowUpscaling, keyFile); // Post resize sharpening saveToKeyfile(!pedited || pedited->prsharpening.enabled, "PostResizeSharpening", "Enabled", prsharpening.enabled, keyFile); @@ -3511,14 +3546,17 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->prsharpening.deconviter, "PostResizeSharpening", "DeconvIterations", prsharpening.deconviter, keyFile); // Color management - saveToKeyfile(!pedited || pedited->icm.input, "Color Management", "InputProfile", relativePathIfInside(fname, fnameAbsolute, icm.input), keyFile); + saveToKeyfile(!pedited || pedited->icm.inputProfile, "Color Management", "InputProfile", relativePathIfInside(fname, fnameAbsolute, icm.inputProfile), keyFile); saveToKeyfile(!pedited || pedited->icm.toneCurve, "Color Management", "ToneCurve", icm.toneCurve, keyFile); saveToKeyfile(!pedited || pedited->icm.applyLookTable, "Color Management", "ApplyLookTable", icm.applyLookTable, keyFile); saveToKeyfile(!pedited || pedited->icm.applyBaselineExposureOffset, "Color Management", "ApplyBaselineExposureOffset", icm.applyBaselineExposureOffset, keyFile); saveToKeyfile(!pedited || pedited->icm.applyHueSatMap, "Color Management", "ApplyHueSatMap", icm.applyHueSatMap, keyFile); saveToKeyfile(!pedited || pedited->icm.dcpIlluminant, "Color Management", "DCPIlluminant", icm.dcpIlluminant, keyFile); - saveToKeyfile(!pedited || pedited->icm.working, "Color Management", "WorkingProfile", icm.working, keyFile); - saveToKeyfile(!pedited || pedited->icm.output, "Color Management", "OutputProfile", icm.output, keyFile); + saveToKeyfile(!pedited || pedited->icm.workingProfile, "Color Management", "WorkingProfile", icm.workingProfile, keyFile); + saveToKeyfile(!pedited || pedited->icm.workingTRC, "Color Management", "WorkingTRC", icm.workingTRC, keyFile); + saveToKeyfile(!pedited || pedited->icm.workingTRCGamma, "Color Management", "WorkingTRCGamma", icm.workingTRCGamma, keyFile); + saveToKeyfile(!pedited || pedited->icm.workingTRCSlope, "Color Management", "WorkingTRCSlope", icm.workingTRCSlope, keyFile); + saveToKeyfile(!pedited || pedited->icm.outputProfile, "Color Management", "OutputProfile", icm.outputProfile, keyFile); saveToKeyfile( !pedited || pedited->icm.outputIntent, "Color Management", @@ -3533,10 +3571,6 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo keyFile ); saveToKeyfile(!pedited || pedited->icm.outputBPC, "Color Management", "OutputBPC", icm.outputBPC, keyFile); - saveToKeyfile(!pedited || pedited->icm.gamma, "Color Management", "Gammafree", icm.gamma, keyFile); - saveToKeyfile(!pedited || pedited->icm.freegamma, "Color Management", "Freegamma", icm.freegamma, keyFile); - saveToKeyfile(!pedited || pedited->icm.gampos, "Color Management", "GammaValue", icm.gampos, keyFile); - saveToKeyfile(!pedited || pedited->icm.slpos, "Color Management", "GammaSlope", icm.slpos, keyFile); // Wavelet saveToKeyfile(!pedited || pedited->wavelet.enabled, "Wavelet", "Enabled", wavelet.enabled, keyFile); @@ -3658,6 +3692,10 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->hsvequalizer.scurve, "HSV Equalizer", "SCurve", hsvequalizer.scurve, keyFile); saveToKeyfile(!pedited || pedited->hsvequalizer.vcurve, "HSV Equalizer", "VCurve", hsvequalizer.vcurve, keyFile); +// Soft Light + saveToKeyfile(!pedited || pedited->softlight.enabled, "SoftLight", "Enabled", softlight.enabled, keyFile); + saveToKeyfile(!pedited || pedited->softlight.strength, "SoftLight", "Strength", softlight.strength, keyFile); + // Film simulation saveToKeyfile(!pedited || pedited->filmSimulation.enabled, "Film Simulation", "Enabled", filmSimulation.enabled, keyFile); saveToKeyfile(!pedited || pedited->filmSimulation.clutFilename, "Film Simulation", "ClutFilename", filmSimulation.clutFilename, keyFile); @@ -3711,12 +3749,15 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->raw.ff_AutoClipControl, "RAW", "FlatFieldAutoClipControl", raw.ff_AutoClipControl, keyFile); saveToKeyfile(!pedited || pedited->raw.ff_clipControl, "RAW", "FlatFieldClipControl", raw.ff_clipControl, keyFile); saveToKeyfile(!pedited || pedited->raw.ca_autocorrect, "RAW", "CA", raw.ca_autocorrect, keyFile); + saveToKeyfile(!pedited || pedited->raw.ca_avoidcolourshift, "RAW", "CAAvoidColourshift", raw.ca_avoidcolourshift, keyFile); + saveToKeyfile(!pedited || pedited->raw.caautoiterations, "RAW", "CAAutoIterations", raw.caautoiterations, keyFile); saveToKeyfile(!pedited || pedited->raw.cared, "RAW", "CARed", raw.cared, keyFile); saveToKeyfile(!pedited || pedited->raw.cablue, "RAW", "CABlue", raw.cablue, keyFile); saveToKeyfile(!pedited || pedited->raw.hotPixelFilter, "RAW", "HotPixelFilter", raw.hotPixelFilter, keyFile); saveToKeyfile(!pedited || pedited->raw.deadPixelFilter, "RAW", "DeadPixelFilter", raw.deadPixelFilter, keyFile); saveToKeyfile(!pedited || pedited->raw.hotdeadpix_thresh, "RAW", "HotDeadPixelThresh", raw.hotdeadpix_thresh, keyFile); saveToKeyfile(!pedited || pedited->raw.bayersensor.method, "RAW Bayer", "Method", raw.bayersensor.method, keyFile); + saveToKeyfile(!pedited || pedited->raw.bayersensor.border, "RAW Bayer", "Border", raw.bayersensor.border, keyFile); saveToKeyfile(!pedited || pedited->raw.bayersensor.imageNum, "RAW Bayer", "ImageNum", raw.bayersensor.imageNum + 1, keyFile); saveToKeyfile(!pedited || pedited->raw.bayersensor.ccSteps, "RAW Bayer", "CcSteps", raw.bayersensor.ccSteps, keyFile); saveToKeyfile(!pedited || pedited->raw.bayersensor.exBlack0, "RAW Bayer", "PreBlack0", raw.bayersensor.black0, keyFile); @@ -3874,6 +3915,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } assignFromKeyfile(keyFile, "Exposure", "HistogramMatching", pedited, toneCurve.histmatching, pedited->toneCurve.histmatching); + if (ppVersion < 340) { + toneCurve.fromHistMatching = false; + if (pedited) { + pedited->toneCurve.fromHistMatching = true; + } + } else { + assignFromKeyfile(keyFile, "Exposure", "FromHistogramMatching", pedited, toneCurve.fromHistMatching, pedited->toneCurve.fromHistMatching); + } assignFromKeyfile(keyFile, "Exposure", "ClampOOG", pedited, toneCurve.clampOOG, pedited->toneCurve.clampOOG); } @@ -3903,6 +3952,13 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) memcpy(chmixer.green, gmix.data(), 3 * sizeof(int)); memcpy(chmixer.blue, bmix.data(), 3 * sizeof(int)); } + if (ppVersion < 338) { + for (int i = 0; i < 3; ++i) { + chmixer.red[i] *= 10; + chmixer.green[i] *= 10; + chmixer.blue[i] *= 10; + } + } if (pedited) { pedited->chmixer.red[0] = pedited->chmixer.red[1] = pedited->chmixer.red[2] = true; @@ -4753,6 +4809,14 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Resize", "DataSpecified", pedited, resize.dataspec, pedited->resize.dataspec); assignFromKeyfile(keyFile, "Resize", "Width", pedited, resize.width, pedited->resize.width); assignFromKeyfile(keyFile, "Resize", "Height", pedited, resize.height, pedited->resize.height); + if (ppVersion >= 339) { + assignFromKeyfile(keyFile, "Resize", "AllowUpscaling", pedited, resize.allowUpscaling, pedited->resize.allowUpscaling); + } else { + resize.allowUpscaling = true; + if (pedited) { + pedited->resize.allowUpscaling = true; + } + } } if (keyFile.has_group("PostResizeSharpening")) { @@ -4792,10 +4856,10 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) if (keyFile.has_group("Color Management")) { if (keyFile.has_key("Color Management", "InputProfile")) { - icm.input = expandRelativePath(fname, "file:", keyFile.get_string("Color Management", "InputProfile")); + icm.inputProfile = expandRelativePath(fname, "file:", keyFile.get_string("Color Management", "InputProfile")); if (pedited) { - pedited->icm.input = true; + pedited->icm.inputProfile = true; } } @@ -4804,9 +4868,33 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Color Management", "ApplyBaselineExposureOffset", pedited, icm.applyBaselineExposureOffset, pedited->icm.applyBaselineExposureOffset); assignFromKeyfile(keyFile, "Color Management", "ApplyHueSatMap", pedited, icm.applyHueSatMap, pedited->icm.applyHueSatMap); assignFromKeyfile(keyFile, "Color Management", "DCPIlluminant", pedited, icm.dcpIlluminant, pedited->icm.dcpIlluminant); - assignFromKeyfile(keyFile, "Color Management", "WorkingProfile", pedited, icm.working, pedited->icm.working); - assignFromKeyfile(keyFile, "Color Management", "OutputProfile", pedited, icm.output, pedited->icm.output); + assignFromKeyfile(keyFile, "Color Management", "WorkingProfile", pedited, icm.workingProfile, pedited->icm.workingProfile); + assignFromKeyfile(keyFile, "Color Management", "WorkingTRC", pedited, icm.workingTRC, pedited->icm.workingTRC); + assignFromKeyfile(keyFile, "Color Management", "WorkingTRCGamma", pedited, icm.workingTRCGamma, pedited->icm.workingTRCGamma); + assignFromKeyfile(keyFile, "Color Management", "WorkingTRCSlope", pedited, icm.workingTRCSlope, pedited->icm.workingTRCSlope); + assignFromKeyfile(keyFile, "Color Management", "OutputProfile", pedited, icm.outputProfile, pedited->icm.outputProfile); + if (ppVersion < 341) { + if (icm.outputProfile == "RT_Medium_gsRGB") { + icm.outputProfile = "RTv4_Medium"; + } else if (icm.outputProfile == "RT_Large_gBT709" || icm.outputProfile == "RT_Large_g10" || icm.outputProfile == "RT_Large_gsRGB") { + icm.outputProfile = "RTv4_Large"; + } else if (icm.outputProfile == "WideGamutRGB") { + icm.outputProfile = "RTv4_Wide"; + } else if (icm.outputProfile == "RT_sRGB_gBT709" || icm.outputProfile == "RT_sRGB_g10" || icm.outputProfile == "RT_sRGB") { + icm.outputProfile = "RTv4_sRGB"; + } else if (icm.outputProfile == "BetaRGB") { // Have we ever provided this profile ? Should we convert this filename ? + icm.outputProfile = "RTv4_Beta"; + } else if (icm.outputProfile == "BestRGB") { // Have we ever provided this profile ? Should we convert this filename ? + icm.outputProfile = "RTv4_Best"; + } else if (icm.outputProfile == "Rec2020") { + icm.outputProfile = "RTv4_Rec2020"; + } else if (icm.outputProfile == "Bruce") { // Have we ever provided this profile ? Should we convert this filename ? + icm.outputProfile = "RTv4_Bruce"; + } else if (icm.outputProfile == "ACES") { + icm.outputProfile = "RTv4_ACES-AP0"; + } + } if (keyFile.has_key("Color Management", "OutputProfileIntent")) { Glib::ustring intent = keyFile.get_string("Color Management", "OutputProfileIntent"); @@ -4824,12 +4912,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) pedited->icm.outputIntent = true; } } - assignFromKeyfile(keyFile, "Color Management", "OutputBPC", pedited, icm.outputBPC, pedited->icm.outputBPC); - assignFromKeyfile(keyFile, "Color Management", "Gammafree", pedited, icm.gamma, pedited->icm.gamma); - assignFromKeyfile(keyFile, "Color Management", "Freegamma", pedited, icm.freegamma, pedited->icm.freegamma); - assignFromKeyfile(keyFile, "Color Management", "GammaValue", pedited, icm.gampos, pedited->icm.gampos); - assignFromKeyfile(keyFile, "Color Management", "GammaSlope", pedited, icm.slpos, pedited->icm.slpos); } if (keyFile.has_group("Wavelet")) { @@ -5136,6 +5219,11 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } } + if (keyFile.has_group("SoftLight")) { + assignFromKeyfile(keyFile, "SoftLight", "Enabled", pedited, softlight.enabled, pedited->softlight.enabled); + assignFromKeyfile(keyFile, "SoftLight", "Strength", pedited, softlight.strength, pedited->softlight.strength); + } + if (keyFile.has_group("Film Simulation")) { assignFromKeyfile(keyFile, "Film Simulation", "Enabled", pedited, filmSimulation.enabled, pedited->filmSimulation.enabled); assignFromKeyfile(keyFile, "Film Simulation", "ClutFilename", pedited, filmSimulation.clutFilename, pedited->filmSimulation.clutFilename); @@ -5243,6 +5331,13 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "ColorToning", "LabGridBLow", pedited, colorToning.labgridBLow, pedited->colorToning.labgridBLow); assignFromKeyfile(keyFile, "ColorToning", "LabGridAHigh", pedited, colorToning.labgridAHigh, pedited->colorToning.labgridAHigh); assignFromKeyfile(keyFile, "ColorToning", "LabGridBHigh", pedited, colorToning.labgridBHigh, pedited->colorToning.labgridBHigh); + if (ppVersion < 337) { + const double scale = ColorToningParams::LABGRID_CORR_SCALE; + colorToning.labgridALow *= scale; + colorToning.labgridAHigh *= scale; + colorToning.labgridBLow *= scale; + colorToning.labgridBHigh *= scale; + } } if (keyFile.has_group("RAW")) { @@ -5278,6 +5373,17 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } assignFromKeyfile(keyFile, "RAW", "CA", pedited, raw.ca_autocorrect, pedited->raw.ca_autocorrect); + if (ppVersion >= 342) { + assignFromKeyfile(keyFile, "RAW", "CAAutoIterations", pedited, raw.caautoiterations, pedited->raw.caautoiterations); + } else { + raw.caautoiterations = 1; + } + + if (ppVersion >= 343) { + assignFromKeyfile(keyFile, "RAW", "CAAvoidColourshift", pedited, raw.ca_avoidcolourshift, pedited->raw.ca_avoidcolourshift); + } else { + raw.ca_avoidcolourshift = false; + } assignFromKeyfile(keyFile, "RAW", "CARed", pedited, raw.cared, pedited->raw.cared); assignFromKeyfile(keyFile, "RAW", "CABlue", pedited, raw.cablue, pedited->raw.cablue); // For compatibility to elder pp3 versions @@ -5312,6 +5418,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) if (keyFile.has_group("RAW Bayer")) { assignFromKeyfile(keyFile, "RAW Bayer", "Method", pedited, raw.bayersensor.method, pedited->raw.bayersensor.method); + assignFromKeyfile(keyFile, "RAW Bayer", "Border", pedited, raw.bayersensor.border, pedited->raw.bayersensor.border); if (keyFile.has_key("RAW Bayer", "ImageNum")) { raw.bayersensor.imageNum = keyFile.get_integer("RAW Bayer", "ImageNum") - 1; @@ -5518,6 +5625,7 @@ bool ProcParams::operator ==(const ProcParams& other) const && dirpyrequalizer == other.dirpyrequalizer && hsvequalizer == other.hsvequalizer && filmSimulation == other.filmSimulation + && softlight == other.softlight && rgbCurves == other.rgbCurves && colorToning == other.colorToning && metadata == other.metadata @@ -5650,10 +5758,14 @@ void PartialProfile::set(bool v) } } -void PartialProfile::applyTo(ProcParams* destParams) const +void PartialProfile::applyTo(ProcParams* destParams, bool fromLastSave) const { if (destParams && pparams && pedited) { + bool fromHistMatching = fromLastSave && destParams->toneCurve.histmatching && pparams->toneCurve.histmatching; pedited->combine(*destParams, *pparams, true); + if (!fromLastSave) { + destParams->toneCurve.fromHistMatching = fromHistMatching; + } } } diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 861ec9ee7..987e37e56 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -286,6 +286,7 @@ struct ToneCurveParams { int hlcompr; // Highlight Recovery's compression int hlcomprthresh; // Highlight Recovery's threshold bool histmatching; // histogram matching + bool fromHistMatching; bool clampOOG; // clamp out of gamut colours ToneCurveParams(); @@ -456,6 +457,7 @@ struct ColorToningParams { double labgridAHigh; double labgridBHigh; static const double LABGRID_CORR_MAX; + static const double LABGRID_CORR_SCALE; ColorToningParams(); @@ -1127,6 +1129,7 @@ struct ResizeParams { int dataspec; int width; int height; + bool allowUpscaling; ResizeParams(); @@ -1138,22 +1141,22 @@ struct ResizeParams { * Parameters of the color spaces used during the processing */ struct ColorManagementParams { - Glib::ustring input; - bool toneCurve; - bool applyLookTable; - bool applyBaselineExposureOffset; - bool applyHueSatMap; + Glib::ustring inputProfile; + bool toneCurve; + bool applyLookTable; + bool applyBaselineExposureOffset; + bool applyHueSatMap; int dcpIlluminant; - Glib::ustring working; - Glib::ustring output; + + Glib::ustring workingProfile; + Glib::ustring workingTRC; + double workingTRCGamma; + double workingTRCSlope; + + Glib::ustring outputProfile; RenderingIntent outputIntent; bool outputBPC; - Glib::ustring gamma; - double gampos; - double slpos; - bool freegamma; - static const Glib::ustring NoICMString; ColorManagementParams(); @@ -1342,6 +1345,17 @@ struct FilmSimulationParams { }; +struct SoftLightParams { + bool enabled; + int strength; + + SoftLightParams(); + + bool operator==(const SoftLightParams &other) const; + bool operator!=(const SoftLightParams &other) const; +}; + + /** * Parameters for RAW demosaicing, common to all sensor type */ @@ -1354,7 +1368,9 @@ struct RAWParams { AMAZE, AMAZEVNG4, RCD, + RCDVNG4, DCB, + DCBVNG4, LMMSE, IGV, AHD, @@ -1380,6 +1396,7 @@ struct RAWParams { }; Glib::ustring method; + int border; int imageNum; int ccSteps; double black0; @@ -1437,6 +1454,7 @@ struct RAWParams { enum class Method { FOUR_PASS, THREE_PASS, + TWO_PASS, ONE_PASS, FAST, MONO, @@ -1480,6 +1498,8 @@ struct RAWParams { int ff_clipControl; bool ca_autocorrect; + bool ca_avoidcolourshift; + int caautoiterations; double cared; double cablue; @@ -1547,6 +1567,7 @@ public: DirPyrEqualizerParams dirpyrequalizer; ///< directional pyramid wavelet parameters HSVEqualizerParams hsvequalizer; ///< hsv wavelet parameters FilmSimulationParams filmSimulation; ///< film simulation parameters + SoftLightParams softlight; ///< softlight parameters int rank; ///< Custom image quality ranking int colorlabel; ///< Custom color label bool inTrash; ///< Marks deleted image @@ -1627,7 +1648,7 @@ public: void clearGeneral(); int load(const Glib::ustring& fName); void set(bool v); - void applyTo(ProcParams* destParams) const ; + void applyTo(ProcParams* destParams, bool fromLastSaved = false) const ; rtengine::procparams::ProcParams* pparams; ParamsEdited* pedited; diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 63745d71c..7d654359f 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -170,10 +170,22 @@ public: { return top_margin; } + + int get_rawwidth() const + { + return raw_width; + } + int get_FujiWidth() const { return fuji_width; } + + float const * get_FloatRawImage() const + { + return float_raw_image; + } + eSensorType getSensorType(); void getRgbCam(float rgbcam[3][4]); @@ -315,6 +327,11 @@ public: return filters == 9; } + bool isFloat() const + { + return float_raw_image; + } + public: // dcraw functions void pre_interpolate() diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 01882fe9c..7f5826a85 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -448,17 +448,6 @@ RawImageSource::RawImageSource() , camInitialGain(0.0) , defGain(0.0) , ri(nullptr) - , lc00(0.0) - , lc01(0.0) - , lc02(0.0) - , lc10(0.0) - , lc11(0.0) - , lc12(0.0) - , lc20(0.0) - , lc21(0.0) - , lc22(0.0) - , cache(nullptr) - , threshold(0) , rawData(0, 0) , green(0, 0) , red(0, 0) @@ -492,10 +481,6 @@ RawImageSource::~RawImageSource() flushRGB(); flushRawData(); - if (cache) { - delete [] cache; - } - if (camProfile) { cmsCloseProfile(camProfile); } @@ -591,8 +576,8 @@ void RawImageSource::transformRect(const PreviewProps &pp, int tran, int &ssx1, } else { ssx1 = sx1; ssy1 = sy1; - width = (sx2 - sx1) / pp.getSkip() + ((sx2 - sx1) % pp.getSkip() > 0); - height = (sy2 - sy1) / pp.getSkip() + ((sy2 - sy1) % pp.getSkip() > 0); + width = (sx2 + 1 - sx1) / pp.getSkip() + ((sx2 + 1 - sx1) % pp.getSkip() > 0); + height = (sy2 + 1 - sy1) / pp.getSkip() + ((sy2 + 1 - sy1) % pp.getSkip() > 0); } } @@ -747,14 +732,11 @@ void RawImageSource::getImage(const ColorTemp &ctemp, int tran, Imagefloat* imag for (int ix = 0; ix < imheight; ix++) { int i = sy1 + skip * ix; - - if (i >= maxy - skip) { - i = maxy - skip - 1; // avoid trouble - } + i = std::min(i, maxy - skip); // avoid trouble if (ri->getSensorType() == ST_BAYER || ri->getSensorType() == ST_FUJI_XTRANS || ri->get_colors() == 1) { for (int j = 0, jx = sx1; j < imwidth; j++, jx += skip) { - jx = std::min(jx, maxx - skip - 1); // avoid trouble + jx = std::min(jx, maxx - skip); // avoid trouble float rtot = 0.f, gtot = 0.f, btot = 0.f; @@ -915,17 +897,17 @@ DCPProfile *RawImageSource::getDCP(const ColorManagementParams &cmp, DCPProfile: { DCPProfile *dcpProf = nullptr; cmsHPROFILE dummy; - findInputProfile(cmp.input, nullptr, (static_cast(getMetaData()))->getCamera(), &dcpProf, dummy); + findInputProfile(cmp.inputProfile, nullptr, (static_cast(getMetaData()))->getCamera(), &dcpProf, dummy); if (dcpProf == nullptr) { if (settings->verbose) { - printf("Can't load DCP profile '%s'!\n", cmp.input.c_str()); + printf("Can't load DCP profile '%s'!\n", cmp.inputProfile.c_str()); } return nullptr; } - dcpProf->setStep2ApplyState(cmp.working, cmp.toneCurve, cmp.applyLookTable, cmp.applyBaselineExposureOffset, as); + dcpProf->setStep2ApplyState(cmp.workingProfile, cmp.toneCurve, cmp.applyLookTable, cmp.applyBaselineExposureOffset, as); return dcpProf; } @@ -2039,13 +2021,13 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens if (numFrames == 4) { double fitParams[64]; - float *buffer = CA_correct_RT(raw.ca_autocorrect, raw.cared, raw.cablue, 8.0, *rawDataFrames[0], fitParams, false, true, nullptr, false); + float *buffer = CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[0], fitParams, false, true, nullptr, false); for(int i = 1; i < 3; ++i) { - CA_correct_RT(raw.ca_autocorrect, raw.cared, raw.cablue, 8.0, *rawDataFrames[i], fitParams, true, false, buffer, false); + CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[i], fitParams, true, false, buffer, false); } - CA_correct_RT(raw.ca_autocorrect, raw.cared, raw.cablue, 8.0, *rawDataFrames[3], fitParams, true, false, buffer, true); + CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[3], fitParams, true, false, buffer, true); } else { - CA_correct_RT(raw.ca_autocorrect, raw.cared, raw.cablue, 8.0, rawData, nullptr, false, false, nullptr, true); + CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, rawData, nullptr, false, false, nullptr, true); } } @@ -2083,7 +2065,7 @@ void RawImageSource::preprocess(const RAWParams &raw, const LensProfParams &lens } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::demosaic(const RAWParams &raw) +void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &contrastThreshold) { MyTime t1, t2; t1.set(); @@ -2097,10 +2079,17 @@ void RawImageSource::demosaic(const RAWParams &raw) ahd_demosaic(); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZE)) { amaze_demosaic_RT(0, 0, W, H, rawData, red, green, blue); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4) ) { - amaze_vng4_demosaic_RT (W, H, rawData, red, green, blue, raw.bayersensor.dualDemosaicContrast); + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4) + || raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCBVNG4) + || raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::RCDVNG4)) { + if (!autoContrast) { + double threshold = raw.bayersensor.dualDemosaicContrast; + dual_demosaic_RT (true, raw, W, H, rawData, red, green, blue, threshold, false); + } else { + dual_demosaic_RT (true, raw, W, H, rawData, red, green, blue, contrastThreshold, true, 0, 0); + } } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { - pixelshift(0, 0, W, H, raw.bayersensor, currFrame, ri->get_maker(), ri->get_model(), raw.expos); + pixelshift(0, 0, W, H, raw, currFrame, ri->get_maker(), ri->get_model(), raw.expos); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCB)) { dcb_demosaic(raw.bayersensor.dcb_iterations, raw.bayersensor.dcb_enhance); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::EAHD)) { @@ -2118,9 +2107,6 @@ void RawImageSource::demosaic(const RAWParams &raw) } else { nodemosaic(false); } - - //if (raw.all_enhance) refinement_lassus(); - } else if (ri->getSensorType() == ST_FUJI_XTRANS) { if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST)) { fast_xtrans_interpolate(rawData, red, green, blue); @@ -2128,8 +2114,13 @@ void RawImageSource::demosaic(const RAWParams &raw) xtrans_interpolate(1, false); } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::THREE_PASS)) { xtrans_interpolate(3, true); - } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS)) { - xtrans_4pass_demosaic_RT(3, true, raw.xtranssensor.dualDemosaicContrast); + } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) || raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::TWO_PASS)) { + if (!autoContrast) { + double threshold = raw.xtranssensor.dualDemosaicContrast; + dual_demosaic_RT (false, raw, W, H, rawData, red, green, blue, threshold, false); + } else { + dual_demosaic_RT (false, raw, W, H, rawData, red, green, blue, contrastThreshold, true, 0, 0); + } } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) { nodemosaic(true); } else { @@ -2188,7 +2179,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con int mode = 0; Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope - // printf("g_a0=%f g_a1=%f g_a2=%f g_a3=%f g_a4=%f\n", g_a0,g_a1,g_a2,g_a3,g_a4); + // printf("g_a0=%f g_a1=%f g_a2=%f g_a3=%f g_a4=%f\n", g_a0,g_a1,g_a2,g_a3,g_a4); double start; double add; @@ -2350,7 +2341,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con } } else { - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(cmp.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (cmp.workingProfile); const float wp[3][3] = { {static_cast(wprof[0][0]), static_cast(wprof[0][1]), static_cast(wprof[0][2])}, {static_cast(wprof[1][0]), static_cast(wprof[1][1]), static_cast(wprof[1][2])}, @@ -2626,7 +2617,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara } } else { - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(cmp.working); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (cmp.workingProfile); double wip[3][3] = { {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, @@ -2821,11 +2812,6 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara void RawImageSource::flushRawData() { - if (cache) { - delete [] cache; - cache = nullptr; - } - if (rawData) { rawData(0, 0); } @@ -3982,7 +3968,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement cmsHPROFILE in; DCPProfile *dcpProf; - if (!findInputProfile(cmp.input, embedded, camName, &dcpProf, in)) { + if (!findInputProfile(cmp.inputProfile, embedded, camName, &dcpProf, in)) { return; } @@ -3999,7 +3985,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement {camMatrix[2][0], camMatrix[2][1], camMatrix[2][2]} } }; - dcpProf->apply(im, cmp.dcpIlluminant, cmp.working, wb, pre_mul_row, cam_matrix, cmp.applyHueSatMap); + dcpProf->apply(im, cmp.dcpIlluminant, cmp.workingProfile, wb, pre_mul_row, cam_matrix, cmp.applyHueSatMap); return; } @@ -4008,7 +3994,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement // in this case we avoid using the slllllooooooowwww lcms // Calculate matrix for direct conversion raw>working space - TMatrix work = ICCStore::getInstance()->workingSpaceInverseMatrix(cmp.working); + TMatrix work = ICCStore::getInstance()->workingSpaceInverseMatrix (cmp.workingProfile); double mat[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}; for (int i = 0; i < 3; i++) @@ -4034,7 +4020,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement } } else { - bool working_space_is_prophoto = (cmp.working == "ProPhoto"); + bool working_space_is_prophoto = (cmp.workingProfile == "ProPhoto"); // use supplied input profile @@ -4106,7 +4092,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement // check if the working space is fully contained in prophoto if (!working_space_is_prophoto && camera_icc_type == CAMERA_ICC_TYPE_GENERIC) { - TMatrix toxyz = ICCStore::getInstance()->workingSpaceMatrix(cmp.working); + TMatrix toxyz = ICCStore::getInstance()->workingSpaceMatrix(cmp.workingProfile); TMatrix torgb = ICCStore::getInstance()->workingSpaceInverseMatrix("ProPhoto"); float rgb[3] = {0.f, 0.f, 0.f}; for (int i = 0; i < 2 && !working_space_is_prophoto; ++i) { @@ -4119,9 +4105,9 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement for (int j = 0; j < 2; ++j) { if (rgb[j] < 0.f || rgb[j] > 1.f) { working_space_is_prophoto = true; - prophoto = ICCStore::getInstance()->workingSpace(cmp.working); + prophoto = ICCStore::getInstance()->workingSpace(cmp.workingProfile); if (settings->verbose) { - std::cout << "colorSpaceConversion_: converting directly to " << cmp.working << " instead of passing through ProPhoto" << std::endl; + std::cout << "colorSpaceConversion_: converting directly to " << cmp.workingProfile << " instead of passing through ProPhoto" << std::endl; } break; } @@ -4174,7 +4160,7 @@ void RawImageSource::colorSpaceConversion_(Imagefloat* im, const ColorManagement if (!working_space_is_prophoto) { toxyz = ICCStore::getInstance()->workingSpaceMatrix("ProPhoto"); - torgb = ICCStore::getInstance()->workingSpaceInverseMatrix(cmp.working); //sRGB .. Adobe...Wide... + torgb = ICCStore::getInstance()->workingSpaceInverseMatrix (cmp.workingProfile); //sRGB .. Adobe...Wide... } #ifdef _OPENMP @@ -4608,7 +4594,7 @@ void RawImageSource::HLRecovery_CIELab(float* rin, float* gin, float* bin, float float bo = min(b, maxval); float yy = xyz_cam[1][0] * r + xyz_cam[1][1] * g + xyz_cam[1][2] * b; float fy = (yy < 65535.0 ? Color::cachef[yy] / 327.68 : std::cbrt(yy / MAXVALD)); - // compute LCH decompostion of the clipped pixel (only color information, thus C and H will be used) + // compute LCH decomposition of the clipped pixel (only color information, thus C and H will be used) float x = xyz_cam[0][0] * ro + xyz_cam[0][1] * go + xyz_cam[0][2] * bo; float y = xyz_cam[1][0] * ro + xyz_cam[1][1] * go + xyz_cam[1][2] * bo; float z = xyz_cam[2][0] * ro + xyz_cam[2][1] * go + xyz_cam[2][2] * bo; @@ -4744,10 +4730,10 @@ void RawImageSource::getRAWHistogram(LUTu & histRedRaw, LUTu & histGreenRaw, LUT histRedRaw.clear(); histGreenRaw.clear(); histBlueRaw.clear(); - const float mult[4] = { 65535.0f / ri->get_white(0), - 65535.0f / ri->get_white(1), - 65535.0f / ri->get_white(2), - 65535.0f / ri->get_white(3) + const float mult[4] = { 255.0f / Color::gamma(ri->get_white(0) - cblacksom[0]), + 255.0f / Color::gamma(ri->get_white(1) - cblacksom[1]), + 255.0f / Color::gamma(ri->get_white(2) - cblacksom[2]), + 255.0f / Color::gamma(ri->get_white(3) - cblacksom[3]) }; const bool fourColours = ri->getSensorType() == ST_BAYER && ((mult[1] != mult[3] || cblacksom[1] != cblacksom[3]) || FC(0, 0) == 3 || FC(0, 1) == 3 || FC(1, 0) == 3 || FC(1, 1) == 3); @@ -4853,23 +4839,22 @@ void RawImageSource::getRAWHistogram(LUTu & histRedRaw, LUTu & histGreenRaw, LUT } // end of critical region } // end of parallel region - constexpr float gammaLimit = 32767.f * 65536.f; // Color::gamma overflows when the LUT is accessed with too large values - for (int i = 0; i < 65536; i++) { + for(int i = 0; i < 65536; i++) { int idx; - idx = CLIP((int)Color::gamma(std::min(mult[0] * (i - (cblacksom[0]/*+black_lev[0]*/)), gammaLimit))); - histRedRaw[idx >> 8] += hist[0][i]; + idx = (int)std::min(255.0f, mult[0] * Color::gamma(std::max(0.0f, i - cblacksom[0]))); + histRedRaw[idx] += hist[0][i]; if (ri->get_colors() > 1) { - idx = CLIP((int)Color::gamma(std::min(mult[1] * (i - (cblacksom[1]/*+black_lev[1]*/)), gammaLimit))); - histGreenRaw[idx >> 8] += hist[1][i]; + idx = (int)std::min(255.0f, mult[1] * Color::gamma(std::max(0.0f, i - cblacksom[1]))); + histGreenRaw[idx] += hist[1][i]; if (fourColours) { - idx = CLIP((int)Color::gamma(std::min(mult[3] * (i - (cblacksom[3]/*+black_lev[3]*/)), gammaLimit))); - histGreenRaw[idx >> 8] += hist[3][i]; + idx = (int)std::min(255.0f, mult[3] * Color::gamma(std::max(0.0f, i - cblacksom[3]))); + histGreenRaw[idx] += hist[3][i]; } - idx = CLIP((int)Color::gamma(std::min(mult[2] * (i - (cblacksom[2]/*+black_lev[2]*/)), gammaLimit))); - histBlueRaw[idx >> 8] += hist[2][i]; + idx = (int)std::min(255.0f, mult[2] * Color::gamma(std::max(0.0f, i - cblacksom[2]))); + histBlueRaw[idx] += hist[2][i]; } } @@ -5486,7 +5471,9 @@ void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int ynew = H - 1 - ynew; } - int c = ri->getSensorType() == ST_FUJI_XTRANS ? ri->XTRANSFC(ynew, xnew) : ri->FC(ynew, xnew); + xnew = LIM(xnew, 0, W - 1); + ynew = LIM(ynew, 0, H - 1); + int c = ri->getSensorType() == ST_FUJI_XTRANS ? ri->XTRANSFC(ynew,xnew) : ri->FC(ynew,xnew); int val = round(rawData[ynew][xnew] / scale_mul[c]); if (c == 0) { diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 4d9e41675..2c4ec13fe 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -75,11 +75,6 @@ protected: unsigned int currFrame = 0; unsigned int numFrames = 0; - // to accelerate CIELAB conversion: - double lc00, lc01, lc02, lc10, lc11, lc12, lc20, lc21, lc22; - double* cache; - int threshold; - array2D rawData; // holds preprocessed pixel values, rowData[i][j] corresponds to the ith row and jth column array2D *rawDataFrames[4] = {nullptr}; array2D *rawDataBuffer[3] = {nullptr}; @@ -121,7 +116,7 @@ public: int load(const Glib::ustring &fname) { 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); + 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 &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 &conversionBuffer, LUTu &lhist16RETI); @@ -130,7 +125,7 @@ public: void HLRecovery_Global(ToneCurveParams hrp); void refinement_lassus(int PassCount); void refinement(int PassCount); - + void setBorder(unsigned int rawBorder) {border = rawBorder;} bool isRGBSourceModified() const { return rgbSourceModified; // tracks whether cached rgb output of demosaic has been modified @@ -244,12 +239,23 @@ protected: inline void convert_row_to_RGB(float* r, float* g, float* b, const float* const Y, const float* const I, const float* const Q, const int W); inline void convert_to_RGB(float &r, float &g, float &b, const float Y, const float I, const float Q); - inline void convert_to_cielab_row(float* ar, float* ag, float* ab, float* oL, float* oa, float* ob); - inline void interpolate_row_g(float* agh, float* agv, int i); - inline void interpolate_row_rb(float* ar, float* ab, float* pg, float* cg, float* ng, int i); + inline void interpolate_row_g (float* agh, float* agv, int i); + inline void interpolate_row_rb (float* ar, float* ab, float* pg, float* cg, float* ng, int i); inline void interpolate_row_rb_mul_pp (const array2D &rawData, float* ar, float* ab, float* pg, float* cg, float* ng, int i, float r_mul, float g_mul, float b_mul, int x1, int width, int skip); - float* CA_correct_RT (const bool autoCA, const double cared, const double cablue, const double caautostrength, array2D &rawData, double *fitParamsTransfer, bool fitParamsIn, bool fitParamsOut, float * buffer, bool freeBuffer); + float* CA_correct_RT( + bool autoCA, + size_t autoIterations, + double cared, + double cablue, + bool avoidColourshift, + const array2D &rawData, + double* fitParamsTransfer, + bool fitParamsIn, + bool fitParamsOut, + float* buffer, + bool freeBuffer + ); void ddct8x8s(int isgn, float a[8][8]); void processRawWhitepoint(float expos, float preser, array2D &rawData); // exposure before interpolation @@ -272,13 +278,13 @@ protected: void igv_interpolate(int winw, int winh); void lmmse_interpolate_omp(int winw, int winh, array2D &rawData, array2D &red, array2D &green, array2D &blue, int iterations); void amaze_demosaic_RT(int winx, int winy, int winw, int winh, const array2D &rawData, array2D &red, array2D &green, array2D &blue);//Emil's code for AMaZE - void amaze_vng4_demosaic_RT(int winw, int winh, const array2D &rawData, array2D &red, array2D &green, array2D &blue, double contrast = 0.0); + void dual_demosaic_RT(bool isBayer, const RAWParams &raw, int winw, int winh, const array2D &rawData, array2D &red, array2D &green, array2D &blue, double &contrast, bool autoContrast = false, int autoX = -1, int autoY = -1); void fast_demosaic();//Emil's code for fast demosaicing void dcb_demosaic(int iterations, bool dcb_enhance); void ahd_demosaic(); void rcd_demosaic(); void border_interpolate(unsigned int border, float (*image)[4], unsigned int start = 0, unsigned int end = 0); - void border_interpolate2(int winw, int winh, int lborders); + void border_interpolate2(int winw, int winh, int lborders, const array2D &rawData, array2D &red, array2D &green, array2D &blue); void dcb_initTileLimits(int &colMin, int &rowMin, int &colMax, int &rowMax, int x0, int y0, int border); void fill_raw(float (*cache)[3], int x0, int y0, float** rawData); void fill_border(float (*cache)[3], int border, int x0, int y0); @@ -294,11 +300,10 @@ protected: void dcb_refinement(float (*image)[3], uint8_t *map, int x0, int y0); void dcb_color_full(float (*image)[3], int x0, int y0, float (*chroma)[2]); void cielab(const float (*rgb)[3], float* l, float* a, float *b, const int width, const int height, const int labWidth, const float xyz_cam[3][3]); - void xtransborder_interpolate(int border); - void xtrans_4pass_demosaic_RT (const int passes, const bool useCieLab, double contrast); + void xtransborder_interpolate (int border, array2D &red, array2D &green, array2D &blue); void xtrans_interpolate(const int passes, const bool useCieLab); void fast_xtrans_interpolate (const array2D &rawData, array2D &red, array2D &green, array2D &blue); - void pixelshift(int winx, int winy, int winw, int winh, const RAWParams::BayerSensor &bayerParams, unsigned int frame, const std::string &make, const std::string &model, float rawWpCorrection); + 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); diff --git a/rtengine/rawimagesource_i.h b/rtengine/rawimagesource_i.h index 91d62ecab..b24115e0a 100644 --- a/rtengine/rawimagesource_i.h +++ b/rtengine/rawimagesource_i.h @@ -58,224 +58,6 @@ inline void RawImageSource::convert_to_RGB (float &r, float &g, float &b, const b = Y - 1.105f * I + 1.702f * Q; } -inline void RawImageSource::convert_to_cielab_row (float* ar, float* ag, float* ab, float* oL, float* oa, float* ob) -{ - - for (int j = 0; j < W; j++) { - double r = ar[j]; - double g = ag[j]; - double b = ab[j]; - - double x = lc00 * r + lc01 * g + lc02 * b; - double y = lc10 * r + lc11 * g + lc12 * b; - double z = lc20 * r + lc21 * g + lc22 * b; - - if (y > threshold) { - oL[j] = cache[(int)y]; - } else { - oL[j] = float(903.3 * y / MAXVALD); - } - - oa[j] = float(500.0 * ((x > threshold ? cache[(int)x] : 7.787 * x / MAXVALD + 16.0 / 116.0) - (y > threshold ? cache[(int)y] : 7.787 * y / MAXVALD + 16.0 / 116.0))); - ob[j] = float(200.0 * ((y > threshold ? cache[(int)y] : 7.787 * y / MAXVALD + 16.0 / 116.0) - (z > threshold ? cache[(int)z] : 7.787 * z / MAXVALD + 16.0 / 116.0))); - } -} - -inline void RawImageSource::interpolate_row_g (float* agh, float* agv, int i) -{ - - for (int j = 0; j < W; j++) { - if (ri->ISGREEN(i, j)) { - agh[j] = rawData[i][j]; - agv[j] = rawData[i][j]; - } else { - int gh = 0; - int gv = 0; - - if (j > 1 && j < W - 2) { - gh = (-rawData[i][j - 2] + 2 * rawData[i][j - 1] + 2 * rawData[i][j] + 2 * rawData[i][j + 1] - rawData[i][j + 2]) / 4; - int maxgh = max(rawData[i][j - 1], rawData[i][j + 1]); - int mingh = min(rawData[i][j - 1], rawData[i][j + 1]); - - if (gh > maxgh) { - gh = maxgh; - } else if (gh < mingh) { - gh = mingh; - } - } else if (j == 0) { - gh = rawData[i][1]; - } else if (j == 1) { - gh = (rawData[i][0] + rawData[i][2]) / 2; - } else if (j == W - 1) { - gh = rawData[i][W - 2]; - } else if (j == W - 2) { - gh = (rawData[i][W - 1] + rawData[i][W - 3]) / 2; - } - - if (i > 1 && i < H - 2) { - gv = (-rawData[i - 2][j] + 2 * rawData[i - 1][j] + 2 * rawData[i][j] + 2 * rawData[i + 1][j] - rawData[i + 2][j]) / 4; - int maxgv = max(rawData[i - 1][j], rawData[i + 1][j]); - int mingv = min(rawData[i - 1][j], rawData[i + 1][j]); - - if (gv > maxgv) { - gv = maxgv; - } else if (gv < mingv) { - gv = mingv; - } - } else if (i == 0) { - gv = rawData[1][j]; - } else if (i == 1) { - gv = (rawData[0][j] + rawData[2][j]) / 2; - } else if (i == H - 1) { - gv = rawData[H - 2][j]; - } else if (i == H - 2) { - gv = (rawData[H - 1][j] + rawData[H - 3][j]) / 2; - } - - agh[j] = gh; - agv[j] = gv; - } - } -} - -inline void RawImageSource::interpolate_row_rb (float* ar, float* ab, float* pg, float* cg, float* ng, int i) -{ - const auto getPg = [pg](int index) { - return - pg - ? pg[index] - : 0.f; - }; - - const auto getNg = [ng](int index) { - return - ng - ? ng[index] - : 0.f; - }; - - if ((ri->ISRED(i, 0) || ri->ISRED(i, 1))) { - // RGRGR or GRGRGR line - for (int j = 0; j < W; j++) { - if (ri->ISRED(i, j)) { - // red is simple - ar[j] = rawData[i][j]; - // blue: cross interpolation - int b = 0; - int n = 0; - - if (i > 0 && j > 0) { - b += rawData[i - 1][j - 1] - getPg(j - 1); - n++; - } - - if (i > 0 && j < W - 1) { - b += rawData[i - 1][j + 1] - getPg(j + 1); - n++; - } - - if (i < H - 1 && j > 0) { - b += rawData[i + 1][j - 1] - getNg(j - 1); - n++; - } - - if (i < H - 1 && j < W - 1) { - b += rawData[i + 1][j + 1] - getNg(j + 1); - n++; - } - - b = cg[j] + b / std::max(1, n); - ab[j] = b; - } else { - // linear R-G interp. horizontally - int r; - - if (j == 0) { - r = cg[0] + rawData[i][1] - cg[1]; - } else if (j == W - 1) { - r = cg[W - 1] + rawData[i][W - 2] - cg[W - 2]; - } else { - r = cg[j] + (rawData[i][j - 1] - cg[j - 1] + rawData[i][j + 1] - cg[j + 1]) / 2; - } - - ar[j] = CLIP(r); - // linear B-G interp. vertically - int b; - - if (i == 0) { - b = getNg(j) + rawData[1][j] - cg[j]; - } else if (i == H - 1) { - b = getPg(j) + rawData[H - 2][j] - cg[j]; - } else { - b = cg[j] + (rawData[i - 1][j] - getPg(j) + rawData[i + 1][j] - getNg(j)) / 2; - } - - ab[j] = b; - } - } - } else { - // BGBGB or GBGBGB line - for (int j = 0; j < W; j++) { - if (ri->ISBLUE(i, j)) { - // red is simple - ab[j] = rawData[i][j]; - // blue: cross interpolation - int r = 0; - int n = 0; - - if (i > 0 && j > 0) { - r += rawData[i - 1][j - 1] - getPg(j - 1); - n++; - } - - if (i > 0 && j < W - 1) { - r += rawData[i - 1][j + 1] - getPg(j + 1); - n++; - } - - if (i < H - 1 && j > 0) { - r += rawData[i + 1][j - 1] - getNg(j - 1); - n++; - } - - if (i < H - 1 && j < W - 1) { - r += rawData[i + 1][j + 1] - getNg(j + 1); - n++; - } - - r = cg[j] + r / std::max(n, 1); - - ar[j] = r; - } else { - // linear B-G interp. horizontally - int b; - - if (j == 0) { - b = cg[0] + rawData[i][1] - cg[1]; - } else if (j == W - 1) { - b = cg[W - 1] + rawData[i][W - 2] - cg[W - 2]; - } else { - b = cg[j] + (rawData[i][j - 1] - cg[j - 1] + rawData[i][j + 1] - cg[j + 1]) / 2; - } - - ab[j] = CLIP(b); - // linear R-G interp. vertically - int r; - - if (i == 0) { - r = getNg(j) + rawData[1][j] - cg[j]; - } else if (i == H - 1) { - r = getPg(j) + rawData[H - 2][j] - cg[j]; - } else { - r = cg[j] + (rawData[i - 1][j] - getPg(j) + rawData[i + 1][j] - getNg(j)) / 2; - } - - ar[j] = r; - } - } - } -} - inline void RawImageSource::interpolate_row_rb_mul_pp (const array2D &rawData, float* ar, float* ab, float* pg, float* cg, float* ng, int i, float r_mul, float g_mul, float b_mul, int x1, int width, int skip) { diff --git a/rtengine/rcd_demosaic.cc b/rtengine/rcd_demosaic.cc index f131bc87e..01430a894 100644 --- a/rtengine/rcd_demosaic.cc +++ b/rtengine/rcd_demosaic.cc @@ -291,7 +291,7 @@ void RawImageSource::rcd_demosaic() free(PQ_Dir); } - border_interpolate2(W, H, rcdBorder); + border_interpolate2(W, H, rcdBorder, rawData, red, green, blue); if (plistener) { plistener->setProgress(1); diff --git a/rtengine/refreshmap.h b/rtengine/refreshmap.h index 88092adfc..b9ccc2b65 100644 --- a/rtengine/refreshmap.h +++ b/rtengine/refreshmap.h @@ -66,7 +66,7 @@ #define DEFRINGE (M_LUMINANCE|M_COLOR) #define DIRPYRDENOISE (M_LUMINANCE|M_COLOR) #define DIRPYREQUALIZER (M_LUMINANCE|M_COLOR) -#define GAMMA M_MONITOR +#define GAMMA M_VOID //M_MONITOR #define CROP M_CROP #define RESIZE M_VOID #define EXIF M_VOID diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index cff145de8..c56a72a2c 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -1,6 +1,8 @@ /* * This file is part of RawTherapee. * + * Copyright (c) 2017-2018 Ingo Weyrich + * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or @@ -20,7 +22,7 @@ #include #include #include - +#include #ifdef _OPENMP #include #endif @@ -188,7 +190,9 @@ void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& maxOut += minVal; } -void buildBlendMask(float** luminance, rtengine::JaggedArray &blend, int W, int H, float contrastThreshold, float amount) { +void buildBlendMask(float** luminance, float **blend, int W, int H, float contrastThreshold, float amount) { + + constexpr float scale = 0.0625f / 327.68f; if(contrastThreshold == 0.f) { for(int j = 0; j < H; ++j) { @@ -197,64 +201,123 @@ void buildBlendMask(float** luminance, rtengine::JaggedArray &blend, int } } } else { - constexpr float scale = 0.0625f / 327.68f; #ifdef _OPENMP #pragma omp parallel #endif - { + { +#ifdef __SSE2__ + const vfloat contrastThresholdv = F2V(contrastThreshold); + const vfloat scalev = F2V(scale); + const vfloat amountv = F2V(amount); +#endif +#ifdef _OPENMP + #pragma omp for schedule(dynamic,16) +#endif + + for(int j = 2; j < H - 2; ++j) { + int i = 2; +#ifdef __SSE2__ + for(; i < W - 5; i += 4) { + vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) + + SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev; + + STVFU(blend[j][i], amountv * calcBlendFactor(contrastv, contrastThresholdv)); + } +#endif + for(; i < W - 2; ++i) { + + float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) + + rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale; + + blend[j][i] = amount * calcBlendFactor(contrast, contrastThreshold); + } + } + +#ifdef _OPENMP + #pragma omp single +#endif + { + // upper border + for(int j = 0; j < 2; ++j) { + for(int i = 2; i < W - 2; ++i) { + blend[j][i] = blend[2][i]; + } + } + // lower border + for(int j = H - 2; j < H; ++j) { + for(int i = 2; i < W - 2; ++i) { + blend[j][i] = blend[H-3][i]; + } + } + for(int j = 0; j < H; ++j) { + // left border + blend[j][0] = blend[j][1] = blend[j][2]; + // right border + blend[j][W - 2] = blend[j][W - 1] = blend[j][W - 3]; + } + } + + // blur blend mask to smooth transitions + gaussianBlur(blend, blend, W, H, 2.0); + } + } +} + +int calcContrastThreshold(float** luminance, float **blend, int W, int H) { + + constexpr float scale = 0.0625f / 327.68f; + +#ifdef __SSE2__ + const vfloat scalev = F2V(scale); +#endif + + for(int j = 2; j < H - 2; ++j) { + int i = 2; +#ifdef __SSE2__ + for(; i < W - 5; i += 4) { + vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) + + SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev; + STVFU(blend[j -2 ][i - 2], contrastv); + } +#endif + for(; i < W - 2; ++i) { + + float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) + + rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale; + + blend[j -2][i- 2] = contrast; + } + } + + const float limit = (W - 2) * (H - 2) / 100.f; + + int c; + for (c = 1; c < 100; ++c) { + const float contrastThreshold = c / 100.f; + float sum = 0.f; #ifdef __SSE2__ const vfloat contrastThresholdv = F2V(contrastThreshold); - const vfloat scalev = F2V(scale); - const vfloat amountv = F2V(amount); -#endif -#ifdef _OPENMP - #pragma omp for schedule(dynamic,16) + vfloat sumv = ZEROV; #endif - for(int j = 2; j < H - 2; ++j) { - int i = 2; + for(int j = 0; j < H - 4; ++j) { + int i = 0; #ifdef __SSE2__ - for(; i < W - 5; i += 4) { - vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) + - SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev; - - STVFU(blend[j][i], amountv * calcBlendFactor(contrastv, contrastThresholdv)); + for(; i < W - 7; i += 4) { + sumv += calcBlendFactor(LVFU(blend[j][i]), contrastThresholdv); } #endif - for(; i < W - 2; ++i) { - - float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) + - rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale; - - blend[j][i] = amount * calcBlendFactor(contrast, contrastThreshold); + for(; i < W - 4; ++i) { + sum += calcBlendFactor(blend[j][i], contrastThreshold); } } -#ifdef _OPENMP - #pragma omp single +#ifdef __SSE2__ + sum += vhadd(sumv); #endif - { - // upper border - for(int j = 0; j < 2; ++j) { - for(int i = 2; i < W - 2; ++i) { - blend[j][i] = blend[2][i]; - } - } - // lower border - for(int j = H - 2; j < H; ++j) { - for(int i = 2; i < W - 2; ++i) { - blend[j][i] = blend[H-3][i]; - } - } - for(int j = 0; j < H; ++j) { - // left border - blend[j][0] = blend[j][1] = blend[j][2]; - // right border - blend[j][W - 2] = blend[j][W - 1] = blend[j][W - 3]; - } + if (sum <= limit) { + break; } - // blur blend mask to smooth transitions - gaussianBlur(blend, blend, W, H, 2.0); - } } + return c; } } diff --git a/rtengine/rt_algo.h b/rtengine/rt_algo.h index 1aac26c3e..e20713b8f 100644 --- a/rtengine/rt_algo.h +++ b/rtengine/rt_algo.h @@ -1,7 +1,7 @@ /* * This file is part of RawTherapee. * - * Copyright (c) 2017 Ingo Weyrich + * Copyright (c) 2017-2018 Ingo Weyrich * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,10 +20,10 @@ #pragma once #include -#include "jaggedarray.h" namespace rtengine { void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& minOut, float maxPrct, float& maxOut, bool multiThread = true); -void buildBlendMask(float** luminance, rtengine::JaggedArray &blend, int W, int H, float contrastThreshold, float amount = 1.f); +void buildBlendMask(float** luminance, float **blend, int W, int H, float contrastThreshold, float amount = 1.f); +int calcContrastThreshold(float** luminance, float **blend, int W, int H); } diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 031191bd2..576f80e54 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -538,7 +538,7 @@ public: virtual bool fastPipeline() const = 0; }; -/** This function performs all the image processinf steps corresponding to the given ProcessingJob. It returns when it is ready, so it can be slow. +/** This function performs all the image processing steps corresponding to the given ProcessingJob. It returns when it is ready, so it can be slow. * The ProcessingJob passed becomes invalid, you can not use it any more. * @param job the ProcessingJob to cancel. * @param errorCode is the error code if an error occurred (e.g. the input image could not be loaded etc.) @@ -558,7 +558,7 @@ public: virtual ProcessingJob* imageReady (IImagefloat* img) = 0; virtual void error (Glib::ustring message) = 0; }; -/** This function performs all the image processinf steps corresponding to the given ProcessingJob. It runs in the background, thus it returns immediately, +/** This function performs all the image processing steps corresponding to the given ProcessingJob. It runs in the background, thus it returns immediately, * When it finishes, it calls the BatchProcessingListener with the resulting image and asks for the next job. It the listener gives a new job, it goes on * with processing. If no new job is given, it finishes. * The ProcessingJob passed becomes invalid, you can not use it any more. diff --git a/rtengine/rtlensfun.cc b/rtengine/rtlensfun.cc index 8216f0b83..792a86b61 100644 --- a/rtengine/rtlensfun.cc +++ b/rtengine/rtlensfun.cc @@ -33,6 +33,7 @@ extern const Settings *settings; LFModifier::~LFModifier() { if (data_) { + MyMutex::MyLock lock(*lfModifierMutex); data_->Destroy(); } } @@ -56,7 +57,7 @@ void LFModifier::correctDistortion(double &x, double &y, int cx, int cy, double if (swap_xy_) { std::swap(xx, yy); } - if (data_->ApplyGeometryDistortion(xx, yy, 1, 1, pos)) { + if (data_->ApplyGeometryDistortion(xx, yy, 1, 1, pos)) { // This is thread-safe x = pos[0]; y = pos[1]; if (swap_xy_) { @@ -95,7 +96,7 @@ void LFModifier::correctCA(double &x, double &y, int cx, int cy, int channel) co if (swap_xy_) { std::swap(x, y); } - data_->ApplySubpixelDistortion(x, y, 1, 1, pos); + data_->ApplySubpixelDistortion(x, y, 1, 1, pos); // This is thread-safe x = pos[2*channel]; y = pos[2*channel+1]; if (swap_xy_) { @@ -112,12 +113,14 @@ void LFModifier::correctCA(double &x, double &y, int cx, int cy, int channel) co void LFModifier::processVignetteLine(int width, int y, float *line) const { + MyMutex::MyLock lock(*lfModifierMutex); data_->ApplyColorModification(line, 0, y, width, 1, LF_CR_1(INTENSITY), 0); } void LFModifier::processVignetteLine3Channels(int width, int y, float *line) const { + MyMutex::MyLock lock(*lfModifierMutex); data_->ApplyColorModification(line, 0, y, width, 1, LF_CR_3(RED, GREEN, BLUE), 0); } @@ -157,6 +160,7 @@ LFModifier::LFModifier(lfModifier *m, bool swap_xy, int flags): swap_xy_(swap_xy), flags_(flags) { + lfModifierMutex = new MyMutex; } @@ -374,12 +378,14 @@ bool LFDatabase::LoadDirectory(const char *dirname) LFDatabase::LFDatabase(): data_(nullptr) { + lfDBMutex = new MyMutex; } LFDatabase::~LFDatabase() { if (data_) { + MyMutex::MyLock lock(*lfDBMutex); data_->Destroy(); } } @@ -395,6 +401,7 @@ std::vector LFDatabase::getCameras() const { std::vector ret; if (data_) { + MyMutex::MyLock lock(*lfDBMutex); auto cams = data_->GetCameras(); while (*cams) { ret.emplace_back(); @@ -410,6 +417,7 @@ std::vector LFDatabase::getLenses() const { std::vector ret; if (data_) { + MyMutex::MyLock lock(*lfDBMutex); auto lenses = data_->GetLenses(); while (*lenses) { ret.emplace_back(); @@ -425,6 +433,7 @@ LFCamera LFDatabase::findCamera(const Glib::ustring &make, const Glib::ustring & { LFCamera ret; if (data_) { + MyMutex::MyLock lock(*lfDBMutex); auto found = data_->FindCamerasExt(make.c_str(), model.c_str()); if (found) { ret.data_ = found[0]; @@ -439,6 +448,7 @@ LFLens LFDatabase::findLens(const LFCamera &camera, const Glib::ustring &name) c { LFLens ret; if (data_) { + MyMutex::MyLock lock(*lfDBMutex); auto found = data_->FindLenses(camera.data_, nullptr, name.c_str()); for (size_t pos = 0; !found && pos < name.size(); ) { // try to split the maker from the model of the lens -- we have to @@ -476,6 +486,7 @@ std::unique_ptr LFDatabase::getModifier(const LFCamera &camera, cons { std::unique_ptr ret; if (data_) { + MyMutex::MyLock lock(*lfDBMutex); if (camera && lens) { lfModifier *mod = lfModifier::Create(lens.data_, camera.getCropFactor(), width, height); int flags = LF_MODIFY_DISTORTION | LF_MODIFY_SCALE | LF_MODIFY_TCA; diff --git a/rtengine/rtlensfun.h b/rtengine/rtlensfun.h index 7690ef544..f75f25d4f 100644 --- a/rtengine/rtlensfun.h +++ b/rtengine/rtlensfun.h @@ -57,6 +57,7 @@ private: lfModifier *data_; bool swap_xy_; int flags_; + MyMutex *lfModifierMutex; }; class LFCamera final @@ -121,6 +122,7 @@ private: LFDatabase(); bool LoadDirectory(const char *dirname); + MyMutex *lfDBMutex; static LFDatabase instance_; lfDatabase *data_; }; diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 2dd745f6c..afea47a26 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -66,7 +66,11 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], 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 @@ -76,8 +80,15 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], int col = 0; for (; col < width - 1; col += 2) { - float val0 = image[row * width + col][c0]; - float val1 = image[row * width + col + 1][c1]; + float val0; + float val1; + if (isFloat) { + val0 = float_raw_image[(row + top_margin) * raw_width + col + left_margin]; + val1 = float_raw_image[(row + top_margin) * raw_width + col + left_margin + 1]; + } else { + val0 = image[row * width + col][c0]; + val1 = image[row * width + col + 1][c1]; + } val0 -= cblack[c0]; val1 -= cblack[c1]; val0 *= scale_mul[c0]; @@ -87,7 +98,12 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], } if (col < width) { // in case width is odd - float val0 = image[row * width + col][c0]; + float val0; + if (isFloat) { + val0 = float_raw_image[(row + top_margin) * raw_width + col + left_margin]; + } else { + val0 = image[row * width + col][c0]; + } val0 -= cblack[c0]; val0 *= scale_mul[c0]; image[row * width + col][c0] = rtengine::CLIP (val0); @@ -96,6 +112,11 @@ 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) @@ -111,7 +132,12 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], for (; col < width - 5; col += 6) { for (int i = 0; i < 6; ++i) { const unsigned ccol = c[i]; - float val = image[row * width + col + i][ccol]; + float val; + if (isFloat) { + val = float_raw_image[(row + top_margin) * raw_width + col + i + left_margin]; + } else { + val = image[row * width + col + i][ccol]; + } val -= cblack[ccol]; val *= scale_mul[ccol]; image[row * width + col + i][ccol] = rtengine::CLIP (val); @@ -120,7 +146,12 @@ void scale_colors (rtengine::RawImage *ri, float scale_mul[4], float cblack[4], for (; col < width; ++col) { // remaining columns const unsigned ccol = ri->XTRANSFC (row, col); - float val = image[row * width + col][ccol]; + float val; + if (isFloat) { + val = float_raw_image[(row + top_margin) * raw_width + col + left_margin]; + } else { + val = image[row * width + col][ccol]; + } val -= cblack[ccol]; val *= scale_mul[ccol]; image[row * width + col][ccol] = rtengine::CLIP (val); @@ -285,11 +316,12 @@ Image8 *load_inspector_mode(const Glib::ustring &fname, RawMetaDataLocation &rml ProcParams neutral; neutral.raw.bayersensor.method = RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST); neutral.raw.xtranssensor.method = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST); - neutral.icm.input = "(camera)"; - neutral.icm.working = "RT_sRGB"; + neutral.icm.inputProfile = "(camera)"; + neutral.icm.workingProfile = options.rtSettings.srgb; src.preprocess(neutral.raw, neutral.lensProf, neutral.coarse, false); - src.demosaic(neutral.raw); + double thresholdDummy = 0.f; + src.demosaic(neutral.raw, false, thresholdDummy); PreviewProps pp(0, 0, w, h, 1); @@ -1087,7 +1119,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT gmi = gm * defGain / mul_lum; bmi = bm * defGain / mul_lum; - // The RAW exposure is not reflected since it's done in preprocessing. If we only have e.g. the chached thumb, + // The RAW exposure is not reflected since it's done in preprocessing. If we only have e.g. the cached thumb, // that is already preprocessed. So we simulate the effect here roughly my modifying the exposure accordingly if (isRaw) { rmi *= params.raw.expos; @@ -1233,7 +1265,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT bool opautili = false; if (params.colorToning.enabled) { - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.workingProfile); double wp[3][3] = { {wprof[0][0], wprof[0][1], wprof[0][2]}, {wprof[1][0], wprof[1][1], wprof[1][2]}, @@ -1285,10 +1317,10 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT if (isRaw) { cmsHPROFILE dummy; - RawImageSource::findInputProfile (params.icm.input, nullptr, camName, &dcpProf, dummy); + RawImageSource::findInputProfile (params.icm.inputProfile, nullptr, camName, &dcpProf, dummy); if (dcpProf) { - dcpProf->setStep2ApplyState (params.icm.working, params.icm.toneCurve, params.icm.applyLookTable, params.icm.applyBaselineExposureOffset, as); + dcpProf->setStep2ApplyState (params.icm.workingProfile, params.icm.toneCurve, params.icm.applyLookTable, params.icm.applyBaselineExposureOffset, as); } } diff --git a/rtengine/settings.h b/rtengine/settings.h index 22d32d598..05aca89cf 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -30,13 +30,13 @@ class Settings public: Glib::ustring iccDirectory; ///< The directory containing the possible output icc profiles int viewingdevice; // white of output device (D50...D65..) - int viewingdevicegrey; // level of grey output device + int viewingdevicegrey; // level of grey output device int viewinggreySc; // level of grey Scene - int leveldnv; // level of crop denoise - int leveldnti; // size of tiles denoise + int leveldnv; // level of crop denoise + int leveldnti; // size of tiles denoise int leveldnaut; // level of auto denoise int leveldnliss; // level of auto multi zone - int leveldnautsimpl; // STD or EXPERT + int leveldnautsimpl; // STD or EXPERT Glib::ustring printerProfile; ///< ICC profile name used for soft-proofing a printer output RenderingIntent printerIntent; ///< Colorimetric intent used with the above profile @@ -50,21 +50,22 @@ public: bool verbose; Glib::ustring darkFramesPath; ///< The default directory for dark frames Glib::ustring flatFieldsPath; ///< The default directory for flat fields - Glib::ustring adobe; // default name of AdobeRGB1998 - Glib::ustring prophoto; // default name of Prophoto - Glib::ustring prophoto10; // default name of Prophoto - Glib::ustring widegamut; //default name of WidegamutRGB - Glib::ustring beta; // default name of BetaRGB - Glib::ustring best; // default name of BestRGB - Glib::ustring bruce; // default name of Bruce - Glib::ustring srgb; // default name of SRGB space profile - Glib::ustring srgb10; // default name of SRGB space profile - Glib::ustring rec2020; // default name of rec2020 + Glib::ustring adobe; // filename of AdobeRGB1998 profile (default to the bundled one) + Glib::ustring prophoto; // filename of Prophoto profile (default to the bundled one) + Glib::ustring widegamut; // filename of WidegamutRGB profile (default to the bundled one) + Glib::ustring beta; // filename of BetaRGB profile (default to the bundled one) + Glib::ustring best; // filename of BestRGB profile (default to the bundled one) + Glib::ustring bruce; // filename of BruceRGB profile (default to the bundled one) + Glib::ustring srgb; // filename of sRGB profile (default to the bundled one) + Glib::ustring rec2020; // filename of Rec2020 profile (default to the bundled one) + Glib::ustring ACESp0; // filename of ACES P0 profile (default to the bundled one) + Glib::ustring ACESp1; // filename of ACES P1 profile (default to the bundled one) bool gamutICC; // no longer used bool gamutLch; - bool HistogramWorking; + bool HistogramWorking; // true: histogram is display the value of the image computed in the Working profile + // false: histogram is display the value of the image computed in the Output profile int amchroma; int protectred; double protectredh; @@ -94,13 +95,13 @@ public: RAW_IF_NOT_JPEG_FULLSIZE }; ThumbnailInspectorMode thumbnail_inspector_mode; - + /** Creates a new instance of Settings. * @return a pointer to the new Settings instance. */ - static Settings* create (); + static Settings* create(); /** Destroys an instance of Settings. * @param s a pointer to the Settings instance to destroy. */ - static void destroy (Settings* s); + static void destroy(Settings* s); }; } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 42f240b8d..a5b84e186 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -164,6 +164,13 @@ private: imgsrc = ii->getImageSource(); tr = getCoarseBitMask(params.coarse); + if(imgsrc->getSensorType() == ST_BAYER) { + if(params.raw.bayersensor.method!= RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { + imgsrc->setBorder(params.raw.bayersensor.border); + } else { + imgsrc->setBorder(std::max(params.raw.bayersensor.border, 2)); + } + } imgsrc->getFullSize(fw, fh, tr); // check the crop params @@ -201,19 +208,20 @@ private: ipf_p.reset(new ImProcFunctions(¶ms, true)); ImProcFunctions &ipf = * (ipf_p.get()); - pp = PreviewProps(0, 0, fw, fh, 1); imgsrc->setCurrentFrame(params.raw.bayersensor.imageNum); imgsrc->preprocess(params.raw, params.lensProf, params.coarse, params.dirpyrDenoise.enabled); if (pl) { pl->setProgress(0.20); } + double contrastThresholdDummy; + imgsrc->demosaic (params.raw, false, contrastThresholdDummy); - imgsrc->demosaic(params.raw); if (pl) { pl->setProgress(0.30); } + pp = PreviewProps (0, 0, fw, fh, 1); if (params.retinex.enabled) { //enabled Retinex LUTf cdcurve(65536, 0); @@ -372,21 +380,21 @@ private: float multip = 1.f; float adjustr = 1.f; - if (params.icm.working == "ProPhoto") { + if (params.icm.workingProfile == "ProPhoto") { adjustr = 1.f; // - } else if (params.icm.working == "Adobe RGB") { + } else if (params.icm.workingProfile == "Adobe RGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "sRGB") { + } else if (params.icm.workingProfile == "sRGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "WideGamut") { + } else if (params.icm.workingProfile == "WideGamut") { adjustr = 1.f / 1.1f; - } else if (params.icm.working == "Rec2020") { + } else if (params.icm.workingProfile == "Rec2020") { adjustr = 1.f / 1.1f; - } else if (params.icm.working == "Beta RGB") { + } else if (params.icm.workingProfile == "Beta RGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BestRGB") { + } else if (params.icm.workingProfile == "BestRGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BruceRGB") { + } else if (params.icm.workingProfile == "BruceRGB") { adjustr = 1.f / 1.2f; } @@ -615,21 +623,21 @@ private: float MinRMoy = 0.f; float MinBMoy = 0.f; - if (params.icm.working == "ProPhoto") { + if (params.icm.workingProfile == "ProPhoto") { adjustr = 1.f; - } else if (params.icm.working == "Adobe RGB") { + } else if (params.icm.workingProfile == "Adobe RGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "sRGB") { + } else if (params.icm.workingProfile == "sRGB") { adjustr = 1.f / 1.3f; - } else if (params.icm.working == "WideGamut") { + } else if (params.icm.workingProfile == "WideGamut") { adjustr = 1.f / 1.1f; - } else if (params.icm.working == "Rec2020") { + } else if (params.icm.workingProfile == "Rec2020") { adjustr = 1.f / 1.1f; - } else if (params.icm.working == "Beta RGB") { + } else if (params.icm.workingProfile == "Beta RGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BestRGB") { + } else if (params.icm.workingProfile == "BestRGB") { adjustr = 1.f / 1.2f; - } else if (params.icm.working == "BruceRGB") { + } else if (params.icm.workingProfile == "BruceRGB") { adjustr = 1.f / 1.2f; } @@ -747,7 +755,9 @@ private: } if (params.toneCurve.histmatching) { - imgsrc->getAutoMatchedToneCurve(params.icm, params.toneCurve.curve); + if (!params.toneCurve.fromHistMatching) { + imgsrc->getAutoMatchedToneCurve(params.icm, params.toneCurve.curve); + } if (params.toneCurve.autoexp) { params.toneCurve.expcomp = 0.0; @@ -759,7 +769,6 @@ private: params.toneCurve.brightness = 0; params.toneCurve.contrast = 0; params.toneCurve.black = 0; - } // at this stage, we can flush the raw data to free up quite an important amount of memory @@ -885,9 +894,49 @@ private: const int W = baseImg->getWidth(); const int H = baseImg->getHeight(); LabImage labcbdl(W, H); - ipf.rgb2lab(*baseImg, labcbdl, params.icm.working); + ipf.rgb2lab (*baseImg, labcbdl, params.icm.workingProfile); ipf.dirpyrequalizer(&labcbdl, 1); - ipf.lab2rgb(labcbdl, *baseImg, params.icm.working); + ipf.lab2rgb (labcbdl, *baseImg, params.icm.workingProfile); + } + + //gamma TRC working + if (params.icm.workingTRC == "Custom") { //exec TRC IN free + Glib::ustring profile; + 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 = 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); + #pragma omp parallel for + + for (int row = 0; row < ch; row++) { + for (int col = 0; col < cw; col++) { + baseImg->r(row, col) = (float)readyImg0->r(row, col); + baseImg->g(row, col) = (float)readyImg0->g(row, col); + baseImg->b(row, col) = (float)readyImg0->b(row, col); + } + } + + delete readyImg0; + + //adjust TRC + Imagefloat* readyImg = NULL; + 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++) { + for (int col = 0; col < cw; col++) { + baseImg->r(row, col) = (float)readyImg->r(row, col); + baseImg->g(row, col) = (float)readyImg->g(row, col); + baseImg->b(row, col) = (float)readyImg->b(row, col); + } + } + + delete readyImg; + } } // RGB processing @@ -914,7 +963,7 @@ private: bool opautili = false; if (params.colorToning.enabled) { - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params.icm.working); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.workingProfile); double wp[3][3] = { {wprof[0][0], wprof[0][1], wprof[0][2]}, {wprof[1][0], wprof[1][1], wprof[1][2]}, @@ -1300,7 +1349,8 @@ private: } if (labResize) { // resize lab data - if (labView->W != imw || labView->H != imh) { + if ((labView->W != imw || labView->H != imh) && + (params.resize.allowUpscaling || (labView->W >= imw && labView->H >= imh))) { // resize image tmplab = new LabImage(imw, imh); ipf.Lanczos(labView, tmplab, tmpScale); @@ -1328,29 +1378,16 @@ private: bool useLCMS = false; bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili ; - if (params.icm.gamma != "default" || params.icm.freegamma) { // if select gamma output between BT709, sRGB, linear, low, high, 2.2 , 1.8 + ///////////// Custom output gamma has been removed, the user now has to create + ///////////// a new output profile with the ICCProfileCreator - GammaValues ga; - // if(params.blackwhite.enabled) params.toneCurve.hrenabled=false; - readyImg = ipf.lab2rgbOut(labView, cx, cy, cw, ch, params.icm, &ga); - customGamma = true; + // 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 - //or selected Free gamma - useLCMS = false; + readyImg = ipf.lab2rgbOut (labView, cx, cy, cw, ch, params.icm); - if ((jprof = ICCStore::getInstance()->createCustomGammaOutputProfile(params.icm, ga)) == nullptr) { - useLCMS = true; - } - - } else { - // 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); - - if (settings->verbose) { - printf("Output profile_: \"%s\"\n", params.icm.output.c_str()); - } + if (settings->verbose) { + printf ("Output profile_: \"%s\"\n", params.icm.outputProfile.c_str()); } delete labView; @@ -1377,7 +1414,8 @@ private: pl->setProgress(0.70); } - if (tmpScale != 1.0 && params.resize.method == "Nearest") { // resize rgb data (gamma applied) + if (tmpScale != 1.0 && params.resize.method == "Nearest" && + (params.resize.allowUpscaling || (readyImg->getWidth() >= imw && readyImg->getHeight() >= imh))) { // resize rgb data (gamma applied) Imagefloat* tempImage = new Imagefloat(imw, imh); ipf.resize(readyImg, tempImage, tmpScale); delete readyImg; @@ -1412,21 +1450,21 @@ private: } else { // use the selected output profile if present, otherwise use LCMS2 profile generate by lab2rgb16 w/ gamma - if (params.icm.output != "" && params.icm.output != ColorManagementParams::NoICMString) { + if (params.icm.outputProfile != "" && params.icm.outputProfile != ColorManagementParams::NoICMString) { // if ICCStore::getInstance()->getProfile send back an object, then ICCStore::getInstance()->getContent will do too - cmsHPROFILE jprof = ICCStore::getInstance()->getProfile(params.icm.output); //get outProfile + cmsHPROFILE jprof = ICCStore::getInstance()->getProfile (params.icm.outputProfile); //get outProfile if (jprof == nullptr) { if (settings->verbose) { - printf("\"%s\" ICC output profile not found!\n - use LCMS2 substitution\n", params.icm.output.c_str()); + printf ("\"%s\" ICC output profile not found!\n - use LCMS2 substitution\n", params.icm.outputProfile.c_str()); } } else { if (settings->verbose) { - printf("Using \"%s\" output profile\n", params.icm.output.c_str()); + printf ("Using \"%s\" output profile\n", params.icm.outputProfile.c_str()); } - ProfileContent pc = ICCStore::getInstance()->getContent(params.icm.output); + ProfileContent pc = ICCStore::getInstance()->getContent (params.icm.outputProfile); readyImg->setOutputProfile(pc.getData().c_str(), pc.getData().size()); } } else { @@ -1473,7 +1511,7 @@ private: double scale_factor = ipf.resizeScale(¶ms, fw, fh, imw, imh); std::unique_ptr tmplab(new LabImage(fw, fh)); - ipf.rgb2lab(*baseImg, *tmplab, params.icm.working); + ipf.rgb2lab (*baseImg, *tmplab, params.icm.workingProfile); if (params.crop.enabled) { int cx = params.crop.x; @@ -1497,7 +1535,7 @@ private: assert(params.resize.enabled); // resize image - { + if (params.resize.allowUpscaling || (imw <= fw && imh <= fh)) { std::unique_ptr resized(new LabImage(imw, imh)); ipf.Lanczos(tmplab.get(), resized.get(), scale_factor); tmplab = std::move(resized); @@ -1510,7 +1548,7 @@ private: delete baseImg; baseImg = new Imagefloat(fw, fh); - ipf.lab2rgb(*tmplab, *baseImg, params.icm.working); + ipf.lab2rgb (*tmplab, *baseImg, params.icm.workingProfile); } void adjust_procparams(double scale_factor) diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 7fa55cfb7..c75995b25 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -220,9 +220,9 @@ void StdImageSource::colorSpaceConversion (Imagefloat* im, const ColorManagement bool skipTransform = false; cmsHPROFILE in = nullptr; - cmsHPROFILE out = ICCStore::getInstance()->workingSpace (cmp.working); + cmsHPROFILE out = ICCStore::getInstance()->workingSpace (cmp.workingProfile); - if (cmp.input == "(embedded)" || cmp.input == "" || cmp.input == "(camera)" || cmp.input == "(cameraICC)") { + if (cmp.inputProfile == "(embedded)" || cmp.inputProfile == "" || cmp.inputProfile == "(camera)" || cmp.inputProfile == "(cameraICC)") { if (embedded) { in = embedded; } else { @@ -233,8 +233,8 @@ void StdImageSource::colorSpaceConversion (Imagefloat* im, const ColorManagement } } } else { - if (cmp.input != "(none)") { - in = ICCStore::getInstance()->getProfile (cmp.input); + if (cmp.inputProfile != "(none)") { + in = ICCStore::getInstance()->getProfile (cmp.inputProfile); if (in == nullptr && embedded) { in = embedded; @@ -270,7 +270,7 @@ void StdImageSource::colorSpaceConversion (Imagefloat* im, const ColorManagement cmsDeleteTransform(hTransform); } else { - printf("Could not convert from %s to %s\n", in == embedded ? "embedded profile" : cmp.input.data(), cmp.working.data()); + printf("Could not convert from %s to %s\n", in == embedded ? "embedded profile" : cmp.inputProfile.data(), cmp.workingProfile.data()); } } } diff --git a/rtengine/tmo_fattal02.cc b/rtengine/tmo_fattal02.cc index c6faef2e7..359b33575 100644 --- a/rtengine/tmo_fattal02.cc +++ b/rtengine/tmo_fattal02.cc @@ -1092,7 +1092,7 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb) constexpr float luminance_noise_floor = 65.535f; constexpr float min_luminance = 1.f; - TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix (params->icm.working); + TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix (params->icm.workingProfile); #ifdef _OPENMP #pragma omp parallel for if(multiThread) diff --git a/rtengine/utils.cc b/rtengine/utils.cc index 4ab5bc1b8..613b67be8 100644 --- a/rtengine/utils.cc +++ b/rtengine/utils.cc @@ -265,3 +265,21 @@ void swab(const void* from, void* to, ssize_t n) } } + +#if __SIZEOF_WCHAR_T__ == 4 +Glib::ustring utf32_to_utf8(wchar_t* UTF32Buffer, size_t sizeOfUTF32Buffer) +{ + char *buffer2 = new char[sizeOfUTF32Buffer]; + char *pBuffer2 = buffer2; + gchar a[6]; + for (size_t i=0; i < sizeOfUTF32Buffer/4; ++i) { + gint bytesWritten = g_unichar_to_utf8((gunichar)UTF32Buffer[i], a); + for (gint j=0; j < bytesWritten; ++j) { + *(pBuffer2++) = a[j]; + } + } + Glib::ustring modelDesc(buffer2); + delete [] buffer2; + return modelDesc; +} +#endif diff --git a/rtengine/utils.h b/rtengine/utils.h index 5730c2544..14593edae 100644 --- a/rtengine/utils.h +++ b/rtengine/utils.h @@ -55,3 +55,8 @@ bool hasPngExtension(const Glib::ustring& filename); void swab(const void* from, void* to, ssize_t n); } + +#if __SIZEOF_WCHAR_T__ == 4 +Glib::ustring utf32_to_utf8(wchar_t* UTF32Buffer, size_t sizeOfUTF32Buffer); +#endif + diff --git a/rtengine/vng4_demosaic_RT.cc b/rtengine/vng4_demosaic_RT.cc index d6520607e..8ed05dd09 100644 --- a/rtengine/vng4_demosaic_RT.cc +++ b/rtengine/vng4_demosaic_RT.cc @@ -336,6 +336,7 @@ void RawImageSource::vng4_demosaic (const array2D &rawData, array2DsetProgress (1.0); diff --git a/rtengine/xtrans_demosaic.cc b/rtengine/xtrans_demosaic.cc index 411388ee5..ed253749b 100644 --- a/rtengine/xtrans_demosaic.cc +++ b/rtengine/xtrans_demosaic.cc @@ -114,7 +114,7 @@ void RawImageSource::cielab (const float (*rgb)[3], float* l, float* a, float *b #define fcol(row,col) xtrans[(row)%6][(col)%6] #define isgreen(row,col) (xtrans[(row)%3][(col)%3]&1) -void RawImageSource::xtransborder_interpolate (int border) +void RawImageSource::xtransborder_interpolate (int border, array2D &red, array2D &green, array2D &blue) { const int height = H, width = W; @@ -201,7 +201,7 @@ void RawImageSource::xtrans_interpolate (const int passes, const bool useCieLab) // printf("%d-pass X-Trans interpolation using %s conversion...\n", passes, useCieLab ? "lab" : "yuv"); // } - xtransborder_interpolate(6); + xtransborder_interpolate(6, red, green, blue); float xyz_cam[3][3]; { @@ -974,7 +974,7 @@ void RawImageSource::fast_xtrans_interpolate (const array2D &rawData, arr const int height = H, width = W; - xtransborder_interpolate (1); + xtransborder_interpolate (1, red, green, blue); int xtrans[6][6]; ri->getXtransMatrix(xtrans); @@ -1019,60 +1019,5 @@ void RawImageSource::fast_xtrans_interpolate (const array2D &rawData, arr #undef fcol #undef isgreen -void RawImageSource::xtrans_4pass_demosaic_RT(int passes, bool useCieLab, double contrast) -{ - BENCHFUN - - if (contrast == 0.0) { - // contrast == 0.0 means only AMaZE will be used - xtrans_interpolate (passes, useCieLab); - return; - } - - xtrans_interpolate (passes, useCieLab); - - array2D redTmp(W, H); - array2D greenTmp(W, H); - array2D blueTmp(W, H); - array2D L(W, H); - - fast_xtrans_interpolate(rawData, redTmp, greenTmp, blueTmp); - const float xyz_rgb[3][3] = { // XYZ from RGB - { 0.412453, 0.357580, 0.180423 }, - { 0.212671, 0.715160, 0.072169 }, - { 0.019334, 0.119193, 0.950227 } - }; - #pragma omp parallel - { - #pragma omp for - for(int i = 0; i < H; ++i) { - Color::RGB2L(red[i], green[i], blue[i], L[i], xyz_rgb, W); - } - } - // calculate contrast based blend factors to use vng4 in regions with low contrast - JaggedArray blend(W, H); - buildBlendMask(L, blend, W, H, contrast / 100.f); - - // the following is split into 3 loops intentionally to avoid cache conflicts on CPUs with only 4-way cache - #pragma omp parallel for - for(int i = 0; i < H; ++i) { - for(int j = 0; j < W; ++j) { - red[i][j] = intp(blend[i][j], red[i][j], redTmp[i][j]); - } - } - #pragma omp parallel for - for(int i = 0; i < H; ++i) { - for(int j = 0; j < W; ++j) { - green[i][j] = intp(blend[i][j], green[i][j], greenTmp[i][j]); - } - } - #pragma omp parallel for - for(int i = 0; i < H; ++i) { - for(int j = 0; j < W; ++j) { - blue[i][j] = intp(blend[i][j], blue[i][j], blueTmp[i][j]); - } - } - } -} \ No newline at end of file diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 47a7837c8..4cd789d79 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -72,6 +72,7 @@ set(NONCLISOURCEFILES histogrampanel.cc history.cc hsvequalizer.cc + iccprofilecreator.cc icmpanel.cc ilabel.cc imagearea.cc @@ -156,6 +157,7 @@ set(NONCLISOURCEFILES eventmapper.cc metadatapanel.cc labgrid.cc + softlight.cc ) include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}") @@ -225,6 +227,10 @@ else() ) endif() +if(OPENMP_FOUND AND NOT APPLE) + set(EXTRA_LIB_RTGUI ${EXTRA_LIB_RTGUI} "atomic") +endif() + # Create config.h which defines where data are stored configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h") diff --git a/rtgui/addsetids.h b/rtgui/addsetids.h index 15c6ba078..8cf39aa29 100644 --- a/rtgui/addsetids.h +++ b/rtgui/addsetids.h @@ -50,8 +50,6 @@ enum { ADDSET_SHARPENMICRO_UNIFORMITY, ADDSET_VIBRANCE_PASTELS, ADDSET_VIBRANCE_SATURATED, - ADDSET_FREE_OUPUT_GAMMA, - ADDSET_FREE_OUTPUT_SLOPE, ADDSET_CAT_DEGREE, ADDSET_CAT_ADAPTSCENE, ADDSET_CAT_ADAPTVIEWING, @@ -143,6 +141,7 @@ enum { ADDSET_BAYER_PS_SIGMA, ADDSET_BAYER_DUALDEMOZCONTRAST, ADDSET_XTRANS_FALSE_COLOR_SUPPRESSION, + ADDSET_SOFTLIGHT_STRENGTH, ADDSET_PARAM_NUM // THIS IS USED AS A DELIMITER!! }; diff --git a/rtgui/adjuster.cc b/rtgui/adjuster.cc index b66f617a4..6260314b1 100644 --- a/rtgui/adjuster.cc +++ b/rtgui/adjuster.cc @@ -79,7 +79,7 @@ Adjuster::Adjuster (Glib::ustring vlabel, double vmin, double vmax, double vstep } reset = Gtk::manage (new Gtk::Button ()); - reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); + reset->add (*Gtk::manage (new RTImage ("undo-small.png", "redo-small.png"))); setExpandAlignProperties(reset, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); reset->set_relief (Gtk::RELIEF_NONE); reset->set_tooltip_markup (M("ADJUSTER_RESET_TO_DEFAULT")); @@ -166,7 +166,7 @@ void Adjuster::addAutoButton (Glib::ustring tooltip) { if (!automatic) { automatic = new Gtk::CheckButton (); - //automatic->add (*Gtk::manage (new RTImage ("processing.png"))); + //automatic->add (*Gtk::manage (new RTImage ("gears.png"))); automatic->set_tooltip_markup(tooltip.length() ? Glib::ustring::compose("%1\n\n%2", M("GENERAL_AUTO"), tooltip) : M("GENERAL_AUTO")); setExpandAlignProperties(automatic, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); autoChange = automatic->signal_toggled().connect( sigc::mem_fun(*this, &Adjuster::autoToggled) ); diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index 2f3505a08..d3e3ef9f0 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -53,16 +53,16 @@ BatchQueue::BatchQueue (FileCatalog* aFileCatalog) : processing(nullptr), fileCa pmenu.attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p + 1); p++; - pmenu.attach (*Gtk::manage(head = new MyImageMenuItem (M("FILEBROWSER_POPUPMOVEHEAD"), "toleftend.png")), 0, 1, p, p + 1); + pmenu.attach (*Gtk::manage(head = new MyImageMenuItem (M("FILEBROWSER_POPUPMOVEHEAD"), "goto-start-small.png")), 0, 1, p, p + 1); p++; - pmenu.attach (*Gtk::manage(tail = new MyImageMenuItem (M("FILEBROWSER_POPUPMOVEEND"), "torightend.png")), 0, 1, p, p + 1); + pmenu.attach (*Gtk::manage(tail = new MyImageMenuItem (M("FILEBROWSER_POPUPMOVEEND"), "goto-end-small.png")), 0, 1, p, p + 1); p++; pmenu.attach (*Gtk::manage(new Gtk::SeparatorMenuItem ()), 0, 1, p, p + 1); p++; - pmenu.attach (*Gtk::manage(cancel = new MyImageMenuItem (M("FILEBROWSER_POPUPCANCELJOB"), "gtk-close.png")), 0, 1, p, p + 1); + pmenu.attach (*Gtk::manage(cancel = new MyImageMenuItem (M("FILEBROWSER_POPUPCANCELJOB"), "cancel-small.png")), 0, 1, p, p + 1); pmenu.show_all (); @@ -228,7 +228,7 @@ bool BatchQueue::saveBatchQueue () // The column's header is mandatory (the first line will be skipped when loaded) file << "input image full path|param file full path|output image full path|file format|jpeg quality|jpeg subsampling|" - << "png bit depth|png compression|tiff bit depth|uncompressed tiff|save output params|force format options|fast export|" + << "png bit depth|png compression|tiff bit depth|tiff is float|uncompressed tiff|save output params|force format options|fast export|" << std::endl; // method is already running with entryLock, so no need to lock again @@ -246,7 +246,7 @@ bool BatchQueue::saveBatchQueue () #endif << saveFormat.jpegQuality << '|' << saveFormat.jpegSubSamp << '|' << saveFormat.pngBits << '|' - << saveFormat.tiffBits << '|' << saveFormat.tiffUncompressed << '|' + << saveFormat.tiffBits << '|' << (saveFormat.tiffFloat ? 1 : 0) << '|' << saveFormat.tiffUncompressed << '|' << saveFormat.saveParams << '|' << entry->forceFormatOpts << '|' << entry->fast_pipeline << '|' << std::endl; @@ -311,6 +311,7 @@ bool BatchQueue::loadBatchQueue () const auto jpegSubSamp = nextIntOr (options.saveFormat.jpegSubSamp); const auto pngBits = nextIntOr (options.saveFormat.pngBits); const auto tiffBits = nextIntOr (options.saveFormat.tiffBits); + const auto tiffFloat = nextIntOr (options.saveFormat.tiffFloat); const auto tiffUncompressed = nextIntOr (options.saveFormat.tiffUncompressed); const auto saveParams = nextIntOr (options.saveFormat.saveParams); const auto forceFormatOpts = nextIntOr (options.forceFormatOpts); @@ -352,6 +353,7 @@ bool BatchQueue::loadBatchQueue () saveFormat.jpegSubSamp = jpegSubSamp; saveFormat.pngBits = pngBits; saveFormat.tiffBits = tiffBits; + saveFormat.tiffFloat = tiffFloat == 1; saveFormat.tiffUncompressed = tiffUncompressed != 0; saveFormat.saveParams = saveParams != 0; entry->forceFormatOpts = forceFormatOpts != 0; @@ -608,7 +610,7 @@ rtengine::ProcessingJob* BatchQueue::imageReady (rtengine::IImagefloat* img) int err = 0; if (saveFormat.format == "tif") { - err = img->saveAsTIFF (fname, saveFormat.tiffBits, saveFormat.tiffUncompressed); + err = img->saveAsTIFF (fname, saveFormat.tiffBits, saveFormat.tiffFloat, saveFormat.tiffUncompressed); } else if (saveFormat.format == "png") { err = img->saveAsPNG (fname, saveFormat.pngBits); } else if (saveFormat.format == "jpg") { diff --git a/rtgui/batchqueuebuttonset.cc b/rtgui/batchqueuebuttonset.cc index fefcdf3c9..19c309791 100644 --- a/rtgui/batchqueuebuttonset.cc +++ b/rtgui/batchqueuebuttonset.cc @@ -31,9 +31,9 @@ BatchQueueButtonSet::BatchQueueButtonSet (BatchQueueEntry* myEntry) { if (!iconsLoaded) { - cancelIcon = RTImage::createFromPng ("gtk-close.png"); - headIcon = RTImage::createFromPng ("toleftend.png"); - tailIcon = RTImage::createFromPng ("torightend.png"); + cancelIcon = RTImage::createFromPng ("cancel-small.png"); + headIcon = RTImage::createFromPng ("goto-start-small.png"); + tailIcon = RTImage::createFromPng ("goto-end-small.png"); iconsLoaded = true; } diff --git a/rtgui/batchqueueentry.cc b/rtgui/batchqueueentry.cc index 3092d6db4..b5383205f 100644 --- a/rtgui/batchqueueentry.cc +++ b/rtgui/batchqueueentry.cc @@ -55,7 +55,7 @@ BatchQueueEntry::BatchQueueEntry (rtengine::ProcessingJob* pjob, const rtengine: #endif if (!iconsLoaded) { - savedAsIcon = RTImage::createFromFile ("gtk-save.png"); + savedAsIcon = RTImage::createFromFile ("save-small.png"); iconsLoaded = true; } @@ -175,9 +175,10 @@ Glib::ustring BatchQueueEntry::getToolTip (int x, int y) tooltip += Glib::ustring::compose("\n\n%1: %2", M("BATCHQUEUE_DESTFILENAME"), outFileName); if (forceFormatOpts) { - tooltip += Glib::ustring::compose("\n\n%1: %2 (%3 bits)", M("SAVEDLG_FILEFORMAT"), saveFormat.format, + tooltip += Glib::ustring::compose("\n\n%1: %2 (%3-bits%4)", M("SAVEDLG_FILEFORMAT"), saveFormat.format, saveFormat.format == "png" ? saveFormat.pngBits : - saveFormat.format == "tif" ? saveFormat.tiffBits : 8); + saveFormat.format == "tif" ? saveFormat.tiffBits : 8, + saveFormat.format == "tif" && saveFormat.tiffFloat ? M("SAVEDLG_FILEFORMAT_FLOAT") : ""); if (saveFormat.format == "jpg") { tooltip += Glib::ustring::compose("\n%1: %2\n%3: %4", diff --git a/rtgui/batchqueuepanel.cc b/rtgui/batchqueuepanel.cc index 6dfa9ad9c..1a9e08b94 100644 --- a/rtgui/batchqueuepanel.cc +++ b/rtgui/batchqueuepanel.cc @@ -87,7 +87,7 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) outdirFolderButton->signal_pressed().connect( sigc::mem_fun(*this, &BatchQueuePanel::pathFolderButtonPressed) ); outdirFolderButton->set_tooltip_markup (M("PREFERENCES_OUTDIRFOLDERHINT")); outdirFolderButton->set_label(makeFolderLabel(options.savePathFolder)); - Gtk::Image* folderImg = Gtk::manage (new RTImage ("gtk-directory.png")); + Gtk::Image* folderImg = Gtk::manage (new RTImage ("folder-closed.png")); folderImg->show (); outdirFolderButton->set_image (*folderImg); outdirFolder = nullptr; @@ -151,13 +151,13 @@ BatchQueuePanel::BatchQueuePanel (FileCatalog* aFileCatalog) : parent(nullptr) zoomLabel->set_use_markup (true); zoomBox->pack_start (*zoomLabel, Gtk::PACK_SHRINK, 4); zoomInButton = Gtk::manage (new Gtk::Button ()); - zoomInButton->set_image (*Gtk::manage (new RTImage ("gtk-zoom-in.png"))); + zoomInButton->set_image (*Gtk::manage (new RTImage ("magnifier-plus.png"))); zoomInButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomIn)); zoomInButton->set_relief (Gtk::RELIEF_NONE); zoomInButton->set_tooltip_markup (M("FILEBROWSER_ZOOMINHINT")); zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK); zoomOutButton = Gtk::manage (new Gtk::Button ()); - zoomOutButton->set_image (*Gtk::manage (new RTImage ("gtk-zoom-out.png"))); + zoomOutButton->set_image (*Gtk::manage (new RTImage ("magnifier-minus.png"))); zoomOutButton->signal_pressed().connect (sigc::mem_fun(*batchQueue, &BatchQueue::zoomOut)); zoomOutButton->set_relief (Gtk::RELIEF_NONE); zoomOutButton->set_tooltip_markup (M("FILEBROWSER_ZOOMOUTHINT")); @@ -206,13 +206,13 @@ void BatchQueuePanel::updateTab (int qsize, int forceOrientation) Gtk::Label* l; if(!qsize ) { - grid->attach_next_to(*Gtk::manage (new RTImage ("processing.png")), Gtk::POS_TOP, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("gears.png")), Gtk::POS_TOP, 1, 1); l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE")) ); } else if (qStartStop->get_active()) { - grid->attach_next_to(*Gtk::manage (new RTImage ("processing-play.png")), Gtk::POS_TOP, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("gears-play.png")), Gtk::POS_TOP, 1, 1); l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]")); } else { - grid->attach_next_to(*Gtk::manage (new RTImage ("processing-pause.png")), Gtk::POS_TOP, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("gears-pause.png")), Gtk::POS_TOP, 1, 1); l = Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )); } @@ -226,13 +226,13 @@ void BatchQueuePanel::updateTab (int qsize, int forceOrientation) } } else { if (!qsize ) { - grid->attach_next_to(*Gtk::manage (new RTImage ("processing.png")), Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("gears.png")), Gtk::POS_RIGHT, 1, 1); grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") )), Gtk::POS_RIGHT, 1, 1); } else if (qStartStop->get_active()) { - grid->attach_next_to(*Gtk::manage (new RTImage ("processing-play.png")), Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("gears-play.png")), Gtk::POS_RIGHT, 1, 1); grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); } else { - grid->attach_next_to(*Gtk::manage (new RTImage ("processing-pause.png")), Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("gears-pause.png")), Gtk::POS_RIGHT, 1, 1); grid->attach_next_to(*Gtk::manage (new Gtk::Label (M("MAIN_FRAME_BATCHQUEUE") + " [" + Glib::ustring::format( qsize ) + "]" )), Gtk::POS_RIGHT, 1, 1); } diff --git a/rtgui/batchtoolpanelcoord.cc b/rtgui/batchtoolpanelcoord.cc index 120ec852e..6d5c17753 100644 --- a/rtgui/batchtoolpanelcoord.cc +++ b/rtgui/batchtoolpanelcoord.cc @@ -151,7 +151,6 @@ void BatchToolPanelCoordinator::initSession () prsharpening->setAdjusterBehavior (false, false, false, false, false, false, false); sharpenEdge->setAdjusterBehavior (false, false); sharpenMicro->setAdjusterBehavior (false, false, false); - icm->setAdjusterBehavior (false, false); epd->setAdjusterBehavior (false, false, false, false, false); fattal->setAdjusterBehavior (false, false, false); @@ -201,10 +200,10 @@ void BatchToolPanelCoordinator::initSession () sharpenEdge->setAdjusterBehavior (options.baBehav[ADDSET_SHARPENEDGE_AMOUNT], options.baBehav[ADDSET_SHARPENEDGE_PASS]); sharpenMicro->setAdjusterBehavior (options.baBehav[ADDSET_SHARPENMICRO_AMOUNT], options.baBehav[ADDSET_SHARPENMICRO_CONTRAST], options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY]); - icm->setAdjusterBehavior (options.baBehav[ADDSET_FREE_OUPUT_GAMMA], options.baBehav[ADDSET_FREE_OUTPUT_SLOPE]); // colortoning->setAdjusterBehavior (options.baBehav[ADDSET_COLORTONING_SPLIT], options.baBehav[ADDSET_COLORTONING_SATTHRESHOLD], options.baBehav[ADDSET_COLORTONING_SATOPACITY], options.baBehav[ADDSET_COLORTONING_STRPROTECT], options.baBehav[ADDSET_COLORTONING_BALANCE]); colortoning->setAdjusterBehavior (options.baBehav[ADDSET_COLORTONING_SPLIT], options.baBehav[ADDSET_COLORTONING_SATTHRESHOLD], options.baBehav[ADDSET_COLORTONING_SATOPACITY], options.baBehav[ADDSET_COLORTONING_STRENGTH], options.baBehav[ADDSET_COLORTONING_BALANCE]); filmSimulation->setAdjusterBehavior(options.baBehav[ADDSET_FILMSIMULATION_STRENGTH]); + softlight->setAdjusterBehavior(options.baBehav[ADDSET_SOFTLIGHT_STRENGTH]); retinex->setAdjusterBehavior (options.baBehav[ADDSET_RETI_STR], options.baBehav[ADDSET_RETI_NEIGH], options.baBehav[ADDSET_RETI_LIMD], options.baBehav[ADDSET_RETI_OFFS], options.baBehav[ADDSET_RETI_VART], options.baBehav[ADDSET_RETI_GAM], options.baBehav[ADDSET_RETI_SLO]); chmixer->setAdjusterBehavior (options.baBehav[ADDSET_CHMIXER] ); @@ -280,8 +279,6 @@ void BatchToolPanelCoordinator::initSession () if (options.baBehav[ADDSET_CAT_CONTRAST]) { pparams.colorappearance.contrast = 0; } if (options.baBehav[ADDSET_CAT_CONTRAST_Q]) { pparams.colorappearance.qcontrast = 0; } if (options.baBehav[ADDSET_CAT_HUE]) { pparams.colorappearance.colorh = 0; } - if (options.baBehav[ADDSET_FREE_OUPUT_GAMMA]) { pparams.icm.gampos = 0; } - if (options.baBehav[ADDSET_FREE_OUTPUT_SLOPE]) { pparams.icm.slpos = 0; } //if (options.baBehav[ADDSET_CBOOST_AMOUNT]) pparams.colorBoost.amount = 0; //if (options.baBehav[ADDSET_CS_BLUEYELLOW]) pparams.colorShift.a = 0; //if (options.baBehav[ADDSET_CS_GREENMAGENTA]) pparams.colorShift.b = 0; @@ -296,6 +293,7 @@ void BatchToolPanelCoordinator::initSession () if (options.baBehav[ADDSET_COLORTONING_BALANCE]) { pparams.colorToning.balance = 0; } if (options.baBehav[ADDSET_COLORTONING_STRENGTH]) { pparams.colorToning.strength = 0; } if (options.baBehav[ADDSET_FILMSIMULATION_STRENGTH]) { pparams.filmSimulation.strength = 0; } + if (options.baBehav[ADDSET_SOFTLIGHT_STRENGTH]) { pparams.softlight.strength = 0; } if (options.baBehav[ADDSET_ROTATE_DEGREE]) { pparams.rotate.degree = 0; } if (options.baBehav[ADDSET_RESIZE_SCALE]) { pparams.resize.scale = 0; } if (options.baBehav[ADDSET_DIST_AMOUNT]) { pparams.distortion.amount = 0; } diff --git a/rtgui/bayerprocess.cc b/rtgui/bayerprocess.cc index c6f04c053..d68f5c2d3 100644 --- a/rtgui/bayerprocess.cc +++ b/rtgui/bayerprocess.cc @@ -28,6 +28,7 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA { auto m = ProcEventMapper::getInstance(); + EvDemosaicBorder = m->newEvent(DEMOSAIC, "HISTORY_MSG_RAW_BORDER"); EvDemosaicContrast = m->newEvent(DEMOSAIC, "HISTORY_MSG_DUALDEMOSAIC_CONTRAST"); EvDemosaicPixelshiftDemosaicMethod = m->newEvent(DEMOSAIC, "HISTORY_MSG_PIXELSHIFT_DEMOSAIC"); @@ -45,6 +46,32 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA hb1->pack_end (*method, Gtk::PACK_EXPAND_WIDGET, 4); pack_start( *hb1, Gtk::PACK_SHRINK, 4); + + dualDemosaicOptions = Gtk::manage (new Gtk::VBox ()); + + dualDemosaicContrast = Gtk::manage(new Adjuster (M("TP_RAW_DUALDEMOSAICCONTRAST"), 0, 100, 1, 20)); + dualDemosaicContrast->setAdjusterListener (this); + + if (dualDemosaicContrast->delay < options.adjusterMaxDelay) { + dualDemosaicContrast->delay = options.adjusterMaxDelay; + } + + dualDemosaicContrast->show(); + dualDemosaicOptions->pack_start(*dualDemosaicContrast); + pack_start( *dualDemosaicOptions, Gtk::PACK_SHRINK, 4); + + borderbox = Gtk::manage(new Gtk::HBox()); + border = Gtk::manage(new Adjuster(M("TP_RAW_BORDER"), 0, 16, 1, 4)); + border->setAdjusterListener (this); + + if (border->delay < options.adjusterMaxDelay) { + border->delay = options.adjusterMaxDelay; + } + + border->show(); + borderbox->pack_start(*border); + pack_start(*borderbox, Gtk::PACK_SHRINK, 4); + imageNumberBox = Gtk::manage (new Gtk::HBox ()); imageNumberBox->pack_start (*Gtk::manage (new Gtk::Label ( M("TP_RAW_IMAGENUM") + ": ")), Gtk::PACK_SHRINK, 4); imageNumber = Gtk::manage (new MyComboBoxText ()); @@ -99,20 +126,6 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA lmmseOptions->pack_start(*lmmseIterations); pack_start( *lmmseOptions, Gtk::PACK_SHRINK, 4); - dualDemosaicOptions = Gtk::manage (new Gtk::VBox ()); - - dualDemosaicContrast = Gtk::manage(new Adjuster (M("TP_RAW_DUALDEMOSAICCONTRAST"), 0, 100, 1, 20)); - dualDemosaicContrast->setAdjusterListener (this); - - if (dualDemosaicContrast->delay < options.adjusterMaxDelay) { - dualDemosaicContrast->delay = options.adjusterMaxDelay; - } - - dualDemosaicContrast->show(); - dualDemosaicOptions->pack_start(*dualDemosaicContrast); - pack_start( *dualDemosaicOptions, Gtk::PACK_SHRINK, 4); - - // -------------------- PixelShift ---------------------- @@ -234,6 +247,7 @@ BayerProcess::BayerProcess () : FoldableToolPanel(this, "bayerprocess", M("TP_RA imageNumber->connect(imageNumber->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::imageNumberChanged) )); pixelShiftMotionMethod->connect(pixelShiftMotionMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftMotionMethodChanged) )); pixelShiftDemosaicMethod->connect(pixelShiftDemosaicMethod->signal_changed().connect( sigc::mem_fun(*this, &BayerProcess::pixelShiftDemosaicMethodChanged) )); + } @@ -245,6 +259,7 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params pixelShiftDemosaicMethod->block(true); //allEnhconn.block (true); + border->setValue(pp->raw.bayersensor.border); imageNumber->set_active(pp->raw.bayersensor.imageNum); for (size_t i = 0; i < procparams::RAWParams::BayerSensor::getMethodStrings().size(); ++i) { @@ -294,6 +309,7 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params } if(pedited) { + border->setEditedState (pedited->raw.bayersensor.border ? Edited : UnEdited); ccSteps->setEditedState (pedited->raw.bayersensor.ccSteps ? Edited : UnEdited); dcbIterations->setEditedState ( pedited->raw.bayersensor.dcbIterations ? Edited : UnEdited); dcbEnhance->setEdited (pedited->raw.bayersensor.dcbEnhance); @@ -331,9 +347,11 @@ void BayerProcess::read(const rtengine::procparams::ProcParams* pp, const Params } if (!batchMode) { - dcbOptions->set_visible(pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::DCB)); + dcbOptions->set_visible(pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::DCB) || pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::DCBVNG4)); lmmseOptions->set_visible(pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::LMMSE)); - dualDemosaicOptions->set_visible(pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::AMAZEVNG4)); + dualDemosaicOptions->set_visible(pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::AMAZEVNG4) + || pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::DCBVNG4) + || pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::RCDVNG4)); if (pp->raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::PIXELSHIFT)) { pixelShiftOptions->set_visible(pp->raw.bayersensor.pixelShiftMotionCorrectionMethod == RAWParams::BayerSensor::PSMotionCorrectionMethod::CUSTOM); pixelShiftFrame->show(); @@ -365,7 +383,7 @@ void BayerProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pe pp->raw.bayersensor.ccSteps = ccSteps->getIntValue(); pp->raw.bayersensor.dcb_iterations = dcbIterations->getIntValue(); pp->raw.bayersensor.dcb_enhance = dcbEnhance->getLastActive (); - //pp->raw.bayersensor.all_enhance = allEnhance->getLastActive (); + pp->raw.bayersensor.border = border->getIntValue(); pp->raw.bayersensor.lmmse_iterations = lmmseIterations->getIntValue(); pp->raw.bayersensor.dualDemosaicContrast = dualDemosaicContrast->getValue(); pp->raw.bayersensor.pixelShiftMotionCorrectionMethod = (RAWParams::BayerSensor::PSMotionCorrectionMethod)pixelShiftMotionMethod->get_active_row_number(); @@ -399,6 +417,7 @@ void BayerProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pe if (pedited) { + pedited->raw.bayersensor.border = border->getEditedState (); pedited->raw.bayersensor.ccSteps = ccSteps->getEditedState (); pedited->raw.bayersensor.method = method->get_active_text() != M("GENERAL_UNCHANGED"); pedited->raw.bayersensor.imageNum = imageNumber->get_active_text() != M("GENERAL_UNCHANGED"); @@ -426,6 +445,7 @@ void BayerProcess::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pe void BayerProcess::setAdjusterBehavior (bool falsecoloradd, bool iteradd, bool dualdemozecontrastadd, bool pssigmaadd, bool pssmoothadd, bool pseperisoadd) { + border->setAddMode(false); ccSteps->setAddMode(falsecoloradd); dcbIterations->setAddMode(iteradd); lmmseIterations->setAddMode(iteradd); @@ -437,6 +457,7 @@ void BayerProcess::setAdjusterBehavior (bool falsecoloradd, bool iteradd, bool d void BayerProcess::trimValues (rtengine::procparams::ProcParams* pp) { + border->trimValue(pp->raw.bayersensor.border); ccSteps->trimValue(pp->raw.bayersensor.ccSteps); dcbIterations->trimValue(pp->raw.bayersensor.dcb_iterations); lmmseIterations->trimValue(pp->raw.bayersensor.lmmse_iterations); @@ -457,6 +478,7 @@ void BayerProcess::setBatchMode(bool batchMode) imageNumber->append (M("GENERAL_UNCHANGED")); imageNumber->set_active_text (M("GENERAL_UNCHANGED")); ToolPanel::setBatchMode (batchMode); + border->showEditedCB (); ccSteps->showEditedCB (); dcbIterations->showEditedCB (); lmmseIterations->showEditedCB (); @@ -472,6 +494,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams dualDemosaicContrast->setDefault( defParams->raw.bayersensor.dualDemosaicContrast); pixelShiftEperIso->setDefault( defParams->raw.bayersensor.pixelShiftEperIso); pixelShiftSigma->setDefault( defParams->raw.bayersensor.pixelShiftSigma); + border->setDefault (defParams->raw.bayersensor.border); ccSteps->setDefault (defParams->raw.bayersensor.ccSteps); if (pedited) { @@ -480,6 +503,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams dualDemosaicContrast->setDefaultEditedState( pedited->raw.bayersensor.dualDemosaicContrast ? Edited : UnEdited); pixelShiftEperIso->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftEperIso ? Edited : UnEdited); pixelShiftSigma->setDefaultEditedState( pedited->raw.bayersensor.pixelShiftSigma ? Edited : UnEdited); + border->setDefaultEditedState(pedited->raw.bayersensor.border ? Edited : UnEdited); ccSteps->setDefaultEditedState(pedited->raw.bayersensor.ccSteps ? Edited : UnEdited); } else { dcbIterations->setDefaultEditedState( Irrelevant ); @@ -487,6 +511,7 @@ void BayerProcess::setDefaults(const rtengine::procparams::ProcParams* defParams dualDemosaicContrast->setDefaultEditedState( Irrelevant ); pixelShiftEperIso->setDefaultEditedState( Irrelevant ); pixelShiftSigma->setDefaultEditedState( Irrelevant ); + border->setDefaultEditedState(Irrelevant); ccSteps->setDefaultEditedState(Irrelevant ); } } @@ -508,6 +533,8 @@ void BayerProcess::adjusterChanged (Adjuster* a, double newval) listener->panelChanged (EvPixelShiftSigma, a->getTextValue() ); } else if (a == pixelShiftSmooth) { listener->panelChanged (EvPixelShiftSmooth, a->getTextValue() ); + } else if (a == border) { + listener->panelChanged (EvDemosaicBorder, a->getTextValue() ); } } } @@ -518,7 +545,7 @@ void BayerProcess::methodChanged () const RAWParams::BayerSensor::Method currentMethod = RAWParams::BayerSensor::Method(currentSelection); if (!batchMode) { - if (currentMethod == procparams::RAWParams::BayerSensor::Method::DCB) { + if (currentMethod == procparams::RAWParams::BayerSensor::Method::DCB || currentMethod == procparams::RAWParams::BayerSensor::Method::DCBVNG4) { dcbOptions->show(); } else { dcbOptions->hide(); @@ -530,7 +557,7 @@ void BayerProcess::methodChanged () lmmseOptions->hide(); } - if (currentMethod == procparams::RAWParams::BayerSensor::Method::AMAZEVNG4) { + if (currentMethod == procparams::RAWParams::BayerSensor::Method::AMAZEVNG4 || currentMethod == procparams::RAWParams::BayerSensor::Method::DCBVNG4 || currentMethod == procparams::RAWParams::BayerSensor::Method::RCDVNG4) { dualDemosaicOptions->show(); } else { dualDemosaicOptions->hide(); @@ -703,3 +730,4 @@ void BayerProcess::FrameCountChanged(int n, int frameNum) // } // imageNumber->block (false); } + diff --git a/rtgui/bayerprocess.h b/rtgui/bayerprocess.h index 2b3e420bc..cfd063ca9 100644 --- a/rtgui/bayerprocess.h +++ b/rtgui/bayerprocess.h @@ -31,7 +31,9 @@ class BayerProcess : public ToolParamBlock, public AdjusterListener, public Chec protected: MyComboBoxText* method; + Gtk::HBox* borderbox; Gtk::HBox *imageNumberBox; + Adjuster* border; MyComboBoxText* imageNumber; Adjuster* ccSteps; Gtk::VBox *dcbOptions; @@ -60,6 +62,8 @@ protected: int oldMethod; IdleRegister idle_register; + + rtengine::ProcEvent EvDemosaicBorder; rtengine::ProcEvent EvDemosaicContrast; rtengine::ProcEvent EvDemosaicPixelshiftDemosaicMethod; public: diff --git a/rtgui/blackwhite.cc b/rtgui/blackwhite.cc index 507d3aee6..469094fb8 100644 --- a/rtgui/blackwhite.cc +++ b/rtgui/blackwhite.cc @@ -179,18 +179,18 @@ BlackWhite::BlackWhite (): FoldableToolPanel(this, "blackwhite", M("TP_BWMIX_LAB //----------- RGB / ROYGCBPM Mixer ------------------------------ - imgIcon[0] = Gtk::manage (new RTImage ("Chanmixer-R.png")); - imgIcon[1] = Gtk::manage (new RTImage ("Chanmixer-O.png")); - imgIcon[2] = Gtk::manage (new RTImage ("Chanmixer-Y.png")); - imgIcon[3] = Gtk::manage (new RTImage ("Chanmixer-G.png")); - imgIcon[4] = Gtk::manage (new RTImage ("Chanmixer-C.png")); - imgIcon[5] = Gtk::manage (new RTImage ("Chanmixer-B.png")); - imgIcon[6] = Gtk::manage (new RTImage ("Chanmixer-P.png")); - imgIcon[7] = Gtk::manage (new RTImage ("Chanmixer-M.png")); + imgIcon[0] = Gtk::manage (new RTImage ("circle-red-small.png")); + imgIcon[1] = Gtk::manage (new RTImage ("circle-orange-small.png")); + imgIcon[2] = Gtk::manage (new RTImage ("circle-yellow-small.png")); + imgIcon[3] = Gtk::manage (new RTImage ("circle-green-small.png")); + imgIcon[4] = Gtk::manage (new RTImage ("circle-cyan-small.png")); + imgIcon[5] = Gtk::manage (new RTImage ("circle-blue-small.png")); + imgIcon[6] = Gtk::manage (new RTImage ("circle-purple-small.png")); + imgIcon[7] = Gtk::manage (new RTImage ("circle-magenta-small.png")); - imgIcon[8] = Gtk::manage (new RTImage ("Chanmixer-Rgamma.png")); - imgIcon[9] = Gtk::manage (new RTImage ("Chanmixer-Ggamma.png")); - imgIcon[10] = Gtk::manage (new RTImage ("Chanmixer-Bgamma.png")); + imgIcon[8] = Gtk::manage (new RTImage ("circle-empty-red-small.png")); + imgIcon[9] = Gtk::manage (new RTImage ("circle-empty-green-small.png")); + imgIcon[10] = Gtk::manage (new RTImage ("circle-empty-blue-small.png")); mixerVBox->pack_start (*Gtk::manage (new Gtk::HSeparator())); diff --git a/rtgui/cacorrection.cc b/rtgui/cacorrection.cc index e303b5660..ffaa57c34 100644 --- a/rtgui/cacorrection.cc +++ b/rtgui/cacorrection.cc @@ -26,10 +26,10 @@ using namespace rtengine::procparams; CACorrection::CACorrection () : FoldableToolPanel(this, "cacorrection", M("TP_CACORRECTION_LABEL")) { - Gtk::Image* icaredL = Gtk::manage (new RTImage ("ajd-ca-red1.png")); - Gtk::Image* icaredR = Gtk::manage (new RTImage ("ajd-ca-red2.png")); - Gtk::Image* icablueL = Gtk::manage (new RTImage ("ajd-ca-blue1.png")); - Gtk::Image* icablueR = Gtk::manage (new RTImage ("ajd-ca-blue2.png")); + Gtk::Image* icaredL = Gtk::manage (new RTImage ("circle-red-cyan-small.png")); + Gtk::Image* icaredR = Gtk::manage (new RTImage ("circle-cyan-red-small.png")); + Gtk::Image* icablueL = Gtk::manage (new RTImage ("circle-blue-yellow-small.png")); + Gtk::Image* icablueR = Gtk::manage (new RTImage ("circle-yellow-blue-small.png")); red = Gtk::manage (new Adjuster (M("TP_CACORRECTION_RED"), -0.005, 0.005, 0.0001, 0, icaredL, icaredR)); red->setAdjusterListener (this); diff --git a/rtgui/chmixer.cc b/rtgui/chmixer.cc index c6c098883..1e3bb395e 100644 --- a/rtgui/chmixer.cc +++ b/rtgui/chmixer.cc @@ -25,23 +25,24 @@ using namespace rtengine::procparams; ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL"), false, true) { - imgIcon[0] = Gtk::manage (new RTImage ("Chanmixer-RR.png")); - imgIcon[1] = Gtk::manage (new RTImage ("Chanmixer-RG.png")); - imgIcon[2] = Gtk::manage (new RTImage ("Chanmixer-RB.png")); - imgIcon[3] = Gtk::manage (new RTImage ("Chanmixer-GR.png")); - imgIcon[4] = Gtk::manage (new RTImage ("Chanmixer-GG.png")); - imgIcon[5] = Gtk::manage (new RTImage ("Chanmixer-GB.png")); - imgIcon[6] = Gtk::manage (new RTImage ("Chanmixer-BR.png")); - imgIcon[7] = Gtk::manage (new RTImage ("Chanmixer-BG.png")); - imgIcon[8] = Gtk::manage (new RTImage ("Chanmixer-BB.png")); + imgIcon[0] = Gtk::manage (new RTImage ("circle-red-small.png")); + imgIcon[1] = Gtk::manage (new RTImage ("circle-green-red-small.png")); + imgIcon[2] = Gtk::manage (new RTImage ("circle-blue-red-small.png")); + imgIcon[3] = Gtk::manage (new RTImage ("circle-red-green-small.png")); + imgIcon[4] = Gtk::manage (new RTImage ("circle-green-small.png")); + imgIcon[5] = Gtk::manage (new RTImage ("circle-blue-green-small.png")); + imgIcon[6] = Gtk::manage (new RTImage ("circle-red-blue-small.png")); + imgIcon[7] = Gtk::manage (new RTImage ("circle-green-blue-small.png")); + imgIcon[8] = Gtk::manage (new RTImage ("circle-blue-small.png")); Gtk::Label* rlabel = Gtk::manage (new Gtk::Label ()); rlabel->set_markup (Glib::ustring("\t") + M("TP_CHMIXER_RED") + Glib::ustring(":")); rlabel->set_alignment(Gtk::ALIGN_START); - red[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[0])); - red[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[1])); - red[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[2])); + constexpr double RANGE = 500.0; + red[0] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 100, imgIcon[0])); + red[1] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 0, imgIcon[1])); + red[2] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 0, imgIcon[2])); Gtk::HSeparator* rsep = Gtk::manage (new Gtk::HSeparator ()); @@ -58,9 +59,9 @@ ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL"), f glabel->set_alignment(Gtk::ALIGN_START); - green[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[3])); - green[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[4])); - green[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[5])); + green[0] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 0, imgIcon[3])); + green[1] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 100, imgIcon[4])); + green[2] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 0, imgIcon[5])); Gtk::HSeparator* gsep = Gtk::manage (new Gtk::HSeparator ()); @@ -75,9 +76,9 @@ ChMixer::ChMixer (): FoldableToolPanel(this, "chmixer", M("TP_CHMIXER_LABEL"), f Gtk::Label* blabel = Gtk::manage (new Gtk::Label ()); blabel->set_markup (Glib::ustring("\t") + M("TP_CHMIXER_BLUE") + Glib::ustring(":")); blabel->set_alignment(Gtk::ALIGN_START); - blue[0] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[6])); - blue[1] = Gtk::manage (new Adjuster ("", -200, 200, 1, 0, imgIcon[7])); - blue[2] = Gtk::manage (new Adjuster ("", -200, 200, 1, 100, imgIcon[8])); + blue[0] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 0, imgIcon[6])); + blue[1] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 0, imgIcon[7])); + blue[2] = Gtk::manage (new Adjuster ("", -RANGE, RANGE, 0.1, 100, imgIcon[8])); for (int i = 0; i < 3; i++) { red[i]->setAdjusterListener (this); @@ -111,9 +112,9 @@ void ChMixer::read (const ProcParams* pp, const ParamsEdited* pedited) } for (int i = 0; i < 3; i++) { - red[i]->setValue (pp->chmixer.red[i]); - green[i]->setValue (pp->chmixer.green[i]); - blue[i]->setValue (pp->chmixer.blue[i]); + red[i]->setValue (pp->chmixer.red[i] / 10.0); + green[i]->setValue (pp->chmixer.green[i] / 10.0); + blue[i]->setValue (pp->chmixer.blue[i] / 10.0); } enableListener (); @@ -123,9 +124,9 @@ void ChMixer::write (ProcParams* pp, ParamsEdited* pedited) { for (int i = 0; i < 3; i++) { - pp->chmixer.red[i] = (int) red[i]->getValue (); - pp->chmixer.green[i] = (int) green[i]->getValue (); - pp->chmixer.blue[i] = (int) blue[i]->getValue (); + pp->chmixer.red[i] = red[i]->getValue() * 10; + pp->chmixer.green[i] = green[i]->getValue() * 10; + pp->chmixer.blue[i] = blue[i]->getValue() * 10; } pp->chmixer.enabled = getEnabled(); @@ -143,9 +144,9 @@ void ChMixer::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi { for (int i = 0; i < 3; i++) { - red[i]->setDefault (defParams->chmixer.red[i]); - green[i]->setDefault (defParams->chmixer.green[i]); - blue[i]->setDefault (defParams->chmixer.blue[i]); + red[i]->setDefault (defParams->chmixer.red[i] / 10.f); + green[i]->setDefault (defParams->chmixer.green[i] / 10.f); + blue[i]->setDefault (defParams->chmixer.blue[i] / 10.f); } if (pedited) @@ -167,9 +168,9 @@ void ChMixer::adjusterChanged (Adjuster* a, double newval) if (listener && getEnabled()) { Glib::ustring descr = Glib::ustring::compose ("R=%1,%2,%3\nG=%4,%5,%6\nB=%7,%8,%9", - (int)red[0]->getValue(), (int)red[1]->getValue(), (int)red[2]->getValue(), - (int)green[0]->getValue(), (int)green[1]->getValue(), (int)green[2]->getValue(), - (int)blue[0]->getValue(), (int)blue[1]->getValue(), (int)blue[2]->getValue()); + red[0]->getValue(), red[1]->getValue(), red[2]->getValue(), + green[0]->getValue(), green[1]->getValue(), green[2]->getValue(), + blue[0]->getValue(), blue[1]->getValue(), blue[2]->getValue()); listener->panelChanged (EvChMixer, descr); } } @@ -215,8 +216,14 @@ void ChMixer::trimValues (rtengine::procparams::ProcParams* pp) { for (int i = 0; i < 3; i++) { - red[i]->trimValue(pp->chmixer.red[i]); - green[i]->trimValue(pp->chmixer.green[i]); - blue[i]->trimValue(pp->chmixer.blue[i]); + double r = pp->chmixer.red[i] / 10.0; + double g = pp->chmixer.green[i] / 10.0; + double b = pp->chmixer.blue[i] / 10.0; + red[i]->trimValue(r); + green[i]->trimValue(g); + blue[i]->trimValue(b); + pp->chmixer.red[i] = r * 10; + pp->chmixer.green[i] = g * 10; + pp->chmixer.blue[i] = b * 10; } } diff --git a/rtgui/coarsepanel.cc b/rtgui/coarsepanel.cc index a201b1f7f..8f927239e 100644 --- a/rtgui/coarsepanel.cc +++ b/rtgui/coarsepanel.cc @@ -28,25 +28,25 @@ CoarsePanel::CoarsePanel () : ToolPanel (), oldhflip(false), oldvflip(false) degree = 0; degreechanged = true; - Gtk::Image* rotateli = Gtk::manage (new RTImage ("stock-rotate-270.png")); + Gtk::Image* rotateli = Gtk::manage (new RTImage ("rotate-left-90.png")); rotate_left = Gtk::manage (new Gtk::Button ()); rotate_left->add (*rotateli); rotate_left->set_relief(Gtk::RELIEF_NONE); pack_start (*rotate_left); - Gtk::Image* rotateri = Gtk::manage (new RTImage ("stock-rotate-90.png")); + Gtk::Image* rotateri = Gtk::manage (new RTImage ("rotate-right-90.png")); rotate_right = Gtk::manage (new Gtk::Button ()); rotate_right->add (*rotateri); rotate_right->set_relief(Gtk::RELIEF_NONE); pack_start (*rotate_right); - Gtk::Image* fliphi = Gtk::manage (new RTImage ("stock-flip-horizontal.png")); + Gtk::Image* fliphi = Gtk::manage (new RTImage ("flip-horizontal.png")); hflip = Gtk::manage (new Gtk::ToggleButton ()); hflip->add (*fliphi); hflip->set_relief(Gtk::RELIEF_NONE); pack_start (*hflip); - Gtk::Image* flipvi = Gtk::manage (new RTImage ("stock-flip-vertical.png")); + Gtk::Image* flipvi = Gtk::manage (new RTImage ("flip-vertical.png")); vflip = Gtk::manage (new Gtk::ToggleButton ()); vflip->add (*flipvi); vflip->set_relief(Gtk::RELIEF_NONE); diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index f8dee05df..2e83d63d9 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -268,10 +268,10 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" wbmHBox->pack_start (*wbmodel); p1VBox->pack_start (*wbmHBox); - Gtk::Image* itempL = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* itempR = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* igreenL = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + Gtk::Image* itempL = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* itempR = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* igreenL = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenR = Gtk::manage (new RTImage ("circle-green-small.png")); tempsc = Gtk::manage (new Adjuster (M ("TP_WBALANCE_TEMPERATURE"), MINTEMP0, MAXTEMP0, 5, CENTERTEMP0, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider)); @@ -575,10 +575,10 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" p3VBox = Gtk::manage ( new Gtk::VBox()); p3VBox->set_spacing (2); - Gtk::Image* itempL1 = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* itempR1 = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + Gtk::Image* itempL1 = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* itempR1 = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("circle-green-small.png")); // adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTVIEWING"), 0.1, 16384., 0.1, 16.)); adaplum = Gtk::manage (new Adjuster (M ("TP_COLORAPP_ADAPTVIEWING"), MINLA0, MAXLA0, 0.01, 16, NULL, NULL, &wbSlider2la, &wbla2Slider)); @@ -590,8 +590,8 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" adaplum->set_tooltip_markup (M ("TP_COLORAPP_ADAPTVIEWING_TOOLTIP")); p3VBox->pack_start (*adaplum); -// Gtk::Image* iblueredL = Gtk::manage (new RTImage ("ajd-wb-bluered1.png")); -// Gtk::Image* iblueredR = Gtk::manage (new RTImage ("ajd-wb-bluered2.png")); +// Gtk::Image* iblueredL = Gtk::manage (new RTImage ("circle-blue-small.png")); +// Gtk::Image* iblueredR = Gtk::manage (new RTImage ("circle-red-small.png")); degreeout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 100.)); @@ -604,10 +604,10 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" degreeout->set_tooltip_markup (M ("TP_COLORAPP_DEGREE_TOOLTIP")); p3VBox->pack_start (*degreeout); /* - Gtk::Image* itempL1 = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* itempR1 = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + Gtk::Image* itempL1 = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* itempR1 = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* igreenL1 = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenR1 = Gtk::manage (new RTImage ("circle-green-small.png")); */ tempout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_TEMPERATURE"), MINTEMP0, MAXTEMP0, 5, CENTERTEMP0, itempR1, itempL1, &wbSlider2Temp, &wbTemp2Slider)); greenout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_GREEN"), MINGREEN0, MAXGREEN0, 0.001, 1.0, igreenR1, igreenL1)); @@ -669,7 +669,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" //reset button neutral = Gtk::manage (new Gtk::Button (M ("TP_COLORAPP_NEUTRAL"))); setExpandAlignProperties (neutral, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); - RTImage *resetImg = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")); + RTImage *resetImg = Gtk::manage (new RTImage ("undo-small.png", "redo-small.png")); setExpandAlignProperties (resetImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); neutral->set_image (*resetImg); neutral->set_tooltip_text (M ("TP_COLORAPP_NEUTRAL_TIP")); diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index a7f063460..7b3fb97df 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -104,8 +104,8 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR pack_start( *opacityCurveEditorG, Gtk::PACK_SHRINK, 2); //---------Chroma curve 1 -------------------- - iby = Gtk::manage (new RTImage ("Chanmixer-BY.png")); - irg = Gtk::manage (new RTImage ("Chanmixer-RG.png")); + iby = Gtk::manage (new RTImage ("circle-yellow-blue-small.png")); + irg = Gtk::manage (new RTImage ("circle-green-red-small.png")); clCurveEditorG = new CurveEditorGroup (options.lastColorToningCurvesDir, M("TP_COLORTONING_CHROMAC")); clCurveEditorG->setCurveListener (this); @@ -146,7 +146,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR //--------------------- Reset curves ----------------------------- /* Each curve can reset to a different curve, so this button only save one click now... so we remove it. neutralCurves = Gtk::manage (new Gtk::Button (M("TP_COLORTONING_NEUTRALCUR"))); - RTImage *resetImgc = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")); + RTImage *resetImgc = Gtk::manage (new RTImage ("undo-small.png", "redo-small.png")); neutralCurves->set_image(*resetImgc); neutralCurves->set_tooltip_text (M("TP_COLORTONING_NEUTRALCUR_TIP")); neutralcurvesconn = neutralCurves->signal_pressed().connect( sigc::mem_fun(*this, &ColorToning::neutralCurves_pressed) ); @@ -226,26 +226,26 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR Gtk::VBox *chanMixerMidBox = Gtk::manage (new Gtk::VBox()); Gtk::VBox *chanMixerShadowsBox = Gtk::manage (new Gtk::VBox()); - Gtk::Image* iblueR = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* iyelL = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* imagL = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png")); - Gtk::Image* icyanL = Gtk::manage (new RTImage ("ajd-wb-bluered1.png")); - Gtk::Image* iredR = Gtk::manage (new RTImage ("ajd-wb-bluered2.png")); + Gtk::Image* iblueR = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iyelL = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* imagL = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenR = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* icyanL = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iredR = Gtk::manage (new RTImage ("circle-red-small.png")); - Gtk::Image* iblueRm = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* iyelLm = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* imagLm = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenRm = Gtk::manage (new RTImage ("ajd-wb-green2.png")); - Gtk::Image* icyanLm = Gtk::manage (new RTImage ("ajd-wb-bluered1.png")); - Gtk::Image* iredRm = Gtk::manage (new RTImage ("ajd-wb-bluered2.png")); + Gtk::Image* iblueRm = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iyelLm = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* imagLm = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenRm = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* icyanLm = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iredRm = Gtk::manage (new RTImage ("circle-red-small.png")); - Gtk::Image* iblueRh = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* iyelLh = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* imagLh = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenRh = Gtk::manage (new RTImage ("ajd-wb-green2.png")); - Gtk::Image* icyanLh = Gtk::manage (new RTImage ("ajd-wb-bluered1.png")); - Gtk::Image* iredRh = Gtk::manage (new RTImage ("ajd-wb-bluered2.png")); + Gtk::Image* iblueRh = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iyelLh = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* imagLh = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenRh = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* icyanLh = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iredRh = Gtk::manage (new RTImage ("circle-red-small.png")); redhigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., icyanLh, iredRh )); greenhigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., imagLh , igreenRh)); @@ -324,7 +324,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR labgrid = Gtk::manage(new LabGrid(EvColorToningLabGridValue)); labgridBox->pack_start(*labgrid, true, true); labgridReset = Gtk::manage(new Gtk::Button ()); - labgridReset->add (*Gtk::manage(new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); + labgridReset->add (*Gtk::manage(new RTImage ("undo-small.png", "redo-small.png"))); setExpandAlignProperties(labgridReset, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_START); labgridReset->set_relief(Gtk::RELIEF_NONE); labgridReset->set_tooltip_markup(M("ADJUSTER_RESET_TO_DEFAULT")); @@ -377,7 +377,7 @@ void ColorToning::neutralCurves_pressed () { } */ -// Will only reset the chanel mixer +// Will only reset the channel mixer void ColorToning::neutral_pressed () { disableListener(); diff --git a/rtgui/controlspotpanel.cc b/rtgui/controlspotpanel.cc index b8927dba7..cf365b3e2 100644 --- a/rtgui/controlspotpanel.cc +++ b/rtgui/controlspotpanel.cc @@ -1036,7 +1036,7 @@ CursorShape ControlSpotPanel::getCursor(int objectID) return CSMove2D; default: - return CSOpenHand; + return CSHandOpen; } } diff --git a/rtgui/coordinateadjuster.h b/rtgui/coordinateadjuster.h index e6e16b7a2..08f2fb479 100644 --- a/rtgui/coordinateadjuster.h +++ b/rtgui/coordinateadjuster.h @@ -57,7 +57,7 @@ public: /** @brief Update the position of the edited point ; will trigger events * * @param pos New position - * @param chanIdx Chanel index as given in the std::vector upon instantiation + * @param chanIdx Channel index as given in the std::vector upon instantiation */ virtual void setPos(double pos, int chanIdx) = 0; virtual void stopNumericalAdjustment() = 0; @@ -91,7 +91,7 @@ public: // used to update the AxisAdjuster's parameters void updateGUI(const Axis &axis); - // useed to update the displayed value + // used to update the displayed value void setValue(double newValue); //bool keyPressed(GdkEventKey* event); void valueChanged(); diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 29c64501d..7205fc3ad 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -128,7 +128,8 @@ Crop::Crop(): pack_start (*hb2, Gtk::PACK_SHRINK, 4); selectCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_SELECTCROP"))); - selectCrop->set_image (*Gtk::manage (new RTImage ("crop.png"))); + selectCrop->get_style_context()->add_class("independent"); + selectCrop->set_image (*Gtk::manage (new RTImage ("crop-small.png"))); pack_start (*selectCrop, Gtk::PACK_SHRINK, 2); @@ -629,7 +630,7 @@ void Crop::ratioFixedChanged () void Crop::ratioChanged () { if (!fixr->get_active ()) { - fixr->set_active(true); // will ajust ratio anyway + fixr->set_active(true); // will adjust ratio anyway } else { adjustCropToRatio(); } diff --git a/rtgui/crophandler.h b/rtgui/crophandler.h index 17f2ca47d..305d15e2c 100644 --- a/rtgui/crophandler.h +++ b/rtgui/crophandler.h @@ -97,8 +97,8 @@ public: rtengine::procparams::CropParams cropParams; rtengine::procparams::ColorManagementParams colorParams; - Glib::RefPtr cropPixbuf; - Glib::RefPtr cropPixbuftrue; + Glib::RefPtr cropPixbuf; // image displayed on monitor, using the monitor profile (i.e. lab to monitor profile) + Glib::RefPtr cropPixbuftrue; // internal image in output color space for analysis (i.e. lab to either Working profile or Output profile, depending on options.rtSettings.HistogramWorking) MyMutex cimg; diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 08ea9d0f7..69d7a98b4 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -57,11 +57,11 @@ CropWindow::CropWindow (ImageArea* parent, bool isLowUpdatePriority_, bool isDet titleHeight = ih; - bZoomOut = new LWButton (RTImage::createFromPng ("gtk-zoom-out-small.png"), 0, nullptr, LWButton::Left, LWButton::Center, "Zoom Out"); - bZoomIn = new LWButton (RTImage::createFromPng ("gtk-zoom-in-small.png"), 1, nullptr, LWButton::Left, LWButton::Center, "Zoom In"); - bZoom100 = new LWButton (RTImage::createFromPng ("gtk-zoom-100-small.png"), 2, nullptr, LWButton::Left, LWButton::Center, "Zoom 100/%"); - //bZoomFit = new LWButton (RTImage::createFromPng ("gtk-zoom-fit.png"), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit"); - bClose = new LWButton (RTImage::createFromPng ("gtk-close-small.png"), 4, nullptr, LWButton::Right, LWButton::Center, "Close"); + bZoomOut = new LWButton (RTImage::createFromPng ("magnifier-minus-small.png"), 0, nullptr, LWButton::Left, LWButton::Center, "Zoom Out"); + bZoomIn = new LWButton (RTImage::createFromPng ("magnifier-plus-small.png"), 1, nullptr, LWButton::Left, LWButton::Center, "Zoom In"); + bZoom100 = new LWButton (RTImage::createFromPng ("magnifier-1to1-small.png"), 2, nullptr, LWButton::Left, LWButton::Center, "Zoom 100/%"); + //bZoomFit = new LWButton (RTImage::createFromPng ("magnifier-fit.png"), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit"); + bClose = new LWButton (RTImage::createFromPng ("cancel-small.png"), 4, nullptr, LWButton::Right, LWButton::Center, "Close"); buttonSet.add (bZoomOut); buttonSet.add (bZoomIn); @@ -362,7 +362,7 @@ void CropWindow::buttonPress (int button, int type, int bstate, int x, int y) // Add a new Color Picker rtengine::Coord imgPos; screenCoordToImage(x, y, imgPos.x, imgPos.y); - LockableColorPicker *newPicker = new LockableColorPicker(this, &cropHandler.colorParams.output, &cropHandler.colorParams.working); + LockableColorPicker *newPicker = new LockableColorPicker(this, &cropHandler.colorParams.outputProfile, &cropHandler.colorParams.workingProfile); colorPickers.push_back(newPicker); hoveredPicker = newPicker; updateHoveredPicker(&imgPos); @@ -754,10 +754,6 @@ void CropWindow::buttonRelease (int button, int num, int bstate, int x, int y) } iarea->setToolHand (); - - if (pmhlistener) { - pmhlistener->toggleFreeze(); - } } state = SNormal; @@ -1007,23 +1003,25 @@ void CropWindow::pointerMoved (int bstate, int x, int y) int mx, my; screenCoordToImage (x, y, mx, my); - if (!onArea (CropImage, x, y) || !cropHandler.cropPixbuf) { + MyMutex::MyLock lock(cropHandler.cimg); + + if (!onArea (CropImage, x, y) || !cropHandler.cropPixbuftrue) { cropHandler.getFullImageSize(mx, my); // pmlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1); // if (pmhlistener) pmhlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1); /* Glib::ustring outputProfile; outputProfile =cropHandler.colorParams.output ; printf("Using \"%s\" output\n", outputProfile.c_str()); - if(outputProfile=="RT_sRGB") printf("OK SRGB2"); + if(outputProfile==options.rtSettings.srgb) printf("OK SRGB2"); */ - pmlistener->pointerMoved (false, cropHandler.colorParams.output, cropHandler.colorParams.working, mx, my, -1, -1, -1); + pmlistener->pointerMoved (false, cropHandler.colorParams.outputProfile, cropHandler.colorParams.workingProfile, mx, my, -1, -1, -1); if (pmhlistener) { - pmhlistener->pointerMoved (false, cropHandler.colorParams.output, cropHandler.colorParams.working, mx, my, -1, -1, -1); + pmhlistener->pointerMoved (false, cropHandler.colorParams.outputProfile, cropHandler.colorParams.workingProfile, mx, my, -1, -1, -1); } } else { - /*MyMutex::MyLock lock(cropHandler.cimg); + /* int vx = x - xpos - imgX; int vy = y - ypos - imgY; @@ -1033,7 +1031,6 @@ void CropWindow::pointerMoved (int bstate, int x, int y) */ - cropHandler.cimg.lock (); int vx = x - xpos - imgX; int vy = y - ypos - imgY; @@ -1045,34 +1042,35 @@ void CropWindow::pointerMoved (int bstate, int x, int y) // guint8* pix = cropHandler.cropPixbuf->get_pixels() + vy*cropHandler.cropPixbuf->get_rowstride() + vx*3; // if (vx < cropHandler.cropPixbuf->get_width() && vy < cropHandler.cropPixbuf->get_height()) // pmlistener->pointerMoved (true, mx, my, pix[0], pix[1], pix[2]); - int imwidth = cropHandler.cropPixbuf->get_width(); - int imheight = cropHandler.cropPixbuf->get_height(); - guint8* pix = cropHandler.cropPixbuftrue->get_pixels() + vy * cropHandler.cropPixbuf->get_rowstride() + vx * 3; + int imwidth = cropHandler.cropPixbuftrue->get_width(); + int imheight = cropHandler.cropPixbuftrue->get_height(); + guint8* pix = cropHandler.cropPixbuftrue->get_pixels() + vy * cropHandler.cropPixbuftrue->get_rowstride() + vx * 3; int rval = pix[0]; int gval = pix[1]; int bval = pix[2]; + bool isRaw = false; if (vx < imwidth && vy < imheight) { rtengine::StagedImageProcessor* ipc = iarea->getImProcCoordinator(); if(ipc) { procparams::ProcParams params; ipc->getParams(¶ms); - if(params.raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) || params.raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE)) { + isRaw = params.raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) || params.raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::NONE); + if(isRaw) { ImageSource *isrc = static_cast(ipc->getInitialImage()); isrc->getRawValues(mx, my, params.coarse.rotate, rval, gval, bval); } } - // pmlistener->pointerMoved (true, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]); - pmlistener->pointerMoved (true, cropHandler.colorParams.output, cropHandler.colorParams.working, mx, my, rval, gval, bval); - if (pmhlistener) - // pmhlistener->pointerMoved (true, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]); - { - pmhlistener->pointerMoved (true, cropHandler.colorParams.output, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]); + // Updates the Navigator + // TODO: possible double color conversion if rval, gval, bval come from cropHandler.cropPixbuftrue ? see issue #4583 + pmlistener->pointerMoved (true, cropHandler.colorParams.outputProfile, cropHandler.colorParams.workingProfile, mx, my, rval, gval, bval, isRaw); + + if (pmhlistener) { + // Updates the HistogramRGBArea + pmhlistener->pointerMoved (true, cropHandler.colorParams.outputProfile, cropHandler.colorParams.workingProfile, mx, my, rval, gval, bval); } } - - cropHandler.cimg.unlock (); } } } @@ -1251,7 +1249,7 @@ void CropWindow::updateCursor (int x, int y) if (onArea (CropObserved, x, y)) { newType = CSMove; } else { - newType = CSOpenHand; + newType = CSCrosshair; } } else if (tm == TMSpotWB) { newType = CSSpotWB; @@ -1284,7 +1282,7 @@ void CropWindow::updateCursor (int x, int y) } else if (state == SCropMove || state == SCropWinMove || state == SObservedMove) { newType = CSMove; } else if (state == SHandMove || state == SCropImgMove) { - newType = CSClosedHand; + newType = CSHandClosed; } else if (state == SResizeW1 || state == SResizeW2) { newType = CSResizeWidth; } else if (state == SResizeH1 || state == SResizeH2) { @@ -1379,7 +1377,7 @@ void CropWindow::expose (Cairo::RefPtr cr) break; } } - bool useBgColor = (state == SNormal); + bool useBgColor = (state == SNormal || state == SDragPicker || state == SDeletePicker || state == SEditDrag1); if (cropHandler.cropPixbuf) { imgW = cropHandler.cropPixbuf->get_width (); diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index 29d0990ff..34efbcac8 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -36,40 +36,45 @@ void CursorManager::init (Glib::RefPtr mainWindow) #endif - cResizeWidth = Gdk::Cursor::create (display, Gdk::SB_H_DOUBLE_ARROW); - cResizeHeight = Gdk::Cursor::create (display, Gdk::SB_V_DOUBLE_ARROW); - cResizeDiag = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); - cResizeTopLeft = Gdk::Cursor::create (display, Gdk::TOP_LEFT_CORNER); - cResizeTopRight = Gdk::Cursor::create (display, Gdk::TOP_RIGHT_CORNER); - cResizeBottomLeft = Gdk::Cursor::create (display, Gdk::BOTTOM_LEFT_CORNER); - cResizeBottomRight = Gdk::Cursor::create (display, Gdk::BOTTOM_RIGHT_CORNER); - cCropMove = Gdk::Cursor::create (display, Gdk::FLEUR); - cCropMoving = Gdk::Cursor::create (display, Gdk::HAND2); - cCropSelection = Gdk::Cursor::create (display, Gdk::CROSSHAIR); - cLeftTanMove = Gdk::Cursor::create (display, Gdk::SB_LEFT_ARROW); - cRightTanMove = Gdk::Cursor::create (display, Gdk::SB_RIGHT_ARROW); - cAdd = Gdk::Cursor::create (display, Gdk::PLUS); - cWait = Gdk::Cursor::create (display, Gdk::CLOCK); + Glib::RefPtr add = RTImage::createFromFile("crosshair-small.png"); + Glib::RefPtr colPick = RTImage::createFromFile("color-picker-hicontrast.png"); + Glib::RefPtr colPickAdd = RTImage::createFromFile("color-picker-add-hicontrast.png"); + Glib::RefPtr cropDraw = RTImage::createFromFile("crop-point-hicontrast.png"); + Glib::RefPtr crosshair = RTImage::createFromFile("crosshair-hicontrast.png"); + Glib::RefPtr empty = RTImage::createFromFile("empty.png"); + Glib::RefPtr handClosed = RTImage::createFromFile("hand-closed-hicontrast.png"); + Glib::RefPtr handOpen = RTImage::createFromFile("hand-open-hicontrast.png"); + Glib::RefPtr moveBL = RTImage::createFromFile("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr moveBR = RTImage::createFromFile("node-move-nw-se-hicontrast.png"); + Glib::RefPtr moveL = RTImage::createFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveR = RTImage::createFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveTL = RTImage::createFromFile("node-move-nw-se-hicontrast.png"); + Glib::RefPtr moveTR = RTImage::createFromFile("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr moveX = RTImage::createFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveXY = RTImage::createFromFile("node-move-xy-hicontrast.png"); + Glib::RefPtr moveY = RTImage::createFromFile("node-move-y-hicontrast.png"); + Glib::RefPtr rotate = RTImage::createFromFile("rotate-aroundnode-hicontrast.png"); + Glib::RefPtr wait = RTImage::createFromFile("gears.png"); // Currently unused, create *-hicontrast once used. - Glib::RefPtr hand = RTImage::createFromFile ("cross.png"); - Glib::RefPtr close_hand = RTImage::createFromFile ("closedhand.png"); - Glib::RefPtr wbpick = RTImage::createFromFile ("gtk-color-picker-small.png"); - Glib::RefPtr cpick = RTImage::createFromFile ("gtk-color-picker-add.png"); - Glib::RefPtr empty = RTImage::createFromFile ("empty.png"); - Glib::RefPtr move2D = RTImage::createFromFile ("move-2D.png"); - Glib::RefPtr move1DH = RTImage::createFromFile ("move-1D-h.png"); - Glib::RefPtr move1DV = RTImage::createFromFile ("move-1D-v.png"); - Glib::RefPtr moveRotate = RTImage::createFromFile ("move-rotate.png"); - - cHand = hand ? Gdk::Cursor::create (cAdd->get_display(), hand, 10, 10) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cClosedHand = close_hand ? Gdk::Cursor::create (cAdd->get_display(), close_hand, 10, 10) : Gdk::Cursor::create (cAdd->get_display(), Gdk::HAND2); - cWB = wbpick ? Gdk::Cursor::create (cAdd->get_display(), wbpick, 3, 15) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); - cAddPicker = cpick ? Gdk::Cursor::create (cAdd->get_display(), cpick, 3, 18) : Gdk::Cursor::create (cAdd->get_display(), Gdk::ARROW); - cHidden = empty ? Gdk::Cursor::create (cAdd->get_display(), empty, 12, 12) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMove2D = move2D ? Gdk::Cursor::create (cAdd->get_display(), move2D, 11, 11) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMove1DH = move1DH ? Gdk::Cursor::create (cAdd->get_display(), move1DH, 11, 11) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMove1DV = move1DV ? Gdk::Cursor::create (cAdd->get_display(), move1DV, 11, 11) : Gdk::Cursor::create (cAdd->get_display(), Gdk::FLEUR); - cMoveRotate = moveRotate ? Gdk::Cursor::create (cAdd->get_display(), moveRotate, 11, 11) : Gdk::Cursor::create (cAdd->get_display(), Gdk::CIRCLE); + cAdd = add ? Gdk::Cursor::create(display, add, 8, 8) : Gdk::Cursor::create(display, Gdk::PLUS); + cAddPicker = colPickAdd ? Gdk::Cursor::create(display, colPickAdd, 4, 21) : Gdk::Cursor::create(display, Gdk::PLUS); + cCropDraw = cropDraw ? Gdk::Cursor::create(display, cropDraw, 3, 3) : Gdk::Cursor::create(display, Gdk::DIAMOND_CROSS); + cCrosshair = crosshair ? Gdk::Cursor::create(display, crosshair, 12, 12) : Gdk::Cursor::create(display, Gdk::CROSSHAIR); + cEmpty = empty ? Gdk::Cursor::create(display, empty, 12, 12) : Gdk::Cursor::create(display, Gdk::BLANK_CURSOR); + cHandClosed = handClosed ? Gdk::Cursor::create(display, handClosed, 12, 12) : Gdk::Cursor::create(display, Gdk::HAND1); + cHandOpen = handOpen ? Gdk::Cursor::create(display, handOpen, 12, 12) : Gdk::Cursor::create(display, Gdk::HAND2); + cMoveBL = moveBL ? Gdk::Cursor::create(display, moveBL, 12, 12) : Gdk::Cursor::create(display, Gdk::BOTTOM_LEFT_CORNER); + cMoveBR = moveBR ? Gdk::Cursor::create(display, moveBR, 12, 12) : Gdk::Cursor::create(display, Gdk::BOTTOM_RIGHT_CORNER); + cMoveL = moveL ? Gdk::Cursor::create(display, moveL, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_LEFT_ARROW); + cMoveR = moveR ? Gdk::Cursor::create(display, moveR, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_RIGHT_ARROW); + cMoveTL = moveTL ? Gdk::Cursor::create(display, moveTL, 12, 12) : Gdk::Cursor::create(display, Gdk::TOP_LEFT_CORNER); + cMoveTR = moveTR ? Gdk::Cursor::create(display, moveTR, 12, 12) : Gdk::Cursor::create(display, Gdk::TOP_RIGHT_CORNER); + cMoveX = moveX ? Gdk::Cursor::create(display, moveX, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_H_DOUBLE_ARROW); + cMoveXY = moveXY ? Gdk::Cursor::create(display, moveXY, 12, 12) : Gdk::Cursor::create(display, Gdk::FLEUR); + cMoveY = moveY ? Gdk::Cursor::create(display, moveY, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_V_DOUBLE_ARROW); + cRotate = rotate ? Gdk::Cursor::create(display, rotate, 12, 12) : Gdk::Cursor::create(display, Gdk::EXCHANGE); + cWB = colPick ? Gdk::Cursor::create(display, colPick, 4, 21) : Gdk::Cursor::create(display, Gdk::TARGET); + cWait = wait ? Gdk::Cursor::create(display, wait, 12, 12) : Gdk::Cursor::create(display, Gdk::CLOCK); window = mainWindow; } @@ -77,57 +82,87 @@ void CursorManager::init (Glib::RefPtr mainWindow) /* Set the cursor of the given window */ void CursorManager::setCursor (Glib::RefPtr window, CursorShape shape) { - - if (shape == CSArrow) - // set_cursor without any arguments to select system default + switch (shape) { - window->set_cursor (); - } else if (shape == CSOpenHand) { - window->set_cursor (cHand); - } else if (shape == CSClosedHand) { - window->set_cursor (cClosedHand); - } else if (shape == CSMove) { - window->set_cursor (cCropMove); - } else if (shape == CSResizeWidth) { - window->set_cursor (cResizeWidth); - } else if (shape == CSResizeHeight) { - window->set_cursor (cResizeHeight); - } else if (shape == CSResizeDiagonal) { - window->set_cursor (cResizeDiag); - } else if (shape == CSResizeTopLeft) { - window->set_cursor (cResizeTopLeft); - } else if (shape == CSResizeTopRight) { - window->set_cursor (cResizeTopRight); - } else if (shape == CSResizeBottomLeft) { - window->set_cursor (cResizeBottomLeft); - } else if (shape == CSResizeBottomRight) { - window->set_cursor (cResizeBottomRight); - } else if (shape == CSMove2D) { - window->set_cursor (cMove2D); - } else if (shape == CSMove1DH) { - window->set_cursor (cMove1DH); - } else if (shape == CSMove1DV) { - window->set_cursor (cMove1DV); - } else if (shape == CSMoveRotate) { - window->set_cursor (cMoveRotate); - } else if (shape == CSSpotWB) { - window->set_cursor (cWB); - } else if (shape == CSAddColPicker) { - window->set_cursor (cAddPicker); - } else if (shape == CSCropSelect) { - window->set_cursor (cHand); - } else if (shape == CSMoveLeft) { - window->set_cursor (cLeftTanMove); - } else if (shape == CSMoveRight) { - window->set_cursor (cRightTanMove); - } else if (shape == CSStraighten) { - window->set_cursor (cHand); - } else if (shape == CSWait) { - window->set_cursor (cWait); - } else if (shape == CSPlus) { - window->set_cursor (cAdd); - } else if (shape == CSEmpty) { - window->set_cursor (cHidden); + case CursorShape::CSAddColPicker: + window->set_cursor(cAddPicker); + break; + case CursorShape::CSArrow: + window->set_cursor(); // set_cursor without any arguments to select system default + break; + case CursorShape::CSCropSelect: + window->set_cursor(cCropDraw); + break; + case CursorShape::CSCrosshair: + window->set_cursor(cCrosshair); + break; + case CursorShape::CSEmpty: + window->set_cursor(cEmpty); + break; + case CursorShape::CSHandClosed: + window->set_cursor(cHandClosed); + break; + case CursorShape::CSHandOpen: + window->set_cursor(cHandOpen); + break; + case CursorShape::CSMove: + window->set_cursor(cHandClosed); + break; + case CursorShape::CSMove1DH: + window->set_cursor(cMoveX); + break; + case CursorShape::CSMove1DV: + window->set_cursor(cMoveY); + break; + case CursorShape::CSMove2D: + window->set_cursor(cMoveXY); + break; + case CursorShape::CSMoveLeft: + window->set_cursor(cMoveL); + break; + case CursorShape::CSMoveRight: + window->set_cursor(cMoveR); + break; + case CursorShape::CSMoveRotate: + window->set_cursor(cRotate); + break; + case CursorShape::CSPlus: + window->set_cursor(cAdd); + break; + case CursorShape::CSResizeBottomLeft: + window->set_cursor(cMoveBL); + break; + case CursorShape::CSResizeBottomRight: + window->set_cursor(cMoveBR); + break; + case CursorShape::CSResizeDiagonal: + window->set_cursor(cMoveXY); + break; + case CursorShape::CSResizeHeight: + window->set_cursor(cMoveY); + break; + case CursorShape::CSResizeTopLeft: + window->set_cursor(cMoveTL); + break; + case CursorShape::CSResizeTopRight: + window->set_cursor(cMoveTR); + break; + case CursorShape::CSResizeWidth: + window->set_cursor(cMoveX); + break; + case CursorShape::CSSpotWB: + window->set_cursor(cWB); + break; + case CursorShape::CSStraighten: + window->set_cursor(cRotate); + break; + case CursorShape::CSUndefined: + break; + case CursorShape::CSWait: + window->set_cursor(cWait); + break; + default: + window->set_cursor(cCrosshair); } } diff --git a/rtgui/cursormanager.h b/rtgui/cursormanager.h index fcd856509..7d3f068b2 100644 --- a/rtgui/cursormanager.h +++ b/rtgui/cursormanager.h @@ -22,41 +22,57 @@ #include enum CursorShape { - CSUndefined, CSArrow, CSOpenHand, CSClosedHand, CSMove, CSMoveLeft, - CSMoveRight, CSResizeWidth, CSResizeHeight, CSResizeDiagonal, - CSResizeTopLeft, CSResizeTopRight, CSResizeBottomLeft, CSResizeBottomRight, - CSMove2D, CSMove1DH, CSMove1DV, CSMoveRotate, - CSSpotWB, CSAddColPicker, CSCropSelect, CSStraighten, CSPlus, CSWait, CSEmpty + CSAddColPicker, + CSArrow, + CSCropSelect, + CSCrosshair, + CSEmpty, + CSHandClosed, + CSHandOpen, + CSMove, + CSMove1DH, + CSMove1DV, + CSMove2D, + CSMoveLeft, + CSMoveRight, + CSMoveRotate, + CSPlus, + CSResizeBottomLeft, + CSResizeBottomRight, + CSResizeDiagonal, + CSResizeHeight, + CSResizeTopLeft, + CSResizeTopRight, + CSResizeWidth, + CSSpotWB, + CSStraighten, + CSUndefined, + CSWait }; class CursorManager { private: - Glib::RefPtr cResizeWidth; - Glib::RefPtr cResizeHeight; - Glib::RefPtr cResizeDiag; - Glib::RefPtr cResizeTopLeft; - Glib::RefPtr cResizeTopRight; - Glib::RefPtr cResizeBottomLeft; - Glib::RefPtr cResizeBottomRight; - Glib::RefPtr cCropMove; - Glib::RefPtr cCropMoving; - Glib::RefPtr cLeftTanMove; - Glib::RefPtr cRightTanMove; - Glib::RefPtr cNormal; - Glib::RefPtr cCropSelection; Glib::RefPtr cAdd; - Glib::RefPtr cWait; - Glib::RefPtr cHand; - Glib::RefPtr cClosedHand; - Glib::RefPtr cWB; Glib::RefPtr cAddPicker; - Glib::RefPtr cHidden; - Glib::RefPtr cMove2D; - Glib::RefPtr cMove1DH; - Glib::RefPtr cMove1DV; - Glib::RefPtr cMoveRotate; + Glib::RefPtr cCropDraw; + Glib::RefPtr cCrosshair; + Glib::RefPtr cHandClosed; + Glib::RefPtr cHandOpen; + Glib::RefPtr cEmpty; + Glib::RefPtr cMoveBL; + Glib::RefPtr cMoveBR; + Glib::RefPtr cMoveL; + Glib::RefPtr cMoveR; + Glib::RefPtr cMoveTL; + Glib::RefPtr cMoveTR; + Glib::RefPtr cMoveX; + Glib::RefPtr cMoveY; + Glib::RefPtr cMoveXY; + Glib::RefPtr cRotate; + Glib::RefPtr cWB; + Glib::RefPtr cWait; Glib::RefPtr display; Glib::RefPtr window; diff --git a/rtgui/curveeditor.cc b/rtgui/curveeditor.cc index 9f2dbffab..a65f8b451 100644 --- a/rtgui/curveeditor.cc +++ b/rtgui/curveeditor.cc @@ -34,10 +34,10 @@ DiagonalCurveEditor::DiagonalCurveEditor (Glib::ustring text, CurveEditorGroup* { // Order set in the same order than "enum DiagonalCurveType". Shouldn't change, for compatibility reason - curveType->addEntry("curveType-linear.png", M("CURVEEDITOR_LINEAR")); // 0 Linear - curveType->addEntry("curveType-spline.png", M("CURVEEDITOR_CUSTOM")); // 1 Spline - curveType->addEntry("curveType-parametric.png", M("CURVEEDITOR_PARAMETRIC")); // 2 Parametric - curveType->addEntry("curveType-NURBS.png", M("CURVEEDITOR_NURBS")); // 3 NURBS + curveType->addEntry("curve-linear-small.png", M("CURVEEDITOR_LINEAR")); // 0 Linear + curveType->addEntry("curve-spline-small.png", M("CURVEEDITOR_CUSTOM")); // 1 Spline + curveType->addEntry("curve-parametric-small.png", M("CURVEEDITOR_PARAMETRIC")); // 2 Parametric + curveType->addEntry("curve-nurbs-small.png", M("CURVEEDITOR_NURBS")); // 3 NURBS curveType->setSelected(DCT_Linear); curveType->show(); @@ -145,8 +145,8 @@ FlatCurveEditor::FlatCurveEditor (Glib::ustring text, CurveEditorGroup* ceGroup, identityValue = 0.5; // Order set in the same order than "enum FlatCurveType". Shouldn't change, for compatibility reason - curveType->addEntry("curveType-flatLinear.png", M("CURVEEDITOR_LINEAR")); // 0 Linear - curveType->addEntry("curveType-controlPoints.png", M("CURVEEDITOR_MINMAXCPOINTS")); // 1 Min/Max ControlPoints + curveType->addEntry("curve-flat-small.png", M("CURVEEDITOR_LINEAR")); // 0 Linear + curveType->addEntry("curve-controlpoints-small.png", M("CURVEEDITOR_MINMAXCPOINTS")); // 1 Min/Max ControlPoints curveType->setSelected(FCT_Linear); curveType->show(); } @@ -443,5 +443,5 @@ CursorShape CurveEditor::getCursor(const int objectID) return CSResizeHeight; } - return CSOpenHand; + return CSHandOpen; } diff --git a/rtgui/curveeditorgroup.cc b/rtgui/curveeditorgroup.cc index e8f636f8b..4e5f038d6 100644 --- a/rtgui/curveeditorgroup.cc +++ b/rtgui/curveeditorgroup.cc @@ -152,7 +152,7 @@ void CurveEditorGroup::newLine() if (isHeader) { curve_reset = Gtk::manage (new Gtk::Button ()); setExpandAlignProperties(curve_reset, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - curve_reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); + curve_reset->add (*Gtk::manage (new RTImage ("undo-small.png", "redo-small.png"))); curve_reset->set_relief (Gtk::RELIEF_NONE); curve_reset->set_tooltip_text (M("CURVEEDITOR_TOOLTIPLINEAR")); curve_reset->signal_clicked().connect( sigc::mem_fun(*this, &CurveEditorGroup::curveResetPressed) ); @@ -370,7 +370,7 @@ void CurveEditorGroup::setTooltip( Glib::ustring ttip) void CurveEditorGroup::setBatchMode (bool batchMode) { for (std::vector::iterator i = curveEditors.begin(); i != curveEditors.end(); ++i) { - (*i)->curveType->addEntry("unchanged-18.png", M("GENERAL_UNCHANGED")); + (*i)->curveType->addEntry("template-24.png", M("GENERAL_UNCHANGED")); (*i)->curveType->show(); } } diff --git a/rtgui/darkframe.cc b/rtgui/darkframe.cc index 9f1f61d18..d0f2e9ed0 100644 --- a/rtgui/darkframe.cc +++ b/rtgui/darkframe.cc @@ -33,7 +33,7 @@ DarkFrame::DarkFrame () : FoldableToolPanel(this, "darkframe", M("TP_DARKFRAME_L bindCurrentFolder (*darkFrameFile, options.lastDarkframeDir); dfLabel = Gtk::manage(new Gtk::Label(M("GENERAL_FILE"))); btnReset = Gtk::manage(new Gtk::Button()); - btnReset->set_image (*Gtk::manage(new RTImage ("gtk-cancel.png"))); + btnReset->set_image (*Gtk::manage(new RTImage ("cancel-small.png"))); hbdf->pack_start(*dfLabel, Gtk::PACK_SHRINK, 0); hbdf->pack_start(*darkFrameFile); hbdf->pack_start(*btnReset, Gtk::PACK_SHRINK, 0); diff --git a/rtgui/diagonalcurveeditorsubgroup.cc b/rtgui/diagonalcurveeditorsubgroup.cc index 43a58b674..6455f6cb9 100644 --- a/rtgui/diagonalcurveeditorsubgroup.cc +++ b/rtgui/diagonalcurveeditorsubgroup.cc @@ -67,18 +67,18 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, } editPointCustom = Gtk::manage (new Gtk::ToggleButton ()); - initButton(*editPointCustom, Glib::ustring("gtk-edit.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); + initButton(*editPointCustom, Glib::ustring("edit-point.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); editCustom = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editCustom, Glib::ustring("editmodehand.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editCustom, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editCustom->hide(); copyCustom = Gtk::manage (new Gtk::Button ()); - initButton(*copyCustom, Glib::ustring("edit-copy.png"), Gtk::ALIGN_END, true); + initButton(*copyCustom, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); pasteCustom = Gtk::manage (new Gtk::Button ()); - initButton(*pasteCustom, Glib::ustring("edit-paste.png"), Gtk::ALIGN_END, false); + initButton(*pasteCustom, Glib::ustring("paste.png"), Gtk::ALIGN_END, false); loadCustom = Gtk::manage (new Gtk::Button ()); - initButton(*loadCustom, Glib::ustring("gtk-open.png"), Gtk::ALIGN_END, false); + initButton(*loadCustom, Glib::ustring("folder-open.png"), Gtk::ALIGN_END, false); saveCustom = Gtk::manage (new Gtk::Button ()); - initButton(*saveCustom, Glib::ustring("gtk-save-large.png"), Gtk::ALIGN_END, false); + initButton(*saveCustom, Glib::ustring("save.png"), Gtk::ALIGN_END, false); custombbox->attach_next_to(*editPointCustom, sideStart, 1, 1); custombbox->attach_next_to(*editCustom, sideStart, 1, 1); @@ -144,18 +144,18 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, } editPointNURBS = Gtk::manage (new Gtk::ToggleButton ()); - initButton(*editPointNURBS, Glib::ustring("gtk-edit.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); + initButton(*editPointNURBS, Glib::ustring("edit-point.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); editNURBS = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editNURBS, Glib::ustring("editmodehand.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editNURBS, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editNURBS->hide(); copyNURBS = Gtk::manage (new Gtk::Button ()); - initButton(*copyNURBS, Glib::ustring("edit-copy.png"), Gtk::ALIGN_END, true); + initButton(*copyNURBS, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); pasteNURBS = Gtk::manage (new Gtk::Button ()); - initButton(*pasteNURBS, Glib::ustring("edit-paste.png"), Gtk::ALIGN_END, false); + initButton(*pasteNURBS, Glib::ustring("paste.png"), Gtk::ALIGN_END, false); loadNURBS = Gtk::manage (new Gtk::Button ()); - initButton(*loadNURBS, Glib::ustring("gtk-open.png"), Gtk::ALIGN_END, false); + initButton(*loadNURBS, Glib::ustring("folder-open.png"), Gtk::ALIGN_END, false); saveNURBS = Gtk::manage (new Gtk::Button ()); - initButton(*saveNURBS, Glib::ustring("gtk-save-large.png"), Gtk::ALIGN_END, false); + initButton(*saveNURBS, Glib::ustring("save.png"), Gtk::ALIGN_END, false); NURBSbbox->attach_next_to(*editPointNURBS, sideStart, 1, 1); NURBSbbox->attach_next_to(*editNURBS, sideStart, 1, 1); @@ -224,16 +224,16 @@ DiagonalCurveEditorSubGroup::DiagonalCurveEditorSubGroup (CurveEditorGroup* prt, shcSelector->set_name("CurveSHCSelector"); // To handle the 4px gap between the SHCSelector and the curve through CSS editParam = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editParam, Glib::ustring("editmodehand.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editParam, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editParam->hide(); copyParam = Gtk::manage (new Gtk::Button ()); - initButton(*copyParam, Glib::ustring("edit-copy.png"), Gtk::ALIGN_END, true); + initButton(*copyParam, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); pasteParam = Gtk::manage (new Gtk::Button ()); - initButton(*pasteParam, Glib::ustring("edit-paste.png"), Gtk::ALIGN_END, false); + initButton(*pasteParam, Glib::ustring("paste.png"), Gtk::ALIGN_END, false); loadParam = Gtk::manage (new Gtk::Button ()); - initButton(*loadParam, Glib::ustring("gtk-open.png"), Gtk::ALIGN_END, false); + initButton(*loadParam, Glib::ustring("folder-open.png"), Gtk::ALIGN_END, false); saveParam = Gtk::manage (new Gtk::Button ()); - initButton(*saveParam, Glib::ustring("gtk-save-large.png"), Gtk::ALIGN_END, false); + initButton(*saveParam, Glib::ustring("save.png"), Gtk::ALIGN_END, false); parambbox->attach_next_to(*editParam, sideStart, 1, 1); parambbox->attach_next_to(*copyParam, sideEnd, 1, 1); diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 23d1259ba..501296860 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -48,14 +48,26 @@ std::vector listSubDirs (const Glib::RefPtr& dir, bool auto enumerator = dir->enumerate_children ("standard::name,standard::type,standard::is-hidden"); - while (auto file = enumerator->next_file ()) { - if (file->get_file_type () != Gio::FILE_TYPE_DIRECTORY) { - continue; + while (true) { + try { + auto file = enumerator->next_file (); + if (!file) { + break; + } + if (file->get_file_type () != Gio::FILE_TYPE_DIRECTORY) { + continue; + } + if (!addHidden && file->is_hidden ()) { + continue; + } + subDirs.push_back (file->get_name ()); + } catch (const Glib::Exception& exception) { + + if (options.rtSettings.verbose) { + std::cerr << exception.what () << std::endl; + } + } - if (!addHidden && file->is_hidden ()) { - continue; - } - subDirs.push_back (file->get_name ()); } } catch (const Glib::Exception& exception) { @@ -109,13 +121,13 @@ DirBrowser::~DirBrowser() void DirBrowser::fillDirTree () { - openfolder = RTImage::createFromFile ("gtk-open.png"); - closedfolder = RTImage::createFromFile ("folder.png"); - icdrom = RTImage::createFromFile ("drive-optical.png"); - ifloppy = RTImage::createFromFile ("drive-removable-media.png"); - ihdd = RTImage::createFromFile ("drive-harddisk.png"); - iremovable = RTImage::createFromFile ("media-usb.png"); - inetwork = RTImage::createFromFile ("network.png"); + openfolder = RTImage::createFromFile ("folder-open-small.png"); + closedfolder = RTImage::createFromFile ("folder-closed-small.png"); + icdrom = RTImage::createFromFile ("device-optical.png"); + ifloppy = RTImage::createFromFile ("device-floppy.png"); + ihdd = RTImage::createFromFile ("device-hdd.png"); + iremovable = RTImage::createFromFile ("device-usb.png"); + inetwork = RTImage::createFromFile ("device-network.png"); //Create the Tree model: dirTreeModel = Gtk::TreeStore::create(dtColumns); diff --git a/rtgui/distortion.cc b/rtgui/distortion.cc index 1fadec9d9..c181ed479 100644 --- a/rtgui/distortion.cc +++ b/rtgui/distortion.cc @@ -28,15 +28,16 @@ Distortion::Distortion (): FoldableToolPanel(this, "distortion", M("TP_DISTORTIO rlistener = nullptr; autoDistor = Gtk::manage (new Gtk::Button (M("GENERAL_AUTO"))); - autoDistor->set_image (*Gtk::manage (new RTImage ("distortion-auto.png"))); + autoDistor->set_image (*Gtk::manage (new RTImage ("distortion-auto-small.png"))); + autoDistor->get_style_context()->add_class("independent"); autoDistor->set_alignment(0.5f, 0.5f); autoDistor->set_tooltip_text (M("TP_DISTORTION_AUTO_TIP")); idConn = autoDistor->signal_pressed().connect( sigc::mem_fun(*this, &Distortion::idPressed) ); autoDistor->show(); pack_start (*autoDistor); - Gtk::Image* idistL = Gtk::manage (new RTImage ("distortion-pincushion.png")); - Gtk::Image* idistR = Gtk::manage (new RTImage ("distortion-barrel.png")); + Gtk::Image* idistL = Gtk::manage (new RTImage ("distortion-pincushion-small.png")); + Gtk::Image* idistR = Gtk::manage (new RTImage ("distortion-barrel-small.png")); distor = Gtk::manage (new Adjuster (M("TP_DISTORTION_AMOUNT"), -0.5, 0.5, 0.001, 0, idistL, idistR)); distor->setAdjusterListener (this); diff --git a/rtgui/edit.cc b/rtgui/edit.cc index 006f2389b..0a0d3a334 100644 --- a/rtgui/edit.cc +++ b/rtgui/edit.cc @@ -1485,7 +1485,7 @@ CursorShape EditDataProvider::getCursor (int objectID) currSubscriber->getCursor (objectID); } - return CSOpenHand; + return CSHandOpen; } EditSubscriber* EditDataProvider::getCurrSubscriber() diff --git a/rtgui/edit.h b/rtgui/edit.h index 8555e2931..6c360e426 100644 --- a/rtgui/edit.h +++ b/rtgui/edit.h @@ -784,9 +784,8 @@ inline EditDataProvider* EditSubscriber::getEditProvider () return provider; } -inline CursorShape EditSubscriber::getCursor (const int objectID) -{ - return CSOpenHand; +inline CursorShape EditSubscriber::getCursor (const int objectID) { + return CSHandOpen; } inline bool EditSubscriber::mouseOver (const int modifierKey) diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 76bf2794a..e7fd11a26 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -272,7 +272,7 @@ private: } #else - profile = "RT_sRGB"; + profile = options.rtSettings.srgb; #endif #if !defined(__APPLE__) // monitor profile not supported on apple @@ -497,8 +497,11 @@ EditorPanel::EditorPanel (FilePanel* filePanel) // build GUI // build left side panel - leftbox = new Gtk::VBox (); - leftbox->set_size_request (230, 250); + leftbox = new Gtk::Paned (Gtk::ORIENTATION_VERTICAL); + + // make a subbox to allow resizing of the histogram (if it's on the left) + leftsubbox = new Gtk::Box (Gtk::ORIENTATION_VERTICAL); + leftsubbox->set_size_request (230, 250); histogramPanel = nullptr; @@ -507,19 +510,22 @@ EditorPanel::EditorPanel (FilePanel* filePanel) ppframe->set_name ("ProfilePanel"); ppframe->add (*profilep); ppframe->set_label (M ("PROFILEPANEL_LABEL")); - //leftbox->pack_start (*ppframe, Gtk::PACK_SHRINK, 4); + //leftsubbox->pack_start (*ppframe, Gtk::PACK_SHRINK, 4); navigator = Gtk::manage (new Navigator ()); navigator->previewWindow->set_size_request (-1, 150); - leftbox->pack_start (*navigator, Gtk::PACK_SHRINK, 2); + leftsubbox->pack_start (*navigator, Gtk::PACK_SHRINK, 2); history = Gtk::manage (new History ()); - leftbox->pack_start (*history); + leftsubbox->pack_start (*history); + leftsubbox->show_all (); + + leftbox->pack2 (*leftsubbox, true, true); leftbox->show_all (); // build the middle of the screen - Gtk::VBox* editbox = Gtk::manage (new Gtk::VBox ()); + Gtk::Box* editbox = Gtk::manage (new Gtk::Box (Gtk::ORIENTATION_VERTICAL)); info = Gtk::manage (new Gtk::ToggleButton ()); Gtk::Image* infoimg = Gtk::manage (new RTImage ("info.png")); @@ -533,8 +539,8 @@ EditorPanel::EditorPanel (FilePanel* filePanel) beforeAfter->set_relief (Gtk::RELIEF_NONE); beforeAfter->set_tooltip_markup (M ("MAIN_TOOLTIP_TOGGLE")); - iBeforeLockON = new RTImage ("lock-on.png"); - iBeforeLockOFF = new RTImage ("lock-off.png"); + iBeforeLockON = new RTImage ("padlock-locked-small.png"); + iBeforeLockOFF = new RTImage ("padlock-unlocked-small.png"); Gtk::VSeparator* vsept = Gtk::manage (new Gtk::VSeparator ()); Gtk::VSeparator* vsepz = Gtk::manage (new Gtk::VSeparator ()); @@ -590,7 +596,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) tpc->setEditProvider (iareapanel->imageArea); tpc->getToolBar()->setLockablePickerToolListener (iareapanel->imageArea); - Gtk::HBox* toolBarPanel = Gtk::manage (new Gtk::HBox ()); + Gtk::Box* toolBarPanel = Gtk::manage (new Gtk::Box (Gtk::ORIENTATION_HORIZONTAL)); toolBarPanel->set_name ("EditorTopPanel"); toolBarPanel->pack_start (*hidehp, Gtk::PACK_SHRINK, 1); toolBarPanel->pack_start (*vseph, Gtk::PACK_SHRINK, 2); @@ -617,23 +623,30 @@ EditorPanel::EditorPanel (FilePanel* filePanel) toolBarPanel->pack_end (*iareapanel->imageArea->previewModePanel, Gtk::PACK_SHRINK, 0); toolBarPanel->pack_end (*vsepz4, Gtk::PACK_SHRINK, 2); - afterBox = Gtk::manage (new Gtk::VBox ()); + afterBox = Gtk::manage (new Gtk::Box (Gtk::ORIENTATION_VERTICAL)); afterBox->pack_start (*iareapanel); - beforeAfterBox = Gtk::manage (new Gtk::HBox()); + beforeAfterBox = Gtk::manage (new Gtk::Box (Gtk::ORIENTATION_HORIZONTAL)); beforeAfterBox->set_name ("BeforeAfterContainer"); beforeAfterBox->pack_start (*afterBox); - editbox->pack_start (*toolBarPanel, Gtk::PACK_SHRINK, 2); + MyScrolledToolbar *stb1 = Gtk::manage(new MyScrolledToolbar()); + stb1->set_name("EditorToolbarTop"); + stb1->add(*toolBarPanel); + editbox->pack_start (*stb1, Gtk::PACK_SHRINK, 2); editbox->pack_start (*beforeAfterBox); // build right side panel - vboxright = new Gtk::VBox (false, 0); - vboxright->set_size_request (300, 250); + vboxright = new Gtk::Paned (Gtk::ORIENTATION_VERTICAL); + + vsubboxright = new Gtk::Box (Gtk::ORIENTATION_VERTICAL, 0); + vsubboxright->set_size_request (300, 250); - vboxright->pack_start (*ppframe, Gtk::PACK_SHRINK, 2); + vsubboxright->pack_start (*ppframe, Gtk::PACK_SHRINK, 2); // main notebook - vboxright->pack_start (*tpc->toolPanelNotebook); + vsubboxright->pack_start (*tpc->toolPanelNotebook); + + vboxright->pack2 (*vsubboxright, true, true); // Save buttons Gtk::Grid *iops = new Gtk::Grid (); @@ -642,19 +655,19 @@ EditorPanel::EditorPanel (FilePanel* filePanel) iops->set_row_spacing (2); iops->set_column_spacing (2); - Gtk::Image *saveButtonImage = Gtk::manage (new RTImage ("gtk-save-large.png")); + Gtk::Image *saveButtonImage = Gtk::manage (new RTImage ("save.png")); saveimgas = Gtk::manage (new Gtk::Button ()); saveimgas->add (*saveButtonImage); saveimgas->set_tooltip_markup (M ("MAIN_BUTTON_SAVE_TOOLTIP")); setExpandAlignProperties (saveimgas, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - Gtk::Image *queueButtonImage = Gtk::manage (new RTImage ("processing.png")); + Gtk::Image *queueButtonImage = Gtk::manage (new RTImage ("gears.png")); queueimg = Gtk::manage (new Gtk::Button ()); queueimg->add (*queueButtonImage); queueimg->set_tooltip_markup (M ("MAIN_BUTTON_PUTTOQUEUE_TOOLTIP")); setExpandAlignProperties (queueimg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - Gtk::Image *sendToEditorButtonImage = Gtk::manage (new RTImage ("image-editor.png")); + Gtk::Image *sendToEditorButtonImage = Gtk::manage (new RTImage ("palette-brush.png")); sendtogimp = Gtk::manage (new Gtk::Button ()); sendtogimp->add (*sendToEditorButtonImage); sendtogimp->set_tooltip_markup (M ("MAIN_BUTTON_SENDTOEDITOR_TOOLTIP")); @@ -690,7 +703,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) if (!simpleEditor && !options.tabbedUI) { // Navigation buttons - Gtk::Image *navPrevImage = Gtk::manage (new RTImage ("nav-prev.png")); + Gtk::Image *navPrevImage = Gtk::manage (new RTImage ("arrow2-left.png")); navPrevImage->set_padding (0, 0); navPrev = Gtk::manage (new Gtk::Button ()); navPrev->add (*navPrevImage); @@ -698,7 +711,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) navPrev->set_tooltip_markup (M ("MAIN_BUTTON_NAVPREV_TOOLTIP")); setExpandAlignProperties (navPrev, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - Gtk::Image *navNextImage = Gtk::manage (new RTImage ("nav-next.png")); + Gtk::Image *navNextImage = Gtk::manage (new RTImage ("arrow2-right.png")); navNextImage->set_padding (0, 0); navNext = Gtk::manage (new Gtk::Button ()); navNext->add (*navNextImage); @@ -706,7 +719,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) navNext->set_tooltip_markup (M ("MAIN_BUTTON_NAVNEXT_TOOLTIP")); setExpandAlignProperties (navNext, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - Gtk::Image *navSyncImage = Gtk::manage (new RTImage ("nav-sync.png")); + Gtk::Image *navSyncImage = Gtk::manage (new RTImage ("arrow-updown.png")); navSyncImage->set_padding (0, 0); navSync = Gtk::manage (new Gtk::Button ()); navSync->add (*navSyncImage); @@ -753,7 +766,11 @@ EditorPanel::EditorPanel (FilePanel* filePanel) iops->attach_next_to (*tbShowHideSidePanels, Gtk::POS_RIGHT, 1, 1); iops->attach_next_to (*tbRightPanel_1, Gtk::POS_RIGHT, 1, 1); - editbox->pack_start (*iops, Gtk::PACK_SHRINK, 0); + MyScrolledToolbar *stb2 = Gtk::manage(new MyScrolledToolbar()); + stb2->set_name("EditorToolbarBottom"); + stb2->add(*iops); + + editbox->pack_start (*stb2, Gtk::PACK_SHRINK, 0); editbox->show_all (); // build screen @@ -769,8 +786,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) hpanedl->set_position (options.historyPanelWidth); } - - Gtk::VPaned * viewpaned = Gtk::manage (new Gtk::VPaned()); + Gtk::Paned *viewpaned = Gtk::manage (new Gtk::Paned (Gtk::ORIENTATION_VERTICAL)); fPanel = filePanel; if (filePanel) { @@ -843,6 +859,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) if (tbTopPanel_1) { tbTopPanel_1->signal_toggled().connect ( sigc::mem_fun (*this, &EditorPanel::tbTopPanel_1_toggled) ); } + } EditorPanel::~EditorPanel () @@ -886,7 +903,9 @@ EditorPanel::~EditorPanel () delete tpc; delete ppframe; + delete leftsubbox; delete leftbox; + delete vsubboxright; delete vboxright; //delete saveAsDialog; @@ -1023,6 +1042,7 @@ void EditorPanel::open (Thumbnail* tmb, rtengine::InitialImage* isrc) ipc->setPreviewScale (10); // Important tpc->initImage (ipc, tmb->getType() == FT_Raw); ipc->setHistogramListener (this); + iareapanel->imageArea->indClippedPanel->silentlyDisableSharpMask(); // iarea->fitZoom (); // tell to the editorPanel that the next image has to be fitted to the screen iareapanel->imageArea->setPreviewHandler (previewHandler); @@ -1763,7 +1783,7 @@ bool EditorPanel::idle_saveImage (ProgressConnector *pc, img->setSaveProgressListener (parent->getProgressListener()); if (sf.format == "tif") - ld->startFunc (sigc::bind (sigc::mem_fun (img, &rtengine::IImagefloat::saveAsTIFF), fname, sf.tiffBits, sf.tiffUncompressed), + ld->startFunc (sigc::bind (sigc::mem_fun (img, &rtengine::IImagefloat::saveAsTIFF), fname, sf.tiffBits, sf.tiffFloat, sf.tiffUncompressed), sigc::bind (sigc::mem_fun (*this, &EditorPanel::idle_imageSaved), ld, img, fname, sf, pparams)); else if (sf.format == "png") ld->startFunc (sigc::bind (sigc::mem_fun (img, &rtengine::IImagefloat::saveAsPNG), fname, sf.pngBits), @@ -1980,9 +2000,9 @@ bool EditorPanel::saveImmediately (const Glib::ustring &filename, const SaveForm int err = 0; if (gimpPlugin) { - err = img->saveAsTIFF (filename, 32, true); + err = img->saveAsTIFF (filename, 32, true, true); } else if (sf.format == "tif") { - err = img->saveAsTIFF (filename, sf.tiffBits, sf.tiffUncompressed); + err = img->saveAsTIFF (filename, sf.tiffBits, sf.tiffFloat, sf.tiffUncompressed); } else if (sf.format == "png") { err = img->saveAsPNG (filename, sf.pngBits); } else if (sf.format == "jpg") { @@ -2038,6 +2058,7 @@ bool EditorPanel::idle_sendToGimp ( ProgressConnector *p SaveFormat sf; sf.format = "tif"; sf.tiffBits = 16; + sf.tiffFloat = false; sf.tiffUncompressed = true; sf.saveParams = true; @@ -2058,7 +2079,7 @@ bool EditorPanel::idle_sendToGimp ( ProgressConnector *p ProgressConnector *ld = new ProgressConnector(); img->setSaveProgressListener (parent->getProgressListener()); - ld->startFunc (sigc::bind (sigc::mem_fun (img, &rtengine::IImagefloat::saveAsTIFF), fileName, sf.tiffBits, sf.tiffUncompressed), + ld->startFunc (sigc::bind (sigc::mem_fun (img, &rtengine::IImagefloat::saveAsTIFF), fileName, sf.tiffBits, sf.tiffFloat, sf.tiffUncompressed), sigc::bind (sigc::mem_fun (*this, &EditorPanel::idle_sentToGimp), ld, img, fileName)); } else { Glib::ustring msg_ = Glib::ustring (" Error during image processing\n"); @@ -2165,7 +2186,7 @@ void EditorPanel::beforeAfterToggled () tbBeforeLock = Gtk::manage (new Gtk::ToggleButton ()); tbBeforeLock->set_tooltip_markup (M ("MAIN_TOOLTIP_BEFOREAFTERLOCK")); tbBeforeLock->signal_toggled().connect ( sigc::mem_fun (*this, &EditorPanel::tbBeforeLock_toggled) ); - beforeHeaderBox = Gtk::manage (new Gtk::HBox ()); + beforeHeaderBox = Gtk::manage (new Gtk::Box (Gtk::ORIENTATION_HORIZONTAL)); beforeHeaderBox->pack_end (*tbBeforeLock, Gtk::PACK_SHRINK, 2); beforeHeaderBox->pack_end (*beforeLabel, Gtk::PACK_SHRINK, 2); beforeHeaderBox->set_size_request (0, HeaderBoxHeight); @@ -2179,7 +2200,7 @@ void EditorPanel::beforeAfterToggled () afterLabel = Gtk::manage (new Gtk::Label ()); afterLabel->set_markup (Glib::ustring ("") + M ("GENERAL_AFTER") + ""); - afterHeaderBox = Gtk::manage (new Gtk::HBox ()); + afterHeaderBox = Gtk::manage (new Gtk::Box (Gtk::ORIENTATION_HORIZONTAL)); afterHeaderBox->set_size_request (0, HeaderBoxHeight); afterHeaderBox->pack_end (*afterLabel, Gtk::PACK_SHRINK, 2); afterBox->pack_start (*afterHeaderBox, Gtk::PACK_SHRINK, 2); @@ -2228,7 +2249,7 @@ void EditorPanel::histogramChanged (LUTu & histRed, LUTu & histGreen, LUTu & his { if (histogramPanel) { - histogramPanel->histogramChanged (histRed, histGreen, histBlue, histLuma, histRedRaw, histGreenRaw, histBlueRaw, histChroma); + histogramPanel->histogramChanged (histRed, histGreen, histBlue, histLuma, histChroma, histRedRaw, histGreenRaw, histBlueRaw); } tpc->updateCurveBackgroundHistogram (histToneCurve, histLCurve, histCCurve,/*histCLurve, histLLCurve,*/ histLCAM, histCCAM, histRed, histGreen, histBlue, histLuma, histLRETI); @@ -2321,17 +2342,17 @@ void EditorPanel::updateHistogramPosition (int oldPosition, int newPosition) if (oldPosition == 0) { // There was no Histogram before, so we create it histogramPanel = Gtk::manage (new HistogramPanel ()); - leftbox->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 2); + leftbox->pack1(*histogramPanel, false, false); } else if (oldPosition == 2) { // The histogram was on the right side, so we move it to the left histogramPanel->reference(); removeIfThere (vboxright, histogramPanel, false); - leftbox->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 2); + leftbox->pack1(*histogramPanel, false, false); histogramPanel->unreference(); } - + + leftbox->set_position(options.histogramHeight); histogramPanel->reorder (Gtk::POS_LEFT); - leftbox->reorder_child (*histogramPanel, 0); break; case 2: @@ -2341,21 +2362,22 @@ void EditorPanel::updateHistogramPosition (int oldPosition, int newPosition) if (oldPosition == 0) { // There was no Histogram before, so we create it histogramPanel = Gtk::manage (new HistogramPanel ()); - vboxright->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 2); + vboxright->pack1 (*histogramPanel, false, false); } else if (oldPosition == 1) { // The histogram was on the left side, so we move it to the right histogramPanel->reference(); removeIfThere (leftbox, histogramPanel, false); - vboxright->pack_start (*histogramPanel, Gtk::PACK_SHRINK, 2); + vboxright->pack1 (*histogramPanel, false, false); histogramPanel->unreference(); } - + + vboxright->set_position(options.histogramHeight); histogramPanel->reorder (Gtk::POS_RIGHT); - vboxright->reorder_child (*histogramPanel, 0); break; } iareapanel->imageArea->setPointerMotionHListener (histogramPanel); + } diff --git a/rtgui/editorpanel.h b/rtgui/editorpanel.h index 7876d18e1..054ad0a6b 100644 --- a/rtgui/editorpanel.h +++ b/rtgui/editorpanel.h @@ -173,8 +173,10 @@ private: Gtk::Image *iShowHideSidePanels; Gtk::Image *iShowHideSidePanels_exit; Gtk::Image *iBeforeLockON, *iBeforeLockOFF; - Gtk::VBox *leftbox; - Gtk::VBox *vboxright; + Gtk::Paned *leftbox; + Gtk::Box *leftsubbox; + Gtk::Paned *vboxright; + Gtk::Box *vsubboxright; Gtk::Button* queueimg; Gtk::Button* saveimgas; @@ -191,13 +193,13 @@ private: PreviewHandler* beforePreviewHandler; // for the before-after view Navigator* navigator; ImageAreaPanel* beforeIarea; // for the before-after view - Gtk::VBox* beforeBox; - Gtk::VBox* afterBox; + Gtk::Box* beforeBox; + Gtk::Box* afterBox; Gtk::Label* beforeLabel; Gtk::Label* afterLabel; - Gtk::HBox* beforeAfterBox; - Gtk::HBox* beforeHeaderBox; - Gtk::HBox* afterHeaderBox; + Gtk::Box* beforeAfterBox; + Gtk::Box* beforeHeaderBox; + Gtk::Box* afterHeaderBox; Gtk::ToggleButton* toggleHistogramProfile; Gtk::Frame* ppframe; diff --git a/rtgui/editwindow.cc b/rtgui/editwindow.cc index f42bf4739..a5592e6da 100644 --- a/rtgui/editwindow.cc +++ b/rtgui/editwindow.cc @@ -53,7 +53,7 @@ EditWindow* EditWindow::getInstance(RTWindow* p, bool restore) EditWindow::EditWindow (RTWindow* p) : parent(p) , isFullscreen(false), isClosed(true) { - Glib::ustring fName = "rt-logo-tiny.png"; + Glib::ustring fName = "rawtherapee-logo-24.png"; Glib::ustring fullPath = rtengine::findIconAbsolutePath(fName); try { @@ -172,11 +172,11 @@ void EditWindow::addEditorPanel (EditorPanel* ep, const std::string &name) // construct closeable tab for the image Gtk::HBox* hb = Gtk::manage (new Gtk::HBox ()); - hb->pack_start (*Gtk::manage (new RTImage ("rtwindow.png"))); + hb->pack_start (*Gtk::manage (new RTImage ("aperture.png"))); hb->pack_start (*Gtk::manage (new Gtk::Label (Glib::path_get_basename (name)))); hb->set_tooltip_markup (name); Gtk::Button* closeb = Gtk::manage (new Gtk::Button ()); - closeb->set_image (*Gtk::manage(new RTImage ("gtk-close.png"))); + closeb->set_image (*Gtk::manage(new RTImage ("cancel-small.png"))); closeb->set_relief (Gtk::RELIEF_NONE); closeb->set_focus_on_click (false); diff --git a/rtgui/exifpanel.cc b/rtgui/exifpanel.cc index 168106804..fa362a351 100644 --- a/rtgui/exifpanel.cc +++ b/rtgui/exifpanel.cc @@ -48,9 +48,9 @@ ExifPanel::ExifPanel () : idata (nullptr) exifTree->set_grid_lines (Gtk::TREE_VIEW_GRID_LINES_NONE); exifTree->set_row_separator_func (sigc::mem_fun(*this, &ExifPanel::rowSeperatorFunc)); - delicon = RTImage::createFromFile ("gtk-close.png"); - keepicon = RTImage::createFromFile ("gtk-apply.png"); - editicon = RTImage::createFromFile ("gtk-add.png"); + delicon = RTImage::createFromFile ("cancel-small.png"); + keepicon = RTImage::createFromFile ("tick-small.png"); + editicon = RTImage::createFromFile ("add-small.png"); Gtk::TreeView::Column *viewcol = Gtk::manage (new Gtk::TreeView::Column ("Field Name")); Gtk::CellRendererPixbuf* render_pb = Gtk::manage (new Gtk::CellRendererPixbuf ()); @@ -128,14 +128,14 @@ ExifPanel::ExifPanel () : idata (nullptr) buttons2->attach_next_to (*showAll, Gtk::POS_LEFT, 1, 1); reset = Gtk::manage (new Gtk::Button ()); // M("EXIFPANEL_RESET") - reset->set_image (*Gtk::manage (new RTImage ("gtk-undo-ltr.png", "gtk-undo-rtl.png"))); + reset->set_image (*Gtk::manage (new RTImage ("undo.png", "redo.png"))); reset->set_tooltip_text (M ("EXIFPANEL_RESETHINT")); reset->get_style_context()->add_class ("MiddleH"); setExpandAlignProperties (reset, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); buttons2->attach_next_to (*reset, Gtk::POS_RIGHT, 1, 1); resetAll = Gtk::manage (new Gtk::Button ()); // M("EXIFPANEL_RESETALL") - resetAll->set_image (*Gtk::manage (new RTImage ("gtk-undoall-ltr.png", "gtk-undoall-rtl.png"))); + resetAll->set_image (*Gtk::manage (new RTImage ("undo-all.png", "redo-all.png"))); resetAll->set_tooltip_text (M ("EXIFPANEL_RESETALLHINT")); resetAll->get_style_context()->add_class ("Right"); setExpandAlignProperties (resetAll, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); diff --git a/rtgui/exportpanel.cc b/rtgui/exportpanel.cc index 6c9b96ab7..3a74d3ca3 100644 --- a/rtgui/exportpanel.cc +++ b/rtgui/exportpanel.cc @@ -180,14 +180,14 @@ ExportPanel::ExportPanel () : listener (nullptr) // Buttons btnFastExport = Gtk::manage ( new Gtk::Button () ); btnFastExport->set_tooltip_text (M ("EXPORT_PUTTOQUEUEFAST")); - btnFastExport->set_image (*Gtk::manage (new RTImage ("processing.png"))); + btnFastExport->set_image (*Gtk::manage (new RTImage ("gears.png"))); pack_start (*btnFastExport, Gtk::PACK_SHRINK, 4); // add panel ending Gtk::VBox* vboxpe = Gtk::manage (new Gtk::VBox ()); Gtk::HSeparator* hseptpe = Gtk::manage (new Gtk::HSeparator ()); - Gtk::Image* peImg = Gtk::manage (new RTImage ("PanelEnding.png")); + Gtk::Image* peImg = Gtk::manage (new RTImage ("ornament1.png")); vboxpe->pack_start (*hseptpe, Gtk::PACK_SHRINK, 4); vboxpe->pack_start (*peImg); pack_start (*vboxpe, Gtk::PACK_SHRINK, 0); diff --git a/rtgui/exportpanel.h b/rtgui/exportpanel.h index 0bea30d22..369682169 100644 --- a/rtgui/exportpanel.h +++ b/rtgui/exportpanel.h @@ -51,7 +51,7 @@ protected: /* icm_input = "(camera)"; icm_working = "sRGB"; - icm_output = "RT_sRGB"; + icm_output = options.rtSettings.srgb; icm_gamma = "default"; */ Gtk::CheckButton* bypass_dirpyrequalizer; // also could leave untouched but disable only small radius adjustments diff --git a/rtgui/fattaltonemap.cc b/rtgui/fattaltonemap.cc index af2b9eddf..545a313a9 100644 --- a/rtgui/fattaltonemap.cc +++ b/rtgui/fattaltonemap.cc @@ -32,8 +32,8 @@ FattalToneMapping::FattalToneMapping(): FoldableToolPanel(this, "fattal", M("TP_ amount = Gtk::manage(new Adjuster (M("TP_TM_FATTAL_AMOUNT"), 1., 100., 1., 30.)); threshold = Gtk::manage(new Adjuster (M("TP_TM_FATTAL_THRESHOLD"), -100., 100., 1., 0.0)); - Gtk::Image *al = Gtk::manage(new RTImage("adj-black.png")); - Gtk::Image *ar = Gtk::manage(new RTImage("adj-white.png")); + Gtk::Image *al = Gtk::manage(new RTImage("circle-black-small.png")); + Gtk::Image *ar = Gtk::manage(new RTImage("circle-white-small.png")); anchor = Gtk::manage(new Adjuster(M("TP_TM_FATTAL_ANCHOR"), 1, 100, 1, 50, al, ar)); amount->setAdjusterListener(this); diff --git a/rtgui/favoritbrowser.cc b/rtgui/favoritbrowser.cc index 29b82f510..379ce26e6 100644 --- a/rtgui/favoritbrowser.cc +++ b/rtgui/favoritbrowser.cc @@ -55,7 +55,7 @@ FavoritBrowser::FavoritBrowser () : listener (NULL), lastSelectedDir ("") add->set_vexpand(false); add->set_halign(Gtk::ALIGN_FILL); add->set_valign(Gtk::ALIGN_START); - add->set_image (*Gtk::manage (new RTImage ("gtk-add.png"))); + add->set_image (*Gtk::manage (new RTImage ("add-small.png"))); add->get_style_context()->add_class("Left"); del = Gtk::manage (new Gtk::Button ()); del->set_tooltip_text(M("MAIN_FRAME_PLACES_DEL")); @@ -63,7 +63,7 @@ FavoritBrowser::FavoritBrowser () : listener (NULL), lastSelectedDir ("") del->set_vexpand(false); del->set_halign(Gtk::ALIGN_FILL); del->set_valign(Gtk::ALIGN_START); - del->set_image (*Gtk::manage (new RTImage ("list-remove.png"))); + del->set_image (*Gtk::manage (new RTImage ("remove-small.png"))); del->get_style_context()->add_class("Right"); Gtk::HBox* buttonBox = Gtk::manage (new Gtk::HBox ()); buttonBox->pack_start (*add); diff --git a/rtgui/filebrowser.cc b/rtgui/filebrowser.cc index 4d6994e23..edd37f7dd 100644 --- a/rtgui/filebrowser.cc +++ b/rtgui/filebrowser.cc @@ -152,7 +152,7 @@ FileBrowser::FileBrowser () : pmenu = new Gtk::Menu (); pmenu->attach (*Gtk::manage(open = new Gtk::MenuItem (M("FILEBROWSER_POPUPOPEN"))), 0, 1, p, p + 1); p++; - pmenu->attach (*Gtk::manage(develop = new MyImageMenuItem (M("FILEBROWSER_POPUPPROCESS"), "processing.png")), 0, 1, p, p + 1); + pmenu->attach (*Gtk::manage(develop = new MyImageMenuItem (M("FILEBROWSER_POPUPPROCESS"), "gears.png")), 0, 1, p, p + 1); p++; pmenu->attach (*Gtk::manage(developfast = new Gtk::MenuItem (M("FILEBROWSER_POPUPPROCESSFAST"))), 0, 1, p, p + 1); p++; @@ -201,13 +201,19 @@ FileBrowser::FileBrowser () : /*********************** * color labels ***********************/ + + // Thumbnail context menu + // Similar image arrays in filecatalog.cc + std::array clabelActiveIcons = {"circle-empty-gray-small.png", "circle-red-small.png", "circle-yellow-small.png", "circle-green-small.png", "circle-blue-small.png", "circle-purple-small.png"}; + std::array clabelInactiveIcons = {"circle-empty-darkgray-small.png", "circle-empty-red-small.png", "circle-empty-yellow-small.png", "circle-empty-green-small.png", "circle-empty-blue-small.png", "circle-empty-purple-small.png"}; + if (options.menuGroupLabel) { pmenu->attach (*Gtk::manage(menuLabel = new Gtk::MenuItem (M("FILEBROWSER_POPUPCOLORLABEL"))), 0, 1, p, p + 1); p++; Gtk::Menu* submenuLabel = Gtk::manage (new Gtk::Menu ()); for (int i = 0; i <= 5; i++) { - submenuLabel->attach (*Gtk::manage(colorlabel[i] = new MyImageMenuItem (M(Glib::ustring::compose("%1%2", "FILEBROWSER_POPUPCOLORLABEL", i)), i == 0 ? "cglabel0.png" : Glib::ustring::compose("%1%2%3", "clabel", i, ".png"))), 0, 1, p, p + 1); + submenuLabel->attach(*Gtk::manage(colorlabel[i] = new MyImageMenuItem(M(Glib::ustring::compose("%1%2", "FILEBROWSER_POPUPCOLORLABEL", i)), clabelActiveIcons[i])), 0, 1, p, p + 1); p++; } @@ -215,7 +221,7 @@ FileBrowser::FileBrowser () : menuLabel->set_submenu (*submenuLabel); } else { for (int i = 0; i <= 5; i++) { - pmenu->attach (*Gtk::manage(colorlabel[i] = new MyImageMenuItem (M(Glib::ustring::compose("%1%2", "FILEBROWSER_POPUPCOLORLABEL", i)), i == 0 ? "cglabel0.png" : Glib::ustring::compose("%1%2%3", "clabel", i, ".png"))), 0, 1, p, p + 1); + pmenu->attach(*Gtk::manage(colorlabel[i] = new MyImageMenuItem(M(Glib::ustring::compose("%1%2", "FILEBROWSER_POPUPCOLORLABEL", i)), clabelInactiveIcons[i])), 0, 1, p, p + 1); p++; } } @@ -337,7 +343,7 @@ FileBrowser::FileBrowser () : * Profile Operations * *********************/ if (options.menuGroupProfileOperations) { - pmenu->attach (*Gtk::manage(menuProfileOperations = new MyImageMenuItem (M("FILEBROWSER_POPUPPROFILEOPERATIONS"), "logoicon-wind.png")), 0, 1, p, p + 1); + pmenu->attach (*Gtk::manage(menuProfileOperations = new Gtk::MenuItem (M("FILEBROWSER_POPUPPROFILEOPERATIONS"))), 0, 1, p, p + 1); p++; Gtk::Menu* submenuProfileOperations = Gtk::manage (new Gtk::Menu ()); @@ -449,14 +455,14 @@ FileBrowser::FileBrowser () : // A separate pop-up menu for Color Labels int c = 0; - pmenuColorLabels = new Gtk::Menu (); + pmenuColorLabels = new Gtk::Menu(); for (int i = 0; i <= 5; i++) { - pmenuColorLabels->attach (*Gtk::manage(colorlabel_pop[i] = new MyImageMenuItem (M(Glib::ustring::compose("%1%2", "FILEBROWSER_POPUPCOLORLABEL", i)), i == 0 ? "cglabel0.png" : Glib::ustring::compose("%1%2%3", "clabel", i, ".png"))), 0, 1, c, c + 1); + pmenuColorLabels->attach(*Gtk::manage(colorlabel_pop[i] = new MyImageMenuItem(M(Glib::ustring::compose("%1%2", "FILEBROWSER_POPUPCOLORLABEL", i)), clabelActiveIcons[i])), 0, 1, c, c + 1); c++; } - pmenuColorLabels->show_all (); + pmenuColorLabels->show_all(); // Has to be located after creation of applyprof and applypartprof updateProfileList (); diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index 2c5acfccb..1d8bc4b2b 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -85,7 +85,7 @@ protected: Gtk::MenuItem* menuRank; Gtk::MenuItem* menuLabel; Gtk::MenuItem* menuFileOperations; - MyImageMenuItem* menuProfileOperations; + Gtk::MenuItem* menuProfileOperations; Gtk::MenuItem* menuExtProg; Gtk::MenuItem** amiExtProg; Gtk::MenuItem* miOpenDefaultViewer; diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index cb3844687..71e6aef24 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -56,11 +56,11 @@ FileBrowserEntry::FileBrowserEntry (Thumbnail* thm, const Glib::ustring& fname) scale = 1; if (!iconsLoaded) { - editedIcon = RTImage::createFromFile ("edited.png"); - recentlySavedIcon = RTImage::createFromFile ("recent-save.png"); - enqueuedIcon = RTImage::createFromFile ("processing.png"); - hdr = RTImage::createFromFile ("HDR-thumbnail.png"); - ps = RTImage::createFromFile ("PixelShift-thumbnail.png"); + editedIcon = RTImage::createFromFile ("tick-small.png"); + recentlySavedIcon = RTImage::createFromFile ("save-small.png"); + enqueuedIcon = RTImage::createFromFile ("gears-small.png"); + hdr = RTImage::createFromFile ("filetype-hdr.png"); + ps = RTImage::createFromFile ("filetype-ps.png"); iconsLoaded = true; } @@ -211,19 +211,11 @@ void FileBrowserEntry::procParamsChanged (Thumbnail* thm, int whoChangedIt) void FileBrowserEntry::updateImage (rtengine::IImage8* img, double scale, rtengine::procparams::CropParams cropParams) { - - { - GThreadLock lock; - - if ( feih == nullptr || - feih->destroyed ) { - img->free(); - return; - } - - redrawRequests++; - feih->pending++; + if (!feih) { + return; } + redrawRequests++; + feih->pending++; struct tiupdate { FileBrowserEntryIdleHelper* feih; diff --git a/rtgui/filebrowserentry.h b/rtgui/filebrowserentry.h index 423128ddb..ada726dfc 100644 --- a/rtgui/filebrowserentry.h +++ b/rtgui/filebrowserentry.h @@ -19,23 +19,27 @@ #ifndef _FILEBROWSERENTRY_ #define _FILEBROWSERENTRY_ +#include + #include -#include "thumbbrowserentrybase.h" -#include "thumbnail.h" -#include "filethumbnailbuttonset.h" -#include "thumbnaillistener.h" -#include "thumbimageupdater.h" -#include "imageareatoollistener.h" -#include "editenums.h" + #include "../rtengine/rtengine.h" + #include "crophandler.h" +#include "editenums.h" +#include "filethumbnailbuttonset.h" +#include "imageareatoollistener.h" +#include "thumbbrowserentrybase.h" +#include "thumbimageupdater.h" +#include "thumbnail.h" +#include "thumbnaillistener.h" class FileBrowserEntry; struct FileBrowserEntryIdleHelper { FileBrowserEntry* fbentry; bool destroyed; - int pending; + std::atomic pending; }; class FileThumbnailButtonSet; diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 86c530661..2271c05c7 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -48,6 +48,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : listener(nullptr), fslistener(nullptr), iatlistener(nullptr), + hbToolBar1STB(nullptr), hasValidCurrentEFS(false), filterPanel(nullptr), exportPanel(nullptr), @@ -61,7 +62,6 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : inTabMode = false; set_name ("FileBrowser"); - set_spacing (2); // construct and initialize thumbnail browsers fileBrowser = Gtk::manage( new FileBrowser() ); @@ -74,7 +74,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : trashButtonBox = Gtk::manage( new Gtk::VBox ); Gtk::Button* emptyT = Gtk::manage( new Gtk::Button ()); emptyT->set_tooltip_markup (M("FILEBROWSER_EMPTYTRASHHINT")); - emptyT->set_image (*Gtk::manage(new RTImage ("trash.png"))); + emptyT->set_image (*Gtk::manage(new RTImage ("trash-delete.png"))); emptyT->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::emptyTrash)); trashButtonBox->pack_start (*emptyT, Gtk::PACK_SHRINK, 4); emptyT->show (); @@ -84,8 +84,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : hbToolBar1 = Gtk::manage(new Gtk::HBox ()); //setup BrowsePath - iRefreshWhite = new RTImage("refresh-white.png"); - iRefreshRed = new RTImage("refresh-red.png"); + iRefreshWhite = new RTImage("refresh-small.png"); + iRefreshRed = new RTImage("refresh-red-small.png"); BrowsePath = Gtk::manage(new Gtk::Entry ()); BrowsePath->set_width_chars (50); @@ -104,7 +104,7 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : BrowsePath->signal_key_press_event().connect(sigc::mem_fun(*this, &FileCatalog::BrowsePath_key_pressed)); //setup Query - iQueryClear = new RTImage("gtk-close-small.png"); + iQueryClear = new RTImage("cancel-small.png"); Gtk::Label* labelQuery = Gtk::manage(new Gtk::Label(M("FILEBROWSER_QUERYLABEL"))); Query = Gtk::manage(new Gtk::Entry ()); // cannot use Gtk::manage here as FileCatalog::getFilter will fail on Query->get_text() Query->set_text(""); @@ -127,13 +127,19 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : // if NOT a single row toolbar if (!options.FileBrowserToolbarSingleRow) { - pack_start (*hbToolBar1, Gtk::PACK_SHRINK, 0); + hbToolBar1STB = Gtk::manage(new MyScrolledToolbar()); + hbToolBar1STB->set_name("FileBrowserQueryToolbar"); + hbToolBar1STB->add(*hbToolBar1); + pack_start (*hbToolBar1STB, Gtk::PACK_SHRINK, 0); } // setup button bar buttonBar = Gtk::manage( new Gtk::HBox () ); buttonBar->set_name ("ToolBarPanelFileBrowser"); - pack_start (*buttonBar, Gtk::PACK_SHRINK); + MyScrolledToolbar *stb = Gtk::manage(new MyScrolledToolbar()); + stb->set_name("FileBrowserIconToolbar"); + stb->add(*buttonBar); + pack_start (*stb, Gtk::PACK_SHRINK); tbLeftPanel_1 = new Gtk::ToggleButton (); iLeftPanel_1_Show = new RTImage("panel-to-right.png"); @@ -149,11 +155,11 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : vSepiLeftPanel = new Gtk::VSeparator (); buttonBar->pack_start (*vSepiLeftPanel, Gtk::PACK_SHRINK); - iFilterClear = new RTImage ("filterclear.png"); + iFilterClear = new RTImage ("filter-clear.png"); igFilterClear = new RTImage ("filter.png"); bFilterClear = Gtk::manage(new Gtk::ToggleButton ()); bFilterClear->set_active (true); - bFilterClear->set_image(*iFilterClear);// (*Gtk::manage(new RTImage ("filterclear.png"))); + bFilterClear->set_image(*iFilterClear);// (*Gtk::manage(new RTImage ("filter-clear.png"))); bFilterClear->set_relief (Gtk::RELIEF_NONE); bFilterClear->set_tooltip_markup (M("FILEBROWSER_SHOWDIRHINT")); bFilterClear->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event), false); @@ -163,11 +169,14 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : fltrVbox1 = Gtk::manage (new Gtk::VBox()); fltrRankbox = Gtk::manage (new Gtk::HBox()); + fltrRankbox->get_style_context()->add_class("smallbuttonbox"); fltrLabelbox = Gtk::manage (new Gtk::HBox()); + fltrLabelbox->get_style_context()->add_class("smallbuttonbox"); - iUnRanked = new RTImage ("ratednot.png"); - igUnRanked = new RTImage ("ratednotg.png"); + iUnRanked = new RTImage ("star-gold-hollow-small.png"); + igUnRanked = new RTImage ("star-hollow-small.png"); bUnRanked = Gtk::manage( new Gtk::ToggleButton () ); + bUnRanked->get_style_context()->add_class("smallbutton"); bUnRanked->set_active (false); bUnRanked->set_image (*igUnRanked); bUnRanked->set_relief (Gtk::RELIEF_NONE); @@ -177,11 +186,12 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : bUnRanked->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event), false); for (int i = 0; i < 5; i++) { - iranked[i] = new RTImage ("rated.png"); - igranked[i] = new RTImage ("grayrated.png"); + iranked[i] = new RTImage ("star-gold-small.png"); + igranked[i] = new RTImage ("star-small.png"); iranked[i]->show (); igranked[i]->show (); bRank[i] = Gtk::manage( new Gtk::ToggleButton () ); + bRank[i]->get_style_context()->add_class("smallbutton"); bRank[i]->set_image (*igranked[i]); bRank[i]->set_relief (Gtk::RELIEF_NONE); fltrRankbox->pack_start (*bRank[i], Gtk::PACK_SHRINK); @@ -189,26 +199,33 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : bRank[i]->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event), false); } - iUnCLabeled = new RTImage ("clabel0.png"); - igUnCLabeled = new RTImage ("cglabel0.png"); - bUnCLabeled = Gtk::manage(new Gtk::ToggleButton ()); - bUnCLabeled->set_active (false); - bUnCLabeled->set_image (*igUnCLabeled); - bUnCLabeled->set_relief (Gtk::RELIEF_NONE); - bUnCLabeled->set_tooltip_markup (M("FILEBROWSER_SHOWUNCOLORHINT")); + // Toolbar + // Similar image arrays in filebrowser.cc + std::array clabelActiveIcons = {"circle-gray-small.png", "circle-red-small.png", "circle-yellow-small.png", "circle-green-small.png", "circle-blue-small.png", "circle-purple-small.png"}; + std::array clabelInactiveIcons = {"circle-empty-gray-small.png", "circle-empty-red-small.png", "circle-empty-yellow-small.png", "circle-empty-green-small.png", "circle-empty-blue-small.png", "circle-empty-purple-small.png"}; + + iUnCLabeled = new RTImage(clabelActiveIcons[0]); + igUnCLabeled = new RTImage(clabelInactiveIcons[0]); + bUnCLabeled = Gtk::manage(new Gtk::ToggleButton()); + bUnCLabeled->get_style_context()->add_class("smallbutton"); + bUnCLabeled->set_active(false); + bUnCLabeled->set_image(*igUnCLabeled); + bUnCLabeled->set_relief(Gtk::RELIEF_NONE); + bUnCLabeled->set_tooltip_markup(M("FILEBROWSER_SHOWUNCOLORHINT")); bCateg[7] = bUnCLabeled->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bUnCLabeled, true)); - fltrLabelbox->pack_start (*bUnCLabeled, Gtk::PACK_SHRINK); + fltrLabelbox->pack_start(*bUnCLabeled, Gtk::PACK_SHRINK); bUnCLabeled->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event), false); for (int i = 0; i < 5; i++) { - iCLabeled[i] = new RTImage (Glib::ustring::compose("%1%2%3", "clabel", i + 1, ".png")); - igCLabeled[i] = new RTImage (Glib::ustring::compose("%1%2%3", "cglabel", i + 1, ".png")); - iCLabeled[i]->show (); - igCLabeled[i]->show (); - bCLabel[i] = Gtk::manage(new Gtk::ToggleButton ()); - bCLabel[i]->set_image (*igCLabeled[i]); - bCLabel[i]->set_relief (Gtk::RELIEF_NONE); - fltrLabelbox->pack_start (*bCLabel[i], Gtk::PACK_SHRINK); + iCLabeled[i] = new RTImage(clabelActiveIcons[i+1]); + igCLabeled[i] = new RTImage(clabelInactiveIcons[i+1]); + iCLabeled[i]->show(); + igCLabeled[i]->show(); + bCLabel[i] = Gtk::manage(new Gtk::ToggleButton()); + bCLabel[i]->get_style_context()->add_class("smallbutton"); + bCLabel[i]->set_image(*igCLabeled[i]); + bCLabel[i]->set_relief(Gtk::RELIEF_NONE); + fltrLabelbox->pack_start(*bCLabel[i], Gtk::PACK_SHRINK); bCateg[i + 8] = bCLabel[i]->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bCLabel[i], true)); bCLabel[i]->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event), false); } @@ -233,17 +250,23 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : fltrVbox2 = Gtk::manage (new Gtk::VBox()); fltrEditedBox = Gtk::manage (new Gtk::HBox()); + fltrEditedBox->get_style_context()->add_class("smallbuttonbox"); fltrRecentlySavedBox = Gtk::manage (new Gtk::HBox()); + fltrRecentlySavedBox->get_style_context()->add_class("smallbuttonbox"); // bEdited - iEdited[0] = new RTImage ("editednot-small.png"); - igEdited[0] = new RTImage ("editednotg-small.png"); - iEdited[1] = new RTImage ("edited-small.png"); - igEdited[1] = new RTImage ("editedg-small.png"); + // TODO The "g" variant was the more transparent variant of the icon, used + // when the button was not toggled. Simplify this, change to ordinary + // togglebutton, use CSS for opacity change. + iEdited[0] = new RTImage ("tick-hollow-small.png"); + igEdited[0] = new RTImage ("tick-hollow-small.png"); + iEdited[1] = new RTImage ("tick-small.png"); + igEdited[1] = new RTImage ("tick-small.png"); for (int i = 0; i < 2; i++) { iEdited[i]->show (); bEdited[i] = Gtk::manage(new Gtk::ToggleButton ()); + bEdited[i]->get_style_context()->add_class("smallbutton"); bEdited[i]->set_active (false); bEdited[i]->set_image (*igEdited[i]); bEdited[i]->set_relief (Gtk::RELIEF_NONE); @@ -257,14 +280,18 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : bEdited[1]->set_tooltip_markup (M("FILEBROWSER_SHOWEDITEDHINT")); // RecentlySaved - iRecentlySaved[0] = new RTImage ("savednot.png"); - igRecentlySaved[0] = new RTImage ("savednotg.png"); - iRecentlySaved[1] = new RTImage ("saved.png"); - igRecentlySaved[1] = new RTImage ("savedg.png"); + // TODO The "g" variant was the more transparent variant of the icon, used + // when the button was not toggled. Simplify this, change to ordinary + // togglebutton, use CSS for opacity change. + iRecentlySaved[0] = new RTImage ("saved-no-small.png"); + igRecentlySaved[0] = new RTImage ("saved-no-small.png"); + iRecentlySaved[1] = new RTImage ("saved-yes-small.png"); + igRecentlySaved[1] = new RTImage ("saved-yes-small.png"); for (int i = 0; i < 2; i++) { iRecentlySaved[i]->show (); bRecentlySaved[i] = Gtk::manage(new Gtk::ToggleButton ()); + bRecentlySaved[i]->get_style_context()->add_class("smallbutton"); bRecentlySaved[i]->set_active (false); bRecentlySaved[i]->set_image (*igRecentlySaved[i]); bRecentlySaved[i]->set_relief (Gtk::RELIEF_NONE); @@ -284,18 +311,18 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : buttonBar->pack_start (*Gtk::manage(new Gtk::VSeparator), Gtk::PACK_SHRINK); // Trash - iTrashEmpty = new RTImage("trash-show-empty.png") ; - iTrashFull = new RTImage("trash-show-full.png") ; + iTrashShowEmpty = new RTImage("trash-empty-show.png") ; + iTrashShowFull = new RTImage("trash-full-show.png") ; bTrash = Gtk::manage( new Gtk::ToggleButton () ); - bTrash->set_image (*iTrashEmpty); + bTrash->set_image (*iTrashShowEmpty); bTrash->set_relief (Gtk::RELIEF_NONE); bTrash->set_tooltip_markup (M("FILEBROWSER_SHOWTRASHHINT")); bCateg[17] = bTrash->signal_toggled().connect (sigc::bind(sigc::mem_fun(*this, &FileCatalog::categoryButtonToggled), bTrash, true)); bTrash->signal_button_press_event().connect (sigc::mem_fun(*this, &FileCatalog::capture_event), false); iNotTrash = new RTImage("trash-hide-deleted.png") ; - iOriginal = new RTImage("filter-original-2.png"); + iOriginal = new RTImage("filter-original.png"); bNotTrash = Gtk::manage( new Gtk::ToggleButton () ); bNotTrash->set_image (*iNotTrash); @@ -374,13 +401,13 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : // thumbnail zoom Gtk::HBox* zoomBox = Gtk::manage( new Gtk::HBox () ); zoomInButton = Gtk::manage( new Gtk::Button () ); - zoomInButton->set_image (*Gtk::manage(new RTImage ("gtk-zoom-in.png"))); + zoomInButton->set_image (*Gtk::manage(new RTImage ("magnifier-plus.png"))); zoomInButton->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::zoomIn)); zoomInButton->set_relief (Gtk::RELIEF_NONE); zoomInButton->set_tooltip_markup (M("FILEBROWSER_ZOOMINHINT")); zoomBox->pack_end (*zoomInButton, Gtk::PACK_SHRINK); zoomOutButton = Gtk::manage( new Gtk::Button () ); - zoomOutButton->set_image (*Gtk::manage(new RTImage ("gtk-zoom-out.png"))); + zoomOutButton->set_image (*Gtk::manage(new RTImage ("magnifier-minus.png"))); zoomOutButton->signal_pressed().connect (sigc::mem_fun(*this, &FileCatalog::zoomOut)); zoomOutButton->set_relief (Gtk::RELIEF_NONE); zoomOutButton->set_tooltip_markup (M("FILEBROWSER_ZOOMOUTHINT")); @@ -461,8 +488,8 @@ FileCatalog::~FileCatalog() delete igUnRanked; delete iUnCLabeled; delete igUnCLabeled; - delete iTrashEmpty; - delete iTrashFull; + delete iTrashShowEmpty; + delete iTrashShowFull; delete iNotTrash; delete iOriginal; delete iRefreshWhite; @@ -490,6 +517,7 @@ void FileCatalog::exifInfoButtonToggled() } fileBrowser->refreshThumbImages (); + refreshHeight(); } void FileCatalog::on_realize() @@ -564,21 +592,31 @@ std::vector FileCatalog::getFileList () auto enumerator = dir->enumerate_children ("standard::name"); - while (auto file = enumerator->next_file ()) { + while (true) { + try { + auto file = enumerator->next_file (); + if (!file) { + break; + } - const Glib::ustring fname = file->get_name (); + const Glib::ustring fname = file->get_name (); - auto lastdot = fname.find_last_of ('.'); - if (lastdot >= fname.length () - 1) { - continue; + auto lastdot = fname.find_last_of ('.'); + if (lastdot >= fname.length () - 1) { + continue; + } + + const auto fext = fname.substr (lastdot + 1).lowercase (); + if (extensions.count (fext) == 0) { + continue; + } + + names.emplace_back (Glib::build_filename (selectedDirectory, fname)); + } catch (Glib::Exception& exception) { + if (options.rtSettings.verbose) { + std::cerr << exception.what () << std::endl; + } } - - const auto fext = fname.substr (lastdot + 1).lowercase (); - if (extensions.count (fext) == 0) { - continue; - } - - names.emplace_back (Glib::build_filename (selectedDirectory, fname)); } } catch (Glib::Exception& exception) { @@ -660,6 +698,9 @@ void FileCatalog::enableTabMode(bool enable) } else { buttonBar->show(); hbToolBar1->show(); + if (hbToolBar1STB) { + hbToolBar1STB->show(); + } exifInfo->set_active( options.showFileNames ); } @@ -681,7 +722,7 @@ void FileCatalog::_refreshProgressBar () Gtk::Label *label = nullptr; if (!previewsToLoad ) { - grid->attach_next_to(*Gtk::manage (new RTImage ("gtk-directory.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("folder-closed.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); int filteredCount = min(fileBrowser->getNumFiltered(), previewsLoaded); label = Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER") + @@ -689,7 +730,7 @@ void FileCatalog::_refreshProgressBar () + Glib::ustring::format(previewsLoaded) + (filteredCount != previewsLoaded ? "]" : ")"))); } else { - grid->attach_next_to(*Gtk::manage (new RTImage ("gtk-find.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*Gtk::manage (new RTImage ("magnifier.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); label = Gtk::manage (new Gtk::Label (M("MAIN_FRAME_FILEBROWSER") + " [" + Glib::ustring::format(std::fixed, std::setprecision(0), std::setw(3), (double)previewsLoaded / previewsToLoad * 100 ) + "%]" )); filepanel->loadingThumbs("", (double)previewsLoaded / previewsToLoad); } @@ -878,8 +919,8 @@ void FileCatalog::refreshHeight () newHeight = h; } - if (hbToolBar1->is_visible() && !options.FileBrowserToolbarSingleRow) { - newHeight += hbToolBar1->get_height(); + if (hbToolBar1STB && hbToolBar1STB->is_visible()) { + newHeight += hbToolBar1STB->get_height(); } if (buttonBar->is_visible()) { @@ -1180,12 +1221,11 @@ void FileCatalog::developRequested (std::vector tbe, bool fas params.raw.bayersensor.method = options.fastexport_raw_bayer_method; params.raw.xtranssensor.method = options.fastexport_raw_xtrans_method; - params.icm.input = options.fastexport_icm_input; - params.icm.working = options.fastexport_icm_working; - params.icm.output = options.fastexport_icm_output; + params.icm.inputProfile = options.fastexport_icm_input_profile; + params.icm.workingProfile = options.fastexport_icm_working_profile; + params.icm.outputProfile = options.fastexport_icm_output_profile; params.icm.outputIntent = options.fastexport_icm_outputIntent; params.icm.outputBPC = options.fastexport_icm_outputBPC; - params.icm.gamma = options.fastexport_icm_gamma; } if (params.resize.enabled) { @@ -1201,6 +1241,7 @@ void FileCatalog::developRequested (std::vector tbe, bool fas params.resize.appliesTo = options.fastexport_resize_appliesTo; params.resize.method = options.fastexport_resize_method; params.resize.dataspec = options.fastexport_resize_dataspec; + params.resize.allowUpscaling = false; } rtengine::ProcessingJob* pjob = rtengine::ProcessingJob::create (fbe->filename, th->getType() == FT_Raw, params, fastmode && options.fastexport_use_fast_pipeline); @@ -1953,9 +1994,9 @@ void FileCatalog::setFilterPanel (FilterPanel* fpanel) void FileCatalog::trashChanged () { if (trashIsEmpty()) { - bTrash->set_image(*iTrashEmpty); + bTrash->set_image(*iTrashShowEmpty); } else { - bTrash->set_image(*iTrashFull); + bTrash->set_image(*iTrashShowFull); } } @@ -2007,17 +2048,21 @@ void FileCatalog::updateFBQueryTB (bool singleRow) hbToolBar1->reference(); if (singleRow) { - bool removed = removeIfThere(this, hbToolBar1, false); - - if (removed) { + if (hbToolBar1STB) { + hbToolBar1STB->remove_with_viewport(); + removeIfThere(this, hbToolBar1STB, false); buttonBar->pack_start(*hbToolBar1, Gtk::PACK_EXPAND_WIDGET, 0); + hbToolBar1STB = nullptr; } } else { - bool removed = removeIfThere(buttonBar, hbToolBar1, false); - - if (removed) { - pack_start(*hbToolBar1, Gtk::PACK_SHRINK, 0); - reorder_child(*hbToolBar1, 0); + if (!hbToolBar1STB) { + removeIfThere(buttonBar, hbToolBar1, false); + hbToolBar1STB = Gtk::manage(new MyScrolledToolbar()); + hbToolBar1STB->set_name("FileBrowserQueryToolbar"); + hbToolBar1STB->add(*hbToolBar1); + hbToolBar1STB->show(); + pack_start (*hbToolBar1STB, Gtk::PACK_SHRINK, 0); + reorder_child(*hbToolBar1STB, 0); } } @@ -2560,7 +2605,7 @@ bool FileCatalog::handleShortcutKey (GdkEventKey* event) void FileCatalog::showToolBar() { if (!options.FileBrowserToolbarSingleRow) { - hbToolBar1->show(); + hbToolBar1STB->show(); } buttonBar->show(); @@ -2569,7 +2614,7 @@ void FileCatalog::showToolBar() void FileCatalog::hideToolBar() { if (!options.FileBrowserToolbarSingleRow) { - hbToolBar1->hide(); + hbToolBar1STB->hide(); } buttonBar->hide(); diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 29e4a370a..af16fc8ae 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -73,6 +73,7 @@ private: Gtk::HBox* buttonBar; Gtk::HBox* hbToolBar1; + MyScrolledToolbar* hbToolBar1STB; Gtk::HBox* fltrRankbox; Gtk::HBox* fltrLabelbox; @@ -104,7 +105,7 @@ private: Gtk::Image* iCLabeled[5], *igCLabeled[5], *iUnCLabeled, *igUnCLabeled; Gtk::Image* iEdited[2], *igEdited[2]; Gtk::Image* iRecentlySaved[2], *igRecentlySaved[2]; - Gtk::Image *iTrashEmpty, *iTrashFull; + Gtk::Image *iTrashShowEmpty, *iTrashShowFull; Gtk::Image *iNotTrash, *iOriginal; Gtk::Image *iRefreshWhite, *iRefreshRed; Gtk::Image *iLeftPanel_1_Show, *iLeftPanel_1_Hide, *iRightPanel_1_Show, *iRightPanel_1_Hide; diff --git a/rtgui/filethumbnailbuttonset.cc b/rtgui/filethumbnailbuttonset.cc index 286324bdf..556397b7b 100644 --- a/rtgui/filethumbnailbuttonset.cc +++ b/rtgui/filethumbnailbuttonset.cc @@ -42,19 +42,19 @@ FileThumbnailButtonSet::FileThumbnailButtonSet (FileBrowserEntry* myEntry) { if (!iconsLoaded) { - unRankIcon = RTImage::createFromPng ("ratednotg.png"); - rankIcon = RTImage::createFromPng ("rated.png"); - gRankIcon = RTImage::createFromPng ("grayrated.png"); - trashIcon = RTImage::createFromPng ("trash-thumbnail.png"); - unTrashIcon = RTImage::createFromPng ("undelete-thumbnail.png"); - processIcon = RTImage::createFromPng ("processing-thumbnail.png"); + unRankIcon = RTImage::createFromPng ("star-hollow-narrow.png"); + rankIcon = RTImage::createFromPng ("star-gold-narrow.png"); + gRankIcon = RTImage::createFromPng ("star-narrow.png"); + trashIcon = RTImage::createFromPng ("trash-small.png"); + unTrashIcon = RTImage::createFromPng ("trash-remove-small.png"); + processIcon = RTImage::createFromPng ("gears-small.png"); - colorLabelIcon_0 = RTImage::createFromPng ("cglabel0.png"); //("nocolorlabel.png"); - colorLabelIcon_1 = RTImage::createFromPng ("clabel1.png"); - colorLabelIcon_2 = RTImage::createFromPng ("clabel2.png"); - colorLabelIcon_3 = RTImage::createFromPng ("clabel3.png"); - colorLabelIcon_4 = RTImage::createFromPng ("clabel4.png"); - colorLabelIcon_5 = RTImage::createFromPng ("clabel5.png"); + colorLabelIcon_0 = RTImage::createFromPng ("circle-empty-gray-small.png"); + colorLabelIcon_1 = RTImage::createFromPng ("circle-red-small.png"); + colorLabelIcon_2 = RTImage::createFromPng ("circle-yellow-small.png"); + colorLabelIcon_3 = RTImage::createFromPng ("circle-green-small.png"); + colorLabelIcon_4 = RTImage::createFromPng ("circle-blue-small.png"); + colorLabelIcon_5 = RTImage::createFromPng ("circle-purple-small.png"); iconsLoaded = true; } diff --git a/rtgui/filterpanel.cc b/rtgui/filterpanel.cc index 5f8fa2781..4ba332d3d 100644 --- a/rtgui/filterpanel.cc +++ b/rtgui/filterpanel.cc @@ -129,7 +129,7 @@ FilterPanel::FilterPanel () : listener (nullptr) // add panel ending Gtk::VBox* vboxpe = Gtk::manage (new Gtk::VBox ()); Gtk::HSeparator* hseptpe = Gtk::manage (new Gtk::HSeparator ()); - Gtk::Image* peImg = Gtk::manage (new RTImage("PanelEnding.png")); + Gtk::Image* peImg = Gtk::manage (new RTImage("ornament1.png")); vboxpe->pack_start(*hseptpe, Gtk::PACK_SHRINK, 4); vboxpe->pack_start(*peImg); pack_start(*vboxpe, Gtk::PACK_SHRINK, 0); diff --git a/rtgui/flatcurveeditorsubgroup.cc b/rtgui/flatcurveeditorsubgroup.cc index a9d51abec..2cc96a184 100644 --- a/rtgui/flatcurveeditorsubgroup.cc +++ b/rtgui/flatcurveeditorsubgroup.cc @@ -63,17 +63,17 @@ FlatCurveEditorSubGroup::FlatCurveEditorSubGroup (CurveEditorGroup* prt, Glib::u } editCPoints = Gtk::manage (new Gtk::ToggleButton()); - initButton(*editCPoints, Glib::ustring("editmodehand.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); + initButton(*editCPoints, Glib::ustring("crosshair-node-curve.png"), Gtk::ALIGN_START, false, "EDIT_PIPETTE_TOOLTIP"); editPointCPoints = Gtk::manage (new Gtk::ToggleButton ()); - initButton(*editPointCPoints, Glib::ustring("gtk-edit.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); + initButton(*editPointCPoints, Glib::ustring("edit-point.png"), Gtk::ALIGN_START, false, "CURVEEDITOR_EDITPOINT_HINT"); copyCPoints = Gtk::manage (new Gtk::Button ()); - initButton(*copyCPoints, Glib::ustring("edit-copy.png"), Gtk::ALIGN_END, true); + initButton(*copyCPoints, Glib::ustring("copy.png"), Gtk::ALIGN_END, true); pasteCPoints = Gtk::manage (new Gtk::Button ()); - initButton(*pasteCPoints, Glib::ustring("edit-paste.png"), Gtk::ALIGN_END, false); + initButton(*pasteCPoints, Glib::ustring("paste.png"), Gtk::ALIGN_END, false); loadCPoints = Gtk::manage (new Gtk::Button ()); - initButton(*loadCPoints, Glib::ustring("gtk-open.png"), Gtk::ALIGN_END, false); + initButton(*loadCPoints, Glib::ustring("folder-open.png"), Gtk::ALIGN_END, false); saveCPoints = Gtk::manage (new Gtk::Button ()); - initButton(*saveCPoints, Glib::ustring("gtk-save-large.png"), Gtk::ALIGN_END, false); + initButton(*saveCPoints, Glib::ustring("save.png"), Gtk::ALIGN_END, false); CPointsbbox->attach_next_to(*editPointCPoints, sideStart, 1, 1); CPointsbbox->attach_next_to(*editCPoints, sideStart, 1, 1); diff --git a/rtgui/flatfield.cc b/rtgui/flatfield.cc index 21b5f319a..1b77ae316 100644 --- a/rtgui/flatfield.cc +++ b/rtgui/flatfield.cc @@ -33,7 +33,7 @@ FlatField::FlatField () : FoldableToolPanel(this, "flatfield", M("TP_FLATFIELD_L bindCurrentFolder (*flatFieldFile, options.lastFlatfieldDir); ffLabel = Gtk::manage(new Gtk::Label(M("GENERAL_FILE"))); flatFieldFileReset = Gtk::manage(new Gtk::Button()); - flatFieldFileReset->set_image (*Gtk::manage(new RTImage ("gtk-cancel.png"))); + flatFieldFileReset->set_image (*Gtk::manage(new RTImage ("cancel-small.png"))); hbff->pack_start(*ffLabel, Gtk::PACK_SHRINK, 0); hbff->pack_start(*flatFieldFile); hbff->pack_start(*flatFieldFileReset, Gtk::PACK_SHRINK, 0); diff --git a/rtgui/gradient.cc b/rtgui/gradient.cc index f69e726b2..e14739fb4 100644 --- a/rtgui/gradient.cc +++ b/rtgui/gradient.cc @@ -13,7 +13,8 @@ Gradient::Gradient () : FoldableToolPanel(this, "gradient", M("TP_GRADIENT_LABEL editHBox = Gtk::manage (new Gtk::HBox()); edit = Gtk::manage (new Gtk::ToggleButton()); - edit->add (*Gtk::manage (new RTImage ("editmodehand.png"))); + edit->get_style_context()->add_class("independent"); + edit->add (*Gtk::manage (new RTImage ("crosshair-adjust.png"))); edit->set_tooltip_text(M("EDIT_OBJECT_TOOLTIP")); editConn = edit->signal_toggled().connect( sigc::mem_fun(*this, &Gradient::editToggled) ); editHBox->pack_start(*edit, Gtk::PACK_SHRINK, 0); @@ -347,7 +348,7 @@ CursorShape Gradient::getCursor(const int objectID) return CSMove2D; default: - return CSOpenHand; + return CSHandOpen; } } diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 5160ccedd..1e4f4eac8 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -553,11 +553,11 @@ void ExpanderBox::hideBox() void MyExpander::init() { - inconsistentPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expanderInconsistent.png")); - enabledPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expanderEnabled.png")); - disabledPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expanderDisabled.png")); - openedPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expanderOpened.png")); - closedPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expanderClosed.png")); + inconsistentPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("power-inconsistent-small.png")); + enabledPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("power-on-small.png")); + disabledPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("power-off-small.png")); + openedPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expander-open-small.png")); + closedPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expander-closed-small.png")); } MyExpander::MyExpander(bool useEnabled, Gtk::Widget* titleWidget) : @@ -955,7 +955,7 @@ bool MyScrolledWindow::on_scroll_event (GdkEventScroll* event) if (value2 != value) { scroll->set_value(value2); } - } else { + } else if (event->direction == GDK_SCROLL_UP) { value2 = value - step; if (value2 < lower) { @@ -981,6 +981,77 @@ void MyScrolledWindow::get_preferred_height_for_width_vfunc (int width, int &min natural_height = minimum_height = 50; } +/* + * + * Derived class of some widgets to properly handle the scroll wheel ; + * the user has to use the Shift key to be able to change the widget's value, + * otherwise the mouse wheel will scroll the toolbar. + * + */ +MyScrolledToolbar::MyScrolledToolbar () +{ + set_policy (Gtk::POLICY_EXTERNAL, Gtk::POLICY_NEVER); + get_style_context()->add_class("scrollableToolbar"); + + // Works fine with Gtk 3.22, but a a custom made get_preferred_height had to be created as a workaround + // taken from the official Gtk3.22 source code + //set_propagate_natural_height(true); +} + +bool MyScrolledToolbar::on_scroll_event (GdkEventScroll* event) +{ + Glib::RefPtr adjust = get_hadjustment(); + Gtk::Scrollbar *scroll = get_hscrollbar(); + + if (adjust && scroll) { + double upper = adjust->get_upper(); + double lower = adjust->get_lower(); + double value = adjust->get_value(); + double step = adjust->get_step_increment() * 2; + double value2 = 0.; + + if (event->direction == GDK_SCROLL_DOWN) { + value2 = rtengine::min(value + step, upper); + if (value2 != value) { + scroll->set_value(value2); + } + } else if (event->direction == GDK_SCROLL_UP) { + value2 = rtengine::max(value - step, lower); + if (value2 != value) { + scroll->set_value(value2); + } + } else if (event->direction == GDK_SCROLL_SMOOTH) { + if (event->delta_x) { // if the user use a pad, it can scroll horizontally + value2 = rtengine::LIM(value + (event->delta_x > 0 ? 30 : -30), lower, upper); + } else if (event->delta_y) { + value2 = rtengine::LIM(value + (event->delta_y > 0 ? 30 : -30), lower, upper); + } + if (value2 != value) { + scroll->set_value(value2); + } + } + } + + return true; +} + +void MyScrolledToolbar::get_preferred_height (int &minimumHeight, int &naturalHeight) +{ + int currMinHeight = 0; + int currNatHeight = 0; + std::vector childs = get_children(); + minimumHeight = naturalHeight = 0; + + for (auto child : childs) + { + if(child->is_visible()) { + child->get_preferred_height(currMinHeight, currNatHeight); + minimumHeight = rtengine::max(currMinHeight, minimumHeight); + naturalHeight = rtengine::max(currNatHeight, naturalHeight); + } + } +} + MyComboBoxText::MyComboBoxText (bool has_entry) : Gtk::ComboBoxText(has_entry) { minimumWidth = naturalWidth = 70; @@ -1179,7 +1250,7 @@ MyFileChooserButton::MyFileChooserButton(const Glib::ustring &title, Gtk::FileCh set_none(); box_.pack_start(lbl_, true, true); Gtk::Image *img = Gtk::manage(new Gtk::Image()); - img->set_from_icon_name("document-open", Gtk::ICON_SIZE_BUTTON); + img->set_from_icon_name("folder-open", Gtk::ICON_SIZE_BUTTON); box_.pack_start(*Gtk::manage(new Gtk::VSeparator()), false, false, 5); box_.pack_start(*img, false, false); box_.show_all_children(); diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 2861b4913..fb627a78a 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -293,6 +293,19 @@ public: MyScrolledWindow(); }; +/** + * @brief subclass of Gtk::ScrolledWindow in order to handle the large toolbars (wider than available space) + */ +class MyScrolledToolbar : public Gtk::ScrolledWindow +{ + + bool on_scroll_event (GdkEventScroll* event); + void get_preferred_height (int &minimumHeight, int &naturalHeight); + +public: + MyScrolledToolbar(); +}; + /** * @brief subclass of Gtk::ComboBox in order to handle the scrollwheel */ diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index a41786d4e..5293c6c00 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -21,12 +21,14 @@ #include "guiutils.h" #include "options.h" #include +#include #include "../rtengine/LUT.h" #include "rtimage.h" #include "../rtengine/improccoordinator.h" #include "../rtengine/color.h" #include "../rtengine/opthelper.h" #include "../rtengine/iccstore.h" + using namespace rtengine; extern Options options; @@ -37,22 +39,18 @@ extern Options options; // HistogramPanel HistogramPanel::HistogramPanel () { - - set_vexpand(false); - set_hexpand(true); - set_valign(Gtk::ALIGN_START); - set_halign(Gtk::ALIGN_FILL); + setExpandAlignProperties(this, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); set_name("HistogramPanel"); histogramArea = Gtk::manage (new HistogramArea (this)); - histogramArea->set_hexpand(true); - histogramArea->set_vexpand(true); + setExpandAlignProperties(histogramArea, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); + histogramRGBArea = Gtk::manage (new HistogramRGBArea ()); - histogramRGBArea->set_hexpand(true); - histogramRGBArea->set_vexpand(false); - histogramRGBArea->set_halign(Gtk::ALIGN_FILL); - histogramRGBArea->set_valign(Gtk::ALIGN_END); + setExpandAlignProperties(histogramRGBArea, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_END); histogramRGBArea->show(); + + // connecting the two childs + histogramArea->signal_factor_changed().connect( sigc::mem_fun(*histogramRGBArea, &HistogramRGBArea::factorChanged) ); gfxGrid = Gtk::manage (new Gtk::Grid ()); gfxGrid->set_orientation(Gtk::ORIENTATION_VERTICAL); @@ -65,23 +63,25 @@ HistogramPanel::HistogramPanel () gfxGrid->add (*histogramRGBArea); } - redImage = new RTImage ("histRed.png"); - greenImage = new RTImage ("histGreen.png"); - blueImage = new RTImage ("histBlue.png"); - valueImage = new RTImage ("histValue.png"); - chroImage = new RTImage ("histChro.png"); - rawImage = new RTImage ("histRaw.png"); - fullImage = new RTImage ("histFull.png"); - barImage = new RTImage ("histBar.png"); + redImage = new RTImage ("histogram-red-on-small.png"); + greenImage = new RTImage ("histogram-green-on-small.png"); + blueImage = new RTImage ("histogram-blue-on-small.png"); + valueImage = new RTImage ("histogram-silver-on-small.png"); + chroImage = new RTImage ("histogram-gold-on-small.png"); + rawImage = new RTImage ("histogram-bayer-on-small.png"); + barImage = new RTImage ("histogram-bar-on-small.png"); - redImage_g = new RTImage ("histRedg.png"); - greenImage_g = new RTImage ("histGreeng.png"); - blueImage_g = new RTImage ("histBlueg.png"); - valueImage_g = new RTImage ("histValueg.png"); - chroImage_g = new RTImage ("histChrog.png"); - rawImage_g = new RTImage ("histRawg.png"); - fullImage_g = new RTImage ("histFullg.png"); - barImage_g = new RTImage ("histBarg.png"); + redImage_g = new RTImage ("histogram-red-off-small.png"); + greenImage_g = new RTImage ("histogram-green-off-small.png"); + blueImage_g = new RTImage ("histogram-blue-off-small.png"); + valueImage_g = new RTImage ("histogram-silver-off-small.png"); + chroImage_g = new RTImage ("histogram-gold-off-small.png"); + rawImage_g = new RTImage ("histogram-bayer-off-small.png"); + barImage_g = new RTImage ("histogram-bar-off-small.png"); + + mode0Image = new RTImage ("histogram-mode-linear-small.png"); + mode1Image = new RTImage ("histogram-mode-logx-small.png"); + mode2Image = new RTImage ("histogram-mode-logxy-small.png"); showRed = Gtk::manage (new Gtk::ToggleButton ()); showGreen = Gtk::manage (new Gtk::ToggleButton ()); @@ -89,7 +89,7 @@ HistogramPanel::HistogramPanel () showValue = Gtk::manage (new Gtk::ToggleButton ()); showChro = Gtk::manage (new Gtk::ToggleButton ()); showRAW = Gtk::manage (new Gtk::ToggleButton ()); - showFull = Gtk::manage (new Gtk::ToggleButton ()); + showMode = Gtk::manage (new Gtk::Button ()); showBAR = Gtk::manage (new Gtk::ToggleButton ()); showRed->set_name("histButton"); @@ -104,8 +104,8 @@ HistogramPanel::HistogramPanel () showChro->set_can_focus(false); showRAW->set_name("histButton"); showRAW->set_can_focus(false); - showFull->set_name("fullButton"); - showFull->set_can_focus(false); + showMode->set_name("histButton"); + showMode->set_can_focus(false); showBAR->set_name("histButton"); showBAR->set_can_focus(false); @@ -115,7 +115,7 @@ HistogramPanel::HistogramPanel () showValue->set_relief (Gtk::RELIEF_NONE); showChro->set_relief (Gtk::RELIEF_NONE); showRAW->set_relief (Gtk::RELIEF_NONE); - showFull->set_relief (Gtk::RELIEF_NONE); + showMode->set_relief (Gtk::RELIEF_NONE); showBAR->set_relief (Gtk::RELIEF_NONE); showRed->set_tooltip_text (M("HISTOGRAM_TOOLTIP_R")); @@ -124,20 +124,19 @@ HistogramPanel::HistogramPanel () showValue->set_tooltip_text (M("HISTOGRAM_TOOLTIP_L")); showChro->set_tooltip_text (M("HISTOGRAM_TOOLTIP_CHRO")); showRAW->set_tooltip_text (M("HISTOGRAM_TOOLTIP_RAW")); - showFull->set_tooltip_text (M("HISTOGRAM_TOOLTIP_FULL")); + showMode->set_tooltip_text (M("HISTOGRAM_TOOLTIP_MODE")); showBAR->set_tooltip_text (M("HISTOGRAM_TOOLTIP_BAR")); buttonGrid = Gtk::manage (new Gtk::Grid ()); buttonGrid->set_orientation(Gtk::ORIENTATION_VERTICAL); - showRed->set_active (true); - showGreen->set_active (true); - showBlue->set_active (true); - showValue->set_active (true); - showChro->set_active (false);//unactive by default - - showRAW->set_active (false); - showFull->set_active (!options.histogramFullMode); - showBAR->set_active (options.histogramBar); + showRed->set_active (options.histogramRed); + showGreen->set_active (options.histogramGreen); + showBlue->set_active (options.histogramBlue); + showValue->set_active (options.histogramLuma); + showChro->set_active (options.histogramChroma); + showRAW->set_active (options.histogramRAW); + // no showMode->set_active(), as it's not a ToggleButton + showBAR->set_active (options.histogramBar); showRed->set_image (showRed->get_active() ? *redImage : *redImage_g); showGreen->set_image (showGreen->get_active() ? *greenImage : *greenImage_g); @@ -145,41 +144,22 @@ HistogramPanel::HistogramPanel () showValue->set_image (showValue->get_active() ? *valueImage : *valueImage_g); showChro->set_image (showChro->get_active() ? *chroImage : *chroImage_g); showRAW->set_image (showRAW->get_active() ? *rawImage : *rawImage_g); - showFull->set_image (showFull->get_active() ? *fullImage : *fullImage_g); + if (options.histogramDrawMode == 0) + showMode->set_image(*mode0Image); + else if (options.histogramDrawMode == 1) + showMode->set_image(*mode1Image); + else + showMode->set_image(*mode2Image); showBAR->set_image (showBAR->get_active() ? *barImage : *barImage_g); - showRed->set_hexpand(false); - showRed->set_vexpand(false); - showRed->set_halign(Gtk::ALIGN_CENTER); - showRed->set_valign(Gtk::ALIGN_START); - showGreen->set_hexpand(false); - showGreen->set_vexpand(false); - showGreen->set_halign(Gtk::ALIGN_CENTER); - showGreen->set_valign(Gtk::ALIGN_START); - showBlue->set_hexpand(false); - showRed->set_vexpand(false); - showBlue->set_halign(Gtk::ALIGN_CENTER); - showBlue->set_valign(Gtk::ALIGN_START); - showValue->set_hexpand(false); - showValue->set_vexpand(false); - showValue->set_halign(Gtk::ALIGN_CENTER); - showValue->set_valign(Gtk::ALIGN_START); - showChro->set_hexpand(false); - showChro->set_vexpand(false); - showChro->set_halign(Gtk::ALIGN_CENTER); - showChro->set_valign(Gtk::ALIGN_START); - showRAW->set_hexpand(false); - showRAW->set_vexpand(false); - showRAW->set_halign(Gtk::ALIGN_CENTER); - showRAW->set_valign(Gtk::ALIGN_START); - showFull->set_hexpand(false); - showFull->set_vexpand(false); - showFull->set_halign(Gtk::ALIGN_CENTER); - showFull->set_valign(Gtk::ALIGN_START); - showBAR->set_hexpand(false); - showBAR->set_vexpand(false); - showBAR->set_halign(Gtk::ALIGN_CENTER); - showBAR->set_valign(Gtk::ALIGN_START); + setExpandAlignProperties(showRed , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showGreen, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showBlue , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showValue, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showChro , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showRAW , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showMode , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + setExpandAlignProperties(showBAR , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); showRed->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::red_toggled), showRed ); showGreen->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::green_toggled), showGreen ); @@ -187,7 +167,7 @@ HistogramPanel::HistogramPanel () showValue->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::value_toggled), showValue ); showChro->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::chro_toggled), showChro ); showRAW->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::raw_toggled), showRAW ); - showFull->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::full_toggled), showFull ); + showMode->signal_released().connect( sigc::mem_fun(*this, &HistogramPanel::mode_released), showMode ); showBAR->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::bar_toggled), showBAR ); buttonGrid->add (*showRed); @@ -196,7 +176,7 @@ HistogramPanel::HistogramPanel () buttonGrid->add (*showValue); buttonGrid->add (*showChro); buttonGrid->add (*showRAW); - buttonGrid->add (*showFull); + buttonGrid->add (*showMode); buttonGrid->add (*showBAR); // Put the button vbox next to the window's border to be less disturbing @@ -221,7 +201,9 @@ HistogramPanel::~HistogramPanel () delete valueImage; delete chroImage; delete rawImage; - delete fullImage; + delete mode0Image; + delete mode1Image; + delete mode2Image; delete barImage; delete redImage_g; @@ -230,7 +212,6 @@ HistogramPanel::~HistogramPanel () delete valueImage_g; delete chroImage_g; delete rawImage_g; - delete fullImage_g; delete barImage_g; } @@ -238,34 +219,16 @@ HistogramPanel::~HistogramPanel () void HistogramPanel::resized (Gtk::Allocation& req) { - /* - rconn.block (true); - - int gHeight = req.get_width()/2; - if (gHeight > 150) gHeight = 150; else if (gHeight < 100) gHeight = 100; - int bHeight = req.get_width()/30; - if (bHeight > 10) bHeight = 10; else if (bHeight < 5 ) bHeight = 5; - histogramArea->set_size_request (req.get_width(), gHeight); - histogramRGBArea->set_size_request (req.get_width(), bHeight); - - rconn.block (false); - */ - histogramArea->updateBackBuffer (); histogramArea->queue_draw (); - if (histogramRGBArea->getFreeze()) { - histogramRGBArea->updateFreeze(false); - // set histogramRGBArea invalid; - histogramRGBArea->updateBackBuffer(-1, -1, -1); - // re-set freeze to old state - histogramRGBArea->updateFreeze(true); - histogramRGBArea->queue_draw (); - } else { - // set histogramRGBArea invalid; - histogramRGBArea->updateBackBuffer(-1, -1, -1); - histogramRGBArea->queue_draw (); - } + // set histogramRGBArea invalid; + histogramRGBArea->updateBackBuffer(-1, -1, -1); + histogramRGBArea->queue_draw (); + + // Store current height of the histogram + options.histogramHeight = get_height(); + } void HistogramPanel::red_toggled () @@ -312,26 +275,34 @@ void HistogramPanel::raw_toggled () rgbv_toggled(); } -void HistogramPanel::full_toggled () + +void HistogramPanel::mode_released () { - options.histogramFullMode = !showFull->get_active(); - showFull->set_image(showFull->get_active() ? *fullImage : *fullImage_g); + options.histogramDrawMode = (options.histogramDrawMode + 1) % 3; + if (options.histogramDrawMode == 0) + showMode->set_image(*mode0Image); + else if (options.histogramDrawMode == 1) + showMode->set_image(*mode1Image); + else + showMode->set_image(*mode2Image); rgbv_toggled(); } + void HistogramPanel::bar_toggled () { showBAR->set_image(showBAR->get_active() ? *barImage : *barImage_g); rgbv_toggled(); } + void HistogramPanel::rgbv_toggled () { // Update Display - histogramArea->updateOptions (showRed->get_active(), showGreen->get_active(), showBlue->get_active(), showValue->get_active(), showRAW->get_active(), showFull->get_active(), showChro->get_active()); + histogramArea->updateOptions (showRed->get_active(), showGreen->get_active(), showBlue->get_active(), showValue->get_active(), showChro->get_active(), showRAW->get_active(), options.histogramDrawMode); histogramArea->queue_draw (); - histogramRGBArea->updateOptions (showRed->get_active(), showGreen->get_active(), showBlue->get_active(), showValue->get_active(), showRAW->get_active(), showBAR->get_active(), showChro->get_active()); + histogramRGBArea->updateOptions (showRed->get_active(), showGreen->get_active(), showBlue->get_active(), showValue->get_active(), showChro->get_active(), showRAW->get_active(), showBAR->get_active()); histogramRGBArea->updateBackBuffer (0, 0, 0); - histogramArea->queue_draw (); + histogramRGBArea->queue_draw (); } void HistogramPanel::setHistRGBInvalid () @@ -341,30 +312,17 @@ void HistogramPanel::setHistRGBInvalid () histogramRGBArea->queue_draw (); } -// "Freeze" is not a button, but a RMB-click, so this is not in the RGBV-Toggle method -void HistogramPanel::toggleFreeze () -{ - if (histogramRGBArea->getFreeze()) { - histogramRGBArea->updateFreeze(false); - } else if (histogramRGBArea->getShow()) { - histogramRGBArea->updateFreeze(true); - } - - return; -} - -void HistogramPanel::pointerMoved (bool validPos, Glib::ustring profile, Glib::ustring profileW, int x, int y, int r, int g, int b) +void HistogramPanel::pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw) { if (!validPos) { // do something to un-show vertical bars histogramRGBArea->updateBackBuffer(-1, -1, -1); - histogramRGBArea->queue_draw (); } else { // do something to show vertical bars histogramRGBArea->updateBackBuffer(r, g, b, profile, profileW); - histogramRGBArea->queue_draw (); } + histogramRGBArea->queue_draw (); } /* @@ -386,19 +344,36 @@ void HistogramPanel::reorder (Gtk::PositionType align) } } -// FullModeListener interface: -void HistogramPanel::toggle_button_full () +// DrawModeListener interface: +void HistogramPanel::toggle_button_mode () +{ + if (options.histogramDrawMode == 0) + showMode->set_image(*mode0Image); + else if (options.histogramDrawMode == 1) + showMode->set_image(*mode1Image); + else + showMode->set_image(*mode2Image); +} + +// +// +// +// HistogramScaling +double HistogramScaling::log(double vsize, double val) { - showFull->set_active (!showFull->get_active ()); - showFull->set_image(showFull->get_active() ? *fullImage : *fullImage_g); + //double factor = 10.0; // can be tuned if necessary - higher is flatter curve + return vsize * std::log(factor / (factor + val)) / std::log(factor / (factor + vsize)); } // // // // HistogramRGBArea -HistogramRGBArea::HistogramRGBArea () ://needChroma unactive by default - val(0), r(0), g(0), b(0), frozen(false), valid(false), needRed(true), needGreen(true), needBlue(true), needLuma(true), rawMode(false), showMode(options.histogramBar), barDisplayed(options.histogramBar), needChroma(false), parent(nullptr) +HistogramRGBArea::HistogramRGBArea () : + val(0), r(0), g(0), b(0), valid(false), + needRed(options.histogramRed), needGreen(options.histogramGreen), needBlue(options.histogramBlue), + needLuma(options.histogramLuma), needChroma(options.histogramChroma), rawMode(options.histogramRAW), + showMode(options.histogramBar), barDisplayed(options.histogramBar), parent(nullptr) { get_style_context()->add_class("drawingarea"); @@ -445,9 +420,9 @@ void HistogramRGBArea::get_preferred_height_for_width_vfunc (int width, int &min { int bHeight = width / 30; - if (bHeight > 10) { - bHeight = 10; - } else if (bHeight < 5 ) { + if (bHeight > 10) { + bHeight = 10; + } else if (bHeight < 5) { bHeight = 5; } @@ -455,30 +430,20 @@ void HistogramRGBArea::get_preferred_height_for_width_vfunc (int width, int &min natural_height = bHeight; } +// unused? void HistogramRGBArea::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const { get_preferred_width_vfunc (minimum_width, natural_width); } -bool HistogramRGBArea::getFreeze() -{ - return(frozen); -} - bool HistogramRGBArea::getShow() { return(showMode); } -void HistogramRGBArea::updateFreeze (bool f) -{ - frozen = f; - return; -} - void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustring &profile, const Glib::ustring &profileW) { - if (!get_realized () || frozen || !showMode) { + if (!get_realized () || !showMode) { return; } @@ -508,24 +473,39 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin if (needRed) { // Red cc->set_source_rgb(1.0, 0.0, 0.0); - cc->move_to((int)(r * (winw / 256.0)), 0); - cc->line_to((int)(r * (winw / 256.0)), winh - 0); + if (options.histogramDrawMode < 2) { + cc->move_to(r * (winw - 3) / 255.0 + 2, 0); // Rescaling seems needed to fit between boundaries of draw area + cc->line_to(r * (winw - 3) / 255.0 + 2, winh - 0); + } else { + cc->move_to(HistogramScaling::log (255, r) * (winw - 3) / 255.0 + 2, 0); + cc->line_to(HistogramScaling::log (255, r) * (winw - 3) / 255.0 + 2, winh - 0); + } cc->stroke(); } if (needGreen) { // Green cc->set_source_rgb(0.0, 1.0, 0.0); - cc->move_to((int)(g * (winw / 256.0)), 0); - cc->line_to((int)(g * (winw / 256.0)), winh - 0); + if (options.histogramDrawMode < 2) { + cc->move_to(g * (winw - 3) / 255.0 + 2, 0); + cc->line_to(g * (winw - 3) / 255.0 + 2, winh - 0); + } else { + cc->move_to(HistogramScaling::log (255, g) * (winw - 3) / 255.0 + 2, 0); + cc->line_to(HistogramScaling::log (255, g) * (winw - 3) / 255.0 + 2, winh - 0); + } cc->stroke(); } if (needBlue) { // Blue cc->set_source_rgb(0.0, 0.0, 1.0); - cc->move_to((int)(b * (winw / 256.0)), 0); - cc->line_to((int)(b * (winw / 256.0)), winh - 0); + if (options.histogramDrawMode < 2) { + cc->move_to(b * (winw - 3) / 255.0 + 2, 0); + cc->line_to(b * (winw - 3) / 255.0 + 2, winh - 0); + } else { + cc->move_to(HistogramScaling::log (255, b) * (winw - 3) / 255.0 + 2, 0); + cc->line_to(HistogramScaling::log (255, b) * (winw - 3) / 255.0 + 2, winh - 0); + } cc->stroke(); } @@ -536,8 +516,13 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin if (needLuma) { // Luma cc->set_source_rgb(1.0, 1.0, 1.0); - cc->move_to((int)((Lab_L) * (winw / 100.0)), 0); - cc->line_to((int)((Lab_L) * (winw / 100.0)), winh - 0); + if (options.histogramDrawMode < 2) { + cc->move_to(Lab_L * (winw - 3) / 100.0 + 2, 0); + cc->line_to(Lab_L * (winw - 3) / 100.0 + 2, winh - 0); + } else { + cc->move_to(HistogramScaling::log (100, Lab_L) * (winw - 3) / 100.0 + 2, 0); + cc->line_to(HistogramScaling::log (100, Lab_L) * (winw - 3) / 100.0 + 2, winh - 0); + } cc->stroke(); } @@ -545,9 +530,14 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin // Chroma float chromaval = sqrt(Lab_a * Lab_a + Lab_b * Lab_b) / 1.8; // float chromaval = sqrt(Lab_a*Lab_a + Lab_b*Lab_b); - cc->set_source_rgb(0.0, 0.0, 0.0); - cc->move_to((int)(chromaval * (winw / 100.0)), 0); - cc->line_to((int)(chromaval * (winw / 100.0)), winh - 0); + cc->set_source_rgb(0.9, 0.9, 0.0); + if (options.histogramDrawMode < 2) { + cc->move_to(chromaval * (winw - 3) / 100.0 + 2, 0); + cc->line_to(chromaval * (winw - 3) / 100.0 + 2, winh - 0); + } else { + cc->move_to(HistogramScaling::log (100, chromaval) * (winw - 3) / 100.0 + 2, 0); + cc->line_to(HistogramScaling::log (100, chromaval) * (winw - 3) / 100.0 + 2, winh - 0); + } cc->stroke(); } } @@ -596,31 +586,24 @@ void HistogramRGBArea::update (int valh, int rh, int gh, int bh) idle_register.add(func, harih); } -void HistogramRGBArea::updateOptions (bool r, bool g, bool b, bool l, bool raw, bool bar, bool c) +void HistogramRGBArea::updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, bool bar) { - needRed = r; - needGreen = g; - needBlue = b; - needLuma = l; - rawMode = raw; - showMode = bar; - needChroma = c; - - // Histogram RGB BAR button logic goes here + options.histogramRed = needRed = r; + options.histogramGreen = needGreen = g; + options.histogramBlue = needBlue = b; + options.histogramLuma = needLuma = l; + options.histogramChroma = needChroma = c; + options.histogramRAW = rawMode = raw; + options.histogramBar = showMode = bar; + // Show/hide the RGB bar widget if (bar && !barDisplayed) { - // Toggled on, add (show) the widget parent->add(*this); - options.histogramBar = true; barDisplayed = true; } else if (!bar && barDisplayed) { - // Toggled off, remove (hide) the widget removeIfThere(parent, this, false); - options.histogramBar = false; barDisplayed = false; - // unfreeze - updateFreeze(false); } // Disable (but don't hide it) the bar button when RAW histogram is displayed @@ -661,24 +644,33 @@ bool HistogramRGBArea::on_button_press_event (GdkEventButton* event) { if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { - // do something. Maybe un-freeze ? + // do something? } return true; } +void HistogramRGBArea::factorChanged (double newFactor) +{ + factor = newFactor; +} + // // // // HistogramArea -HistogramArea::HistogramArea (FullModeListener *fml) : //needChroma unactive by default - valid(false), fullMode(options.histogramFullMode), myFullModeListener(fml), oldwidth(-1), oldheight(-1), needLuma(true), needRed(true), needGreen(true), needBlue(true), rawMode(false), needChroma(false) +HistogramArea::HistogramArea (DrawModeListener *fml) : + valid(false), drawMode(options.histogramDrawMode), myDrawModeListener(fml), + oldwidth(-1), oldheight(-1), + needRed(options.histogramRed), needGreen(options.histogramGreen), needBlue(options.histogramBlue), + needLuma(options.histogramLuma), needChroma(options.histogramChroma), rawMode(options.histogramRAW), + isPressed(false), movingPosition(0.0) { - lhist(256); rhist(256); ghist(256); bhist(256); + lhist(256); chist(256); get_style_context()->add_class("drawingarea"); @@ -703,35 +695,28 @@ HistogramArea::~HistogramArea () Gtk::SizeRequestMode HistogramArea::get_request_mode_vfunc () const { - return Gtk::SIZE_REQUEST_HEIGHT_FOR_WIDTH; + return Gtk::SIZE_REQUEST_CONSTANT_SIZE; } void HistogramArea::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - int minimumWidth = 0; - int naturalWidth = 0; - get_preferred_width_vfunc (minimumWidth, naturalWidth); - get_preferred_height_for_width_vfunc (minimumWidth, minimum_height, natural_height); + + minimum_height = 100; + natural_height = 200; } void HistogramArea::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 60; - natural_width = 200; + + minimum_width = 200; + natural_width = 400; } void HistogramArea::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { - int gHeight = width / 2; - - if (gHeight > 150) { - gHeight = 150; - } else if (gHeight < 100) { - gHeight = 100; - } - - minimum_height = gHeight * 0.7; - natural_height = gHeight; + + minimum_height = 0; + natural_height = 0; } void HistogramArea::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const @@ -739,32 +724,31 @@ void HistogramArea::get_preferred_width_for_height_vfunc (int height, int &minim get_preferred_width_vfunc (minimum_width, natural_width); } -void HistogramArea::updateOptions (bool r, bool g, bool b, bool l, bool raw, bool full, bool c) +void HistogramArea::updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, int mode) { - - needRed = r; - needGreen = g; - needBlue = b; - needLuma = l; - rawMode = raw; - fullMode = !full; - needChroma = c; + + options.histogramRed = needRed = r; + options.histogramGreen = needGreen = g; + options.histogramBlue = needBlue = b; + options.histogramLuma = needLuma = l; + options.histogramChroma = needChroma = c; + options.histogramRAW = rawMode = raw; + options.histogramDrawMode = drawMode = mode; updateBackBuffer (); } -void HistogramArea::update (LUTu &histRed, LUTu &histGreen, LUTu &histBlue, LUTu &histLuma, LUTu &histRedRaw, LUTu &histGreenRaw, LUTu &histBlueRaw, LUTu &histChroma) +void HistogramArea::update (LUTu &histRed, LUTu &histGreen, LUTu &histBlue, LUTu &histLuma, LUTu &histChroma, LUTu &histRedRaw, LUTu &histGreenRaw, LUTu &histBlueRaw) { if (histRed) { - lhist = histLuma; - chist = histChroma; rhist = histRed; ghist = histGreen; bhist = histBlue; + lhist = histLuma; + chist = histChroma; rhistRaw = histRedRaw; ghistRaw = histGreenRaw; bhistRaw = histBlueRaw; - valid = true; } else { valid = false; @@ -814,10 +798,56 @@ void HistogramArea::updateBackBuffer () Cairo::RefPtr cr = Cairo::Context::create(surface); const Glib::RefPtr style = get_style_context(); + // Setup drawing cr->set_source_rgba (0., 0., 0., 0.); cr->set_operator (Cairo::OPERATOR_CLEAR); cr->paint (); - cr->set_operator (Cairo::OPERATOR_OVER); + cr->set_operator (Cairo::OPERATOR_SOURCE); + + // Prepare drawing gridlines first + cr->set_source_rgba (1., 1., 1., 0.25); + cr->set_line_width (1.0); + cr->set_antialias(Cairo::ANTIALIAS_NONE); + cr->set_line_join(Cairo::LINE_JOIN_MITER); + std::valarray ch_ds (1); + ch_ds[0] = 4; + cr->set_dash (ch_ds, 0); + + // determine the number of h-gridlines based on current h + int nrOfHGridPartitions = (int)rtengine::min (16.0, pow (2.0, floor ((h - 100) / 250) + 2)); + int nrOfVGridPartitions = 8; // always show 8 stops (lines at 1,3,7,15,31,63,127) + + // draw vertical gridlines + if (options.histogramDrawMode < 2) { + for (int i = 1; i < nrOfVGridPartitions; i++) { + cr->move_to ((pow(2.0,i) - 1) / 255 * w + 0.5, 1.5); + cr->line_to ((pow(2.0,i) - 1) / 255 * w + 0.5, h - 2); + cr->stroke (); + } + } else { + for (int i = 1; i < nrOfVGridPartitions; i++) { + cr->move_to (HistogramScaling::log (255, pow(2.0,i) - 1) / 255 * w + 0.5, 1.5); + cr->line_to (HistogramScaling::log (255, pow(2.0,i) - 1) / 255 * w + 0.5, h - 2); + cr->stroke (); + } + } + + // draw horizontal gridlines + if (options.histogramDrawMode == 0) { + for (int i = 1; i < nrOfHGridPartitions; i++) { + cr->move_to (1.5, i * h / nrOfHGridPartitions + 0.5); + cr->line_to (w - 2, i * h / nrOfHGridPartitions + 0.5); + cr->stroke (); + } + } else { + for (int i = 1; i < nrOfHGridPartitions; i++) { + cr->move_to (1.5, h - HistogramScaling::log (h, i * h / nrOfHGridPartitions) + 0.5); + cr->line_to (w - 2, h - HistogramScaling::log (h, i * h / nrOfHGridPartitions) + 0.5); + cr->stroke (); + } + } + + cr->unset_dash(); if (valid) { // For RAW mode use the other hists @@ -852,106 +882,56 @@ void HistogramArea::updateBackBuffer () } } - // compute height of the full histogram (realheight) and - // does not take into account 0 and 255 values - // them are handled separately - - unsigned int fullhistheight = 0; + // Compute the highest point of the histogram for scaling + // Values at far left and right end (0 and 255) are handled differently + + unsigned int histheight = 0; for (int i = 1; i < 255; i++) { - if (needLuma && lhisttemp[i] > fullhistheight) { - fullhistheight = lhisttemp[i]; + if (needLuma && lhisttemp[i] > histheight) { + histheight = lhisttemp[i]; } - if (needChroma && chisttemp[i] > fullhistheight) { - fullhistheight = chisttemp[i]; + if (needChroma && chisttemp[i] > histheight) { + histheight = chisttemp[i]; } - if (needRed && rhtemp[i] > fullhistheight) { - fullhistheight = rhtemp[i]; + if (needRed && rhtemp[i] > histheight) { + histheight = rhtemp[i]; } - if (needGreen && ghtemp[i] > fullhistheight) { - fullhistheight = ghtemp[i]; + if (needGreen && ghtemp[i] > histheight) { + histheight = ghtemp[i]; } - if (needBlue && bhtemp[i] > fullhistheight) { - fullhistheight = bhtemp[i]; - } - } - - int realhistheight = fullhistheight; - - // though much faster than before, this still takes a lot of time especially for big files if rawMode is true - if (!fullMode) { - int area = 0; - -#ifdef __SSE2__ - vint onev = _mm_set1_epi32(1); - vint iv = (vint)ZEROV; -#endif - - for (unsigned i = 0; i < fullhistheight; i++) { -#ifdef __SSE2__ - vint areatempv = (vint)ZEROV; - - for (int j = 0; j < 256; j += 4) { - vmask mask1v = _mm_cmpgt_epi32(LVI(lhisttemp[j]), iv); - vmask mask2v = _mm_cmpgt_epi32(LVI(rhtemp[j]), iv); - vmask mask3v = _mm_cmpgt_epi32(LVI(ghtemp[j]), iv); - vmask mask4v = _mm_cmpgt_epi32(LVI(bhtemp[j]), iv); - mask1v = _mm_or_si128(mask1v, mask2v); - mask3v = _mm_or_si128(mask3v, mask4v); - mask2v = _mm_cmpgt_epi32(LVI(chisttemp[j]), iv); - mask1v = _mm_or_si128(mask1v, mask3v); - mask1v = _mm_or_si128(mask1v, mask2v); - areatempv = _mm_add_epi32(areatempv, _mm_and_si128(mask1v, onev)); - - } - - areatempv = _mm_add_epi32(areatempv, (vint)_mm_movehl_ps((vfloat)areatempv, (vfloat)areatempv)); - areatempv = _mm_add_epi32(areatempv, _mm_shuffle_epi32(areatempv, 1)); - area += _mm_cvtsi128_si32(areatempv); - iv = _mm_add_epi32(iv, onev); - -#else - - for (int j = 0; j < 256; j++) - if (lhisttemp[j] > i || rhtemp[j] > i || ghtemp[j] > i || bhtemp[j] > i || chisttemp[j] > i) { - area++; - } - -#endif - - if ((double)area / (256 * (i + 1)) < 0.3) { - realhistheight = i; - break; - } + if (needBlue && bhtemp[i] > histheight) { + histheight = bhtemp[i]; } } + int realhistheight = histheight; + if (realhistheight < winh - 2) { realhistheight = winh - 2; } cr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); cr->set_line_width (1.0); + cr->set_operator (Cairo::OPERATOR_OVER); int ui = 0, oi = 0; if (needLuma && !rawMode) { drawCurve(cr, lhist, realhistheight, w, h); - cr->set_source_rgb (0.65, 0.65, 0.65); + cr->set_source_rgba (0.65, 0.65, 0.65, 0.65); cr->fill (); - drawMarks(cr, lhist, realhistheight, w, ui, oi); } if (needChroma && !rawMode) { drawCurve(cr, chist, realhistheight, w, h); - cr->set_source_rgb (0., 0., 0.); + cr->set_source_rgb (0.9, 0.9, 0.); cr->stroke (); - drawMarks(cr, chist, realhistheight, w, ui, oi); } @@ -959,7 +939,6 @@ void HistogramArea::updateBackBuffer () drawCurve(cr, rhchanged, realhistheight, w, h); cr->set_source_rgb (1.0, 0.0, 0.0); cr->stroke (); - drawMarks(cr, rhchanged, realhistheight, w, ui, oi); } @@ -967,7 +946,6 @@ void HistogramArea::updateBackBuffer () drawCurve(cr, ghchanged, realhistheight, w, h); cr->set_source_rgb (0.0, 1.0, 0.0); cr->stroke (); - drawMarks(cr, ghchanged, realhistheight, w, ui, oi); } @@ -975,42 +953,11 @@ void HistogramArea::updateBackBuffer () drawCurve(cr, bhchanged, realhistheight, w, h); cr->set_source_rgb (0.0, 0.0, 1.0); cr->stroke (); - drawMarks(cr, bhchanged, realhistheight, w, ui, oi); } + } - cr->set_source_rgba (1., 1., 1., 0.35); - cr->set_line_width (1.0); - cr->set_antialias(Cairo::ANTIALIAS_NONE); - - // Draw the content - cr->set_line_join(Cairo::LINE_JOIN_MITER); - std::valarray ch_ds (1); - ch_ds[0] = 4; - cr->set_dash (ch_ds, 0); - - cr->move_to(w / 4 + 0.5, 1.5); - cr->line_to(w / 4 + 0.5, h - 2); - cr->stroke(); - cr->move_to(2 * w / 4 + 0.5, 1.5); - cr->line_to(2 * w / 4 + 0.5, h - 2); - cr->stroke(); - cr->move_to(3 * w / 4 + 0.5, 1.5); - cr->line_to(3 * w / 4 + 0.5, h - 2); - cr->stroke(); - cr->move_to(1.5, h / 4 + 0.5); - cr->line_to(w - 2, h / 4 + 0.5); - cr->stroke(); - cr->move_to(1.5, 2 * h / 4 + 0.5); - cr->line_to(w - 2, 2 * h / 4 + 0.5); - cr->stroke(); - cr->move_to(1.5, 3 * h / 4 + 0.5); - cr->line_to(w - 2, 3 * h / 4 + 0.5); - cr->stroke(); - - cr->unset_dash(); - // Draw the frame's border style->render_frame(cr, 0, 0, surface->get_width(), surface->get_height()); @@ -1025,7 +972,7 @@ void HistogramArea::on_realize () Gtk::DrawingArea::on_realize(); Glib::RefPtr window = get_window(); - add_events(Gdk::BUTTON_PRESS_MASK); + add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK); } void HistogramArea::drawCurve(Cairo::RefPtr &cr, @@ -1035,14 +982,20 @@ void HistogramArea::drawCurve(Cairo::RefPtr &cr, scale = scale <= 0.f ? 0.001f : scale; // avoid division by zero and negative values for (int i = 0; i < 256; i++) { - double val = data[i] * (double)(vsize - 2) / scale; + double val = data[i] * (double)vsize / scale; - if (val > vsize - 1) { - val = vsize - 1; + if (drawMode > 0) { // scale y for single and double log-scale + val = HistogramScaling::log ((double)vsize, val); } - double posX = (i / 255.0) * (hsize - 1); - double posY = vsize - 1 - val; + double iscaled = i; + if (drawMode == 2) { // scale x for double log-scale + iscaled = HistogramScaling::log (255.0, (double)i); + } + + double posX = (iscaled / 255.0) * (hsize - 1); + double posY = vsize - 2 + val * (4 - vsize) / vsize; + cr->line_to (posX, posY); } @@ -1084,15 +1037,18 @@ bool HistogramArea::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) bool HistogramArea::on_button_press_event (GdkEventButton* event) { - + isPressed = true; + movingPosition = event->x; + if (event->type == GDK_2BUTTON_PRESS && event->button == 1) { - fullMode = !fullMode; - options.histogramFullMode = fullMode; - - if (myFullModeListener) { - myFullModeListener->toggle_button_full (); + + drawMode = (drawMode + 1) % 3; + options.histogramDrawMode = (options.histogramDrawMode + 1) % 3; + + if (myDrawModeListener) { + myDrawModeListener->toggle_button_mode (); } - + updateBackBuffer (); queue_draw (); } @@ -1100,3 +1056,34 @@ bool HistogramArea::on_button_press_event (GdkEventButton* event) return true; } +bool HistogramArea::on_button_release_event (GdkEventButton* event) +{ + isPressed = false; + return true; +} + +bool HistogramArea::on_motion_notify_event (GdkEventMotion* event) +{ + if (isPressed) + { + double mod = 1 + (event->x - movingPosition) / get_width(); + + factor /= mod; + if (factor < 1.0) + factor = 1.0; + if (factor > 100.0) + factor = 100.0; + + sigFactorChanged.emit(factor); + + setDirty(true); + queue_draw (); + } + + return true; +} + +HistogramArea::type_signal_factor_changed HistogramArea::signal_factor_changed() +{ + return sigFactorChanged; +} \ No newline at end of file diff --git a/rtgui/histogrampanel.h b/rtgui/histogrampanel.h index 0ce62956c..7c2e11162 100644 --- a/rtgui/histogrampanel.h +++ b/rtgui/histogrampanel.h @@ -43,7 +43,15 @@ struct HistogramRGBAreaIdleHelper { int pending; }; -class HistogramRGBArea : public Gtk::DrawingArea, public BackBuffer +class HistogramScaling +{ +public: + double factor; + HistogramScaling() : factor(10.0) {} + double log (double vsize, double val); +}; + +class HistogramRGBArea : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling { private: typedef const double (*TMatrix)[3]; @@ -56,17 +64,16 @@ protected: int g; int b; - bool frozen; bool valid; bool needRed; bool needGreen; bool needBlue; bool needLuma; + bool needChroma; bool rawMode; bool showMode; bool barDisplayed; - bool needChroma; Gtk::Grid* parent; @@ -77,8 +84,6 @@ public: ~HistogramRGBArea(); void updateBackBuffer (int r, int g, int b, const Glib::ustring &profile = "", const Glib::ustring &profileW = ""); - void updateFreeze (bool f); - bool getFreeze (); bool getShow (); void setParent (Gtk::Grid* p) { @@ -86,56 +91,67 @@ public: }; void update (int val, int rh, int gh, int bh); - void updateOptions (bool r, bool g, bool b, bool l, bool raw, bool show, bool c); + void updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, bool show); void on_realize(); bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); bool on_button_press_event (GdkEventButton* event); + void factorChanged (double newFactor); + private: Gtk::SizeRequestMode get_request_mode_vfunc () const; void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const; void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const; void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const; void get_preferred_width_for_height_vfunc (int h, int &minimum_width, int &natural_width) const; - // Some ... + }; - -class FullModeListener +class DrawModeListener { public: - virtual ~FullModeListener() {} - virtual void toggle_button_full () {} + virtual ~DrawModeListener() {} + virtual void toggle_button_mode () {} }; -class HistogramArea : public Gtk::DrawingArea, public BackBuffer +class HistogramArea : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling { +public: + typedef sigc::signal type_signal_factor_changed; + private: IdleRegister idle_register; + type_signal_factor_changed sigFactorChanged; protected: - LUTu lhist, rhist, ghist, bhist, chist; - LUTu lhistRaw, rhistRaw, ghistRaw, bhistRaw; + LUTu rhist, ghist, bhist, lhist, chist; + LUTu rhistRaw, ghistRaw, bhistRaw, lhistRaw; //lhistRaw is unused? bool valid; - bool fullMode; - FullModeListener *myFullModeListener; + int drawMode; + DrawModeListener *myDrawModeListener; int oldwidth, oldheight; - bool needLuma, needRed, needGreen, needBlue, rawMode, needChroma; + bool needRed, needGreen, needBlue, needLuma, needChroma; + bool rawMode; + bool isPressed; + double movingPosition; HistogramAreaIdleHelper* haih; public: - explicit HistogramArea(FullModeListener *fml = nullptr); + explicit HistogramArea(DrawModeListener *fml = nullptr); ~HistogramArea(); void updateBackBuffer (); - void update (LUTu &histRed, LUTu &histGreen, LUTu &histBlue, LUTu &histLuma, LUTu &histRedRaw, LUTu &histGreenRaw, LUTu &histBlueRaw, LUTu &histChroma); - void updateOptions (bool r, bool g, bool b, bool l, bool raw, bool full , bool c); + void update (LUTu &histRed, LUTu &histGreen, LUTu &histBlue, LUTu &histLuma, LUTu &histChroma, LUTu &histRedRaw, LUTu &histGreenRaw, LUTu &histBlueRaw); + void updateOptions (bool r, bool g, bool b, bool l, bool c, bool raw, int mode); void on_realize(); bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr); bool on_button_press_event (GdkEventButton* event); + bool on_button_release_event (GdkEventButton* event); + bool on_motion_notify_event (GdkEventMotion* event); + type_signal_factor_changed signal_factor_changed(); private: void drawCurve(Cairo::RefPtr &cr, LUTu & data, double scale, int hsize, int vsize); @@ -147,7 +163,7 @@ private: void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const; }; -class HistogramPanel : public Gtk::Grid, public PointerMotionListener, public FullModeListener +class HistogramPanel : public Gtk::Grid, public PointerMotionListener, public DrawModeListener { protected: @@ -161,16 +177,15 @@ protected: Gtk::ToggleButton* showBlue; Gtk::ToggleButton* showValue; Gtk::ToggleButton* showRAW; - Gtk::ToggleButton* showFull; Gtk::ToggleButton* showBAR; Gtk::ToggleButton* showChro; + Gtk::Button* showMode; Gtk::Image *redImage; Gtk::Image *greenImage; Gtk::Image *blueImage; Gtk::Image *valueImage; Gtk::Image *rawImage; - Gtk::Image *fullImage; Gtk::Image *barImage; Gtk::Image *chroImage; @@ -179,10 +194,12 @@ protected: Gtk::Image *blueImage_g; Gtk::Image *valueImage_g; Gtk::Image *rawImage_g; - Gtk::Image *fullImage_g; Gtk::Image *barImage_g; Gtk::Image *chroImage_g; + Gtk::Image *mode0Image; + Gtk::Image *mode1Image; + Gtk::Image *mode2Image; sigc::connection rconn; void setHistInvalid (); @@ -192,14 +209,13 @@ public: HistogramPanel (); ~HistogramPanel (); - void histogramChanged (LUTu &histRed, LUTu &histGreen, LUTu &histBlue, LUTu &histLuma, LUTu &histRedRaw, LUTu &histGreenRaw, LUTu &histBlueRaw, LUTu &histChroma) + void histogramChanged (LUTu &histRed, LUTu &histGreen, LUTu &histBlue, LUTu &histLuma, LUTu &histChroma, LUTu &histRedRaw, LUTu &histGreenRaw, LUTu &histBlueRaw) { - histogramArea->update (histRed, histGreen, histBlue, histLuma, histRedRaw, histGreenRaw, histBlueRaw, histChroma); + histogramArea->update (histRed, histGreen, histBlue, histLuma, histChroma, histRedRaw, histGreenRaw, histBlueRaw); } // pointermotionlistener interface - void pointerMoved (bool validPos, Glib::ustring profile, Glib::ustring profileW, int x, int y, int r, int g, int b); - // added pointermotionlistener interface - void toggleFreeze(); + void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw = false); + // TODO should be protected void setHistRGBInvalid (); @@ -209,14 +225,14 @@ public: void blue_toggled (); void value_toggled (); void raw_toggled (); - void full_toggled (); void chro_toggled (); void bar_toggled (); + void mode_released (); void rgbv_toggled (); void resized (Gtk::Allocation& req); - // fullModeListener interface - void toggle_button_full (); + // drawModeListener interface + void toggle_button_mode (); }; #endif diff --git a/rtgui/history.cc b/rtgui/history.cc index 7a3efd2ef..ad88317e2 100644 --- a/rtgui/history.cc +++ b/rtgui/history.cc @@ -94,7 +94,7 @@ History::History (bool bookmarkSupport) : historyVPaned (nullptr), blistener (nu //addBookmark->get_style_context()->set_junction_sides(Gtk::JUNCTION_RIGHT); addBookmark->get_style_context()->add_class ("Left"); addBookmark->set_tooltip_markup (M ("HISTORY_NEWSNAPSHOT_TOOLTIP")); - Gtk::Image* addimg = Gtk::manage (new RTImage ("gtk-add.png")); + Gtk::Image* addimg = Gtk::manage (new RTImage ("add-small.png")); addBookmark->set_image (*addimg); ahbox->pack_start (*addBookmark); @@ -102,7 +102,7 @@ History::History (bool bookmarkSupport) : historyVPaned (nullptr), blistener (nu setExpandAlignProperties (delBookmark, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); //delBookmark->get_style_context()->set_junction_sides(Gtk::JUNCTION_LEFT); delBookmark->get_style_context()->add_class ("Right"); - Gtk::Image* delimg = Gtk::manage (new RTImage ("list-remove.png")); + Gtk::Image* delimg = Gtk::manage (new RTImage ("remove-small.png")); delBookmark->set_image (*delimg); ahbox->pack_start (*delBookmark); diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc new file mode 100644 index 000000000..8ae8d4ab9 --- /dev/null +++ b/rtgui/iccprofilecreator.cc @@ -0,0 +1,1033 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jacques DESMIS + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include +#include "iccprofilecreator.h" +#include "multilangmgr.h" +#include "cachemanager.h" +#include "addsetids.h" +#include "../rtengine/icons.h" +#include "../rtengine/color.h" +#include "rtimage.h" +#ifdef _OPENMP +#include +#endif + +extern Options options; + +namespace rtengine +{ + +extern const Settings* settings; + +} + +const char* sTRCPreset[] = {"BT709_g2.2_s4.5", "sRGB_g2.4_s12.92", "linear_g1.0", "standard_g2.2", "standard_g1.8", "High_g1.3_s3.35", "Low_g2.6_s6.9", "Lab_g3.0s9.03296"}; //gamma free + +ICCProfileCreator::ICCProfileCreator(RTWindow *rtwindow) + : Gtk::Dialog (M ("MAIN_BUTTON_ICCPROFCREATOR"), *rtwindow, true) + , primariesPreset(options.ICCPC_primariesPreset) + , redPrimaryX(options.ICCPC_redPrimaryX) + , redPrimaryY(options.ICCPC_redPrimaryY) + , greenPrimaryX(options.ICCPC_greenPrimaryX) + , greenPrimaryY(options.ICCPC_greenPrimaryY) + , bluePrimaryX(options.ICCPC_bluePrimaryX) + , bluePrimaryY(options.ICCPC_bluePrimaryY) + , gammaPreset(options.ICCPC_gammaPreset) + , gamma(options.ICCPC_gamma) + , slope(options.ICCPC_slope) + , appendParamsToDesc(options.ICCPC_appendParamsToDesc) + , profileVersion(options.ICCPC_profileVersion) + , illuminant(options.ICCPC_illuminant) + , description(options.ICCPC_description) + , copyright(options.ICCPC_copyright) + , parent(rtwindow) +{ + + set_default_size(600, -1); + + Gtk::Grid* mainGrid = Gtk::manage(new Gtk::Grid()); + mainGrid->set_column_spacing(3); + mainGrid->set_row_spacing(3); + + //--------------------------------- primaries + + Gtk::Label* prilab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_PRIMARIES"))); + setExpandAlignProperties(prilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*prilab, 0, 0, 1, 1); + + primaries = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(primaries, false, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + primaries->append(M("ICCPROFCREATOR_CUSTOM")); + primaries->append(M("ICCPROFCREATOR_PRIM_ACESP0")); + primaries->append(M("ICCPROFCREATOR_PRIM_ACESP1")); + primaries->append(M("ICCPROFCREATOR_PRIM_ADOBE")); + primaries->append(M("ICCPROFCREATOR_PRIM_PROPH")); + primaries->append(M("ICCPROFCREATOR_PRIM_REC2020")); + primaries->append(M("ICCPROFCREATOR_PRIM_SRGB")); + primaries->append(M("ICCPROFCREATOR_PRIM_WIDEG")); + primaries->append(M("ICCPROFCREATOR_PRIM_BEST")); + primaries->append(M("ICCPROFCREATOR_PRIM_BETA")); + primaries->append(M("ICCPROFCREATOR_PRIM_BRUCE")); + primaries->set_tooltip_text(M("ICCPROFCREATOR_PRIM_TOOLTIP")); + mainGrid->attach(*primaries, 1, 0, 1, 1); + + primariesGrid = Gtk::manage(new Gtk::Grid()); + setExpandAlignProperties(primariesGrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + primariesGrid->set_column_spacing(5); + + /* + Gtk::Image* gamuts0 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl0 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts1 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl1 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts2 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl2 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts3 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl3 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts4 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl4 = Gtk::manage(new RTImage("rt-logo-small.png")); + Gtk::Image* gamuts5 = Gtk::manage(new RTImage("rt-logo-tiny.png")); + Gtk::Image* gamutl5 = Gtk::manage(new RTImage("rt-logo-small.png")); + */ + + aPrimariesRedX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDX"), 0.6300, 0.7350, 0.0001, 0.6400/*, gamuts0, gamutl0*/)); + setExpandAlignProperties(aPrimariesRedX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesRedY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_REDY"), 0.2650, 0.3350, 0.0001, 0.3300/*, gamutl1, gamuts1*/)); + setExpandAlignProperties(aPrimariesRedY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesGreenX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREX"), 0.0000, 0.3100, 0.0001, 0.3000/*, gamutl2, gamuts2*/)); + setExpandAlignProperties(aPrimariesGreenX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesGreenY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_GREY"), 0.5900, 1.0000, 0.0001, 0.6000/*, gamuts3, gamutl3*/)); + setExpandAlignProperties(aPrimariesGreenY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesBlueX = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUX"), 0.0001, 0.1600, 0.0001, 0.1500/*, gamutl4, gamuts4*/)); + setExpandAlignProperties(aPrimariesBlueX, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + aPrimariesBlueY = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_PRIM_BLUY"), -0.0800, 0.0700, 0.0001, 0.060/*, gamutl5, gamuts5*/)); + setExpandAlignProperties(aPrimariesBlueY, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + + primariesGrid->attach(*aPrimariesRedX, 0, 0, 1, 1); + primariesGrid->attach(*aPrimariesRedY, 1, 0, 1, 1); + + primariesGrid->attach(*aPrimariesGreenX, 0, 1, 1, 1); + primariesGrid->attach(*aPrimariesGreenY, 1, 1, 1, 1); + + primariesGrid->attach(*aPrimariesBlueX, 0, 2, 1, 1); + primariesGrid->attach(*aPrimariesBlueY, 1, 2, 1, 1); + + mainGrid->attach(*primariesGrid, 1, 1, 1, 1); + + //--------------------------------- output gamma + + Gtk::Label* galab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_TRC_PRESET"))); + setExpandAlignProperties(galab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*galab, 0, 2, 1, 1); + + trcPresets = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(trcPresets, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + std::vector outputTRCPresets; + outputTRCPresets.push_back(M("ICCPROFCREATOR_CUSTOM")); + for (unsigned int i = 0; i < sizeof(sTRCPreset) / sizeof(sTRCPreset[0]); i++) { + outputTRCPresets.push_back(sTRCPreset[i]); + } + for (size_t i = 0; i < outputTRCPresets.size(); i++) { + trcPresets->append(outputTRCPresets[i]); + } + mainGrid->attach(*trcPresets, 1, 2, 1, 1); + + //--------------------------------- sliders gampos and slpos + + aGamma = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_GAMMA"), 1, 3.5, 0.01, 2.4)); + setExpandAlignProperties(aGamma, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + + if (aGamma->delay < options.adjusterMaxDelay) { + aGamma->delay = options.adjusterMaxDelay; + } + aGamma->show(); + mainGrid->attach(*aGamma, 1, 3, 1, 1); //gamma + + aSlope = Gtk::manage(new Adjuster(M("ICCPROFCREATOR_SLOPE"), 0, 15, 0.00001, 12.92310)); + setExpandAlignProperties(aSlope, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + + if (aSlope->delay < options.adjusterMaxDelay) { + aSlope->delay = options.adjusterMaxDelay; + } + aSlope->show(); + mainGrid->attach(*aSlope, 1, 4, 1, 1); //slope + + //--------------------------------- temperature + + Gtk::Label* illlab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ILL"))); + setExpandAlignProperties(illlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*illlab, 0, 5, 1, 1); //slope + cIlluminant = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(cIlluminant, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + cIlluminant->append(M("ICCPROFCREATOR_ILL_DEF")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_41")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_50")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_55")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_60")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_65")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_80")); + cIlluminant->append(M("ICCPROFCREATOR_ILL_INC")); + cIlluminant->set_tooltip_text(M("ICCPROFCREATOR_ILL_TOOLTIP")); + mainGrid->attach(*cIlluminant, 1, 5, 1, 1); + + //--------------------------------- V2 or V4 profiles + + Gtk::Label* proflab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_ICCVERSION"))); + setExpandAlignProperties(proflab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*proflab, 0, 6, 1, 1); + iccVersion = Gtk::manage(new MyComboBoxText()); + setExpandAlignProperties(iccVersion, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); + iccVersion->append(M("ICCPROFCREATOR_PROF_V4")); + iccVersion->append(M("ICCPROFCREATOR_PROF_V2")); + mainGrid->attach(*iccVersion, 1, 6, 1, 1); + + //--------------------------------- Description + + Gtk::Label* desclab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_DESCRIPTION"))); + setExpandAlignProperties(desclab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_START); + mainGrid->attach(*desclab, 0, 7, 1, 2); + eDescription = Gtk::manage(new Gtk::Entry()); + setExpandAlignProperties(eDescription, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + eDescription->set_tooltip_text(M("ICCPROFCREATOR_DESCRIPTION_TOOLTIP")); + mainGrid->attach(*eDescription, 1, 7, 1, 1); + cAppendParamsToDesc = Gtk::manage(new Gtk::CheckButton(M("ICCPROFCREATOR_DESCRIPTION_ADDPARAM"))); + setExpandAlignProperties(cAppendParamsToDesc, true, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*cAppendParamsToDesc, 1, 8, 1, 1); + + //--------------------------------- Copyright + + Gtk::Label* copylab = Gtk::manage(new Gtk::Label(M("ICCPROFCREATOR_COPYRIGHT"))); + setExpandAlignProperties(copylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); + mainGrid->attach(*copylab, 0, 9, 1, 1); + Gtk::Grid* copygrid = Gtk::manage(new Gtk::Grid()); + setExpandAlignProperties(copygrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + eCopyright = Gtk::manage(new Gtk::Entry()); + setExpandAlignProperties(eCopyright, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); + copygrid->attach(*eCopyright, 0, 0, 1, 1); + resetCopyright = Gtk::manage(new Gtk::Button()); + resetCopyright->add (*Gtk::manage (new RTImage ("undo-small.png", "redo-small.png"))); + setExpandAlignProperties(resetCopyright, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + resetCopyright->set_relief (Gtk::RELIEF_NONE); + resetCopyright->set_tooltip_markup (M("ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP")); + resetCopyright->get_style_context()->add_class(GTK_STYLE_CLASS_FLAT); + resetCopyright->set_can_focus(false); + copygrid->attach(*resetCopyright, 1, 0, 1, 1); + mainGrid->attach(*copygrid, 1, 9, 1, 1); + + //--------------------------------- Adding the mainGrid + + get_content_area()->add(*mainGrid); + + //--------------------------------- Setting default values for Adjusters + + aGamma->setDefault(gamma); + aSlope->setDefault(slope); + aPrimariesRedX->setDefault(redPrimaryX); + aPrimariesRedY->setDefault(redPrimaryY); + aPrimariesGreenX->setDefault(greenPrimaryX); + aPrimariesGreenY->setDefault(greenPrimaryY); + aPrimariesBlueX->setDefault(bluePrimaryX); + aPrimariesBlueY->setDefault(bluePrimaryY); + + //--------------- Updating widgets with actual values (from options) + + if (primariesPreset == "custom") { + primaries->set_active_text(M("ICCPROFCREATOR_CUSTOM")); + } else if (primariesPreset == "ACES-AP0") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP0")); + } else if (primariesPreset == "ACES-AP1") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ACESP1")); + } else if (primariesPreset == "Adobe") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_ADOBE")); + } else if (primariesPreset == "ProPhoto") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_PROPH")); + } else if (primariesPreset == "Rec2020") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_REC2020")); + } else if (primariesPreset == "sRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_SRGB")); + } else if (primariesPreset == "Widegamut") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_WIDEG")); + } else if (primariesPreset == "BestRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BEST")); + } else if (primariesPreset == "BetaRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BETA")); + } else if (primariesPreset == "BruceRGB") { + primaries->set_active_text(M("ICCPROFCREATOR_PRIM_BRUCE")); + } + + trcPresets->set_active(0); + if (gammaPreset != "Custom") { + trcPresets->set_active_text(gammaPreset); + } + + aGamma->setValue(gamma); + aSlope->setValue(slope); + aPrimariesRedX->setValue(redPrimaryX); + aPrimariesRedY->setValue(redPrimaryY); + aPrimariesGreenX->setValue(greenPrimaryX); + aPrimariesGreenY->setValue(greenPrimaryY); + aPrimariesBlueX->setValue(bluePrimaryX); + aPrimariesBlueY->setValue(bluePrimaryY); + + eDescription->set_text(description); + eCopyright->set_text(copyright); + cAppendParamsToDesc->set_active(appendParamsToDesc); + + if (illuminant == "DEF") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_DEF")); + } else if (illuminant == "D41") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_41")); + } else if (illuminant == "D50") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_50")); + } else if (illuminant == "D55") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_55")); + } else if (illuminant == "D60") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_60")); + } else if (illuminant == "D65") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_65")); + } else if (illuminant == "D80") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_80")); + } else if (illuminant == "stdA") { + cIlluminant->set_active_text(M("ICCPROFCREATOR_ILL_INC")); + } + + iccVersion->set_active(0); + if (profileVersion == "v2") { + iccVersion->set_active(1); + } + + trcPresetsChanged(); + illuminantChanged(); + primariesChanged(); + + //--------------- Action area button + + Gtk::Button* save = Gtk::manage (new Gtk::Button (M ("GENERAL_SAVE_AS"))); + save->signal_clicked().connect ( sigc::mem_fun (*this, &ICCProfileCreator::savePressed) ); + get_action_area()->pack_start (*save); + + Gtk::Button* close = Gtk::manage (new Gtk::Button (M ("GENERAL_CLOSE"))); + close->signal_clicked().connect ( sigc::mem_fun (*this, &ICCProfileCreator::closePressed) ); + get_action_area()->pack_start (*close); + + //--------------- Show childrens + + show_all_children (); + + //--------------- Connecting the signals + + aPrimariesRedX->setAdjusterListener(this); + aPrimariesRedY->setAdjusterListener(this); + aPrimariesGreenX->setAdjusterListener(this); + aPrimariesGreenY->setAdjusterListener(this); + aPrimariesBlueX->setAdjusterListener(this); + aPrimariesBlueY->setAdjusterListener(this); + aGamma->setAdjusterListener(this); + aSlope->setAdjusterListener(this); + primariesconn = primaries->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::primariesChanged)); + trcpresetsconn = trcPresets->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::trcPresetsChanged)); + illconn = cIlluminant->signal_changed().connect(sigc::mem_fun(*this, &ICCProfileCreator::illuminantChanged)); + resetCopyright->signal_clicked().connect(sigc::mem_fun(*this, &ICCProfileCreator::onResetCopyright)); +} + +void ICCProfileCreator::closePressed() +{ + storeValues(); + hide(); +} + +void ICCProfileCreator::updateICCVersion() +{ + if (cIlluminant->get_active_text() != M("ICCPROFCREATOR_ILL_DEF") || primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { + iccVersion->set_active_text(M("ICCPROFCREATOR_PROF_V4")); + iccVersion->set_sensitive(false); + } else { + iccVersion->set_sensitive(true); + } +} + +void ICCProfileCreator::adjusterChanged (Adjuster* a, double newval) +{ + if (a == aPrimariesRedX || a == aPrimariesRedY || + a == aPrimariesGreenX || a == aPrimariesGreenY || + a == aPrimariesBlueX || a == aPrimariesBlueY) + { + if (primaries->get_active_row_number() > 0) { + ConnectionBlocker blocker(primariesconn); + primaries->set_active(0); + updateICCVersion(); + } + } else if (a == aGamma || a == aSlope) { + if (trcPresets->get_active_row_number() > 0) { + ConnectionBlocker blocker(trcpresetsconn); + trcPresets->set_active(0); + } + } +} + +void ICCProfileCreator::primariesChanged() +{ + if (primaries->get_active_row_number() > 0) { + float p[6]; + ColorTemp temp; + Glib::ustring activeValue = primaries->get_active_text(); + Glib::ustring primPresetName = getPrimariesPresetName(activeValue); + getPrimaries(primPresetName, p, temp); + aPrimariesRedX->setValue(p[0]); + aPrimariesRedY->setValue(p[1]); + aPrimariesGreenX->setValue(p[2]); + aPrimariesGreenY->setValue(p[3]); + aPrimariesBlueX->setValue(p[4]); + aPrimariesBlueY->setValue(p[5]); + } + updateICCVersion(); +} + +void ICCProfileCreator::illuminantChanged() +{ + updateICCVersion(); +} + +void ICCProfileCreator::trcPresetsChanged() +{ + aGamma->block(true); + aSlope->block(true); + + double gamma; + double slope; + getGamma(getGammaPresetName(trcPresets->get_active_text()), gamma, slope); + aGamma->setValue(gamma); + aSlope->setValue(slope); + + aGamma->block(false); + aSlope->block(false); +} + +void ICCProfileCreator::storeValues() +{ + if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V4")) { + options.ICCPC_profileVersion = profileVersion = "v4"; + } else if (iccVersion->get_active_text() == M("ICCPROFCREATOR_PROF_V2")) { + options.ICCPC_profileVersion = profileVersion = "v2"; + } + + if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_DEF")) { + options.ICCPC_illuminant = illuminant = "DEF"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_41")) { + options.ICCPC_illuminant = illuminant = "D41"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_50")) { + options.ICCPC_illuminant = illuminant = "D50"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_55")) { + options.ICCPC_illuminant = illuminant = "D55"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_60")) { + options.ICCPC_illuminant = illuminant = "D60"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_65")) { + options.ICCPC_illuminant = illuminant = "D65"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_80")) { + options.ICCPC_illuminant = illuminant = "D80"; + } else if (cIlluminant->get_active_text() == M("ICCPROFCREATOR_ILL_INC")) { + options.ICCPC_illuminant = illuminant = "stdA"; + } + + options.ICCPC_primariesPreset = primariesPreset = getPrimariesPresetName(primaries->get_active_text()); + options.ICCPC_gammaPreset = gammaPreset = getGammaPresetName(trcPresets->get_active_text()); + options.ICCPC_gamma = gamma = aGamma->getValue(); + options.ICCPC_slope = slope = aSlope->getValue(); + options.ICCPC_redPrimaryX = redPrimaryX = aPrimariesRedX->getValue(); + options.ICCPC_redPrimaryY = redPrimaryY = aPrimariesRedY->getValue(); + options.ICCPC_greenPrimaryX = greenPrimaryX = aPrimariesGreenX->getValue(); + options.ICCPC_greenPrimaryY = greenPrimaryY = aPrimariesGreenY->getValue(); + options.ICCPC_bluePrimaryX = bluePrimaryX = aPrimariesBlueX->getValue(); + options.ICCPC_bluePrimaryY = bluePrimaryY = aPrimariesBlueY->getValue(); + options.ICCPC_description = description = eDescription->get_text(); + options.ICCPC_copyright = copyright = eCopyright->get_text(); + options.ICCPC_appendParamsToDesc = appendParamsToDesc = cAppendParamsToDesc->get_active(); +} + +Glib::ustring ICCProfileCreator::getPrimariesPresetName(const Glib::ustring &preset) +{ + if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP0")) { + return Glib::ustring("ACES-AP0"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ACESP1")) { + return Glib::ustring("ACES-AP1"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_ADOBE")) { + return Glib::ustring("Adobe"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_PROPH")) { + return Glib::ustring("ProPhoto"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_REC2020")) { + return Glib::ustring("Rec2020"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_SRGB")) { + return Glib::ustring("sRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_WIDEG")) { + return Glib::ustring("Widegamut"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BEST")) { + return Glib::ustring("BestRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BETA")) { + return Glib::ustring("BetaRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_PRIM_BRUCE")) { + return Glib::ustring("BruceRGB"); + } else if (primaries->get_active_text() == M("ICCPROFCREATOR_CUSTOM")) { + return Glib::ustring("custom"); + } else { + return Glib::ustring(); + } +} + +void ICCProfileCreator::getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp) +{ + temp = ColorTemp::D50; + if (preset == "Widegamut") { + p[0] = 0.7350; //Widegamut primaries + p[1] = 0.2650; + p[2] = 0.1150; + p[3] = 0.8260; + p[4] = 0.1570; + p[5] = 0.0180; + + } else if (preset == "Adobe") { + p[0] = 0.6400; //Adobe primaries + p[1] = 0.3300; + p[2] = 0.2100; + p[3] = 0.7100; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "sRGB") { + p[0] = 0.6400; // sRGB primaries + p[1] = 0.3300; + p[2] = 0.3000; + p[3] = 0.6000; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "BruceRGB") { + p[0] = 0.6400; // Bruce primaries + p[1] = 0.3300; + p[2] = 0.2800; + p[3] = 0.6500; + p[4] = 0.1500; + p[5] = 0.0600; + temp = ColorTemp::D65; + } else if (preset == "BetaRGB") { + p[0] = 0.6888; // Beta primaries + p[1] = 0.3112; + p[2] = 0.1986; + p[3] = 0.7551; + p[4] = 0.1265; + p[5] = 0.0352; + } else if (preset == "BestRGB") { + p[0] = 0.7347; // Best primaries + p[1] = 0.2653; + p[2] = 0.2150; + p[3] = 0.7750; + p[4] = 0.1300; + p[5] = 0.0350; + } else if (preset == "Rec2020") { + p[0] = 0.7080; // Rec2020 primaries + p[1] = 0.2920; + p[2] = 0.1700; + p[3] = 0.7970; + p[4] = 0.1310; + p[5] = 0.0460; + temp = ColorTemp::D65; + } else if (preset == "ACES-AP0") { + p[0] = 0.7347; // ACES P0 primaries + p[1] = 0.2653; + p[2] = 0.0000; + p[3] = 1.0; + p[4] = 0.0001; + p[5] = -0.0770; + temp = ColorTemp::D60; + } else if (preset == "ACES-AP1") { + p[0] = 0.713; // ACES P1 primaries + p[1] = 0.293; + p[2] = 0.165; + p[3] = 0.830; + p[4] = 0.128; + p[5] = 0.044; + temp = ColorTemp::D60; + } else if (preset == "ProPhoto") { + p[0] = 0.7347; // ProPhoto and default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } else if (preset == "custom") { + p[0] = redPrimaryX; + p[1] = redPrimaryY; + p[2] = greenPrimaryX; + p[3] = greenPrimaryY; + p[4] = bluePrimaryX; + p[5] = bluePrimaryY; + + } else { + p[0] = 0.7347; //default primaries + p[1] = 0.2653; + p[2] = 0.1596; + p[3] = 0.8404; + p[4] = 0.0366; + p[5] = 0.0001; + } +} + +Glib::ustring ICCProfileCreator::getGammaPresetName(const Glib::ustring &preset) +{ + Glib::ustring name(trcPresets->get_active_text()); + if (name == M("ICCPROFCREATOR_CUSTOM")) { + name = "Custom"; + } + return name; +} + +void ICCProfileCreator::getGamma(const Glib::ustring &preset, double &presetGamma, double &presetSlope) +{ + if (preset == "High_g1.3_s3.35") { + presetGamma = 1.3; + presetSlope = 3.35; + } else if (preset == "Low_g2.6_s6.9") { + presetGamma = 2.6; + presetSlope = 6.9; + } else if (preset == "sRGB_g2.4_s12.92") { + presetGamma = 2.4; + presetSlope = 12.92310; + } else if (preset == "BT709_g2.2_s4.5") { + presetGamma = 2.22; + presetSlope = 4.5; + } else if (preset == "linear_g1.0") { + presetGamma = 1.; + presetSlope = 0.; + } else if (preset == "standard_g2.2") { + presetGamma = 2.2; + presetSlope = 0.; + } else if (preset == "standard_g1.8") { + presetGamma = 1.8; + presetSlope = 0.; + } else if (preset == "Lab_g3.0s9.03296") { + presetGamma = 3.0; + presetSlope = 9.03296; + } else if (preset == "Custom") { + presetGamma = gamma; + presetSlope = slope; + } else { + presetGamma = 2.4; + presetSlope = 12.92310; + } +} + +void ICCProfileCreator::onResetCopyright() +{ + eCopyright->set_text(Options::getICCProfileCopyright()); +} + +// Copyright (c) 2018 Jacques DESMIS +// WARNING: the caller must lock lcmsMutex +void ICCProfileCreator::savePressed() +{ + cmsHPROFILE newProfile = nullptr; + Glib::ustring sNewProfile; + Glib::ustring sPrimariesPreset; + Glib::ustring sGammaPreset; + + storeValues(); + + // -------------------------------------------- Compute the default file name + + //necessary for V2 profile + if (primariesPreset == "ACES-AP0" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp0)) { + sNewProfile = options.rtSettings.ACESp0; + sPrimariesPreset = "ACES-AP0"; + } else if (primariesPreset == "ACES-AP1" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.ACESp1)) { + sNewProfile = options.rtSettings.ACESp1; + sPrimariesPreset = "ACES-AP1"; + } else if (primariesPreset == "Adobe" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.adobe)) { + sNewProfile = options.rtSettings.adobe; + sPrimariesPreset = "Medium"; + } else if (primariesPreset == "ProPhoto" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.prophoto)) { + sNewProfile = options.rtSettings.prophoto; + sPrimariesPreset = "Large"; + } else if (primariesPreset == "Rec2020" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.rec2020)) { + sNewProfile = options.rtSettings.rec2020; + sPrimariesPreset = "Rec2020"; + } else if (primariesPreset == "sRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.srgb)) { + sNewProfile = options.rtSettings.srgb; + sPrimariesPreset = "sRGB"; + } else if (primariesPreset == "Widegamut" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.widegamut)) { + sNewProfile = options.rtSettings.widegamut; + sPrimariesPreset = "Wide"; + } else if (primariesPreset == "BestRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.best)) { + sNewProfile = options.rtSettings.best; + sPrimariesPreset = "Best"; + } else if (primariesPreset == "BetaRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.beta)) { + sNewProfile = options.rtSettings.beta; + sPrimariesPreset = "Beta"; + } else if (primariesPreset == "BruceRGB" && rtengine::ICCStore::getInstance()->outputProfileExist(options.rtSettings.bruce)) { + sNewProfile = options.rtSettings.bruce; + sPrimariesPreset = "Bruce"; + } else if (primariesPreset == "custom") { + sNewProfile = options.rtSettings.srgb; + sPrimariesPreset = "Custom"; + } else { + // Should not occurs + if (rtengine::settings->verbose) { + printf("\"%s\": unknown working profile! - use LCMS2 substitution\n", primariesPreset.c_str()); + } + return; + } + + //begin adaptation rTRC gTRC bTRC + //"newProfile" profile has the same characteristics than RGB values, but TRC are adapted... for applying profile + if (rtengine::settings->verbose) { + printf("Output Gamma - profile Primaries as RT profile: \"%s\"\n", sNewProfile.c_str()); + } + + newProfile = rtengine::ICCStore::getInstance()->getProfile(sNewProfile); //get output profile + + if (newProfile == nullptr) { + + if (rtengine::settings->verbose) { + printf("\"%s\" ICC output profile not found!\n", sNewProfile.c_str()); + } + return; + } + + //change desc Tag , to "free gamma", or "BT709", etc. + Glib::ustring fName; + Glib::ustring sPrimariesAndIlluminant; + double presetGamma = 2.4; + double presetSlope = 12.92310; + const double eps = 0.000000001; // not divide by zero + getGamma(gammaPreset, presetGamma, presetSlope); + if (gammaPreset == "High_g1.3_s3.35") { + sGammaPreset = "High_g=1.3_s=3.35"; + ga[0] = 1.3 ; //for high dynamic images + ga[1] = 0.998279; + ga[2] = 0.001721; + ga[3] = 0.298507; + ga[4] = 0.005746; + } else if (gammaPreset == "Low_g2.6_s6.9") { + sGammaPreset = "Low_g=2.6_s=6.9"; + ga[0] = 2.6 ; //gamma 2.6 variable : for low contrast images + ga[1] = 0.891161; + ga[2] = 0.108839; + ga[3] = 0.144928; + ga[4] = 0.076332; + } else if (gammaPreset == "sRGB_g2.4_s12.92") { + sGammaPreset = "sRGB_g=2.4_s=12.92310"; + ga[0] = 2.40; //sRGB 2.4 12.92 - RT default as Lightroom + ga[1] = 0.947858; + ga[2] = 0.052142; + ga[3] = 0.077399; + ga[4] = 0.039293; + } else if (gammaPreset == "BT709_g2.2_s4.5") { + sGammaPreset = "BT709_g=2.2_s=4.5"; + ga[0] = 2.22; //BT709 2.2 4.5 - my preferred as D.Coffin + ga[1] = 0.909995; + ga[2] = 0.090005; + ga[3] = 0.222222; + ga[4] = 0.081071; + } else if (gammaPreset == "linear_g1.0") { + sGammaPreset = "Linear_g=1.0"; + ga[0] = 1.0; //gamma=1 linear : for high dynamic images (cf D.Coffin...) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "standard_g2.2") { + sGammaPreset = "g=2.2"; + ga[0] = 2.2; //gamma=2.2(as gamma of Adobe, Widegamut...) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "standard_g1.8") { + sGammaPreset = "g=1.8"; + ga[0] = 1.8; //gamma=1.8(as gamma of Prophoto) + ga[1] = 1.; + ga[2] = 0.; + ga[3] = 1. / eps; + ga[4] = 0.; + } else if (gammaPreset == "Lab_g3.0s9.03296") { + sGammaPreset = "LAB_g3.0_s9.03296"; + ga[0] = 3.0; //Lab gamma =3 slope=9.03296 + ga[1] = 0.8621; + ga[2] = 0.1379; + ga[3] = 0.1107; + ga[4] = 0.08; + } else if (gammaPreset == "Custom") { + rtengine::GammaValues g_a; //gamma parameters + double pwr = 1.0 / gamma; + double ts = slope; + double slope2 = slope == 0 ? eps : slope; + + int mode = 0; + rtengine::Color::calcGamma(pwr, ts, mode, g_a); // call to calcGamma with selected gamma and slope : return parameters for LCMS2 + ga[4] = g_a[3] * ts; + //printf("g_a.gamma0=%f g_a.gamma1=%f g_a.gamma2=%f g_a.gamma3=%f g_a.gamma4=%f\n", g_a.gamma0,g_a.gamma1,g_a.gamma2,g_a.gamma3,g_a.gamma4); + ga[0] = gamma; + ga[1] = 1. /(1.0 + g_a[4]); + ga[2] = g_a[4] /(1.0 + g_a[4]); + ga[3] = 1. / slope2; + //printf("ga[0]=%f ga[1]=%f ga[2]=%f ga[3]=%f ga[4]=%f\n", ga[0],ga[1],ga[2],ga[3],ga[4]); + + sGammaPreset = Glib::ustring::compose("g%1_s%2", + Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), gamma), + Glib::ustring::format (std::setw(6), std::fixed, std::setprecision(5), slope)); + presetGamma = gamma; + presetSlope = slope; + } + ga[5] = 0.0; + ga[6] = 0.0; + + + sPrimariesAndIlluminant = sPrimariesPreset; + + if (profileVersion == "v4" && illuminant != "DEF") { + sPrimariesPreset += "-" + illuminant; + // printf("outpr=%s \n",outPr.c_str()); + } + + Glib::ustring profileDesc; + Glib::ustring sGammaSlopeParam;//to save gamma and slope in a dmdd + Glib::ustring sGammaSlopeDesc; //to save gamma and slope in a desc + Glib::ustring sGamma; + Glib::ustring sSlope; + + if (gammaPreset == "Custom") { + sGamma = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), gamma); + sSlope = Glib::ustring::format (std::setw(6), std::fixed, std::setprecision(5), slope); + fName = Glib::ustring::compose("RT%1_%2_g%3_s%4.icc", profileVersion, sPrimariesAndIlluminant, sGamma, sSlope); + profileDesc = sPrimariesPreset; + } else { + sGamma = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), presetGamma); + sSlope = Glib::ustring::format (std::setw(6), std::fixed, std::setprecision(5), presetSlope); + fName = Glib::ustring::compose("RT%1_%2_%3.icc", profileVersion, sPrimariesAndIlluminant, sGammaPreset); + profileDesc == sPrimariesPreset + sGammaPreset; + } + sGammaSlopeParam = Glib::ustring::compose("g%1s%2!", sGamma, sSlope); + sGammaSlopeDesc = Glib::ustring::compose("g=%1 s=%2", sGamma, sSlope); + + // -------------------------------------------- Asking the file name + + Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("ICCPROFCREATOR_SAVEDIALOG_TITLE"), Gtk::FILE_CHOOSER_ACTION_SAVE); + bindCurrentFolder(dialog, options.lastICCProfCreatorDir); + dialog.set_current_name(fName); + //dialog.set_current_folder(lastPath); + + dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); + dialog.add_button(M("GENERAL_SAVE"), Gtk::RESPONSE_OK); + + Glib::RefPtr filter_icc = Gtk::FileFilter::create(); + filter_icc->set_name(M("FILECHOOSER_FILTER_COLPROF")); + filter_icc->add_pattern("*.icc"); + dialog.add_filter(filter_icc); + + /* + Glib::RefPtr filter_any = Gtk::FileFilter::create(); + filter_any->set_name(M("FILECHOOSER_FILTER_ANY")); + filter_any->add_pattern("*"); + dialog.add_filter(filter_any); + */ + + dialog.show_all_children(); + //dialog.set_do_overwrite_confirmation (true); + + Glib::ustring absoluteFName; + + do { + int result = dialog.run(); + + if (result != Gtk::RESPONSE_OK) { + return; + } else { + absoluteFName = dialog.get_filename(); + Glib::ustring ext = getExtension(absoluteFName); + + if (ext != "icc") { + absoluteFName += ".icc"; + } + + if (confirmOverwrite(dialog, absoluteFName)) { + //lastPath = Glib::path_get_dirname(absoluteFName); + break; + } + } + } while (1); + + // --------------- main tags ------------------ + + if (profileVersion == "v4") { + cmsSetProfileVersion(newProfile, 4.3); + } else { + cmsSetProfileVersion(newProfile, 2.0); + } + +//change + float p[6]; //primaries + ga[6] = 0.0; + + ColorTemp temp; + getPrimaries(primariesPreset, p, temp); + + cmsCIExyY xyD; + cmsCIExyYTRIPLE Primaries = { + {p[0], p[1], 1.0}, // red + {p[2], p[3], 1.0}, // green + {p[4], p[5], 1.0} // blue + }; + + if (profileVersion == "v4" && illuminant != "DEF") { + double tempv4 = 5000.; + if (illuminant == "D41") { + tempv4 = 4100.; + } else if (illuminant == "D50") { + tempv4 = 5003.; + } else if (illuminant == "D55") { + tempv4 = 5500.; + } else if (illuminant == "D60") { + tempv4 = 6004.; + } else if (illuminant == "D65") { + tempv4 = 6504.; + } else if (illuminant == "D80") { + tempv4 = 8000.; + } else if (illuminant == "stdA") { + tempv4 = 5003.; + } + cmsWhitePointFromTemp(&xyD, tempv4); + } else { + cmsWhitePointFromTemp(&xyD, (double)temp); + } + + if (illuminant == "stdA") { + xyD = {0.447573, 0.407440, 1.0}; + } + + // Calculate output profile's rTRC gTRC bTRC + cmsToneCurve* GammaTRC[3]; + GammaTRC[0] = GammaTRC[1] = GammaTRC[2] = cmsBuildParametricToneCurve(nullptr, 5, ga); + + if (profileVersion == "v4") { + newProfile = cmsCreateRGBProfile(&xyD, &Primaries, GammaTRC); + } + + cmsWriteTag(newProfile, cmsSigRedTRCTag, GammaTRC[0]); + cmsWriteTag(newProfile, cmsSigGreenTRCTag, GammaTRC[1]); + cmsWriteTag(newProfile, cmsSigBlueTRCTag, GammaTRC[2]); + + // --------------- set dmnd tag ------------------ + + cmsMLU *dmnd; + dmnd = cmsMLUalloc(nullptr, 1); + cmsMLUsetASCII(dmnd, "en", "US", "RawTherapee"); + cmsWriteTag(newProfile, cmsSigDeviceMfgDescTag, dmnd); + cmsMLUfree(dmnd); + + // --------------- set dmdd tag ------------------ + + if (profileVersion == "v2") { + //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile + std::wostringstream wGammaSlopeParam; + wGammaSlopeParam << sGammaSlopeParam; + + cmsMLU *dmdd = cmsMLUalloc(nullptr, 1); + // Language code (2 letters code) : https://www.iso.org/obp/ui/ + // Country code (2 letters code) : http://www.loc.gov/standards/iso639-2/php/code_list.php + if (sGammaSlopeParam.is_ascii()) { + if (cmsMLUsetASCII(dmdd, "en", "US", sGammaSlopeParam.c_str())) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, dmdd)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } + } else if (cmsMLUsetWide(dmdd, "en", "US", wGammaSlopeParam.str().c_str())) { + if (!cmsWriteTag(newProfile, cmsSigDeviceModelDescTag, dmdd)) { + printf("Error: Can't write cmsSigDeviceModelDescTag!\n"); + } + } else { + printf("Error: cmsMLUsetWide failed for dmdd \"%s\" !\n", sGammaSlopeParam.c_str()); + } + cmsMLUfree(dmdd); + } + + // --------------- set desc tag ------------------ + + Glib::ustring sDescription; + if (!description.empty()) { + if (cAppendParamsToDesc->get_active()) { + sDescription = description + " / " + sGammaSlopeDesc; + } else { + sDescription = description; + } + } else { + if (cAppendParamsToDesc->get_active()) { + sDescription = profileDesc + " / " + sGammaSlopeDesc; + } else { + sDescription = profileDesc; + } + } + + //write in tag 'dmdd' values of current gamma and slope to retrieve after in Output profile + std::wostringstream wDescription; + wDescription << sDescription; + + cmsMLU *descMLU = cmsMLUalloc(nullptr, 1); + // Language code (2 letters code) : https://www.iso.org/obp/ui/ + // Country code (2 letters code) : http://www.loc.gov/standards/iso639-2/php/code_list.php + if (sDescription.is_ascii()) { + if (cmsMLUsetASCII(descMLU, "en", "US", sDescription.c_str())) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } + } else if (cmsMLUsetWide(descMLU, "en", "US", wDescription.str().c_str())) { + if (!cmsWriteTag(newProfile, cmsSigProfileDescriptionTag, descMLU)) { + printf("Error: Can't write cmsSigProfileDescriptionTag!\n"); + } + } else { + printf("Error: cmsMLUsetWide failed for desc \"%s\" !\n", sDescription.c_str()); + } + cmsMLUfree(descMLU); + + // --------------- set cprt tag ------------------ + + std::wostringstream wCopyright; + wCopyright << copyright; + + cmsMLU *copyMLU = cmsMLUalloc(nullptr, 1); + if (cmsMLUsetWide(copyMLU, "en", "US", wCopyright.str().c_str())) { + if (!cmsWriteTag(newProfile, cmsSigCopyrightTag, copyMLU)) { + printf("Error: Can't write cmsSigCopyrightTag!\n"); + } + } else { + printf("Error: cmsMLUsetWide failed for cprt \"%s\" !\n", copyright.c_str()); + } + cmsMLUfree(copyMLU); + + + /* //to read XYZ values + cmsCIEXYZ *redT = static_cast(cmsReadTag(newProfile, cmsSigRedMatrixColumnTag)); + cmsCIEXYZ *greenT = static_cast(cmsReadTag(newProfile, cmsSigGreenMatrixColumnTag)); + cmsCIEXYZ *blueT = static_cast(cmsReadTag(newProfile, cmsSigBlueMatrixColumnTag)); + printf("rx=%f gx=%f bx=%f ry=%f gy=%f by=%f rz=%f gz=%f bz=%f\n", redT->X, greenT->X, blueT->X, redT->Y, greenT->Y, blueT->Y, redT->Z, greenT->Z, blueT->Z); + */ + + cmsSaveProfileToFile(newProfile, absoluteFName.c_str()); + + cmsFreeToneCurve(GammaTRC[0]); +} diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h new file mode 100644 index 000000000..c3f2e48a1 --- /dev/null +++ b/rtgui/iccprofilecreator.h @@ -0,0 +1,106 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jacques DESMIS + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#pragma once + +#include +#include "adjuster.h" +#include "options.h" +#include +#include "rtwindow.h" + +class ICCProfileCreator : public Gtk::Dialog, public AdjusterListener +{ + +private: + + enum class ColorTemp { + D50 = 5003, // for Widegamut, Prophoto Best, Beta -> D50 + D60 = 6005, // for ACESc -> D60 + D65 = 6504 // for sRGB, AdobeRGB, Bruce Rec2020 -> D65 + }; + + cmsFloat64Number ga[7]; // 7 parameters for smoother curves + + //------------------------ Params ----------------------- + Glib::ustring primariesPreset; + double redPrimaryX; + double redPrimaryY; + double greenPrimaryX; + double greenPrimaryY; + double bluePrimaryX; + double bluePrimaryY; + Glib::ustring gammaPreset; + double gamma; + double slope; + bool appendParamsToDesc; + + Glib::ustring profileVersion; + Glib::ustring illuminant; + Glib::ustring description; + Glib::ustring copyright; + //------------------------------------------------------- + + RTWindow *parent; + + Adjuster* aGamma; + Adjuster* aSlope; + Adjuster* aPrimariesRedX; + Adjuster* aPrimariesRedY; + Adjuster* aPrimariesGreenX; + Adjuster* aPrimariesGreenY; + Adjuster* aPrimariesBlueX; + Adjuster* aPrimariesBlueY; + + Gtk::Grid* primariesGrid; + MyComboBoxText* iccVersion; + MyComboBoxText* trcPresets; + sigc::connection trcpresetsconn; + MyComboBoxText* primaries; + sigc::connection primariesconn; + MyComboBoxText* cIlluminant; + sigc::connection illconn; + Gtk::Entry* eDescription; + Gtk::Entry* eCopyright; + Gtk::Button* resetCopyright; + Gtk::CheckButton *cAppendParamsToDesc; + + //Glib::ustring lastPath; + + void initWithDefaults (); + void storeDefaults (); + void storeValues(); + + void updateICCVersion(); + void primariesChanged(); + void illuminantChanged(); + void trcPresetsChanged(); + void adjusterChanged (Adjuster* a, double newval); + static std::vector getGamma(); + Glib::ustring getPrimariesPresetName(const Glib::ustring &preset); + void getPrimaries(const Glib::ustring &preset, float *p, ColorTemp &temp); + Glib::ustring getGammaPresetName(const Glib::ustring &preset); + void getGamma(const Glib::ustring &preset, double &gamma, double &slope); + void savePressed(); + void closePressed(); + void onResetCopyright(); + +public: + explicit ICCProfileCreator (RTWindow *rtwindow); +}; diff --git a/rtgui/icmpanel.cc b/rtgui/icmpanel.cc index f71ff354b..936b68fd0 100644 --- a/rtgui/icmpanel.cc +++ b/rtgui/icmpanel.cc @@ -19,6 +19,8 @@ #include #include "icmpanel.h" #include "options.h" +#include "eventmapper.h" + #include "guiutils.h" #include "../rtengine/iccstore.h" #include "../rtengine/dcp.h" @@ -29,103 +31,115 @@ using namespace rtengine::procparams; extern Options options; -ICMPanel::ICMPanel () : FoldableToolPanel(this, "icm", M("TP_ICM_LABEL")), iunchanged(nullptr), icmplistener(nullptr), lastRefFilename(""), camName("") +ICMPanel::ICMPanel() : FoldableToolPanel(this, "icm", M("TP_ICM_LABEL")), iunchanged(nullptr), icmplistener(nullptr), lastRefFilename(""), camName("") { + auto m = ProcEventMapper::getInstance(); + EvICMprimariMethod = m->newEvent(GAMMA, "HISTORY_MSG_ICM_OUTPUT_PRIMARIES"); + EvICMprofileMethod = m->newEvent(GAMMA, "HISTORY_MSG_ICM_OUTPUT_TYPE"); + EvICMtempMethod = m->newEvent(GAMMA, "HISTORY_MSG_ICM_OUTPUT_TEMP"); + EvICMpredx = m->newEvent(GAMMA, "HISTORY_MSG_ICMPREDX"); + EvICMpredy = m->newEvent(GAMMA, "HISTORY_MSG_ICMPREDY"); + EvICMpgrex = m->newEvent(GAMMA, "HISTORY_MSG_ICMPGREX"); + EvICMpgrey = m->newEvent(GAMMA, "HISTORY_MSG_ICMPGREY"); + EvICMpblux = m->newEvent(GAMMA, "HISTORY_MSG_ICMPBLUX"); + EvICMpbluy = m->newEvent(GAMMA, "HISTORY_MSG_ICMPBLUY"); + EvICMgamm = m->newEvent(AUTOEXP, "HISTORY_MSG_ICM_WORKING_GAMMA"); + EvICMslop = m->newEvent(AUTOEXP, "HISTORY_MSG_ICM_WORKING_SLOPE"); + EvICMtrcinMethod = m->newEvent(AUTOEXP, "HISTORY_MSG_ICM_WORKING_TRC_METHOD"); - isBatchMode = lastToneCurve = lastApplyLookTable = lastApplyBaselineExposureOffset = lastApplyHueSatMap = lastgamfree = false; + isBatchMode = lastToneCurve = lastApplyLookTable = lastApplyBaselineExposureOffset = lastApplyHueSatMap = false; - ipDialog = Gtk::manage (new MyFileChooserButton (M("TP_ICM_INPUTDLGLABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN)); - ipDialog->set_tooltip_text (M("TP_ICM_INPUTCUSTOM_TOOLTIP")); - bindCurrentFolder (*ipDialog, options.lastIccDir); + ipDialog = Gtk::manage(new MyFileChooserButton(M("TP_ICM_INPUTDLGLABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN)); + ipDialog->set_tooltip_text(M("TP_ICM_INPUTCUSTOM_TOOLTIP")); + bindCurrentFolder(*ipDialog, options.lastIccDir); // ------------------------------- Input profile - Gtk::Frame *iFrame = Gtk::manage (new Gtk::Frame(M("TP_ICM_INPUTPROFILE")) ); + Gtk::Frame *iFrame = Gtk::manage(new Gtk::Frame(M("TP_ICM_INPUTPROFILE"))); iFrame->set_label_align(0.025, 0.5); - iVBox = Gtk::manage ( new Gtk::VBox()); - iVBox->set_spacing(2); + iVBox = Gtk::manage(new Gtk::VBox()); - inone = Gtk::manage (new Gtk::RadioButton (M("TP_ICM_INPUTNONE"))); - inone->set_tooltip_text (M("TP_ICM_INPUTNONE_TOOLTIP")); - iVBox->pack_start (*inone, Gtk::PACK_SHRINK); + inone = Gtk::manage(new Gtk::RadioButton(M("TP_ICM_INPUTNONE"))); + inone->set_tooltip_text(M("TP_ICM_INPUTNONE_TOOLTIP")); + iVBox->pack_start(*inone, Gtk::PACK_SHRINK); - iembedded = Gtk::manage (new Gtk::RadioButton (M("TP_ICM_INPUTEMBEDDED"))); - iembedded->set_tooltip_text (M("TP_ICM_INPUTEMBEDDED_TOOLTIP")); - iVBox->pack_start (*iembedded, Gtk::PACK_SHRINK); + iembedded = Gtk::manage(new Gtk::RadioButton(M("TP_ICM_INPUTEMBEDDED"))); + iembedded->set_tooltip_text(M("TP_ICM_INPUTEMBEDDED_TOOLTIP")); + iVBox->pack_start(*iembedded, Gtk::PACK_SHRINK); - icamera = Gtk::manage (new Gtk::RadioButton (M("TP_ICM_INPUTCAMERA"))); - icamera->set_tooltip_text (M("TP_ICM_INPUTCAMERA_TOOLTIP")); - iVBox->pack_start (*icamera, Gtk::PACK_SHRINK); + icamera = Gtk::manage(new Gtk::RadioButton(M("TP_ICM_INPUTCAMERA"))); + icamera->set_tooltip_text(M("TP_ICM_INPUTCAMERA_TOOLTIP")); + iVBox->pack_start(*icamera, Gtk::PACK_SHRINK); - icameraICC = Gtk::manage (new Gtk::RadioButton (M("TP_ICM_INPUTCAMERAICC"))); - icameraICC->set_tooltip_text (M("TP_ICM_INPUTCAMERAICC_TOOLTIP")); - iVBox->pack_start (*icameraICC, Gtk::PACK_SHRINK); + icameraICC = Gtk::manage(new Gtk::RadioButton(M("TP_ICM_INPUTCAMERAICC"))); + icameraICC->set_tooltip_text(M("TP_ICM_INPUTCAMERAICC_TOOLTIP")); + iVBox->pack_start(*icameraICC, Gtk::PACK_SHRINK); - ifromfile = Gtk::manage (new Gtk::RadioButton (M("TP_ICM_INPUTCUSTOM") + ":")); - Gtk::HBox* ffbox = Gtk::manage (new Gtk::HBox ()); - ifromfile->set_tooltip_text (M("TP_ICM_INPUTCUSTOM_TOOLTIP")); - ffbox->pack_start (*ifromfile, Gtk::PACK_SHRINK); - ffbox->pack_start (*ipDialog); + ifromfile = Gtk::manage(new Gtk::RadioButton(M("TP_ICM_INPUTCUSTOM") + ":")); + Gtk::HBox* ffbox = Gtk::manage(new Gtk::HBox()); + ifromfile->set_tooltip_text(M("TP_ICM_INPUTCUSTOM_TOOLTIP")); + ffbox->pack_start(*ifromfile, Gtk::PACK_SHRINK); + ffbox->pack_start(*ipDialog); - iVBox->pack_start (*ffbox, Gtk::PACK_SHRINK); + iVBox->pack_start(*ffbox, Gtk::PACK_SHRINK); opts = icamera->get_group(); - icameraICC->set_group (opts); - iembedded->set_group (opts); - ifromfile->set_group (opts); - inone->set_group (opts); + icameraICC->set_group(opts); + iembedded->set_group(opts); + ifromfile->set_group(opts); + inone->set_group(opts); - dcpFrame = Gtk::manage (new Gtk::Frame ("DCP")); + dcpFrame = Gtk::manage(new Gtk::Frame("DCP")); - Gtk::Grid* dcpGrid = Gtk::manage ( new Gtk::Grid()); + Gtk::Grid* dcpGrid = Gtk::manage(new Gtk::Grid()); dcpGrid->set_column_homogeneous(false); dcpGrid->set_row_homogeneous(false); dcpGrid->set_column_spacing(2); dcpGrid->set_row_spacing(2); - Gtk::Grid* dcpIllGrid = Gtk::manage ( new Gtk::Grid()); + Gtk::Grid* dcpIllGrid = Gtk::manage(new Gtk::Grid()); dcpIllGrid->set_column_homogeneous(false); dcpIllGrid->set_row_homogeneous(false); dcpIllGrid->set_column_spacing(2); dcpIllGrid->set_row_spacing(2); - dcpIllLabel = Gtk::manage (new Gtk::Label (M("TP_ICM_DCPILLUMINANT") + ":")); + dcpIllLabel = Gtk::manage(new Gtk::Label(M("TP_ICM_DCPILLUMINANT") + ":")); setExpandAlignProperties(dcpIllLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - dcpIllLabel->set_tooltip_text (M("TP_ICM_DCPILLUMINANT_TOOLTIP")); - dcpIllLabel->show (); - dcpIll = Gtk::manage (new MyComboBoxText ()); + dcpIllLabel->set_tooltip_text(M("TP_ICM_DCPILLUMINANT_TOOLTIP")); + dcpIllLabel->show(); + dcpIll = Gtk::manage(new MyComboBoxText()); setExpandAlignProperties(dcpIll, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); - dcpIll->set_tooltip_text (M("TP_ICM_DCPILLUMINANT_TOOLTIP")); - dcpIll->append (M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); - dcpIll->append (M("TP_ICM_DCPILLUMINANT") + " 1"); - dcpIll->append (M("TP_ICM_DCPILLUMINANT") + " 2"); - dcpIll->show (); + dcpIll->set_tooltip_text(M("TP_ICM_DCPILLUMINANT_TOOLTIP")); + dcpIll->append(M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); + dcpIll->append(M("TP_ICM_DCPILLUMINANT") + " 1"); + dcpIll->append(M("TP_ICM_DCPILLUMINANT") + " 2"); + dcpIll->show(); dcpTemperatures[0] = 0; dcpTemperatures[1] = 0; dcpIllGrid->attach_next_to(*dcpIllLabel, Gtk::POS_LEFT, 1, 1); dcpIllGrid->attach_next_to(*dcpIll, *dcpIllLabel, Gtk::POS_RIGHT, 1, 1); - ckbToneCurve = Gtk::manage (new Gtk::CheckButton (M("TP_ICM_TONECURVE"))); - ckbToneCurve->set_sensitive (false); - ckbToneCurve->set_tooltip_text (M("TP_ICM_TONECURVE_TOOLTIP")); + ckbToneCurve = Gtk::manage(new Gtk::CheckButton(M("TP_ICM_TONECURVE"))); + ckbToneCurve->set_sensitive(false); + ckbToneCurve->set_tooltip_text(M("TP_ICM_TONECURVE_TOOLTIP")); setExpandAlignProperties(ckbToneCurve, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - ckbApplyLookTable = Gtk::manage (new Gtk::CheckButton (M("TP_ICM_APPLYLOOKTABLE"))); - ckbApplyLookTable->set_sensitive (false); - ckbApplyLookTable->set_tooltip_text (M("TP_ICM_APPLYLOOKTABLE_TOOLTIP")); + ckbApplyLookTable = Gtk::manage(new Gtk::CheckButton(M("TP_ICM_APPLYLOOKTABLE"))); + ckbApplyLookTable->set_sensitive(false); + ckbApplyLookTable->set_tooltip_text(M("TP_ICM_APPLYLOOKTABLE_TOOLTIP")); setExpandAlignProperties(ckbApplyLookTable, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - ckbApplyHueSatMap = Gtk::manage (new Gtk::CheckButton (M("TP_ICM_APPLYHUESATMAP"))); - ckbApplyHueSatMap->set_sensitive (false); - ckbApplyHueSatMap->set_tooltip_text (M("TP_ICM_APPLYHUESATMAP_TOOLTIP")); + ckbApplyHueSatMap = Gtk::manage(new Gtk::CheckButton(M("TP_ICM_APPLYHUESATMAP"))); + ckbApplyHueSatMap->set_sensitive(false); + ckbApplyHueSatMap->set_tooltip_text(M("TP_ICM_APPLYHUESATMAP_TOOLTIP")); setExpandAlignProperties(ckbApplyHueSatMap, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); - ckbApplyBaselineExposureOffset = Gtk::manage (new Gtk::CheckButton (M("TP_ICM_APPLYBASELINEEXPOSUREOFFSET"))); - ckbApplyBaselineExposureOffset->set_sensitive (false); - ckbApplyBaselineExposureOffset->set_tooltip_text (M("TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP")); + ckbApplyBaselineExposureOffset = Gtk::manage(new Gtk::CheckButton(M("TP_ICM_APPLYBASELINEEXPOSUREOFFSET"))); + ckbApplyBaselineExposureOffset->set_sensitive(false); + ckbApplyBaselineExposureOffset->set_tooltip_text(M("TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP")); setExpandAlignProperties(ckbApplyBaselineExposureOffset, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); dcpGrid->attach_next_to(*dcpIllGrid, Gtk::POS_BOTTOM, 1, 1); @@ -136,142 +150,128 @@ ICMPanel::ICMPanel () : FoldableToolPanel(this, "icm", M("TP_ICM_LABEL")), iunch dcpFrame->add(*dcpGrid); dcpFrame->set_sensitive(false); - iVBox->pack_start (*dcpFrame); + iVBox->pack_start(*dcpFrame); - saveRef = Gtk::manage (new Gtk::Button (M("TP_ICM_SAVEREFERENCE"))); - saveRef->set_image (*Gtk::manage (new RTImage ("gtk-save-large.png"))); - saveRef->set_alignment (0.5f, 0.5f); - saveRef->set_tooltip_markup (M("TP_ICM_SAVEREFERENCE_TOOLTIP")); - iVBox->pack_start (*saveRef, Gtk::PACK_SHRINK); + saveRef = Gtk::manage(new Gtk::Button(M("TP_ICM_SAVEREFERENCE"))); + saveRef->set_image(*Gtk::manage(new RTImage("save-small.png"))); + saveRef->set_alignment(0.5f, 0.5f); + saveRef->set_tooltip_markup(M("TP_ICM_SAVEREFERENCE_TOOLTIP")); + iVBox->pack_start(*saveRef, Gtk::PACK_SHRINK); iFrame->add(*iVBox); - pack_start (*iFrame, Gtk::PACK_EXPAND_WIDGET); + pack_start(*iFrame, Gtk::PACK_EXPAND_WIDGET); // ---------------------------- Working profile - Gtk::Frame *wFrame = Gtk::manage (new Gtk::Frame(M("TP_ICM_WORKINGPROFILE")) ); + Gtk::Frame *wFrame = Gtk::manage(new Gtk::Frame(M("TP_ICM_WORKINGPROFILE"))); wFrame->set_label_align(0.025, 0.5); - Gtk::VBox *wVBox = Gtk::manage ( new Gtk::VBox()); - wVBox->set_spacing(2); + Gtk::VBox *wProfVBox = Gtk::manage(new Gtk::VBox()); - wnames = Gtk::manage (new MyComboBoxText ()); - wVBox->pack_start (*wnames, Gtk::PACK_SHRINK); + wProfNames = Gtk::manage(new MyComboBoxText()); + wProfVBox->pack_start(*wProfNames, Gtk::PACK_SHRINK); std::vector wpnames = rtengine::ICCStore::getInstance()->getWorkingProfiles(); for (size_t i = 0; i < wpnames.size(); i++) { - wnames->append (wpnames[i]); + wProfNames->append(wpnames[i]); } - wnames->set_active (0); + wProfNames->set_active(0); - wFrame->add(*wVBox); - pack_start (*wFrame, Gtk::PACK_EXPAND_WIDGET); + // wFrame->add(*wVBox); + + //-----------------gamma TRC working + + wTRCHBox = Gtk::manage(new Gtk::HBox()); + + Gtk::Label* wtrclab = Gtk::manage(new Gtk::Label(M("TP_ICM_WORKING_TRC"))); + + wTRCHBox->pack_start(*wtrclab, Gtk::PACK_SHRINK); + wTRC = Gtk::manage(new MyComboBoxText()); + wTRCHBox->pack_start(*wTRC, Gtk::PACK_EXPAND_WIDGET); + wProfVBox->pack_start(*wTRCHBox, Gtk::PACK_EXPAND_WIDGET); + wTRC->append(M("TP_ICM_WORKING_TRC_NONE")); + wTRC->append(M("TP_ICM_WORKING_TRC_CUSTOM")); + + wTRC->set_active(0); + wTRC->set_tooltip_text(M("TP_ICM_WORKING_TRC_TOOLTIP")); + + + wGamma = Gtk::manage(new Adjuster(M("TP_ICM_WORKING_TRC_GAMMA"), 0.40, 15.0, 0.001, 2.4)); + wSlope = Gtk::manage(new Adjuster(M("TP_ICM_WORKING_TRC_SLOPE"), 0., 150., 0.01, 12.92310)); + wProfVBox->pack_start(*wGamma, Gtk::PACK_SHRINK); + wGamma->show(); + + wProfVBox->pack_start(*wSlope, Gtk::PACK_SHRINK); + wSlope->show(); + + + wGamma->setAdjusterListener(this); + wSlope->setAdjusterListener(this); + + if (wGamma->delay < options.adjusterMaxDelay) { + wGamma->delay = options.adjusterMaxDelay; + } + + if (wSlope->delay < options.adjusterMaxDelay) { + wSlope->delay = options.adjusterMaxDelay; + } + + wFrame->add(*wProfVBox); + + pack_start(*wFrame, Gtk::PACK_EXPAND_WIDGET); // ---------------------------- Output profile - Gtk::Frame *oFrame = Gtk::manage (new Gtk::Frame(M("TP_ICM_OUTPUTPROFILE")) ); + Gtk::Frame *oFrame = Gtk::manage(new Gtk::Frame(M("TP_ICM_OUTPUTPROFILE"))); oFrame->set_label_align(0.025, 0.5); - Gtk::VBox *oVBox = Gtk::manage ( new Gtk::VBox()); - oVBox->set_spacing(2); + Gtk::VBox *oProfVBox = Gtk::manage(new Gtk::VBox()); - onames = Gtk::manage (new MyComboBoxText ()); - oVBox->pack_start (*onames, Gtk::PACK_SHRINK); + oProfNames = Gtk::manage(new MyComboBoxText()); + oProfVBox->pack_start(*oProfNames, Gtk::PACK_SHRINK); - onames->append (M("TP_ICM_NOICM")); - onames->set_active (0); + oProfNames->append(M("TP_ICM_NOICM")); + oProfNames->set_active(0); - std::vector opnames = ICCStore::getInstance()->getProfiles (rtengine::ICCStore::ProfileType::OUTPUT); + std::vector opnames = ICCStore::getInstance()->getProfiles(rtengine::ICCStore::ProfileType::OUTPUT); for (size_t i = 0; i < opnames.size(); i++) { - onames->append (opnames[i]); + oProfNames->append(opnames[i]); } - onames->set_active (0); + oProfNames->set_active(0); // Rendering intent - Gtk::HBox *riHBox = Gtk::manage ( new Gtk::HBox()); - Gtk::Label* outputIntentLbl = Gtk::manage (new Gtk::Label(M("TP_ICM_PROFILEINTENT")+":")); - riHBox->pack_start (*outputIntentLbl, Gtk::PACK_SHRINK); - ointent.reset (new PopUpButton ()); - ointent->addEntry("intent-perceptual.png", M("PREFERENCES_INTENT_PERCEPTUAL")); - ointent->addEntry("intent-relative.png", M("PREFERENCES_INTENT_RELATIVE")); - ointent->addEntry("intent-saturation.png", M("PREFERENCES_INTENT_SATURATION")); - ointent->addEntry("intent-absolute.png", M("PREFERENCES_INTENT_ABSOLUTE")); - ointent->setSelected (1); - ointent->show(); - riHBox->pack_start (*ointent->buttonGroup, Gtk::PACK_EXPAND_PADDING); - oVBox->pack_start(*riHBox, Gtk::PACK_SHRINK); + Gtk::HBox *riHBox = Gtk::manage(new Gtk::HBox()); + Gtk::Label* outputIntentLbl = Gtk::manage(new Gtk::Label(M("TP_ICM_PROFILEINTENT"))); + riHBox->pack_start(*outputIntentLbl, Gtk::PACK_SHRINK); + oRendIntent.reset(new PopUpButton()); + oRendIntent->addEntry("intent-perceptual.png", M("PREFERENCES_INTENT_PERCEPTUAL")); + oRendIntent->addEntry("intent-relative.png", M("PREFERENCES_INTENT_RELATIVE")); + oRendIntent->addEntry("intent-saturation.png", M("PREFERENCES_INTENT_SATURATION")); + oRendIntent->addEntry("intent-absolute.png", M("PREFERENCES_INTENT_ABSOLUTE")); + oRendIntent->setSelected(1); + oRendIntent->show(); + riHBox->pack_start(*oRendIntent->buttonGroup, Gtk::PACK_EXPAND_PADDING); + oProfVBox->pack_start(*riHBox, Gtk::PACK_SHRINK); // Black Point Compensation obpc = Gtk::manage(new Gtk::CheckButton((M("TP_ICM_BPC")))); - obpc->set_active (true); - oVBox->pack_start(*obpc, Gtk::PACK_SHRINK); + obpc->set_active(true); + oProfVBox->pack_start(*obpc, Gtk::PACK_SHRINK); - // Output gamma - - Gtk::HBox* gaHBox = Gtk::manage (new Gtk::HBox ()); - Gtk::Label* galab = Gtk::manage (new Gtk::Label (M("TP_GAMMA_OUTPUT") + ":")); - //galab->set_alignment (0.0, 0.5); - - gaHBox->pack_start (*galab, Gtk::PACK_SHRINK); - wgamma = Gtk::manage (new MyComboBoxText ()); - gaHBox->pack_start (*wgamma, Gtk::PACK_EXPAND_WIDGET); - - oVBox->pack_start(*gaHBox, Gtk::PACK_EXPAND_WIDGET); - - std::vector wpgamma = rtengine::ICCStore::getGamma(); - - for (size_t i = 0; i < wpgamma.size(); i++) { - wgamma->append (wpgamma[i]); - } - - wgamma->set_active (0); - - Gtk::Frame* fgFrame = Gtk::manage (new Gtk::Frame ()); - - Gtk::VBox *fgVBox = Gtk::manage ( new Gtk::VBox()); - fgVBox->set_spacing(2); - - freegamma = Gtk::manage(new Gtk::CheckButton((M("TP_GAMMA_FREE")))); - freegamma->set_active (false); - fgFrame->set_label_widget(*freegamma); - - gampos = Gtk::manage(new Adjuster (M("TP_GAMMA_CURV"), 1, 3.5, 0.01, 2.22)); - gampos->setAdjusterListener (this); - - if (gampos->delay < options.adjusterMaxDelay) { - gampos->delay = options.adjusterMaxDelay; - } - - gampos->show(); - slpos = Gtk::manage(new Adjuster (M("TP_GAMMA_SLOP"), 0, 15, 0.01, 4.5)); - slpos->setAdjusterListener (this); - - if (slpos->delay < options.adjusterMaxDelay) { - slpos->delay = options.adjusterMaxDelay; - } - - slpos->show(); - fgVBox->pack_start( *gampos, Gtk::PACK_SHRINK);//gamma - fgVBox->pack_start( *slpos, Gtk::PACK_SHRINK);//slope - - fgFrame->add(*fgVBox); - oVBox->pack_start(*fgFrame, Gtk::PACK_EXPAND_WIDGET); - - oFrame->add(*oVBox); - pack_start (*oFrame, Gtk::PACK_EXPAND_WIDGET); + oFrame->add(*oProfVBox); + pack_start(*oFrame, Gtk::PACK_EXPAND_WIDGET); // ---------------------------- Output gamma list entries - Glib::RefPtr filter_icc = Gtk::FileFilter::create(); filter_icc->set_name(M("FILECHOOSER_FILTER_COLPROF")); filter_icc->add_pattern("*.dcp"); @@ -294,42 +294,41 @@ ICMPanel::ICMPanel () : FoldableToolPanel(this, "icm", M("TP_ICM_LABEL")), iunch filter_any->set_name(M("FILECHOOSER_FILTER_ANY")); filter_any->add_pattern("*"); - ipDialog->add_filter (filter_icc); - ipDialog->add_filter (filter_iccdng); - ipDialog->add_filter (filter_any); + ipDialog->add_filter(filter_icc); + ipDialog->add_filter(filter_iccdng); + ipDialog->add_filter(filter_any); #ifdef WIN32 ipDialog->set_show_hidden(true); // ProgramData is hidden on Windows #endif - oldip = ""; - wnamesconn = wnames->signal_changed().connect( sigc::mem_fun(*this, &ICMPanel::wpChanged) ); - onamesconn = onames->signal_changed().connect( sigc::mem_fun(*this, &ICMPanel::opChanged) ); - ointentconn = ointent->signal_changed().connect( sigc::mem_fun(*this, &ICMPanel::oiChanged) ); - wgammaconn = wgamma->signal_changed().connect( sigc::mem_fun(*this, &ICMPanel::gpChanged) ); - dcpillconn = dcpIll->signal_changed().connect( sigc::mem_fun(*this, &ICMPanel::dcpIlluminantChanged) ); + wprofnamesconn = wProfNames->signal_changed().connect(sigc::mem_fun(*this, &ICMPanel::wpChanged)); + oprofnamesconn = oProfNames->signal_changed().connect(sigc::mem_fun(*this, &ICMPanel::opChanged)); + orendintentconn = oRendIntent->signal_changed().connect(sigc::mem_fun(*this, &ICMPanel::oiChanged)); + dcpillconn = dcpIll->signal_changed().connect(sigc::mem_fun(*this, &ICMPanel::dcpIlluminantChanged)); + wtrcconn = wTRC->signal_changed().connect(sigc::mem_fun(*this, &ICMPanel::wtrcinChanged)); - obpcconn = obpc->signal_toggled().connect( sigc::mem_fun(*this, &ICMPanel::oBPCChanged) ); - gamcsconn = freegamma->signal_toggled().connect ( sigc::mem_fun(*this, &ICMPanel::GamChanged)); - tcurveconn = ckbToneCurve->signal_toggled().connect ( sigc::mem_fun(*this, &ICMPanel::toneCurveChanged)); - ltableconn = ckbApplyLookTable->signal_toggled().connect ( sigc::mem_fun(*this, &ICMPanel::applyLookTableChanged)); - beoconn = ckbApplyBaselineExposureOffset->signal_toggled().connect ( sigc::mem_fun(*this, &ICMPanel::applyBaselineExposureOffsetChanged)); - hsmconn = ckbApplyHueSatMap->signal_toggled().connect ( sigc::mem_fun(*this, &ICMPanel::applyHueSatMapChanged)); + obpcconn = obpc->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::oBPCChanged)); + tcurveconn = ckbToneCurve->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::toneCurveChanged)); + ltableconn = ckbApplyLookTable->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::applyLookTableChanged)); + beoconn = ckbApplyBaselineExposureOffset->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::applyBaselineExposureOffsetChanged)); + hsmconn = ckbApplyHueSatMap->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::applyHueSatMapChanged)); - icamera->signal_toggled().connect( sigc::mem_fun(*this, &ICMPanel::ipChanged) ); - icameraICC->signal_toggled().connect( sigc::mem_fun(*this, &ICMPanel::ipChanged) ); - iembedded->signal_toggled().connect( sigc::mem_fun(*this, &ICMPanel::ipChanged) ); - ifromfile->signal_toggled().connect( sigc::mem_fun(*this, &ICMPanel::ipChanged) ); + icamera->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::ipChanged)); + icameraICC->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::ipChanged)); + iembedded->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::ipChanged)); + ifromfile->signal_toggled().connect(sigc::mem_fun(*this, &ICMPanel::ipChanged)); - ipc = ipDialog->signal_selection_changed().connect( sigc::mem_fun(*this, &ICMPanel::ipSelectionChanged) ); - saveRef->signal_pressed().connect( sigc::mem_fun(*this, &ICMPanel::saveReferencePressed) ); + ipc = ipDialog->signal_selection_changed().connect(sigc::mem_fun(*this, &ICMPanel::ipSelectionChanged)); + saveRef->signal_pressed().connect(sigc::mem_fun(*this, &ICMPanel::saveReferencePressed)); - show_all (); + show_all(); } -void ICMPanel::updateRenderingIntent (const Glib::ustring &profile) { - const uint8_t supportedIntents = rtengine::ICCStore::getInstance()->getOutputIntents (profile); +void ICMPanel::updateRenderingIntent(const Glib::ustring &profile) +{ + const uint8_t supportedIntents = rtengine::ICCStore::getInstance()->getOutputIntents(profile); const bool supportsPerceptual = supportedIntents & 1 << INTENT_PERCEPTUAL; const bool supportsRelative = supportedIntents & 1 << INTENT_RELATIVE_COLORIMETRIC; const bool supportsSaturation = supportedIntents & 1 << INTENT_SATURATION; @@ -338,44 +337,44 @@ void ICMPanel::updateRenderingIntent (const Glib::ustring &profile) { //printf("Intents: %d / Perceptual: %d Relative: %d Saturation: %d Absolute: %d\n", supportedIntents, supportsPerceptual, supportsRelative, supportsSaturation, supportsAbsolute); if (!profile.empty() && (supportsPerceptual || supportsRelative || supportsSaturation || supportsAbsolute)) { - ointent->set_sensitive (true); - ointent->setItemSensitivity(0, supportsPerceptual); - ointent->setItemSensitivity(1, supportsRelative); - ointent->setItemSensitivity(2, supportsSaturation); - ointent->setItemSensitivity(3, supportsAbsolute); + oRendIntent->set_sensitive(true); + oRendIntent->setItemSensitivity(0, supportsPerceptual); + oRendIntent->setItemSensitivity(1, supportsRelative); + oRendIntent->setItemSensitivity(2, supportsSaturation); + oRendIntent->setItemSensitivity(3, supportsAbsolute); } else { - ointent->setItemSensitivity(0, true); - ointent->setItemSensitivity(1, true); - ointent->setItemSensitivity(2, true); - ointent->setItemSensitivity(3, true); - ointent->set_sensitive (false); - ointent->setSelected (1); + oRendIntent->setItemSensitivity(0, true); + oRendIntent->setItemSensitivity(1, true); + oRendIntent->setItemSensitivity(2, true); + oRendIntent->setItemSensitivity(3, true); + oRendIntent->set_sensitive(false); + oRendIntent->setSelected(1); } } -void ICMPanel::updateDCP (int dcpIlluminant, Glib::ustring dcp_name) +void ICMPanel::updateDCP(int dcpIlluminant, Glib::ustring dcp_name) { ConnectionBlocker dcpillconn_(dcpillconn); if (isBatchMode) { dcpFrame->set_sensitive(true); - ckbToneCurve->set_sensitive (true); - ckbApplyLookTable->set_sensitive (true); - ckbApplyBaselineExposureOffset->set_sensitive (true); - ckbApplyHueSatMap->set_sensitive (true); - dcpIllLabel->set_sensitive (true); - dcpIll->set_sensitive (true); + ckbToneCurve->set_sensitive(true); + ckbApplyLookTable->set_sensitive(true); + ckbApplyBaselineExposureOffset->set_sensitive(true); + ckbApplyHueSatMap->set_sensitive(true); + dcpIllLabel->set_sensitive(true); + dcpIll->set_sensitive(true); if (dcpTemperatures[0] != 0 || dcpTemperatures[1] != 0) { int curr_active = dcpIll->get_active_row_number(); - dcpIll->remove_all (); - dcpIll->append (M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); - dcpIll->append (M("TP_ICM_DCPILLUMINANT") + " 1"); - dcpIll->append (M("TP_ICM_DCPILLUMINANT") + " 2"); - dcpIll->append (M("GENERAL_UNCHANGED")); + dcpIll->remove_all(); + dcpIll->append(M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); + dcpIll->append(M("TP_ICM_DCPILLUMINANT") + " 1"); + dcpIll->append(M("TP_ICM_DCPILLUMINANT") + " 2"); + dcpIll->append(M("GENERAL_UNCHANGED")); dcpTemperatures[0] = 0; dcpTemperatures[1] = 0; - dcpIll->set_active (curr_active); + dcpIll->set_active(curr_active); } if (dcpIll->get_active_row_number() == -1 && dcpIlluminant == -1) { @@ -384,22 +383,22 @@ void ICMPanel::updateDCP (int dcpIlluminant, Glib::ustring dcp_name) dcpIll->set_active(dcpIlluminant); } - dcpIll->set_sensitive (true); - dcpIllLabel->set_sensitive (true); + dcpIll->set_sensitive(true); + dcpIllLabel->set_sensitive(true); return; } - ckbToneCurve->set_sensitive (false); - ckbApplyLookTable->set_sensitive (false); - ckbApplyBaselineExposureOffset->set_sensitive (false); - ckbApplyHueSatMap->set_sensitive (false); - dcpIllLabel->set_sensitive (false); - dcpIll->set_sensitive (false); + ckbToneCurve->set_sensitive(false); + ckbApplyLookTable->set_sensitive(false); + ckbApplyBaselineExposureOffset->set_sensitive(false); + ckbApplyHueSatMap->set_sensitive(false); + dcpIllLabel->set_sensitive(false); + dcpIll->set_sensitive(false); dcpFrame->set_sensitive(false); DCPProfile* dcp = nullptr; - if(dcp_name == "(cameraICC)") { + if (dcp_name == "(cameraICC)") { dcp = DCPStore::getInstance()->getStdProfile(camName); } else if (ifromfile->get_active() && DCPStore::getInstance()->isValidDCPFileName(dcp_name)) { dcp = DCPStore::getInstance()->getProfile(dcp_name); @@ -409,19 +408,19 @@ void ICMPanel::updateDCP (int dcpIlluminant, Glib::ustring dcp_name) dcpFrame->set_sensitive(true); if (dcp->getHasToneCurve()) { - ckbToneCurve->set_sensitive (true); + ckbToneCurve->set_sensitive(true); } if (dcp->getHasLookTable()) { - ckbApplyLookTable->set_sensitive (true); + ckbApplyLookTable->set_sensitive(true); } if (dcp->getHasBaselineExposureOffset()) { - ckbApplyBaselineExposureOffset->set_sensitive (true); + ckbApplyBaselineExposureOffset->set_sensitive(true); } if (dcp->getHasHueSatMap()) { - ckbApplyHueSatMap->set_sensitive (true); + ckbApplyHueSatMap->set_sensitive(true); } const DCPProfile::Illuminants illuminants = dcp->getIlluminants(); @@ -432,13 +431,13 @@ void ICMPanel::updateDCP (int dcpIlluminant, Glib::ustring dcp_name) sprintf(tempstr1, "%.0fK", illuminants.temperature_1); sprintf(tempstr2, "%.0fK", illuminants.temperature_2); int curr_active = dcpIll->get_active_row_number(); - dcpIll->remove_all (); - dcpIll->append (M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); - dcpIll->append (tempstr1); - dcpIll->append (tempstr2); + dcpIll->remove_all(); + dcpIll->append(M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); + dcpIll->append(tempstr1); + dcpIll->append(tempstr2); dcpTemperatures[0] = illuminants.temperature_1; dcpTemperatures[1] = illuminants.temperature_2; - dcpIll->set_active (curr_active); + dcpIll->set_active(curr_active); } if (dcpIlluminant > 2) { @@ -451,8 +450,8 @@ void ICMPanel::updateDCP (int dcpIlluminant, Glib::ustring dcp_name) dcpIll->set_active(dcpIlluminant); } - dcpIll->set_sensitive (true); - dcpIllLabel->set_sensitive (true); + dcpIll->set_sensitive(true); + dcpIllLabel->set_sensitive(true); } else { if (dcpIll->get_active_row_number() != -1) { dcpIll->set_active(-1); @@ -463,269 +462,269 @@ void ICMPanel::updateDCP (int dcpIlluminant, Glib::ustring dcp_name) if (!dcpIllLabel->get_sensitive() && dcpIll->get_active_row_number() != 0) { if (dcpTemperatures[0] != 0 || dcpTemperatures[1] != 0) { int curr_active = dcpIll->get_active_row_number(); - dcpIll->remove_all (); - dcpIll->append (M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); - dcpIll->append (M("TP_ICM_DCPILLUMINANT") + " 1"); - dcpIll->append (M("TP_ICM_DCPILLUMINANT") + " 2"); + dcpIll->remove_all(); + dcpIll->append(M("TP_ICM_DCPILLUMINANT_INTERPOLATED")); + dcpIll->append(M("TP_ICM_DCPILLUMINANT") + " 1"); + dcpIll->append(M("TP_ICM_DCPILLUMINANT") + " 2"); if (isBatchMode) { - dcpIll->append (M("GENERAL_UNCHANGED")); + dcpIll->append(M("GENERAL_UNCHANGED")); } dcpTemperatures[0] = 0; dcpTemperatures[1] = 0; - dcpIll->set_active (curr_active); + dcpIll->set_active(curr_active); } } } -void ICMPanel::read (const ProcParams* pp, const ParamsEdited* pedited) +void ICMPanel::read(const ProcParams* pp, const ParamsEdited* pedited) { - disableListener (); + disableListener(); ConnectionBlocker obpcconn_(obpcconn); ConnectionBlocker ipc_(ipc); - ConnectionBlocker gamcsconn_(gamcsconn); ConnectionBlocker tcurveconn_(tcurveconn); ConnectionBlocker ltableconn_(ltableconn); ConnectionBlocker beoconn_(beoconn); ConnectionBlocker hsmconn_(hsmconn); - ConnectionBlocker wnamesconn_(wnamesconn); - ConnectionBlocker onamesconn_(onamesconn); - ConnectionBlocker ointentconn_(ointentconn); - ConnectionBlocker wgammaconn_(wgammaconn); + ConnectionBlocker wprofnamesconn_(wprofnamesconn); + ConnectionBlocker oprofnamesconn_(oprofnamesconn); + ConnectionBlocker orendintentconn_(orendintentconn); ConnectionBlocker dcpillconn_(dcpillconn); - if(pp->icm.input.substr(0, 5) != "file:" && !ipDialog->get_filename().empty()) { - ipDialog->set_filename(pp->icm.input); + if (pp->icm.inputProfile.substr(0, 5) != "file:" && !ipDialog->get_filename().empty()) { + ipDialog->set_filename(pp->icm.inputProfile); } - if (pp->icm.input == "(none)") { - inone->set_active (true); + if (pp->icm.inputProfile == "(none)") { + inone->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); - } else if (pp->icm.input == "(embedded)" || ((pp->icm.input == "(camera)" || pp->icm.input == "") && icamera->get_state() == Gtk::STATE_INSENSITIVE)) { - iembedded->set_active (true); + } else if (pp->icm.inputProfile == "(embedded)" || ((pp->icm.inputProfile == "(camera)" || pp->icm.inputProfile == "") && icamera->get_state() == Gtk::STATE_INSENSITIVE)) { + iembedded->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); - } else if ((pp->icm.input == "(cameraICC)") && icameraICC->get_state() != Gtk::STATE_INSENSITIVE) { - icameraICC->set_active (true); + } else if ((pp->icm.inputProfile == "(cameraICC)") && icameraICC->get_state() != Gtk::STATE_INSENSITIVE) { + icameraICC->set_active(true); updateDCP(pp->icm.dcpIlluminant, "(cameraICC)"); - } else if ((pp->icm.input == "(cameraICC)") && icamera->get_state() != Gtk::STATE_INSENSITIVE && icameraICC->get_state() == Gtk::STATE_INSENSITIVE) { + } else if ((pp->icm.inputProfile == "(cameraICC)") && icamera->get_state() != Gtk::STATE_INSENSITIVE && icameraICC->get_state() == Gtk::STATE_INSENSITIVE) { // this is the case when (cameraICC) is instructed by packaged profiles, but ICC file is not found // therefore falling back UI to explicitly reflect the (camera) option - icamera->set_active (true); + icamera->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); - } else if ((pp->icm.input == "(cameraICC)") && icamera->get_state() == Gtk::STATE_INSENSITIVE && icameraICC->get_state() == Gtk::STATE_INSENSITIVE) { + } else if ((pp->icm.inputProfile == "(cameraICC)") && icamera->get_state() == Gtk::STATE_INSENSITIVE && icameraICC->get_state() == Gtk::STATE_INSENSITIVE) { // If neither (camera) nor (cameraICC) are available, as is the case when loading a non-raw, activate (embedded). - iembedded->set_active (true); + iembedded->set_active(true); updateDCP(pp->icm.dcpIlluminant, "(cameraICC)"); - } else if ((pp->icm.input == "(camera)" || pp->icm.input == "") && icamera->get_state() != Gtk::STATE_INSENSITIVE) { - icamera->set_active (true); + } else if ((pp->icm.inputProfile == "(camera)" || pp->icm.inputProfile == "") && icamera->get_state() != Gtk::STATE_INSENSITIVE) { + icamera->set_active(true); updateDCP(pp->icm.dcpIlluminant, ""); } else { - ifromfile->set_active (true); - oldip = pp->icm.input.substr(5); // cut of "file:" - ipDialog->set_filename (pp->icm.input.substr(5)); - updateDCP(pp->icm.dcpIlluminant, pp->icm.input.substr(5)); + ifromfile->set_active(true); + oldip = pp->icm.inputProfile.substr(5); // cut of "file:" + ipDialog->set_filename(pp->icm.inputProfile.substr(5)); + updateDCP(pp->icm.dcpIlluminant, pp->icm.inputProfile.substr(5)); } - wnames->set_active_text (pp->icm.working); - wgamma->set_active_text (pp->icm.gamma); + wProfNames->set_active_text(pp->icm.workingProfile); - if (pp->icm.output == ColorManagementParams::NoICMString) { - onames->set_active_text (M("TP_ICM_NOICM")); + if (pp->icm.workingTRC == "none") { + wTRC->set_active(0); + } else if (pp->icm.workingTRC == "Custom") { + wTRC->set_active(1); + } + + wtrcinChanged(); + + if (pp->icm.outputProfile == ColorManagementParams::NoICMString) { + oProfNames->set_active_text(M("TP_ICM_NOICM")); } else { - onames->set_active_text (pp->icm.output); + oProfNames->set_active_text(pp->icm.outputProfile); } - if (onames->get_active_row_number() == -1) { - onames->set_active_text (M("TP_ICM_NOICM")); + if (oProfNames->get_active_row_number() == -1) { + oProfNames->set_active_text(M("TP_ICM_NOICM")); } - ointent->setSelected (pp->icm.outputIntent); - obpc->set_active (pp->icm.outputBPC); - ckbToneCurve->set_active (pp->icm.toneCurve); + oRendIntent->setSelected(pp->icm.outputIntent); + + obpc->set_active(pp->icm.outputBPC); + ckbToneCurve->set_active(pp->icm.toneCurve); lastToneCurve = pp->icm.toneCurve; - ckbApplyLookTable->set_active (pp->icm.applyLookTable); + ckbApplyLookTable->set_active(pp->icm.applyLookTable); lastApplyLookTable = pp->icm.applyLookTable; - ckbApplyBaselineExposureOffset->set_active (pp->icm.applyBaselineExposureOffset); + ckbApplyBaselineExposureOffset->set_active(pp->icm.applyBaselineExposureOffset); lastApplyBaselineExposureOffset = pp->icm.applyBaselineExposureOffset; - ckbApplyHueSatMap->set_active (pp->icm.applyHueSatMap); + ckbApplyHueSatMap->set_active(pp->icm.applyHueSatMap); lastApplyHueSatMap = pp->icm.applyHueSatMap; - freegamma->set_active (pp->icm.freegamma); - lastgamfree = pp->icm.freegamma; - - if (!batchMode) { - onames->set_sensitive(wgamma->get_active_row_number() == 0 && !pp->icm.freegamma); //"default" - wgamma->set_sensitive(!pp->icm.freegamma); - gampos->set_sensitive(pp->icm.freegamma); - slpos->set_sensitive(pp->icm.freegamma); - updateRenderingIntent(pp->icm.output); - } - - gampos->setValue (pp->icm.gampos); - slpos->setValue (pp->icm.slpos); + wGamma->setValue(pp->icm.workingTRCGamma); + wSlope->setValue(pp->icm.workingTRCSlope); if (pedited) { - iunchanged->set_active (!pedited->icm.input); + iunchanged->set_active(!pedited->icm.inputProfile); obpc->set_inconsistent(!pedited->icm.outputBPC); ckbToneCurve->set_inconsistent(!pedited->icm.toneCurve); ckbApplyLookTable->set_inconsistent(!pedited->icm.applyLookTable); ckbApplyBaselineExposureOffset->set_inconsistent(!pedited->icm.applyBaselineExposureOffset); ckbApplyHueSatMap->set_inconsistent(!pedited->icm.applyHueSatMap); - freegamma->set_inconsistent (!pedited->icm.freegamma); - if (!pedited->icm.working) { - wnames->set_active_text(M("GENERAL_UNCHANGED")); + if (!pedited->icm.workingProfile) { + wProfNames->set_active_text(M("GENERAL_UNCHANGED")); } - if (!pedited->icm.output) { - onames->set_active_text(M("GENERAL_UNCHANGED")); + if (!pedited->icm.outputProfile) { + oProfNames->set_active_text(M("GENERAL_UNCHANGED")); } if (!pedited->icm.outputIntent) { - ointent->setSelected (4); + oRendIntent->setSelected(4); } if (!pedited->icm.dcpIlluminant) { dcpIll->set_active_text(M("GENERAL_UNCHANGED")); } - if (!pedited->icm.gamma) { - wgamma->set_active_text(M("GENERAL_UNCHANGED")); - wgamma->set_active_text(M("GENERAL_UNCHANGED")); + if (!pedited->icm.workingTRC) { + wTRC->set_active_text(M("GENERAL_UNCHANGED")); } - gampos->setEditedState (pedited->icm.gampos ? Edited : UnEdited); - slpos->setEditedState (pedited->icm.slpos ? Edited : UnEdited); + wGamma->setEditedState(pedited->icm.workingTRCGamma ? Edited : UnEdited); + wSlope->setEditedState(pedited->icm.workingTRCSlope ? Edited : UnEdited); } - enableListener (); + enableListener(); } -void ICMPanel::write (ProcParams* pp, ParamsEdited* pedited) +void ICMPanel::write(ProcParams* pp, ParamsEdited* pedited) { if (inone->get_active()) { - pp->icm.input = "(none)"; - } else if (iembedded->get_active ()) { - pp->icm.input = "(embedded)"; - } else if (icamera->get_active ()) { - pp->icm.input = "(camera)"; - } else if (icameraICC->get_active ()) { - pp->icm.input = "(cameraICC)"; + pp->icm.inputProfile = "(none)"; + } else if (iembedded->get_active()) { + pp->icm.inputProfile = "(embedded)"; + } else if (icamera->get_active()) { + pp->icm.inputProfile = "(camera)"; + } else if (icameraICC->get_active()) { + pp->icm.inputProfile = "(cameraICC)"; } else { - if (Glib::file_test (ipDialog->get_filename (), Glib::FILE_TEST_EXISTS) && !Glib::file_test (ipDialog->get_filename (), Glib::FILE_TEST_IS_DIR)) { - pp->icm.input = "file:" + ipDialog->get_filename (); + if (Glib::file_test(ipDialog->get_filename(), Glib::FILE_TEST_EXISTS) && !Glib::file_test(ipDialog->get_filename(), Glib::FILE_TEST_IS_DIR)) { + pp->icm.inputProfile = "file:" + ipDialog->get_filename(); } else { - pp->icm.input = ""; // just a directory + pp->icm.inputProfile = ""; // just a directory } - Glib::ustring p = Glib::path_get_dirname(ipDialog->get_filename ()); + Glib::ustring p = Glib::path_get_dirname(ipDialog->get_filename()); } - pp->icm.working = wnames->get_active_text (); - pp->icm.gamma = wgamma->get_active_text (); + pp->icm.workingProfile = wProfNames->get_active_text(); pp->icm.dcpIlluminant = rtengine::max(dcpIll->get_active_row_number(), 0); + pp->icm.workingTRC = wTRC->get_active_text(); - if (onames->get_active_text() == M("TP_ICM_NOICM")) { - pp->icm.output = ColorManagementParams::NoICMString; + if (oProfNames->get_active_text() == M("TP_ICM_NOICM")) { + pp->icm.outputProfile = ColorManagementParams::NoICMString; } else { - pp->icm.output = onames->get_active_text(); + pp->icm.outputProfile = oProfNames->get_active_text(); } - int ointentVal = ointent->getSelected (); + int ointentVal = oRendIntent->getSelected(); + if (ointentVal >= 0 && ointentVal < RI__COUNT) { pp->icm.outputIntent = static_cast(ointentVal); } else { pp->icm.outputIntent = rtengine::RI_RELATIVE; } - pp->icm.freegamma = freegamma->get_active(); - pp->icm.toneCurve = ckbToneCurve->get_active (); - pp->icm.applyLookTable = ckbApplyLookTable->get_active (); - pp->icm.applyBaselineExposureOffset = ckbApplyBaselineExposureOffset->get_active (); - pp->icm.applyHueSatMap = ckbApplyHueSatMap->get_active (); - pp->icm.gampos = (double) gampos->getValue(); - pp->icm.slpos = (double) slpos->getValue(); - pp->icm.outputBPC = obpc->get_active (); + if (wTRC->get_active_row_number() == 0) { + pp->icm.workingTRC = "none"; + } else if (wTRC->get_active_row_number() == 1) { + pp->icm.workingTRC = "Custom"; + } + + pp->icm.toneCurve = ckbToneCurve->get_active(); + pp->icm.applyLookTable = ckbApplyLookTable->get_active(); + pp->icm.applyBaselineExposureOffset = ckbApplyBaselineExposureOffset->get_active(); + pp->icm.applyHueSatMap = ckbApplyHueSatMap->get_active(); + pp->icm.outputBPC = obpc->get_active(); + pp->icm.workingTRCGamma = (double) wGamma->getValue(); + pp->icm.workingTRCSlope = (double) wSlope->getValue(); + pp->toneCurve.fromHistMatching = false; if (pedited) { - pedited->icm.input = !iunchanged->get_active (); - pedited->icm.working = wnames->get_active_text() != M("GENERAL_UNCHANGED"); - pedited->icm.output = onames->get_active_text() != M("GENERAL_UNCHANGED"); - pedited->icm.outputIntent = ointent->getSelected () < 4; - pedited->icm.outputBPC = !obpc->get_inconsistent (); + pedited->icm.inputProfile = !iunchanged->get_active(); + pedited->icm.workingProfile = wProfNames->get_active_text() != M("GENERAL_UNCHANGED"); + pedited->icm.outputProfile = oProfNames->get_active_text() != M("GENERAL_UNCHANGED"); + pedited->icm.outputIntent = oRendIntent->getSelected() < 4; + pedited->icm.outputBPC = !obpc->get_inconsistent(); pedited->icm.dcpIlluminant = dcpIll->get_active_text() != M("GENERAL_UNCHANGED"); - pedited->icm.toneCurve = !ckbToneCurve->get_inconsistent (); - pedited->icm.applyLookTable = !ckbApplyLookTable->get_inconsistent (); - pedited->icm.applyBaselineExposureOffset = !ckbApplyBaselineExposureOffset->get_inconsistent (); - pedited->icm.applyHueSatMap = !ckbApplyHueSatMap->get_inconsistent (); - pedited->icm.gamma = wgamma->get_active_text() != M("GENERAL_UNCHANGED"); - pedited->icm.freegamma = !freegamma->get_inconsistent(); - pedited->icm.gampos = gampos->getEditedState (); - pedited->icm.slpos = slpos->getEditedState (); + pedited->icm.toneCurve = !ckbToneCurve->get_inconsistent(); + pedited->icm.applyLookTable = !ckbApplyLookTable->get_inconsistent(); + pedited->icm.applyBaselineExposureOffset = !ckbApplyBaselineExposureOffset->get_inconsistent(); + pedited->icm.applyHueSatMap = !ckbApplyHueSatMap->get_inconsistent(); + pedited->icm.workingTRCGamma = wGamma->getEditedState(); + pedited->icm.workingTRCSlope = wSlope->getEditedState(); + pedited->icm.workingTRC = wTRC->get_active_text() != M("GENERAL_UNCHANGED"); } } -void ICMPanel::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) +void ICMPanel::setDefaults(const ProcParams* defParams, const ParamsEdited* pedited) { - gampos->setDefault (defParams->icm.gampos); - slpos->setDefault (defParams->icm.slpos); + wGamma->setDefault(defParams->icm.workingTRCGamma); + wSlope->setDefault(defParams->icm.workingTRCSlope); if (pedited) { - gampos->setDefaultEditedState (pedited->icm.gampos ? Edited : UnEdited); - slpos->setDefaultEditedState (pedited->icm.slpos ? Edited : UnEdited); + wGamma->setDefaultEditedState(pedited->icm.workingTRCGamma ? Edited : UnEdited); + wSlope->setDefaultEditedState(pedited->icm.workingTRCSlope ? Edited : UnEdited); + } else { - gampos->setDefaultEditedState (Irrelevant); - slpos->setDefaultEditedState (Irrelevant); + wGamma->setDefaultEditedState(Irrelevant); + wSlope->setDefaultEditedState(Irrelevant); + } } -void ICMPanel::setAdjusterBehavior (bool gammaadd, bool slopeadd) +void ICMPanel::adjusterChanged(Adjuster* a, double newval) { - gampos->setAddMode (gammaadd); - slpos->setAddMode (slopeadd); -} + if (listener || batchMode) { + Glib::ustring costr2 = Glib::ustring::format(std::setw(3), std::fixed, std::setprecision(2), newval); -void ICMPanel::adjusterChanged (Adjuster* a, double newval) -{ - - if (listener && (freegamma->get_active() || batchMode)) { - - Glib::ustring costr = Glib::ustring::format (std::setw(3), std::fixed, std::setprecision(2), newval); - - if (a == gampos) { - listener->panelChanged (EvGAMPOS, costr); - } else if (a == slpos) { - listener->panelChanged (EvSLPOS, costr); + if (a == wGamma) { + listener->panelChanged(EvICMgamm, costr2); + } else if (a == wSlope) { + listener->panelChanged(EvICMslop, costr2); } + } } -void ICMPanel::wpChanged () +void ICMPanel::wpChanged() { - if (listener) { - listener->panelChanged (EvWProfile, wnames->get_active_text ()); + listener->panelChanged(EvWProfile, wProfNames->get_active_text()); } } -void ICMPanel::gpChanged () +void ICMPanel::wtrcinChanged() { + if (wTRC->get_active_row_number() == 0) { + wGamma->set_sensitive(false); + wSlope->set_sensitive(false); + + } else { + wGamma->set_sensitive(true); + wSlope->set_sensitive(true); + } if (listener) { - listener->panelChanged (EvGAMMA, wgamma->get_active_text ()); - onames->set_sensitive(wgamma->get_active_row_number() == 0); //"default" + listener->panelChanged(EvICMtrcinMethod, wTRC->get_active_text()); } } void ICMPanel::dcpIlluminantChanged() { if (listener) { - listener->panelChanged (EvDCPIlluminant, dcpIll->get_active_text ()); + listener->panelChanged(EvDCPIlluminant, dcpIll->get_active_text()); } } @@ -733,24 +732,24 @@ void ICMPanel::toneCurveChanged() { if (multiImage) { if (ckbToneCurve->get_inconsistent()) { - ckbToneCurve->set_inconsistent (false); - tcurveconn.block (true); - ckbToneCurve->set_active (false); - tcurveconn.block (false); + ckbToneCurve->set_inconsistent(false); + tcurveconn.block(true); + ckbToneCurve->set_active(false); + tcurveconn.block(false); } else if (lastToneCurve) { - ckbToneCurve->set_inconsistent (true); + ckbToneCurve->set_inconsistent(true); } - lastToneCurve = ckbToneCurve->get_active (); + lastToneCurve = ckbToneCurve->get_active(); } if (listener) { if (ckbToneCurve->get_inconsistent()) { - listener->panelChanged (EvDCPToneCurve, M("GENERAL_UNCHANGED")); + listener->panelChanged(EvDCPToneCurve, M("GENERAL_UNCHANGED")); } else if (ckbToneCurve->get_active()) { - listener->panelChanged (EvDCPToneCurve, M("GENERAL_ENABLED")); + listener->panelChanged(EvDCPToneCurve, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvDCPToneCurve, M("GENERAL_DISABLED")); + listener->panelChanged(EvDCPToneCurve, M("GENERAL_DISABLED")); } } } @@ -759,24 +758,24 @@ void ICMPanel::applyLookTableChanged() { if (multiImage) { if (ckbApplyLookTable->get_inconsistent()) { - ckbApplyLookTable->set_inconsistent (false); - ltableconn.block (true); - ckbApplyLookTable->set_active (false); - ltableconn.block (false); + ckbApplyLookTable->set_inconsistent(false); + ltableconn.block(true); + ckbApplyLookTable->set_active(false); + ltableconn.block(false); } else if (lastApplyLookTable) { - ckbApplyLookTable->set_inconsistent (true); + ckbApplyLookTable->set_inconsistent(true); } - lastApplyLookTable = ckbApplyLookTable->get_active (); + lastApplyLookTable = ckbApplyLookTable->get_active(); } if (listener) { if (ckbApplyLookTable->get_inconsistent()) { - listener->panelChanged (EvDCPApplyLookTable, M("GENERAL_UNCHANGED")); + listener->panelChanged(EvDCPApplyLookTable, M("GENERAL_UNCHANGED")); } else if (ckbApplyLookTable->get_active()) { - listener->panelChanged (EvDCPApplyLookTable, M("GENERAL_ENABLED")); + listener->panelChanged(EvDCPApplyLookTable, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvDCPApplyLookTable, M("GENERAL_DISABLED")); + listener->panelChanged(EvDCPApplyLookTable, M("GENERAL_DISABLED")); } } } @@ -785,24 +784,24 @@ void ICMPanel::applyBaselineExposureOffsetChanged() { if (multiImage) { if (ckbApplyBaselineExposureOffset->get_inconsistent()) { - ckbApplyBaselineExposureOffset->set_inconsistent (false); - beoconn.block (true); - ckbApplyBaselineExposureOffset->set_active (false); - beoconn.block (false); + ckbApplyBaselineExposureOffset->set_inconsistent(false); + beoconn.block(true); + ckbApplyBaselineExposureOffset->set_active(false); + beoconn.block(false); } else if (lastApplyBaselineExposureOffset) { - ckbApplyBaselineExposureOffset->set_inconsistent (true); + ckbApplyBaselineExposureOffset->set_inconsistent(true); } - lastApplyBaselineExposureOffset = ckbApplyBaselineExposureOffset->get_active (); + lastApplyBaselineExposureOffset = ckbApplyBaselineExposureOffset->get_active(); } if (listener) { if (ckbApplyBaselineExposureOffset->get_inconsistent()) { - listener->panelChanged (EvDCPApplyBaselineExposureOffset, M("GENERAL_UNCHANGED")); + listener->panelChanged(EvDCPApplyBaselineExposureOffset, M("GENERAL_UNCHANGED")); } else if (ckbApplyBaselineExposureOffset->get_active()) { - listener->panelChanged (EvDCPApplyBaselineExposureOffset, M("GENERAL_ENABLED")); + listener->panelChanged(EvDCPApplyBaselineExposureOffset, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvDCPApplyBaselineExposureOffset, M("GENERAL_DISABLED")); + listener->panelChanged(EvDCPApplyBaselineExposureOffset, M("GENERAL_DISABLED")); } } } @@ -811,170 +810,137 @@ void ICMPanel::applyHueSatMapChanged() { if (multiImage) { if (ckbApplyHueSatMap->get_inconsistent()) { - ckbApplyHueSatMap->set_inconsistent (false); - hsmconn.block (true); - ckbApplyHueSatMap->set_active (false); - hsmconn.block (false); + ckbApplyHueSatMap->set_inconsistent(false); + hsmconn.block(true); + ckbApplyHueSatMap->set_active(false); + hsmconn.block(false); } else if (lastApplyHueSatMap) { - ckbApplyHueSatMap->set_inconsistent (true); + ckbApplyHueSatMap->set_inconsistent(true); } - lastApplyHueSatMap = ckbApplyHueSatMap->get_active (); + lastApplyHueSatMap = ckbApplyHueSatMap->get_active(); } if (listener) { if (ckbApplyHueSatMap->get_inconsistent()) { - listener->panelChanged (EvDCPApplyHueSatMap, M("GENERAL_UNCHANGED")); + listener->panelChanged(EvDCPApplyHueSatMap, M("GENERAL_UNCHANGED")); } else if (ckbApplyHueSatMap->get_active()) { - listener->panelChanged (EvDCPApplyHueSatMap, M("GENERAL_ENABLED")); + listener->panelChanged(EvDCPApplyHueSatMap, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvDCPApplyHueSatMap, M("GENERAL_DISABLED")); + listener->panelChanged(EvDCPApplyHueSatMap, M("GENERAL_DISABLED")); } } } -void ICMPanel::ipChanged () +void ICMPanel::ipChanged() { Glib::ustring profname; if (inone->get_active()) { profname = "(none)"; - } else if (iembedded->get_active ()) { + } else if (iembedded->get_active()) { profname = "(embedded)"; - } else if (icamera->get_active ()) { + } else if (icamera->get_active()) { profname = "(camera)"; - } else if (icameraICC->get_active ()) { + } else if (icameraICC->get_active()) { profname = "(cameraICC)"; } else { - profname = ipDialog->get_filename (); + profname = ipDialog->get_filename(); } updateDCP(-1, profname); if (listener && profname != oldip) { - listener->panelChanged (EvIProfile, profname); + listener->panelChanged(EvIProfile, profname); } oldip = profname; } -void ICMPanel::GamChanged() -{ - if (multiImage) { - if (freegamma->get_inconsistent()) { - freegamma->set_inconsistent (false); - gamcsconn.block (true); - freegamma->set_active (false); - gamcsconn.block (false); - } else if (lastgamfree) { - freegamma->set_inconsistent (true); - } - - lastgamfree = freegamma->get_active (); - } - - if (listener) { - if (freegamma->get_inconsistent()) { - listener->panelChanged (EvGAMFREE, M("GENERAL_UNCHANGED")); - } - else if (freegamma->get_active()) { - listener->panelChanged (EvGAMFREE, M("GENERAL_ENABLED")); - if (!batchMode) { - onames->set_sensitive(false);//disabled choice - wgamma->set_sensitive(false); - gampos->set_sensitive(true); - slpos->set_sensitive(true); - } - } else { - listener->panelChanged (EvGAMFREE, M("GENERAL_DISABLED")); - if (!batchMode) { - onames->set_sensitive(wgamma->get_active_row_number() == 0); - wgamma->set_sensitive(true); - gampos->set_sensitive(false); - slpos->set_sensitive(false); - } - } - } -} - -void ICMPanel::opChanged () +void ICMPanel::opChanged() { if (!batchMode) { - updateRenderingIntent(onames->get_active_text()); + updateRenderingIntent(oProfNames->get_active_text()); } if (listener) { - listener->panelChanged (EvOProfile, onames->get_active_text()); + listener->panelChanged(EvOProfile, oProfNames->get_active_text()); } } -void ICMPanel::oiChanged (int n) +void ICMPanel::oiChanged(int n) { if (listener) { Glib::ustring str; + switch (n) { - case 0: - str = M("PREFERENCES_INTENT_PERCEPTUAL"); - break; - case 1: - str = M("PREFERENCES_INTENT_RELATIVE"); - break; - case 2: - str = M("PREFERENCES_INTENT_SATURATION"); - break; - case 3: - str = M("PREFERENCES_INTENT_ABSOLUTE"); - break; - case 4: - default: - str = M("GENERAL_UNCHANGED"); - break; + case 0: + str = M("PREFERENCES_INTENT_PERCEPTUAL"); + break; + + case 1: + str = M("PREFERENCES_INTENT_RELATIVE"); + break; + + case 2: + str = M("PREFERENCES_INTENT_SATURATION"); + break; + + case 3: + str = M("PREFERENCES_INTENT_ABSOLUTE"); + break; + + case 4: + default: + str = M("GENERAL_UNCHANGED"); + break; } - listener->panelChanged (EvOIntent, str); + + listener->panelChanged(EvOIntent, str); } } -void ICMPanel::oBPCChanged () +void ICMPanel::oBPCChanged() { if (multiImage) { if (obpc->get_inconsistent()) { - obpc->set_inconsistent (false); - obpcconn.block (true); - obpc->set_active (false); - obpcconn.block (false); + obpc->set_inconsistent(false); + obpcconn.block(true); + obpc->set_active(false); + obpcconn.block(false); } else if (lastobpc) { - obpc->set_inconsistent (true); + obpc->set_inconsistent(true); } - lastobpc = obpc->get_active (); + lastobpc = obpc->get_active(); } if (listener) { if (obpc->get_inconsistent()) { - listener->panelChanged (EvOBPCompens, M("GENERAL_UNCHANGED")); + listener->panelChanged(EvOBPCompens, M("GENERAL_UNCHANGED")); } else if (obpc->get_active()) { - listener->panelChanged (EvOBPCompens, M("GENERAL_ENABLED")); + listener->panelChanged(EvOBPCompens, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvOBPCompens, M("GENERAL_DISABLED")); + listener->panelChanged(EvOBPCompens, M("GENERAL_DISABLED")); } } } -void ICMPanel::setRawMeta (bool raw, const rtengine::FramesData* pMeta) +void ICMPanel::setRawMeta(bool raw, const rtengine::FramesData* pMeta) { - disableListener (); + disableListener(); - icamera->set_active (raw); - iembedded->set_active (!raw); - icamera->set_sensitive (raw); + icamera->set_active(raw); + iembedded->set_active(!raw); + icamera->set_sensitive(raw); camName = pMeta->getCamera(); - icameraICC->set_sensitive (raw && (ICCStore::getInstance()->getStdProfile(pMeta->getCamera()) != nullptr || DCPStore::getInstance()->getStdProfile(pMeta->getCamera()) != nullptr)); - iembedded->set_sensitive (!raw); + icameraICC->set_sensitive(raw && (ICCStore::getInstance()->getStdProfile(pMeta->getCamera()) != nullptr || DCPStore::getInstance()->getStdProfile(pMeta->getCamera()) != nullptr)); + iembedded->set_sensitive(!raw); - enableListener (); + enableListener(); } void ICMPanel::ipSelectionChanged() @@ -987,23 +953,23 @@ void ICMPanel::ipSelectionChanged() ipChanged(); } -void ICMPanel::saveReferencePressed () +void ICMPanel::saveReferencePressed() { if (!icmplistener) { return; } - Gtk::FileChooserDialog dialog (getToplevelWindow (this), M("TP_ICM_SAVEREFERENCE"), Gtk::FILE_CHOOSER_ACTION_SAVE); - bindCurrentFolder (dialog, options.lastProfilingReferenceDir); - dialog.set_current_name (lastRefFilename); + Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("TP_ICM_SAVEREFERENCE"), Gtk::FILE_CHOOSER_ACTION_SAVE); + bindCurrentFolder(dialog, options.lastProfilingReferenceDir); + dialog.set_current_name(lastRefFilename); dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); dialog.add_button(M("GENERAL_SAVE"), Gtk::RESPONSE_OK); Gtk::CheckButton applyWB(M("TP_ICM_SAVEREFERENCE_APPLYWB")); - applyWB.set_tooltip_text (M("TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP")); - Gtk::HBox* hbox = Gtk::manage( new Gtk::HBox() ); + applyWB.set_tooltip_text(M("TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP")); + Gtk::HBox* hbox = Gtk::manage(new Gtk::HBox()); hbox->pack_end(applyWB, Gtk::PACK_SHRINK, 2); Gtk::Box *box = dialog.get_content_area(); box->pack_end(*hbox, Gtk::PACK_SHRINK, 2); @@ -1038,8 +1004,8 @@ void ICMPanel::saveReferencePressed () } if (confirmOverwrite(dialog, fname)) { - icmplistener->saveInputICCReference (fname, applyWB.get_active()); - lastRefFilename = Glib::path_get_basename (fname); + icmplistener->saveInputICCReference(fname, applyWB.get_active()); + lastRefFilename = Glib::path_get_basename(fname); done = true; } } @@ -1048,23 +1014,23 @@ void ICMPanel::saveReferencePressed () return; } -void ICMPanel::setBatchMode (bool batchMode) +void ICMPanel::setBatchMode(bool batchMode) { isBatchMode = true; - ToolPanel::setBatchMode (batchMode); - iunchanged = Gtk::manage (new Gtk::RadioButton (M("GENERAL_UNCHANGED"))); - iunchanged->set_group (opts); - iVBox->pack_start (*iunchanged, Gtk::PACK_SHRINK, 4); - iVBox->reorder_child (*iunchanged, 5); - removeIfThere (this, saveRef); - onames->append (M("GENERAL_UNCHANGED")); - ointent->addEntry("unchanged-22.png", M("GENERAL_UNCHANGED")); - ointent->show(); - wnames->append (M("GENERAL_UNCHANGED")); - wgamma->append (M("GENERAL_UNCHANGED")); - dcpIll->append (M("GENERAL_UNCHANGED")); - gampos->showEditedCB (); - slpos->showEditedCB (); + ToolPanel::setBatchMode(batchMode); + iunchanged = Gtk::manage(new Gtk::RadioButton(M("GENERAL_UNCHANGED"))); + iunchanged->set_group(opts); + iVBox->pack_start(*iunchanged, Gtk::PACK_SHRINK, 4); + iVBox->reorder_child(*iunchanged, 5); + removeIfThere(this, saveRef); + oProfNames->append(M("GENERAL_UNCHANGED")); + oRendIntent->addEntry("template-24.png", M("GENERAL_UNCHANGED")); + oRendIntent->show(); + wProfNames->append(M("GENERAL_UNCHANGED")); + wTRC->append(M("GENERAL_UNCHANGED")); + dcpIll->append(M("GENERAL_UNCHANGED")); + wGamma->showEditedCB(); + wSlope->showEditedCB(); } diff --git a/rtgui/icmpanel.h b/rtgui/icmpanel.h index f8c762b0e..e04a4397e 100644 --- a/rtgui/icmpanel.h +++ b/rtgui/icmpanel.h @@ -33,18 +33,26 @@ class ICMPanelListener public: virtual ~ICMPanelListener() {} - virtual void saveInputICCReference (Glib::ustring fname, bool apply_wb) {} + virtual void saveInputICCReference(Glib::ustring fname, bool apply_wb) {} }; -class ICMPanel : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel +class ICMPanel : + public ToolParamBlock, + public AdjusterListener, + public FoldableToolPanel { protected: - Gtk::Frame* dcpFrame; - Adjuster* gampos; - Adjuster* slpos; - bool lastgamfree; - sigc::connection gamcsconn; + Gtk::Frame* dcpFrame; + Gtk::Frame* coipFrame; + + Adjuster* wGamma; + Adjuster* wSlope; + + Gtk::Label* labmga; + Gtk::HBox* gabox; + + //bool freegamma; bool lastToneCurve; sigc::connection tcurveconn; @@ -59,73 +67,84 @@ protected: bool isBatchMode; private: - Gtk::VBox * iVBox; + rtengine::ProcEvent EvICMprimariMethod; + rtengine::ProcEvent EvICMprofileMethod; + rtengine::ProcEvent EvICMtempMethod; + rtengine::ProcEvent EvICMpredx; + rtengine::ProcEvent EvICMpredy; + rtengine::ProcEvent EvICMpgrex; + rtengine::ProcEvent EvICMpgrey; + rtengine::ProcEvent EvICMpblux; + rtengine::ProcEvent EvICMpbluy; + rtengine::ProcEvent EvICMgamm; + rtengine::ProcEvent EvICMslop; + rtengine::ProcEvent EvICMtrcinMethod; - Gtk::CheckButton* obpc; - Gtk::CheckButton* freegamma; - Gtk::RadioButton* inone; + Gtk::VBox* iVBox; + Gtk::HBox* wTRCHBox; - Gtk::RadioButton* iembedded; - Gtk::RadioButton* icamera; - Gtk::RadioButton* icameraICC; - Gtk::RadioButton* ifromfile; - Gtk::Label* dcpIllLabel; - MyComboBoxText* dcpIll; - sigc::connection dcpillconn; - Gtk::CheckButton* ckbToneCurve; - Gtk::CheckButton* ckbApplyLookTable; - Gtk::CheckButton* ckbApplyBaselineExposureOffset; - Gtk::CheckButton* ckbApplyHueSatMap; - MyComboBoxText* wnames; - sigc::connection wnamesconn; - MyComboBoxText* wgamma; - sigc::connection wgammaconn; + Gtk::CheckButton* obpc; + Gtk::RadioButton* inone; - MyComboBoxText* onames; - sigc::connection onamesconn; - std::unique_ptr ointent; - sigc::connection ointentconn; - Gtk::RadioButton* iunchanged; + Gtk::RadioButton* iembedded; + Gtk::RadioButton* icamera; + Gtk::RadioButton* icameraICC; + Gtk::RadioButton* ifromfile; + Gtk::Label* dcpIllLabel; + MyComboBoxText* dcpIll; + sigc::connection dcpillconn; + Gtk::CheckButton* ckbToneCurve; + Gtk::CheckButton* ckbApplyLookTable; + Gtk::CheckButton* ckbApplyBaselineExposureOffset; + Gtk::CheckButton* ckbApplyHueSatMap; + MyComboBoxText* wProfNames; + sigc::connection wprofnamesconn; + MyComboBoxText* wTRC; + sigc::connection wtrcconn; + + MyComboBoxText* oProfNames; + sigc::connection oprofnamesconn; + std::unique_ptr oRendIntent; + sigc::connection orendintentconn; + Gtk::RadioButton* iunchanged; MyFileChooserButton* ipDialog; Gtk::RadioButton::Group opts; - Gtk::Button* saveRef; - sigc::connection ipc; - Glib::ustring oldip; - ICMPanelListener* icmplistener; + Gtk::Button* saveRef; + sigc::connection ipc; + Glib::ustring oldip; + ICMPanelListener* icmplistener; double dcpTemperatures[2]; Glib::ustring lastRefFilename; Glib::ustring camName; void updateDCP(int dcpIlluminant, Glib::ustring dcp_name); - void updateRenderingIntent (const Glib::ustring &profile); + void updateRenderingIntent(const Glib::ustring &profile); public: - ICMPanel (); + ICMPanel(); - 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 setAdjusterBehavior (bool gammaadd, bool slopeadd); + 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 wpChanged (); - void opChanged (); - void oiChanged (int n); - void oBPCChanged (); - void ipChanged (); - void gpChanged (); - void GamChanged (); - void ipSelectionChanged (); + void wpChanged(); + void wtrcinChanged(); + void opChanged(); + void oiChanged(int n); + void oBPCChanged(); + void ipChanged(); + void ipSelectionChanged(); void dcpIlluminantChanged(); void toneCurveChanged(); void applyLookTableChanged(); void applyBaselineExposureOffsetChanged(); void applyHueSatMapChanged(); - void setRawMeta (bool raw, const rtengine::FramesData* pMeta); - void saveReferencePressed (); + void setRawMeta(bool raw, const rtengine::FramesData* pMeta); + void saveReferencePressed(); - void setICMPanelListener (ICMPanelListener* ipl) + void setICMPanelListener(ICMPanelListener* ipl) { icmplistener = ipl; } diff --git a/rtgui/imagearea.cc b/rtgui/imagearea.cc index b5989b098..b2b938139 100644 --- a/rtgui/imagearea.cc +++ b/rtgui/imagearea.cc @@ -43,6 +43,7 @@ ImageArea::ImageArea (ImageAreaPanel* p) : parent(p), fullImageWidth(0), fullIma zoomPanel = Gtk::manage (new ZoomPanel (this)); indClippedPanel = Gtk::manage (new IndicateClippedPanel (this)); previewModePanel = Gtk::manage (new PreviewModePanel (this)); + previewModePanel->get_style_context()->add_class("narrowbuttonbox"); add_events(Gdk::LEAVE_NOTIFY_MASK); diff --git a/rtgui/indclippedpanel.cc b/rtgui/indclippedpanel.cc index 1ccc79edf..aff5035fe 100644 --- a/rtgui/indclippedpanel.cc +++ b/rtgui/indclippedpanel.cc @@ -24,12 +24,12 @@ IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) { - iFon = new RTImage ("previewmodeF-focusScreen-on.png"); - iFoff = new RTImage ("previewmodeF-focusScreen-off.png"); + iFon = new RTImage ("focusscreen-on.png"); + iFoff = new RTImage ("focusscreen-off.png"); // for previewSharpMask, needs to be replaced with different icons - iSon = new RTImage ("previewmodeF-focusScreen-on.png"); - iSoff = new RTImage ("previewmodeF-focusScreen-off.png"); + iSon = new RTImage ("contrastmask-on.png"); + iSoff = new RTImage ("contrastmask-off.png"); previewFocusMask = Gtk::manage (new Gtk::ToggleButton ()); previewFocusMask->set_relief(Gtk::RELIEF_NONE); @@ -45,7 +45,7 @@ IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) indClippedH = Gtk::manage (new Gtk::ToggleButton ()); indClippedH->set_relief(Gtk::RELIEF_NONE); - indClippedH->add (*Gtk::manage (new RTImage ("warnhl.png"))); + indClippedH->add (*Gtk::manage (new RTImage ("warning-highlights.png"))); tt = Glib::ustring::compose("%1\n%2 = %3", M("MAIN_TOOLTIP_INDCLIPPEDH"), M("MAIN_TOOLTIP_THRESHOLD"), options.highlightThreshold); if (tt.find("<") == Glib::ustring::npos && tt.find(">") == Glib::ustring::npos) { @@ -56,7 +56,7 @@ IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) indClippedS = Gtk::manage (new Gtk::ToggleButton ()); indClippedS->set_relief(Gtk::RELIEF_NONE); - indClippedS->add (*Gtk::manage (new RTImage ("warnsh.png"))); + indClippedS->add (*Gtk::manage (new RTImage ("warning-shadows.png"))); tt = Glib::ustring::compose("%1\n%2 = %3", M("MAIN_TOOLTIP_INDCLIPPEDS"), M("MAIN_TOOLTIP_THRESHOLD"), options.shadowThreshold); if (tt.find("<") == Glib::ustring::npos && tt.find(">") == Glib::ustring::npos) { @@ -98,6 +98,14 @@ void IndicateClippedPanel::toggleFocusMask () previewFocusMask->set_active(!previewFocusMask->get_active()); } +void IndicateClippedPanel::silentlyDisableSharpMask () +{ + ConnectionBlocker conBlocker(connSharpMask); + previewSharpMask->set_active(false); + previewSharpMask->set_image(*iSoff); + +} + void IndicateClippedPanel::toggleSharpMask () { previewSharpMask->set_active(!previewSharpMask->get_active()); @@ -127,12 +135,12 @@ void IndicateClippedPanel::buttonToggled (Gtk::ToggleButton* tb) indClippedH->set_active(false); } previewFocusMask->set_active(false); - imageArea->sharpMaskSelected(previewSharpMask->get_active()); } else { previewFocusMask->set_active(false); previewSharpMask->set_active(false); } + imageArea->sharpMaskSelected(previewSharpMask->get_active()); previewFocusMask->set_image(previewFocusMask->get_active() ? *iFon : *iFoff); previewSharpMask->set_image(previewSharpMask->get_active() ? *iSon : *iSoff); diff --git a/rtgui/indclippedpanel.h b/rtgui/indclippedpanel.h index b4225a9cb..95e870e95 100644 --- a/rtgui/indclippedpanel.h +++ b/rtgui/indclippedpanel.h @@ -40,6 +40,7 @@ public: void buttonToggled(Gtk::ToggleButton* tb); void toggleClipped(bool highlights); // inverts a toggle programmatically void toggleFocusMask(); + void silentlyDisableSharpMask(); // toggle the button off without throwing a toggle event void toggleSharpMask(); sigc::connection connFocusMask, connSharpMask, connClippedS, connClippedH; diff --git a/rtgui/iptcpanel.cc b/rtgui/iptcpanel.cc index cd0fe4050..0dafe940f 100644 --- a/rtgui/iptcpanel.cc +++ b/rtgui/iptcpanel.cc @@ -112,9 +112,9 @@ IPTCPanel::IPTCPanel () setExpandAlignProperties(addKW, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); delKW = Gtk::manage( new Gtk::Button () ); setExpandAlignProperties(delKW, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - Gtk::Image* addKWImg = Gtk::manage( new RTImage ("list-add-small.png") ); + Gtk::Image* addKWImg = Gtk::manage( new RTImage ("add-small.png") ); setExpandAlignProperties(addKWImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - Gtk::Image* delKWImg = Gtk::manage( new RTImage ("list-remove-red-small.png") ); + Gtk::Image* delKWImg = Gtk::manage( new RTImage ("remove-small.png") ); setExpandAlignProperties(delKWImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); addKW->add (*addKWImg); delKW->add (*delKWImg); @@ -162,9 +162,9 @@ IPTCPanel::IPTCPanel () setExpandAlignProperties(addSC, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); delSC = Gtk::manage( new Gtk::Button () ); setExpandAlignProperties(delSC, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); - Gtk::Image* addSCImg = Gtk::manage( new RTImage ("list-add-small.png") ); + Gtk::Image* addSCImg = Gtk::manage( new RTImage ("add-small.png") ); setExpandAlignProperties(addSCImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - Gtk::Image* delSCImg = Gtk::manage( new RTImage ("list-remove-red-small.png") ); + Gtk::Image* delSCImg = Gtk::manage( new RTImage ("remove-small.png") ); setExpandAlignProperties(delSCImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); addSC->add (*addSCImg); delSC->add (*delSCImg); @@ -328,25 +328,25 @@ IPTCPanel::IPTCPanel () reset = Gtk::manage( new Gtk::Button () ); // M("IPTCPANEL_RESET") reset->get_style_context()->add_class("Left"); - reset->set_image (*Gtk::manage(new RTImage ("gtk-undo-ltr.png", "gtk-undo-rtl.png"))); + reset->set_image (*Gtk::manage(new RTImage ("undo.png", "redo.png"))); setExpandAlignProperties(reset, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); bbox->attach_next_to (*reset, Gtk::POS_LEFT, 1, 1); file = Gtk::manage( new Gtk::Button () ); // M("IPTCPANEL_EMBEDDED") file->get_style_context()->add_class("MiddleH"); - file->set_image (*Gtk::manage(new RTImage ("gtk-open.png"))); + file->set_image (*Gtk::manage(new RTImage ("folder-open.png"))); setExpandAlignProperties(file, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); bbox->attach_next_to (*file, Gtk::POS_RIGHT, 1, 1); copy = Gtk::manage( new Gtk::Button () ); copy->get_style_context()->add_class("MiddleH"); - copy->set_image (*Gtk::manage(new RTImage ("edit-copy.png"))); + copy->set_image (*Gtk::manage(new RTImage ("copy.png"))); setExpandAlignProperties(copy, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); bbox->attach_next_to (*copy, Gtk::POS_RIGHT, 1, 1); paste = Gtk::manage( new Gtk::Button () ); paste->get_style_context()->add_class("Right"); - paste->set_image (*Gtk::manage(new RTImage ("edit-paste.png"))); + paste->set_image (*Gtk::manage(new RTImage ("paste.png"))); setExpandAlignProperties(paste, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); bbox->attach_next_to (*paste, Gtk::POS_RIGHT, 1, 1); diff --git a/rtgui/labgrid.cc b/rtgui/labgrid.cc index 945073221..a52ba9163 100644 --- a/rtgui/labgrid.cc +++ b/rtgui/labgrid.cc @@ -74,10 +74,12 @@ void LabGrid::getParams(double &la, double &lb, double &ha, double &hb) const void LabGrid::setParams(double la, double lb, double ha, double hb, bool notify) { - low_a = la; - low_b = lb; - high_a = ha; - high_b = hb; + const double lo = -rtengine::ColorToningParams::LABGRID_CORR_MAX; + const double hi = rtengine::ColorToningParams::LABGRID_CORR_MAX; + low_a = rtengine::LIM(la, lo, hi); + low_b = rtengine::LIM(lb, lo, hi); + high_a = rtengine::LIM(ha, lo, hi); + high_b = rtengine::LIM(hb, lo, hi); queue_draw(); if (notify) { notifyListener(); diff --git a/rtgui/lensgeom.cc b/rtgui/lensgeom.cc index 7cae75d87..898fa1105 100644 --- a/rtgui/lensgeom.cc +++ b/rtgui/lensgeom.cc @@ -30,7 +30,8 @@ LensGeometry::LensGeometry () : FoldableToolPanel(this, "lensgeom", M("TP_LENSGE pack_start (*fill); autoCrop = Gtk::manage (new Gtk::Button (M("TP_LENSGEOM_AUTOCROP"))); - autoCrop->set_image (*Gtk::manage (new RTImage ("crop-auto.png"))); + autoCrop->set_image (*Gtk::manage (new RTImage ("crop-auto-small.png"))); + autoCrop->get_style_context()->add_class("independent"); pack_start (*autoCrop, Gtk::PACK_SHRINK, 2); packBox = Gtk::manage (new ToolParamBlock ()); diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index df26678d9..a89fdb51e 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -139,10 +139,10 @@ LensProfilePanel::LensProfilePanel () : lensfunCameras->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunCameraChanged)); lensfunLenses->signal_changed().connect(sigc::mem_fun(*this, &LensProfilePanel::onLensfunLensChanged)); - corrOff->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged)); - corrLensfunAuto->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged)); - corrLensfunManual->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged)); - corrLcpFile->signal_toggled().connect(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged)); + corrOff->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrOff)); + corrLensfunAuto->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunAuto)); + corrLensfunManual->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLensfunManual)); + corrLcpFile->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &LensProfilePanel::onCorrModeChanged), corrLcpFile)); corrUnchanged->hide(); @@ -499,84 +499,88 @@ void LensProfilePanel::onLensfunLensChanged() } -void LensProfilePanel::onCorrModeChanged() +void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton *rbChanged) { - Glib::ustring mode; + if (rbChanged->get_active()) { + // because the method gets called for the enabled AND the disabled RadioButton, we do the processing only for the enabled one + Glib::ustring mode; - if (corrOff->get_active()) { - useLensfunChanged = true; - lensfunAutoChanged = true; - lcpFileChanged = true; - - ckbUseDist->set_sensitive(false); - ckbUseVign->set_sensitive(false); - ckbUseCA->set_sensitive(false); - - mode = M("GENERAL_NONE"); - } else if (corrLensfunAuto->get_active()) { - useLensfunChanged = true; - lensfunAutoChanged = true; - lcpFileChanged = true; - useDistChanged = true; - useVignChanged = true; + if (rbChanged == corrOff) { + useLensfunChanged = true; + lensfunAutoChanged = true; + lcpFileChanged = true; - ckbUseDist->set_sensitive(true); - ckbUseVign->set_sensitive(true); - ckbUseCA->set_sensitive(false); + ckbUseDist->set_sensitive(false); + ckbUseVign->set_sensitive(false); + ckbUseCA->set_sensitive(false); - if (metadata) { - bool b = disableListener(); - const LFDatabase *db = LFDatabase::getInstance(); - LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel()); - LFLens l = db->findLens(c, metadata->getLens()); - setLensfunCamera(c.getMake(), c.getModel()); - setLensfunLens(l.getLens()); - if (b) { - enableListener(); + mode = M("GENERAL_NONE"); + } else if (rbChanged == corrLensfunAuto) { + useLensfunChanged = true; + lensfunAutoChanged = true; + lcpFileChanged = true; + useDistChanged = true; + useVignChanged = true; + + ckbUseDist->set_sensitive(true); + ckbUseVign->set_sensitive(true); + ckbUseCA->set_sensitive(false); + + if (metadata) { + bool b = disableListener(); + const LFDatabase *db = LFDatabase::getInstance(); + LFCamera c = db->findCamera(metadata->getMake(), metadata->getModel()); + LFLens l = db->findLens(c, metadata->getLens()); + setLensfunCamera(c.getMake(), c.getModel()); + setLensfunLens(l.getLens()); + if (b) { + enableListener(); + } } + + mode = M("LENSPROFILE_CORRECTION_AUTOMATCH"); + } else if (rbChanged == corrLensfunManual) { + useLensfunChanged = true; + lensfunAutoChanged = true; + lcpFileChanged = true; + useDistChanged = true; + useVignChanged = true; + + ckbUseDist->set_sensitive(true); + ckbUseVign->set_sensitive(true); + ckbUseCA->set_sensitive(false); + + mode = M("LENSPROFILE_CORRECTION_MANUAL"); + } else if (rbChanged == corrLcpFile) { + useLensfunChanged = true; + lensfunAutoChanged = true; + lcpFileChanged = true; + useDistChanged = true; + useVignChanged = true; + + updateDisabled(true); + + mode = M("LENSPROFILE_CORRECTION_LCPFILE"); + } else if (rbChanged == corrUnchanged) { + useLensfunChanged = false; + lensfunAutoChanged = false; + lcpFileChanged = false; + lensfunCameraChanged = false; + lensfunLensChanged = false; + + ckbUseDist->set_sensitive(true); + ckbUseVign->set_sensitive(true); + ckbUseCA->set_sensitive(true); + + mode = M("GENERAL_UNCHANGED"); } - mode = M("LENSPROFILE_CORRECTION_AUTOMATCH"); - } else if (corrLensfunManual->get_active()) { - useLensfunChanged = true; - lensfunAutoChanged = true; - lcpFileChanged = true; - useDistChanged = true; - useVignChanged = true; + lcModeChanged = true; + updateLensfunWarning(); - ckbUseDist->set_sensitive(true); - ckbUseVign->set_sensitive(true); - ckbUseCA->set_sensitive(false); - - mode = M("LENSPROFILE_CORRECTION_MANUAL"); - } else if (corrLcpFile->get_active()) { - useLensfunChanged = true; - lensfunAutoChanged = true; - lcpFileChanged = true; - useDistChanged = true; - useVignChanged = true; - - updateDisabled(true); - - mode = M("LENSPROFILE_CORRECTION_LCPFILE"); - } else if (corrUnchanged->get_active()) { - useLensfunChanged = false; - lensfunAutoChanged = false; - lcpFileChanged = false; - lensfunCameraChanged = false; - lensfunLensChanged = false; - - ckbUseDist->set_sensitive(true); - ckbUseVign->set_sensitive(true); - ckbUseCA->set_sensitive(true); - - mode = M("GENERAL_UNCHANGED"); - } - lcModeChanged = true; - updateLensfunWarning(); - - if (listener) { - listener->panelChanged(EvLensCorrMode, mode); + if (listener) { + listener->panelChanged(EvLensCorrMode, mode); + } } } diff --git a/rtgui/lensprofile.h b/rtgui/lensprofile.h index e70515470..8c814e6fc 100644 --- a/rtgui/lensprofile.h +++ b/rtgui/lensprofile.h @@ -105,7 +105,7 @@ public: void onLensfunCameraChanged(); void onLensfunLensChanged(); - void onCorrModeChanged(); + void onCorrModeChanged(const Gtk::RadioButton *rbChanged); }; #endif diff --git a/rtgui/locallab.cc b/rtgui/locallab.cc index c1ae3bf6f..b5a7c2d41 100644 --- a/rtgui/locallab.cc +++ b/rtgui/locallab.cc @@ -77,7 +77,7 @@ Locallab::Locallab(): hlcomprthresh(Gtk::manage(new Adjuster(M("TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD"), 0, 100, 1, 33))), black(Gtk::manage(new Adjuster(M("TP_EXPOSURE_BLACKLEVEL"), -16384, 32768, 50, 0))), shcompr(Gtk::manage(new Adjuster(M("TP_EXPOSURE_COMPRSHADOWS"), 0, 100, 1, 50))), - warm(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WARM"), -100., 100., 1., 0., Gtk::manage(new RTImage("ajd-wb-bluered1.png")), Gtk::manage(new RTImage("ajd-wb-bluered2.png"))))), + warm(Gtk::manage(new Adjuster(M("TP_LOCALLAB_WARM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-orange-small.png"))))), sensiex(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSI"), 0, 100, 1, 19))), // Vibrance saturated(Gtk::manage(new Adjuster(M("TP_VIBRANCE_SATURATED"), -100., 100., 1., 0.))), @@ -114,11 +114,11 @@ Locallab::Locallab(): noiselumf(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMFINE"), MINCHRO, MAXCHRO, 1, 0))), noiselumc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMCOARSE"), MINCHRO, MAXCHROCC, 1, 0))), noiselumdetail(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELUMDETAIL"), 0, 100, 1, 0))), - noiselequal(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELEQUAL"), -2, 10, 1, 7, Gtk::manage(new RTImage("adj-white.png")), Gtk::manage(new RTImage("adj-black.png"))))), + noiselequal(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISELEQUAL"), -2, 10, 1, 7, Gtk::manage(new RTImage("circle-white-small.png")), Gtk::manage(new RTImage("circle-black-small.png"))))), noisechrof(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHROFINE"), MINCHRO, MAXCHRO, 1, 0))), noisechroc(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHROCOARSE"), MINCHRO, MAXCHROCC, 1, 0))), noisechrodetail(Gtk::manage(new Adjuster(M("TP_LOCALLAB_NOISECHRODETAIL"), 0, 100, 1, 0))), - adjblur(Gtk::manage(new Adjuster(M("TP_LOCALLAB_ADJ"), -100., 100., 1., 0., Gtk::manage(new RTImage("ajd-wb-bluered1.png")), Gtk::manage(new RTImage("ajd-wb-bluered2.png"))))), + adjblur(Gtk::manage(new Adjuster(M("TP_LOCALLAB_ADJ"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-red-small.png"))))), bilateral(Gtk::manage(new Adjuster(M("TP_LOCALLAB_BILATERAL"), 0, 100, 1, 0))), sensiden(Gtk::manage(new Adjuster(M("TP_LOCALLAB_SENSIDEN"), 0, 100, 1, 30))), diff --git a/rtgui/main-cli.cc b/rtgui/main-cli.cc index 6643b0913..347161cd5 100644 --- a/rtgui/main-cli.cc +++ b/rtgui/main-cli.cc @@ -211,7 +211,7 @@ int main (int argc, char **argv) int ret = 0; // printing RT's version in all case, particularly useful for the 'verbose' mode, but also for the batch processing - std::cout << "RawTherapee, version " << RTVERSION << ", command line" << std::endl; + std::cout << "RawTherapee, version " << RTVERSION << ", command line." << std::endl; if (argc > 1) { ret = processLineParams (argc, argv); @@ -267,6 +267,7 @@ int processLineParams ( int argc, char **argv ) int compression = 92; int subsampling = 3; int bits = -1; + bool isFloat = false; std::string outputType = ""; unsigned errors = 0; @@ -314,7 +315,7 @@ int processLineParams ( int argc, char **argv ) #endif if (fname.at (0) == '-') { - std::cerr << "Error: filename missing next to the -p switch" << std::endl; + std::cerr << "Error: filename missing next to the -p switch." << std::endl; deleteProcParams (processingParams); return -3; } @@ -324,7 +325,7 @@ int processLineParams ( int argc, char **argv ) if (! (currentParams->load ( fname ))) { processingParams.push_back (currentParams); } else { - std::cerr << "Error: \"" << fname << "\" not found" << std::endl; + std::cerr << "Error: \"" << fname << "\" not found." << std::endl; deleteProcParams (processingParams); return -3; } @@ -391,12 +392,26 @@ int processLineParams ( int argc, char **argv ) case 'b': bits = atoi (currParam.substr (2).c_str()); - if (bits != 8 && bits != 16) { - std::cerr << "Error: specify -b8 for 8-bit or -b16 for 16-bit output." << std::endl; + if (currParam.length() >= 3 && currParam.at(2) == '8') { // -b8 + bits = 8; + } else if (currParam.length() >= 4 && currParam.length() <= 5 && currParam.at(2) == '1' && currParam.at(3) == '6') { // -b16, -b16f + bits = 16; + if (currParam.length() == 5 && currParam.at(4) == 'f') { + isFloat = true; + } + } else if (currParam.length() >= 4 && currParam.length() <= 5 && currParam.at(2) == '3' && currParam.at(3) == '2') { // -b32 == -b32f + bits = 32; + isFloat = true; + } + + if (bits != 8 && bits != 16 && bits != 32) { + std::cerr << "Error: specify output bit depth per channel as -b8 for 8-bit integer, -b16 for 16-bit integer, -b16f for 16-bit float or -b32 for 32-bit float." << std::endl; deleteProcParams (processingParams); return -3; } + std::cout << "Output is " << bits << "-bit " << (isFloat ? "floating-point" : "integer") << "." << std::endl; + break; case 't': @@ -422,7 +437,7 @@ int processLineParams ( int argc, char **argv ) #endif if (!Glib::file_test (argument, Glib::FILE_TEST_EXISTS)) { - std::cout << "\"" << argument << "\" doesn't exist !" << std::endl; + std::cout << "\"" << argument << "\" doesn't exist!" << std::endl; continue; } @@ -432,9 +447,9 @@ int processLineParams ( int argc, char **argv ) if (notAll || notRetained) { if (notAll) { - std::cout << "\"" << argument << "\" is not one of the file format to process: skipped" << std::endl; + std::cout << "\"" << argument << "\" is not one of the parsed extensions. Image skipped." << std::endl; } else if (notRetained) { - std::cout << "\"" << argument << "\" is not one of the retained file format to process: skipped" << std::endl; + std::cout << "\"" << argument << "\" is not one of the selected parsed extensions. Image skipped." << std::endl; } } else { inputFiles.emplace_back (argument); @@ -465,11 +480,11 @@ int processLineParams ( int argc, char **argv ) if (isDir || notAll || notRetained) { if (isDir) { - std::cout << "\"" << fileName << "\" is a directory: skipped" << std::endl; + std::cout << "\"" << fileName << "\" is a folder. Folder skipped" << std::endl; } else if (notAll) { - std::cout << "\"" << fileName << "\" is not one of the file format to process: skipped" << std::endl; + std::cout << "\"" << fileName << "\" is not one of the parsed extensions. Image skipped." << std::endl; } else if (notRetained) { - std::cout << "\"" << fileName << "\" is not one of the retained file format to process: skipped" << std::endl; + std::cout << "\"" << fileName << "\" is not one of the selected parsed extensions. Image skipped." << std::endl; } continue; @@ -479,7 +494,7 @@ int processLineParams ( int argc, char **argv ) if (sideProcParams && skipIfNoSidecar) { // look for the sidecar proc params if (!Glib::file_test (fileName + paramFileExtension, Glib::FILE_TEST_EXISTS)) { - std::cout << "\"" << fileName << "\" has no side-car file: image skipped" << std::endl; + std::cout << "\"" << fileName << "\" has no side-car file. Image skipped." << std::endl; continue; } } @@ -519,11 +534,11 @@ int processLineParams ( int argc, char **argv ) std::cout << " " << Glib::path_get_basename (argv[0]) << " -c | Convert files in batch with your own settings." << std::endl; std::cout << std::endl; std::cout << "Options:" << std::endl; - std::cout << " " << Glib::path_get_basename (argv[0]) << "[-o |-O ] [-q] [-a] [-s|-S] [-p [-p ...] ] [-d] [ -j[1-100] [-js<1-3>] | [-b<8|16>] [-t[z] | [-n]] ] [-Y] [-f] -c " << std::endl; + std::cout << " " << Glib::path_get_basename (argv[0]) << "[-o |-O ] [-q] [-a] [-s|-S] [-p [-p ...] ] [-d] [ -j[1-100] -js<1-3> | -t[z] -b<8|16|16f|32> | -n -b<8|16> ] [-Y] [-f] -c " << std::endl; std::cout << std::endl; - std::cout << " -c Specify one or more input files or directory." << std::endl; - std::cout << " When specifying directories, Rawtherapee will look for images files that comply with the" << std::endl; - std::cout << " selected extensions (see also '-a')." << std::endl; + std::cout << " -c Specify one or more input files or folders." << std::endl; + std::cout << " When specifying folders, Rawtherapee will look for image file types which comply" << std::endl; + std::cout << " with the selected extensions (see also '-a')." << std::endl; std::cout << " -c must be the last option." << std::endl; std::cout << " -o | Set output file or folder." << std::endl; std::cout << " Saves output file alongside input file if -o is not specified." << std::endl; @@ -550,12 +565,15 @@ int processLineParams ( int argc, char **argv ) std::cout << " Chroma halved horizontally." << std::endl; std::cout << " 3 = Best quality: 1x1, 1x1, 1x1 (4:4:4)" << std::endl; std::cout << " No chroma subsampling." << std::endl; - std::cout << " -b<8|16> Specify bit depth per channel (default value: 16 for TIFF, 8 for PNG)." << std::endl; - std::cout << " Only applies to TIFF and PNG output, JPEG is always 8." << std::endl; + std::cout << " -b<8|16|16f|32> Specify bit depth per channel." << std::endl; + std::cout << " 8 = 8-bit integer. Applies to JPEG, PNG and TIFF. Default for JPEG and PNG." << std::endl; + std::cout << " 16 = 16-bit integer. Applies to TIFF and PNG. Default for TIFF." << std::endl; + std::cout << " 16f = 16-bit float. Applies to TIFF." << std::endl; + std::cout << " 32 = 32-bit float. Applies to TIFF." << std::endl; std::cout << " -t[z] Specify output to be TIFF." << std::endl; std::cout << " Uncompressed by default, or deflate compression with 'z'." << std::endl; std::cout << " -n Specify output to be compressed PNG." << std::endl; - std::cout << " Compression is hard-coded to PNG_FILTER_PAETH, Z_RLE" << std::endl; + std::cout << " Compression is hard-coded to PNG_FILTER_PAETH, Z_RLE." << std::endl; std::cout << " -Y Overwrite output if present." << std::endl; std::cout << " -f Use the custom fast-export processing pipeline." << std::endl; std::cout << std::endl; @@ -617,7 +635,7 @@ int processLineParams ( int argc, char **argv ) Glib::ustring profPath = options.findProfilePath (options.defProfRaw); if (options.is_defProfRawMissing() || profPath.empty() || (profPath != DEFPROFILE_DYNAMIC && rawParams->load (profPath == DEFPROFILE_INTERNAL ? DEFPROFILE_INTERNAL : Glib::build_filename (profPath, Glib::path_get_basename (options.defProfRaw) + paramFileExtension)))) { - std::cerr << "Error: default raw processing profile not found" << std::endl; + std::cerr << "Error: default raw processing profile not found." << std::endl; rawParams->deleteInstance(); delete rawParams; deleteProcParams (processingParams); @@ -628,7 +646,7 @@ int processLineParams ( int argc, char **argv ) profPath = options.findProfilePath (options.defProfImg); if (options.is_defProfImgMissing() || profPath.empty() || (profPath != DEFPROFILE_DYNAMIC && imgParams->load (profPath == DEFPROFILE_INTERNAL ? DEFPROFILE_INTERNAL : Glib::build_filename (profPath, Glib::path_get_basename (options.defProfImg) + paramFileExtension)))) { - std::cerr << "Error: default non-raw processing profile not found" << std::endl; + std::cerr << "Error: default non-raw processing profile not found." << std::endl; imgParams->deleteInstance(); delete imgParams; rawParams->deleteInstance(); @@ -709,7 +727,7 @@ int processLineParams ( int argc, char **argv ) rawParams = ProfileStore::getInstance()->loadDynamicProfile (ii->getMetaData()); } - std::cout << " Merging default raw processing profile" << std::endl; + std::cout << " Merging default raw processing profile." << std::endl; rawParams->applyTo (¤tParams); } else { if (options.defProfImg == DEFPROFILE_DYNAMIC) { @@ -718,7 +736,7 @@ int processLineParams ( int argc, char **argv ) imgParams = ProfileStore::getInstance()->loadDynamicProfile (ii->getMetaData()); } - std::cout << " Merging default non-raw processing profile" << std::endl; + std::cout << " Merging default non-raw processing profile." << std::endl; imgParams->applyTo (¤tParams); } } @@ -737,7 +755,7 @@ int processLineParams ( int argc, char **argv ) std::cerr << "Warning: sidecar file requested but not found for: " << sideProcessingParams << std::endl; } else { sideCarFound = true; - std::cout << " Merging sidecar procparams" << std::endl; + std::cout << " Merging sidecar procparams." << std::endl; } } @@ -779,7 +797,7 @@ int processLineParams ( int argc, char **argv ) if ( outputType == "jpg" ) { errorCode = resultImage->saveAsJPEG ( outputFile, compression, subsampling ); } else if ( outputType == "tif" ) { - errorCode = resultImage->saveAsTIFF ( outputFile, bits, compression == 0 ); + errorCode = resultImage->saveAsTIFF ( outputFile, bits, isFloat, compression == 0 ); } else if ( outputType == "png" ) { errorCode = resultImage->saveAsPNG ( outputFile, bits ); } else { diff --git a/rtgui/main.cc b/rtgui/main.cc index 6b1feca5d..194c33fd7 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -100,7 +100,7 @@ static void myGdkLockEnter() } static void myGdkLockLeave() { - // Automatic gdk_flush for non main tread + // Automatic gdk_flush for non main thread #if AUTO_GDK_FLUSH //if (Glib::Thread::self() != mainThread) { // gdk_flush(); diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index e7874dad2..0bc58f28e 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -559,7 +559,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) getCursorPosition(Gdk::EventType(event->type), event->motion.is_hint != 0, int(event->button.x), int(event->button.y), Gdk::ModifierType(event->button.state)); findClosestPoint(); - new_type = CSMove; + new_type = CSMove2D; // Shown when dragging a node. if (distanceX > minDistanceX) { if (mod_type & GDK_CONTROL_MASK) { @@ -735,7 +735,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) } if (distanceX <= minDistanceX) { - new_type = CSMove; + new_type = CSMove2D; // Shown on node release. lit_point = closest_point; } else { new_type = CSPlus; @@ -799,7 +799,7 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) lit_point = -1; } else if (distanceX <= minDistanceX) { // the cursor is close to an existing point - new_type = CSMove; + new_type = CSPlus; // Shown when hovering over node snapping distance (not necessarily over node). lit_point = closest_point; } else { // the cursor is inside the graph but away from existing points diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index 4da683b0c..70fc0c7d7 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -630,7 +630,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) switch (area) { case (FCT_Area_Insertion): - new_type = CSMove; + new_type = CSMove2D; // Shown when adding a new node in a blank area, both click and drag. /* insert a new control point */ if (num > 0) { @@ -681,7 +681,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; case (FCT_Area_Point): - new_type = CSMove; + new_type = CSMove2D; // Shown when node clicked and dragged. editedHandle = FCT_EditedHandle_CPoint; ugpX = curve.x.at(lit_point); ugpY = curve.y.at(lit_point); @@ -689,7 +689,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) case (FCT_Area_H): case (FCT_Area_V): - new_type = CSMove; + new_type = CSMove2D; // Shown when vertical line clicked, not dragged. editedHandle = FCT_EditedHandle_CPointUD; ugpX = curve.x.at(lit_point); ugpY = curve.y.at(lit_point); @@ -876,7 +876,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; case (FCT_Area_Point): - new_type = CSMove; + new_type = CSMove2D; // Shown when node released. break; case (FCT_Area_H): @@ -884,7 +884,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) break; case (FCT_Area_V): - new_type = CSMove; + new_type = CSMove2D; // Shown when line released. break; case (FCT_Area_LeftTan): @@ -1008,7 +1008,7 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) //new_type = CSMove; //break; case (FCT_Area_V): - new_type = CSMove; + new_type = CSPlus; // Shown when hovering over vertical line. break; case (FCT_Area_H): diff --git a/rtgui/myicon.rc b/rtgui/myicon.rc index b5f390783..88f5f79fa 100644 --- a/rtgui/myicon.rc +++ b/rtgui/myicon.rc @@ -1 +1 @@ -1 ICON "../rtdata/icons/RT.ico" +1 ICON "../rtdata/images/non-themed/rawtherapee.ico" diff --git a/rtgui/navigator.cc b/rtgui/navigator.cc index e34a909df..732b9f323 100644 --- a/rtgui/navigator.cc +++ b/rtgui/navigator.cc @@ -224,24 +224,30 @@ void Navigator::setInvalid (int fullWidth, int fullHeight) LAB_L->set_text (M("NAVIGATOR_NA")); } -void Navigator::getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB) +void Navigator::getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw) { - switch (currentRGBUnit) { - case (Options::NavigatorUnit::R0_1): - sR = Glib::ustring::format(std::fixed, std::setprecision(4), r / 255.f); - sG = Glib::ustring::format(std::fixed, std::setprecision(4), g / 255.f); - sB = Glib::ustring::format(std::fixed, std::setprecision(4), b / 255.f); - break; - case (Options::NavigatorUnit::R0_255): + if (isRaw) { sR = Glib::ustring::format(std::fixed, std::setprecision(0), r); sG = Glib::ustring::format(std::fixed, std::setprecision(0), g); sB = Glib::ustring::format(std::fixed, std::setprecision(0), b); - break; - case (Options::NavigatorUnit::PERCENT): - default: - sR = Glib::ustring::format(std::fixed, std::setprecision(1), r * 100.f / 255.f) + Glib::ustring("%"); - sG = Glib::ustring::format(std::fixed, std::setprecision(1), g * 100.f / 255.f) + Glib::ustring("%"); - sB = Glib::ustring::format(std::fixed, std::setprecision(1), b * 100.f / 255.f) + Glib::ustring("%"); + } else { + switch (currentRGBUnit) { + case (Options::NavigatorUnit::R0_1): + sR = Glib::ustring::format(std::fixed, std::setprecision(4), r / 255.f); + sG = Glib::ustring::format(std::fixed, std::setprecision(4), g / 255.f); + sB = Glib::ustring::format(std::fixed, std::setprecision(4), b / 255.f); + break; + case (Options::NavigatorUnit::R0_255): + sR = Glib::ustring::format(std::fixed, std::setprecision(0), r); + sG = Glib::ustring::format(std::fixed, std::setprecision(0), g); + sB = Glib::ustring::format(std::fixed, std::setprecision(0), b); + break; + case (Options::NavigatorUnit::PERCENT): + default: + sR = Glib::ustring::format(std::fixed, std::setprecision(1), r * 100.f / 255.f) + Glib::ustring("%"); + sG = Glib::ustring::format(std::fixed, std::setprecision(1), g * 100.f / 255.f) + Glib::ustring("%"); + sB = Glib::ustring::format(std::fixed, std::setprecision(1), b * 100.f / 255.f) + Glib::ustring("%"); + } } } @@ -274,34 +280,42 @@ void Navigator::getLABText (float l, float a, float b, Glib::ustring &sL, Glib:: } // if !validPos then x/y contain the full image size -void Navigator::pointerMoved (bool validPos, Glib::ustring profile, Glib::ustring profileW, int x, int y, int r, int g, int b) +void Navigator::pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw) { if (!validPos) { setInvalid (x, y); } else { Glib::ustring s1, s2, s3; - float h, s, v; - float LAB_a, LAB_b, LAB_l; position->set_text (Glib::ustring::compose ("x: %1, y: %2", x, y)); - getRGBText (r, g, b, s1, s2, s3); + getRGBText (r, g, b, s1, s2, s3, isRaw); R->set_text (s1); G->set_text (s2); B->set_text (s3); + if (isRaw) { + H->set_text ("--"); + S->set_text ("--"); + V->set_text ("--"); + LAB_L->set_text ("--"); + LAB_A->set_text ("--"); + LAB_B->set_text ("--"); + } else { + float h, s, v; + float LAB_a, LAB_b, LAB_l; + Color::rgb2hsv01(r / 255.f, g / 255.f, b / 255.f, h, s, v); + getHSVText (h, s, v, s1, s2, s3); + H->set_text (s1); + S->set_text (s2); + V->set_text (s3); - Color::rgb2hsv01(r / 255.f, g / 255.f, b / 255.f, h, s, v); - getHSVText (h, s, v, s1, s2, s3); - H->set_text (s1); - S->set_text (s2); - V->set_text (s3); - - Color::rgb2lab01(profile, profileW, r / 255.f, g / 255.f, b / 255.f, LAB_l, LAB_a, LAB_b, options.rtSettings.HistogramWorking); // TODO: Really sure this function works? - getLABText (LAB_l, LAB_a, LAB_b, s1, s2, s3); - LAB_L->set_text (s1); - LAB_A->set_text (s2); - LAB_B->set_text (s3); + Color::rgb2lab01(profile, profileW, r / 255.f, g / 255.f, b / 255.f, LAB_l, LAB_a, LAB_b, options.rtSettings.HistogramWorking); // TODO: Really sure this function works? + getLABText (LAB_l, LAB_a, LAB_b, s1, s2, s3); + LAB_L->set_text (s1); + LAB_A->set_text (s2); + LAB_B->set_text (s3); + } } } diff --git a/rtgui/navigator.h b/rtgui/navigator.h index 6108e2809..e7689b7c2 100644 --- a/rtgui/navigator.h +++ b/rtgui/navigator.h @@ -55,10 +55,10 @@ public: // pointermotionlistener interface // void pointerMoved (bool validPos, int x, int y, int r, int g, int b); - void pointerMoved (bool validPos, Glib::ustring profile, Glib::ustring profileW, int x, int y, int r, int g, int b); + void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool raw = false); void setInvalid (int fullWidth = -1, int fullHeight = -1); - void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB); + void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw = false); void getHSVText (float h, float s, float v, Glib::ustring &sH, Glib::ustring &sS, Glib::ustring &sV); void getLABText (float l, float a, float b, Glib::ustring &sL, Glib::ustring &sA, Glib::ustring &sB); diff --git a/rtgui/options.cc b/rtgui/options.cc index cc192db75..de7cc81c0 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -49,16 +49,16 @@ Options options; Glib::ustring versionString = RTVERSION; Glib::ustring paramFileExtension = ".pp3"; -Options::Options () +Options::Options() { defProfError = 0; - setDefaults (); + setDefaults(); } const char *DefaultLanguage = "English (US)"; -inline bool Options::checkProfilePath (Glib::ustring &path) +inline bool Options::checkProfilePath(Glib::ustring &path) { if (path.empty()) { return false; @@ -66,18 +66,18 @@ inline bool Options::checkProfilePath (Glib::ustring &path) Glib::ustring p = getUserProfilePath(); - if (!p.empty() && Glib::file_test (path + paramFileExtension, Glib::FILE_TEST_EXISTS)) { + if (!p.empty() && Glib::file_test(path + paramFileExtension, Glib::FILE_TEST_EXISTS)) { return true; } p = getGlobalProfilePath(); - return !p.empty() && Glib::file_test (path + paramFileExtension, Glib::FILE_TEST_EXISTS); + return !p.empty() && Glib::file_test(path + paramFileExtension, Glib::FILE_TEST_EXISTS); } -bool Options::checkDirPath (Glib::ustring &path, Glib::ustring errString) +bool Options::checkDirPath(Glib::ustring &path, Glib::ustring errString) { - if (Glib::file_test (path, Glib::FILE_TEST_EXISTS) && Glib::file_test (path, Glib::FILE_TEST_IS_DIR)) { + if (Glib::file_test(path, Glib::FILE_TEST_EXISTS) && Glib::file_test(path, Glib::FILE_TEST_IS_DIR)) { return true; } else { if (!errString.empty()) { @@ -96,53 +96,53 @@ void Options::updatePaths() userProfilePath = ""; globalProfilePath = ""; - if (Glib::path_is_absolute (profilePath)) { + if (Glib::path_is_absolute(profilePath)) { // absolute path - if (!checkDirPath (profilePath, "")) { - g_mkdir_with_parents (profilePath.c_str (), 511); + if (!checkDirPath(profilePath, "")) { + g_mkdir_with_parents(profilePath.c_str(), 511); - if (!checkDirPath (profilePath, "")) { // had problems with mkdir_with_parents return value on OS X, just check dir again - Glib::ustring msg = Glib::ustring::compose ("Creation of the user's processing profile directory \"%1\" failed!\n", profilePath); - throw Error (msg); + if (!checkDirPath(profilePath, "")) { // had problems with mkdir_with_parents return value on OS X, just check dir again + Glib::ustring msg = Glib::ustring::compose("Creation of the user's processing profile directory \"%1\" failed!\n", profilePath); + throw Error(msg); } } - if (checkDirPath (profilePath, "Error: the user's processing profile path doesn't point to a directory or doesn't exist!\n")) { + if (checkDirPath(profilePath, "Error: the user's processing profile path doesn't point to a directory or doesn't exist!\n")) { userProfilePath = profilePath; - tmpPath = Glib::build_filename (argv0, "profiles"); + tmpPath = Glib::build_filename(argv0, "profiles"); - if (checkDirPath (tmpPath, "Error: the global's processing profile path doesn't point to a directory or doesn't exist!\n")) { + if (checkDirPath(tmpPath, "Error: the global's processing profile path doesn't point to a directory or doesn't exist!\n")) { if (userProfilePath != tmpPath) { globalProfilePath = tmpPath; } } } else { - tmpPath = Glib::build_filename (argv0, "profiles"); + tmpPath = Glib::build_filename(argv0, "profiles"); - if (checkDirPath (tmpPath, "Error: the global's processing profile path doesn't point to a directory or doesn't exist!\n")) { + if (checkDirPath(tmpPath, "Error: the global's processing profile path doesn't point to a directory or doesn't exist!\n")) { globalProfilePath = tmpPath; } } } else { // relative paths - tmpPath = Glib::build_filename (rtdir, profilePath); + tmpPath = Glib::build_filename(rtdir, profilePath); - if (!checkDirPath (tmpPath, "")) { - g_mkdir_with_parents (tmpPath.c_str (), 511); + if (!checkDirPath(tmpPath, "")) { + g_mkdir_with_parents(tmpPath.c_str(), 511); - if (!checkDirPath (tmpPath, "")) { - Glib::ustring msg = Glib::ustring::compose ("Creation of the user's processing profile directory \"%1\" failed!\n", tmpPath.c_str()); - throw Error (msg); + if (!checkDirPath(tmpPath, "")) { + Glib::ustring msg = Glib::ustring::compose("Creation of the user's processing profile directory \"%1\" failed!\n", tmpPath.c_str()); + throw Error(msg); } } - if (checkDirPath (tmpPath, "Error: the user's processing profile path doesn't point to a directory!\n")) { + if (checkDirPath(tmpPath, "Error: the user's processing profile path doesn't point to a directory!\n")) { userProfilePath = tmpPath; } - tmpPath = Glib::build_filename (argv0, "profiles"); + tmpPath = Glib::build_filename(argv0, "profiles"); - if (checkDirPath (tmpPath, "Error: the user's processing profile path doesn't point to a directory or doesn't exist!\n")) { + if (checkDirPath(tmpPath, "Error: the user's processing profile path doesn't point to a directory or doesn't exist!\n")) { globalProfilePath = tmpPath; } } @@ -150,23 +150,23 @@ void Options::updatePaths() Glib::ustring preferredPath = getPreferredProfilePath(); // Paths are updated only if the user or global profile path is set - if (lastRgbCurvesDir.empty() || !Glib::file_test (lastRgbCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastRgbCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastRgbCurvesDir.empty() || !Glib::file_test(lastRgbCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastRgbCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastRgbCurvesDir = preferredPath; } - if (lastLabCurvesDir.empty() || !Glib::file_test (lastLabCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastLabCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastLabCurvesDir.empty() || !Glib::file_test(lastLabCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastLabCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastLabCurvesDir = preferredPath; } - if (lastRetinexDir.empty() || !Glib::file_test (lastRetinexDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastLabCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastRetinexDir.empty() || !Glib::file_test(lastRetinexDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastLabCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastRetinexDir = preferredPath; } - if (lastDenoiseCurvesDir.empty() || !Glib::file_test (lastDenoiseCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastDenoiseCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastDenoiseCurvesDir.empty() || !Glib::file_test(lastDenoiseCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastDenoiseCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastDenoiseCurvesDir = preferredPath; } - if (lastWaveletCurvesDir.empty() || !Glib::file_test (lastWaveletCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastWaveletCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastWaveletCurvesDir.empty() || !Glib::file_test(lastWaveletCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastWaveletCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastWaveletCurvesDir = preferredPath; } @@ -174,34 +174,37 @@ void Options::updatePaths() lastlocalCurvesDir = preferredPath; } - if (lastPFCurvesDir.empty() || !Glib::file_test (lastPFCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastPFCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastPFCurvesDir.empty() || !Glib::file_test(lastPFCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastPFCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastPFCurvesDir = preferredPath; } - if (lastHsvCurvesDir.empty() || !Glib::file_test (lastHsvCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastHsvCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastHsvCurvesDir.empty() || !Glib::file_test(lastHsvCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastHsvCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastHsvCurvesDir = preferredPath; } - if (lastToneCurvesDir.empty() || !Glib::file_test (lastToneCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastToneCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastToneCurvesDir.empty() || !Glib::file_test(lastToneCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastToneCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastToneCurvesDir = preferredPath; } - if (lastProfilingReferenceDir.empty() || !Glib::file_test (lastProfilingReferenceDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastProfilingReferenceDir, Glib::FILE_TEST_IS_DIR)) { + if (lastProfilingReferenceDir.empty() || !Glib::file_test(lastProfilingReferenceDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastProfilingReferenceDir, Glib::FILE_TEST_IS_DIR)) { lastProfilingReferenceDir = preferredPath; } - if (lastVibranceCurvesDir.empty() || !Glib::file_test (lastVibranceCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastVibranceCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastVibranceCurvesDir.empty() || !Glib::file_test(lastVibranceCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastVibranceCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastVibranceCurvesDir = preferredPath; } - if (loadSaveProfilePath.empty() || !Glib::file_test (loadSaveProfilePath, Glib::FILE_TEST_EXISTS) || !Glib::file_test (loadSaveProfilePath, Glib::FILE_TEST_IS_DIR)) { + if (loadSaveProfilePath.empty() || !Glib::file_test(loadSaveProfilePath, Glib::FILE_TEST_EXISTS) || !Glib::file_test(loadSaveProfilePath, Glib::FILE_TEST_IS_DIR)) { loadSaveProfilePath = preferredPath; } - if (lastBWCurvesDir.empty() || !Glib::file_test (lastBWCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test (lastBWCurvesDir, Glib::FILE_TEST_IS_DIR)) { + if (lastBWCurvesDir.empty() || !Glib::file_test(lastBWCurvesDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastBWCurvesDir, Glib::FILE_TEST_IS_DIR)) { lastBWCurvesDir = preferredPath; } + if (lastICCProfCreatorDir.empty() || !Glib::file_test(lastICCProfCreatorDir, Glib::FILE_TEST_EXISTS) || !Glib::file_test(lastICCProfCreatorDir, Glib::FILE_TEST_IS_DIR)) { + lastICCProfCreatorDir = preferredPath; + } } Glib::ustring Options::getPreferredProfilePath() @@ -222,7 +225,7 @@ Glib::ustring Options::getPreferredProfilePath() *@return Send back the absolute path of the given filename or "Neutral" if "Neutral" has been set to profName. Implementor will have * to test for this particular value. If the absolute path is invalid (e.g. the file doesn't exist), it will return an empty string. */ -Glib::ustring Options::findProfilePath (Glib::ustring &profName) +Glib::ustring Options::findProfilePath(Glib::ustring &profName) { if (profName.empty()) { return ""; @@ -236,41 +239,41 @@ Glib::ustring Options::findProfilePath (Glib::ustring &profName) return profName; } - Glib::ustring p = profName.substr (0, 4); + Glib::ustring p = profName.substr(0, 4); if (p == "${U}") { // the path starts by the User virtual path p = getUserProfilePath(); - Glib::ustring fullPath = Glib::build_filename (p, profName.substr (5) + paramFileExtension); + Glib::ustring fullPath = Glib::build_filename(p, profName.substr(5) + paramFileExtension); - if (!p.empty() && Glib::file_test (fullPath, Glib::FILE_TEST_EXISTS)) { - return Glib::path_get_dirname (fullPath); + if (!p.empty() && Glib::file_test(fullPath, Glib::FILE_TEST_EXISTS)) { + return Glib::path_get_dirname(fullPath); } } else if (p == "${G}") { // the path starts by the User virtual path p = getGlobalProfilePath(); - Glib::ustring fullPath = Glib::build_filename (p, profName.substr (5) + paramFileExtension); + Glib::ustring fullPath = Glib::build_filename(p, profName.substr(5) + paramFileExtension); - if (!p.empty() && Glib::file_test (fullPath, Glib::FILE_TEST_EXISTS)) { - return Glib::path_get_dirname (fullPath); + if (!p.empty() && Glib::file_test(fullPath, Glib::FILE_TEST_EXISTS)) { + return Glib::path_get_dirname(fullPath); } } else { // compatibility case -> convert the path to the new format p = getUserProfilePath(); - Glib::ustring fullPath = Glib::build_filename (p, profName + paramFileExtension); + Glib::ustring fullPath = Glib::build_filename(p, profName + paramFileExtension); - if (!p.empty() && Glib::file_test (fullPath, Glib::FILE_TEST_EXISTS)) { + if (!p.empty() && Glib::file_test(fullPath, Glib::FILE_TEST_EXISTS)) { // update the profile path - profName = Glib::build_filename ("${U}", profName); - return Glib::path_get_dirname (fullPath); + profName = Glib::build_filename("${U}", profName); + return Glib::path_get_dirname(fullPath); } p = getGlobalProfilePath(); - fullPath = Glib::build_filename (p, profName + paramFileExtension); + fullPath = Glib::build_filename(p, profName + paramFileExtension); - if (!p.empty() && Glib::file_test (fullPath, Glib::FILE_TEST_EXISTS)) { - profName = Glib::build_filename ("${G}", profName); - return Glib::path_get_dirname (fullPath); + if (!p.empty() && Glib::file_test(fullPath, Glib::FILE_TEST_EXISTS)) { + profName = Glib::build_filename("${G}", profName); + return Glib::path_get_dirname(fullPath); } } @@ -278,7 +281,7 @@ Glib::ustring Options::findProfilePath (Glib::ustring &profName) } -void Options::setDefaults () +void Options::setDefaults() { windowWidth = 1200; @@ -302,6 +305,7 @@ void Options::setDefaults () saveFormat.jpegSubSamp = 2; saveFormat.pngBits = 8; saveFormat.tiffBits = 16; + saveFormat.tiffFloat = false; saveFormat.tiffUncompressed = true; saveFormat.saveParams = true; @@ -310,6 +314,7 @@ void Options::setDefaults () saveFormatBatch.jpegSubSamp = 2; saveFormatBatch.pngBits = 8; saveFormatBatch.tiffBits = 16; + saveFormatBatch.tiffFloat = false; saveFormatBatch.tiffUncompressed = true; saveFormatBatch.saveParams = true; @@ -330,7 +335,7 @@ void Options::setDefaults () dirBrowserHeight = 350; dirBrowserSortType = Gtk::SORT_ASCENDING; preferencesWidth = 800; - preferencesHeight = 0; + preferencesHeight = 600; toolPanelWidth = 400; browserToolPanelWidth = 465; browserToolPanelHeight = 600; @@ -394,21 +399,21 @@ void Options::setDefaults () CPBKeys = CPBKT_TID; editorToSendTo = 1; favoriteDirs.clear(); - tpOpen.clear (); + tpOpen.clear(); autoSaveTpOpen = true; //crvOpen.clear (); - parseExtensions.clear (); - parseExtensionsEnabled.clear (); - parsedExtensions.clear (); + parseExtensions.clear(); + parseExtensionsEnabled.clear(); + parsedExtensions.clear(); renameUseTemplates = false; - renameTemplates.clear (); - thumbnailZoomRatios.clear (); - thumbnailZoomRatios.push_back (0.2); - thumbnailZoomRatios.push_back (0.3); - thumbnailZoomRatios.push_back (0.45); - thumbnailZoomRatios.push_back (0.6); - thumbnailZoomRatios.push_back (0.8); - thumbnailZoomRatios.push_back (1.0); + renameTemplates.clear(); + thumbnailZoomRatios.clear(); + thumbnailZoomRatios.push_back(0.2); + thumbnailZoomRatios.push_back(0.3); + thumbnailZoomRatios.push_back(0.45); + thumbnailZoomRatios.push_back(0.6); + thumbnailZoomRatios.push_back(0.8); + thumbnailZoomRatios.push_back(1.0); overlayedFileNames = false; filmStripOverlayedFileNames = false; internalThumbIfUntouched = true; // if TRUE, only fast, internal preview images are taken if the image is not edited yet @@ -418,8 +423,12 @@ void Options::setDefaults () mainNBVertical = true; multiDisplayMode = 0; histogramPosition = 1; + histogramRed = true; + histogramGreen = true; + histogramBlue = true; histogramBar = true; - histogramFullMode = false; + histogramHeight = 200; + histogramDrawMode = 0; curvebboxpos = 1; prevdemo = PD_Sidecar; @@ -445,6 +454,22 @@ void Options::setDefaults () menuGroupProfileOperations = true; menuGroupExtProg = true; + ICCPC_primariesPreset = "sRGB", + ICCPC_redPrimaryX = 0.6400; + ICCPC_redPrimaryY = 0.3300; + ICCPC_greenPrimaryX = 0.3000; + ICCPC_greenPrimaryY = 0.6000; + ICCPC_bluePrimaryX = 0.1500; + ICCPC_bluePrimaryY = 0.0600; + ICCPC_gammaPreset = "Custom"; + ICCPC_gamma = 2.4; + ICCPC_slope = 12.92; + ICCPC_profileVersion = "v4"; + ICCPC_illuminant = "DEF"; + ICCPC_description = ""; + ICCPC_copyright = Options::getICCProfileCopyright(); + ICCPC_appendParamsToDesc = false; + fastexport_bypass_sharpening = true; fastexport_bypass_sharpenEdge = true; fastexport_bypass_sharpenMicro = true; @@ -466,12 +491,11 @@ void Options::setDefaults () fastexport_bypass_raw_ca = true; fastexport_bypass_raw_df = true; fastexport_bypass_raw_ff = true; - fastexport_icm_input = "(camera)"; - fastexport_icm_working = "ProPhoto"; - fastexport_icm_output = "RT_sRGB"; + fastexport_icm_input_profile = "(camera)"; + fastexport_icm_working_profile = "ProPhoto"; + fastexport_icm_output_profile = options.rtSettings.srgb; fastexport_icm_outputIntent = rtengine::RI_RELATIVE; fastexport_icm_outputBPC = true; - fastexport_icm_gamma = "default"; fastexport_resize_enabled = true; fastexport_resize_scale = 1; fastexport_resize_appliesTo = "Cropped area"; @@ -506,10 +530,10 @@ void Options::setDefaults () rtSettings.darkFramesPath = ""; rtSettings.flatFieldsPath = ""; #ifdef WIN32 - const gchar* sysRoot = g_getenv ("SystemRoot"); // Returns e.g. "c:\Windows" + const gchar* sysRoot = g_getenv("SystemRoot"); // Returns e.g. "c:\Windows" if (sysRoot != NULL) { - rtSettings.iccDirectory = Glib::ustring (sysRoot) + Glib::ustring ("\\System32\\spool\\drivers\\color"); + rtSettings.iccDirectory = Glib::ustring(sysRoot) + Glib::ustring("\\System32\\spool\\drivers\\color"); } else { rtSettings.iccDirectory = "C:\\WINDOWS\\System32\\spool\\drivers\\color"; } @@ -522,11 +546,6 @@ void Options::setDefaults () // rtSettings.viewingdevice = 0; // rtSettings.viewingdevicegrey = 3; // rtSettings.viewinggreySc = 1; - rtSettings.leveldnv = 2; - rtSettings.leveldnti = 0; - rtSettings.leveldnaut = 0; - rtSettings.leveldnliss = 0; - rtSettings.leveldnautsimpl = 0; rtSettings.printerProfile = Glib::ustring(); rtSettings.printerIntent = rtengine::RI_RELATIVE; @@ -535,16 +554,16 @@ void Options::setDefaults () rtSettings.monitorIntent = rtengine::RI_RELATIVE; rtSettings.monitorBPC = true; rtSettings.autoMonitorProfile = false; - rtSettings.adobe = "RT_Medium_gsRGB"; // put the name of yours profiles (here windows) - rtSettings.prophoto = "RT_Large_gBT709"; // these names appear in the menu "output profile" - rtSettings.prophoto10 = "RT_Large_g10"; // these names appear in the menu "output profile" - rtSettings.srgb10 = "RT_sRGB_g10"; - rtSettings.widegamut = "WideGamutRGB"; - rtSettings.srgb = "RT_sRGB"; - rtSettings.bruce = "Bruce"; - rtSettings.beta = "BetaRGB"; - rtSettings.best = "BestRGB"; - rtSettings.rec2020 = "Rec2020"; + rtSettings.adobe = "RTv4_Medium"; // put the name of yours profiles (here windows) + rtSettings.prophoto = "RTv4_Large"; // these names appear in the menu "output profile" + rtSettings.widegamut = "RTv4_Wide"; + rtSettings.srgb = "RTv4_sRGB"; + rtSettings.bruce = "RTv4_Bruce"; + rtSettings.beta = "RTv4_Beta"; + rtSettings.best = "RTv4_Best"; + rtSettings.rec2020 = "RTv4_Rec2020"; + rtSettings.ACESp0 = "RTv4_ACES-AP0"; + rtSettings.ACESp1 = "RTv4_ACES-AP1"; rtSettings.verbose = false; rtSettings.gamutICC = true; rtSettings.gamutLch = true; @@ -567,10 +586,16 @@ void Options::setDefaults () rtSettings.daubech = false; - rtSettings.nrauto = 10;//between 2 and 20 - rtSettings.nrautomax = 40;//between 5 and 100 - rtSettings.nrhigh = 0.45;//between 0.1 and 0.9 - rtSettings.nrwavlevel = 1;//integer between 0 and 2 + // #4327 - Noise Reduction settings removed from Preferences + rtSettings.nrauto = 10; // between 2 and 20 + rtSettings.nrautomax = 40; // between 5 and 100 + rtSettings.nrhigh = 0.45; // between 0.1 and 0.9 + rtSettings.nrwavlevel = 1; // integer between 0 and 2 + rtSettings.leveldnv = 2; + rtSettings.leveldnti = 0; + rtSettings.leveldnaut = 0; + rtSettings.leveldnliss = 0; + rtSettings.leveldnautsimpl = 0; // rtSettings.colortoningab =0.7; //rtSettings.decaction =0.3; @@ -598,6 +623,7 @@ void Options::setDefaults () lastProfilingReferenceDir = ""; lastBWCurvesDir = ""; lastLensProfileDir = ""; + lastICCProfCreatorDir = ""; gimpPluginShowInfoDialog = true; maxRecentFolders = 15; rtSettings.lensfunDbDirectory = ""; // set also in main.cc and main-cli.cc @@ -607,105 +633,105 @@ void Options::setDefaults () rtSettings.thumbnail_inspector_mode = rtengine::Settings::ThumbnailInspectorMode::JPEG; } -Options* Options::copyFrom (Options* other) +Options* Options::copyFrom(Options* other) { *this = *other; return this; } -void Options::filterOutParsedExtensions () +void Options::filterOutParsedExtensions() { parsedExtensions.clear(); for (unsigned int i = 0; i < parseExtensions.size(); i++) if (parseExtensionsEnabled[i]) { - parsedExtensions.push_back (parseExtensions[i].lowercase()); + parsedExtensions.push_back(parseExtensions[i].lowercase()); } } -void Options::readFromFile (Glib::ustring fname) +void Options::readFromFile(Glib::ustring fname) { - setlocale (LC_NUMERIC, "C"); // to set decimal point to "." + setlocale(LC_NUMERIC, "C"); // to set decimal point to "." Glib::KeyFile keyFile; - if ( !Glib::file_test (fname, Glib::FILE_TEST_EXISTS)) { - Glib::ustring msg = Glib::ustring::compose ("Options file %1 does not exist", fname); - throw Error (msg); + if (!Glib::file_test(fname, Glib::FILE_TEST_EXISTS)) { + Glib::ustring msg = Glib::ustring::compose("Options file %1 does not exist", fname); + throw Error(msg); } try { - if (keyFile.load_from_file (fname)) { + if (keyFile.load_from_file(fname)) { // -------------------------------------------------------------------------------------------------------- - if (keyFile.has_group ("General")) { - if (keyFile.has_key ("General", "TabbedEditor")) { - tabbedUI = keyFile.get_boolean ("General", "TabbedEditor"); + if (keyFile.has_group("General")) { + if (keyFile.has_key("General", "TabbedEditor")) { + tabbedUI = keyFile.get_boolean("General", "TabbedEditor"); } - if (keyFile.has_key ("General", "StartupDirectory")) { - if ( keyFile.get_string ("General", "StartupDirectory") == "home") { + if (keyFile.has_key("General", "StartupDirectory")) { + if (keyFile.get_string("General", "StartupDirectory") == "home") { startupDir = STARTUPDIR_HOME; - } else if ( keyFile.get_string ("General", "StartupDirectory") == "current") { + } else if (keyFile.get_string("General", "StartupDirectory") == "current") { startupDir = STARTUPDIR_CURRENT; - } else if ( keyFile.get_string ("General", "StartupDirectory") == "last") { + } else if (keyFile.get_string("General", "StartupDirectory") == "last") { startupDir = STARTUPDIR_LAST; - } else if ( keyFile.get_string ("General", "StartupDirectory") == "custom") { + } else if (keyFile.get_string("General", "StartupDirectory") == "custom") { startupDir = STARTUPDIR_CUSTOM; } } - if (keyFile.has_key ("General", "StartupPath")) { - startupPath = keyFile.get_string ("General", "StartupPath"); + if (keyFile.has_key("General", "StartupPath")) { + startupPath = keyFile.get_string("General", "StartupPath"); } - if (keyFile.has_key ("General", "DateFormat")) { - dateFormat = keyFile.get_string ("General", "DateFormat"); + if (keyFile.has_key("General", "DateFormat")) { + dateFormat = keyFile.get_string("General", "DateFormat"); } - if (keyFile.has_key ("General", "AdjusterMinDelay")) { - adjusterMinDelay = keyFile.get_integer ("General", "AdjusterMinDelay"); + if (keyFile.has_key("General", "AdjusterMinDelay")) { + adjusterMinDelay = keyFile.get_integer("General", "AdjusterMinDelay"); } - if (keyFile.has_key ("General", "AdjusterMaxDelay")) { - adjusterMaxDelay = keyFile.get_integer ("General", "AdjusterMaxDelay"); + if (keyFile.has_key("General", "AdjusterMaxDelay")) { + adjusterMaxDelay = keyFile.get_integer("General", "AdjusterMaxDelay"); } - if (keyFile.has_key ("General", "StoreLastProfile")) { - savesParamsAtExit = keyFile.get_boolean ("General", "StoreLastProfile"); + if (keyFile.has_key("General", "StoreLastProfile")) { + savesParamsAtExit = keyFile.get_boolean("General", "StoreLastProfile"); } - if (keyFile.has_key ("General", "MultiUser")) { - multiUser = keyFile.get_boolean ("General", "MultiUser"); + if (keyFile.has_key("General", "MultiUser")) { + multiUser = keyFile.get_boolean("General", "MultiUser"); } - if (keyFile.has_key ("General", "Version")) { - version = keyFile.get_string ("General", "Version"); + if (keyFile.has_key("General", "Version")) { + version = keyFile.get_string("General", "Version"); } - if (keyFile.has_key ("General", "Language")) { - language = keyFile.get_string ("General", "Language"); + if (keyFile.has_key("General", "Language")) { + language = keyFile.get_string("General", "Language"); } - if (keyFile.has_key ("General", "LanguageAutoDetect")) { - languageAutoDetect = keyFile.get_boolean ("General", "LanguageAutoDetect"); + if (keyFile.has_key("General", "LanguageAutoDetect")) { + languageAutoDetect = keyFile.get_boolean("General", "LanguageAutoDetect"); } - if (keyFile.has_key ("General", "Theme")) { - theme = keyFile.get_string ("General", "Theme"); + if (keyFile.has_key("General", "Theme")) { + theme = keyFile.get_string("General", "Theme"); } - if ( keyFile.has_key ("General", "DarkFramesPath")) { - rtSettings.darkFramesPath = keyFile.get_string ("General", "DarkFramesPath"); + if (keyFile.has_key("General", "DarkFramesPath")) { + rtSettings.darkFramesPath = keyFile.get_string("General", "DarkFramesPath"); } - if ( keyFile.has_key ("General", "FlatFieldsPath")) { - rtSettings.flatFieldsPath = keyFile.get_string ("General", "FlatFieldsPath"); + if (keyFile.has_key("General", "FlatFieldsPath")) { + rtSettings.flatFieldsPath = keyFile.get_string("General", "FlatFieldsPath"); } - if ( keyFile.has_key ("General", "Verbose")) { - rtSettings.verbose = keyFile.get_boolean ( "General", "Verbose"); + if (keyFile.has_key("General", "Verbose")) { + rtSettings.verbose = keyFile.get_boolean("General", "Verbose"); } if (keyFile.has_key ("General", "Cropsleep")) { @@ -721,378 +747,342 @@ void Options::readFromFile (Glib::ustring fname) } } - if (keyFile.has_group ("External Editor")) { - if (keyFile.has_key ("External Editor", "EditorKind")) { - editorToSendTo = keyFile.get_integer ("External Editor", "EditorKind"); + if (keyFile.has_group("External Editor")) { + if (keyFile.has_key("External Editor", "EditorKind")) { + editorToSendTo = keyFile.get_integer("External Editor", "EditorKind"); } - if (keyFile.has_key ("External Editor", "GimpDir")) { - gimpDir = keyFile.get_string ("External Editor", "GimpDir"); + if (keyFile.has_key("External Editor", "GimpDir")) { + gimpDir = keyFile.get_string("External Editor", "GimpDir"); } - if (keyFile.has_key ("External Editor", "PhotoshopDir")) { - psDir = keyFile.get_string ("External Editor", "PhotoshopDir"); + if (keyFile.has_key("External Editor", "PhotoshopDir")) { + psDir = keyFile.get_string("External Editor", "PhotoshopDir"); } - if (keyFile.has_key ("External Editor", "CustomEditor")) { - customEditorProg = keyFile.get_string ("External Editor", "CustomEditor"); + if (keyFile.has_key("External Editor", "CustomEditor")) { + customEditorProg = keyFile.get_string("External Editor", "CustomEditor"); } } - if (keyFile.has_group ("Output")) { - if (keyFile.has_key ("Output", "Format")) { - saveFormat.format = keyFile.get_string ("Output", "Format"); + if (keyFile.has_group("Output")) { + if (keyFile.has_key("Output", "Format")) { + saveFormat.format = keyFile.get_string("Output", "Format"); } - if (keyFile.has_key ("Output", "JpegQuality")) { - saveFormat.jpegQuality = keyFile.get_integer ("Output", "JpegQuality"); + if (keyFile.has_key("Output", "JpegQuality")) { + saveFormat.jpegQuality = keyFile.get_integer("Output", "JpegQuality"); } - if (keyFile.has_key ("Output", "JpegSubSamp")) { - saveFormat.jpegSubSamp = keyFile.get_integer ("Output", "JpegSubSamp"); + if (keyFile.has_key("Output", "JpegSubSamp")) { + saveFormat.jpegSubSamp = keyFile.get_integer("Output", "JpegSubSamp"); } - if (keyFile.has_key ("Output", "PngBps")) { - saveFormat.pngBits = keyFile.get_integer ("Output", "PngBps"); + if (keyFile.has_key("Output", "PngBps")) { + saveFormat.pngBits = keyFile.get_integer("Output", "PngBps"); } - if (keyFile.has_key ("Output", "TiffBps")) { - saveFormat.tiffBits = keyFile.get_integer ("Output", "TiffBps"); + if (keyFile.has_key("Output", "TiffBps")) { + saveFormat.tiffBits = keyFile.get_integer("Output", "TiffBps"); } - if (keyFile.has_key ("Output", "TiffUncompressed")) { - saveFormat.tiffUncompressed = keyFile.get_boolean ("Output", "TiffUncompressed"); + if (keyFile.has_key ("Output", "TiffFloat")) { + saveFormat.tiffFloat = keyFile.get_boolean ("Output", "TiffFloat"); } - if (keyFile.has_key ("Output", "SaveProcParams")) { - saveFormat.saveParams = keyFile.get_boolean ("Output", "SaveProcParams"); + if (keyFile.has_key("Output", "TiffUncompressed")) { + saveFormat.tiffUncompressed = keyFile.get_boolean("Output", "TiffUncompressed"); + } + + if (keyFile.has_key("Output", "SaveProcParams")) { + saveFormat.saveParams = keyFile.get_boolean("Output", "SaveProcParams"); } - if (keyFile.has_key ("Output", "FormatBatch")) { - saveFormatBatch.format = keyFile.get_string ("Output", "FormatBatch"); + if (keyFile.has_key("Output", "FormatBatch")) { + saveFormatBatch.format = keyFile.get_string("Output", "FormatBatch"); } - if (keyFile.has_key ("Output", "JpegQualityBatch")) { - saveFormatBatch.jpegQuality = keyFile.get_integer ("Output", "JpegQualityBatch"); + if (keyFile.has_key("Output", "JpegQualityBatch")) { + saveFormatBatch.jpegQuality = keyFile.get_integer("Output", "JpegQualityBatch"); } - if (keyFile.has_key ("Output", "JpegSubSampBatch")) { - saveFormatBatch.jpegSubSamp = keyFile.get_integer ("Output", "JpegSubSampBatch"); + if (keyFile.has_key("Output", "JpegSubSampBatch")) { + saveFormatBatch.jpegSubSamp = keyFile.get_integer("Output", "JpegSubSampBatch"); } - if (keyFile.has_key ("Output", "PngBpsBatch")) { - saveFormatBatch.pngBits = keyFile.get_integer ("Output", "PngBpsBatch"); + if (keyFile.has_key("Output", "PngBpsBatch")) { + saveFormatBatch.pngBits = keyFile.get_integer("Output", "PngBpsBatch"); } - if (keyFile.has_key ("Output", "TiffBpsBatch")) { - saveFormatBatch.tiffBits = keyFile.get_integer ("Output", "TiffBpsBatch"); + if (keyFile.has_key("Output", "TiffBpsBatch")) { + saveFormatBatch.tiffBits = keyFile.get_integer("Output", "TiffBpsBatch"); } - if (keyFile.has_key ("Output", "TiffUncompressedBatch")) { - saveFormatBatch.tiffUncompressed = keyFile.get_boolean ("Output", "TiffUncompressedBatch"); + if (keyFile.has_key ("Output", "TiffFloatBatch")) { + saveFormatBatch.tiffFloat = keyFile.get_boolean ("Output", "TiffFloatBatch"); } - if (keyFile.has_key ("Output", "SaveProcParamsBatch")) { - saveFormatBatch.saveParams = keyFile.get_boolean ("Output", "SaveProcParamsBatch"); + if (keyFile.has_key("Output", "TiffUncompressedBatch")) { + saveFormatBatch.tiffUncompressed = keyFile.get_boolean("Output", "TiffUncompressedBatch"); } - if (keyFile.has_key ("Output", "Path")) { - savePathTemplate = keyFile.get_string ("Output", "Path"); + if (keyFile.has_key("Output", "SaveProcParamsBatch")) { + saveFormatBatch.saveParams = keyFile.get_boolean("Output", "SaveProcParamsBatch"); } - if (keyFile.has_key ("Output", "PathTemplate")) { - savePathTemplate = keyFile.get_string ("Output", "PathTemplate"); + if (keyFile.has_key("Output", "Path")) { + savePathTemplate = keyFile.get_string("Output", "Path"); } - if (keyFile.has_key ("Output", "PathFolder")) { - savePathFolder = keyFile.get_string ("Output", "PathFolder"); + if (keyFile.has_key("Output", "PathTemplate")) { + savePathTemplate = keyFile.get_string("Output", "PathTemplate"); } - if (keyFile.has_key ("Output", "AutoSuffix")) { - autoSuffix = keyFile.get_boolean ("Output", "AutoSuffix"); + if (keyFile.has_key("Output", "PathFolder")) { + savePathFolder = keyFile.get_string("Output", "PathFolder"); } - if (keyFile.has_key ("Output", "ForceFormatOpts")) { - forceFormatOpts = keyFile.get_boolean ("Output", "ForceFormatOpts"); + if (keyFile.has_key("Output", "AutoSuffix")) { + autoSuffix = keyFile.get_boolean("Output", "AutoSuffix"); } - if (keyFile.has_key ("Output", "SaveMethodNum")) { - saveMethodNum = keyFile.get_integer ("Output", "SaveMethodNum"); + if (keyFile.has_key("Output", "ForceFormatOpts")) { + forceFormatOpts = keyFile.get_boolean("Output", "ForceFormatOpts"); } - if (keyFile.has_key ("Output", "UsePathTemplate")) { - saveUsePathTemplate = keyFile.get_boolean ("Output", "UsePathTemplate"); + if (keyFile.has_key("Output", "SaveMethodNum")) { + saveMethodNum = keyFile.get_integer("Output", "SaveMethodNum"); } - if (keyFile.has_key ("Output", "LastSaveAsPath")) { - lastSaveAsPath = keyFile.get_string ("Output", "LastSaveAsPath"); + if (keyFile.has_key("Output", "UsePathTemplate")) { + saveUsePathTemplate = keyFile.get_boolean("Output", "UsePathTemplate"); } - if (keyFile.has_key ("Output", "OverwriteOutputFile")) { - overwriteOutputFile = keyFile.get_boolean ("Output", "OverwriteOutputFile"); + if (keyFile.has_key("Output", "LastSaveAsPath")) { + lastSaveAsPath = keyFile.get_string("Output", "LastSaveAsPath"); + } + + if (keyFile.has_key("Output", "OverwriteOutputFile")) { + overwriteOutputFile = keyFile.get_boolean("Output", "OverwriteOutputFile"); } } - if (keyFile.has_group ("Profiles")) { - if (keyFile.has_key ("Profiles", "Directory")) { - profilePath = keyFile.get_string ("Profiles", "Directory"); + if (keyFile.has_group("Profiles")) { + if (keyFile.has_key("Profiles", "Directory")) { + profilePath = keyFile.get_string("Profiles", "Directory"); } - if (keyFile.has_key ("Profiles", "UseBundledProfiles")) { - useBundledProfiles = keyFile.get_boolean ("Profiles", "UseBundledProfiles"); + if (keyFile.has_key("Profiles", "UseBundledProfiles")) { + useBundledProfiles = keyFile.get_boolean("Profiles", "UseBundledProfiles"); } - if (keyFile.has_key ("Profiles", "LoadSaveProfilePath")) { - loadSaveProfilePath = keyFile.get_string ("Profiles", "LoadSaveProfilePath"); + if (keyFile.has_key("Profiles", "LoadSaveProfilePath")) { + loadSaveProfilePath = keyFile.get_string("Profiles", "LoadSaveProfilePath"); } - if (keyFile.has_key ("Profiles", "RawDefault")) { - defProfRaw = keyFile.get_string ("Profiles", "RawDefault"); + if (keyFile.has_key("Profiles", "RawDefault")) { + defProfRaw = keyFile.get_string("Profiles", "RawDefault"); } - if (keyFile.has_key ("Profiles", "ImgDefault")) { - defProfImg = keyFile.get_string ("Profiles", "ImgDefault"); + if (keyFile.has_key("Profiles", "ImgDefault")) { + defProfImg = keyFile.get_string("Profiles", "ImgDefault"); } - if (keyFile.has_key ("Profiles", "FilledProfile")) { - filledProfile = keyFile.get_boolean ("Profiles", "FilledProfile"); + if (keyFile.has_key("Profiles", "FilledProfile")) { + filledProfile = keyFile.get_boolean("Profiles", "FilledProfile"); } - if (keyFile.has_key ("Profiles", "SaveParamsWithFile")) { - saveParamsFile = keyFile.get_boolean ("Profiles", "SaveParamsWithFile"); + if (keyFile.has_key("Profiles", "SaveParamsWithFile")) { + saveParamsFile = keyFile.get_boolean("Profiles", "SaveParamsWithFile"); } - if (keyFile.has_key ("Profiles", "SaveParamsToCache")) { - saveParamsCache = keyFile.get_boolean ("Profiles", "SaveParamsToCache"); + if (keyFile.has_key("Profiles", "SaveParamsToCache")) { + saveParamsCache = keyFile.get_boolean("Profiles", "SaveParamsToCache"); } - if (keyFile.has_key ("Profiles", "LoadParamsFromLocation")) { - paramsLoadLocation = (PPLoadLocation)keyFile.get_integer ("Profiles", "LoadParamsFromLocation"); + if (keyFile.has_key("Profiles", "LoadParamsFromLocation")) { + paramsLoadLocation = (PPLoadLocation)keyFile.get_integer("Profiles", "LoadParamsFromLocation"); } - if (keyFile.has_key ("Profiles", "CustomProfileBuilder")) { - CPBPath = keyFile.get_string ("Profiles", "CustomProfileBuilder"); // for backward compatibility only + if (keyFile.has_key("Profiles", "CustomProfileBuilder")) { + CPBPath = keyFile.get_string("Profiles", "CustomProfileBuilder"); // for backward compatibility only } - if (keyFile.has_key ("Profiles", "CustomProfileBuilderPath")) { - CPBPath = keyFile.get_string ("Profiles", "CustomProfileBuilderPath"); + if (keyFile.has_key("Profiles", "CustomProfileBuilderPath")) { + CPBPath = keyFile.get_string("Profiles", "CustomProfileBuilderPath"); } - if (keyFile.has_key ("Profiles", "CustomProfileBuilderKeys")) { - CPBKeys = (CPBKeyType)keyFile.get_integer ("Profiles", "CustomProfileBuilderKeys"); + if (keyFile.has_key("Profiles", "CustomProfileBuilderKeys")) { + CPBKeys = (CPBKeyType)keyFile.get_integer("Profiles", "CustomProfileBuilderKeys"); } } - if (keyFile.has_group ("File Browser")) { - if (keyFile.has_key ("File Browser", "ThumbnailSize")) { - thumbSize = keyFile.get_integer ("File Browser", "ThumbnailSize"); + if (keyFile.has_group("File Browser")) { + if (keyFile.has_key("File Browser", "ThumbnailSize")) { + thumbSize = keyFile.get_integer("File Browser", "ThumbnailSize"); } - if (keyFile.has_key ("File Browser", "ThumbnailSizeTab")) { - thumbSizeTab = keyFile.get_integer ("File Browser", "ThumbnailSizeTab"); + if (keyFile.has_key("File Browser", "ThumbnailSizeTab")) { + thumbSizeTab = keyFile.get_integer("File Browser", "ThumbnailSizeTab"); } - if (keyFile.has_key ("File Browser", "ThumbnailSizeQueue")) { - thumbSizeQueue = keyFile.get_integer ("File Browser", "ThumbnailSizeQueue"); + if (keyFile.has_key("File Browser", "ThumbnailSizeQueue")) { + thumbSizeQueue = keyFile.get_integer("File Browser", "ThumbnailSizeQueue"); } - if (keyFile.has_key ("File Browser", "SameThumbSize")) { - sameThumbSize = keyFile.get_integer ("File Browser", "SameThumbSize"); + if (keyFile.has_key("File Browser", "SameThumbSize")) { + sameThumbSize = keyFile.get_integer("File Browser", "SameThumbSize"); } - if (keyFile.has_key ("File Browser", "BrowseOnlyRaw")) { - fbOnlyRaw = keyFile.get_boolean ("File Browser", "BrowseOnlyRaw"); + if (keyFile.has_key("File Browser", "BrowseOnlyRaw")) { + fbOnlyRaw = keyFile.get_boolean("File Browser", "BrowseOnlyRaw"); } - if (keyFile.has_key ("File Browser", "BrowserShowsDate")) { - fbShowDateTime = keyFile.get_boolean ("File Browser", "BrowserShowsDate"); + if (keyFile.has_key("File Browser", "BrowserShowsDate")) { + fbShowDateTime = keyFile.get_boolean("File Browser", "BrowserShowsDate"); } - if (keyFile.has_key ("File Browser", "BrowserShowsExif")) { - fbShowBasicExif = keyFile.get_boolean ("File Browser", "BrowserShowsExif"); + if (keyFile.has_key("File Browser", "BrowserShowsExif")) { + fbShowBasicExif = keyFile.get_boolean("File Browser", "BrowserShowsExif"); } - if (keyFile.has_key ("File Browser", "BrowserShowsExpComp")) { - fbShowExpComp = keyFile.get_boolean ("File Browser", "BrowserShowsExpComp"); + if (keyFile.has_key("File Browser", "BrowserShowsExpComp")) { + fbShowExpComp = keyFile.get_boolean("File Browser", "BrowserShowsExpComp"); } - if (keyFile.has_key ("File Browser", "BrowserShowsHidden")) { - fbShowHidden = keyFile.get_boolean ("File Browser", "BrowserShowsHidden"); + if (keyFile.has_key("File Browser", "BrowserShowsHidden")) { + fbShowHidden = keyFile.get_boolean("File Browser", "BrowserShowsHidden"); } - if (keyFile.has_key ("File Browser", "MaxPreviewHeight")) { - maxThumbnailHeight = keyFile.get_integer ("File Browser", "MaxPreviewHeight"); + if (keyFile.has_key("File Browser", "MaxPreviewHeight")) { + maxThumbnailHeight = keyFile.get_integer("File Browser", "MaxPreviewHeight"); } - if (keyFile.has_key ("File Browser", "MaxCacheEntries")) { - maxCacheEntries = keyFile.get_integer ("File Browser", "MaxCacheEntries"); + if (keyFile.has_key("File Browser", "MaxCacheEntries")) { + maxCacheEntries = keyFile.get_integer("File Browser", "MaxCacheEntries"); } - if (keyFile.has_key ("File Browser", "ParseExtensions")) { - parseExtensions = keyFile.get_string_list ("File Browser", "ParseExtensions"); + if (keyFile.has_key("File Browser", "ParseExtensions")) { + parseExtensions = keyFile.get_string_list("File Browser", "ParseExtensions"); } - if (keyFile.has_key ("File Browser", "ParseExtensionsEnabled")) { - parseExtensionsEnabled = keyFile.get_integer_list ("File Browser", "ParseExtensionsEnabled"); + if (keyFile.has_key("File Browser", "ParseExtensionsEnabled")) { + parseExtensionsEnabled = keyFile.get_integer_list("File Browser", "ParseExtensionsEnabled"); } - if (keyFile.has_key ("File Browser", "ThumbnailArrangement")) { - fbArrangement = keyFile.get_integer ("File Browser", "ThumbnailArrangement"); + if (keyFile.has_key("File Browser", "ThumbnailArrangement")) { + fbArrangement = keyFile.get_integer("File Browser", "ThumbnailArrangement"); } - if (keyFile.has_key ("File Browser", "ThumbnailInterpolation")) { - thumbInterp = keyFile.get_integer ("File Browser", "ThumbnailInterpolation"); + if (keyFile.has_key("File Browser", "ThumbnailInterpolation")) { + thumbInterp = keyFile.get_integer("File Browser", "ThumbnailInterpolation"); } - if (keyFile.has_key ("File Browser", "FavoriteDirs")) { - favoriteDirs = keyFile.get_string_list ("File Browser", "FavoriteDirs"); + if (keyFile.has_key("File Browser", "FavoriteDirs")) { + favoriteDirs = keyFile.get_string_list("File Browser", "FavoriteDirs"); } - if (keyFile.has_key ("File Browser", "RenameTemplates")) { - renameTemplates = keyFile.get_string_list ("File Browser", "RenameTemplates"); + if (keyFile.has_key("File Browser", "RenameTemplates")) { + renameTemplates = keyFile.get_string_list("File Browser", "RenameTemplates"); } - if (keyFile.has_key ("File Browser", "RenameUseTemplates")) { - renameUseTemplates = keyFile.get_boolean ("File Browser", "RenameUseTemplates"); + if (keyFile.has_key("File Browser", "RenameUseTemplates")) { + renameUseTemplates = keyFile.get_boolean("File Browser", "RenameUseTemplates"); } - if (keyFile.has_key ("File Browser", "ThumbnailZoomRatios")) { - thumbnailZoomRatios = keyFile.get_double_list ("File Browser", "ThumbnailZoomRatios"); + if (keyFile.has_key("File Browser", "ThumbnailZoomRatios")) { + thumbnailZoomRatios = keyFile.get_double_list("File Browser", "ThumbnailZoomRatios"); } - if (keyFile.has_key ("File Browser", "OverlayedFileNames")) { - overlayedFileNames = keyFile.get_boolean ("File Browser", "OverlayedFileNames"); + if (keyFile.has_key("File Browser", "OverlayedFileNames")) { + overlayedFileNames = keyFile.get_boolean("File Browser", "OverlayedFileNames"); } - if (keyFile.has_key ("File Browser", "FilmStripOverlayedFileNames")) { - filmStripOverlayedFileNames = keyFile.get_boolean ("File Browser", "FilmStripOverlayedFileNames"); + if (keyFile.has_key("File Browser", "FilmStripOverlayedFileNames")) { + filmStripOverlayedFileNames = keyFile.get_boolean("File Browser", "FilmStripOverlayedFileNames"); } - if (keyFile.has_key ("File Browser", "ShowFileNames")) { - showFileNames = keyFile.get_boolean ("File Browser", "ShowFileNames"); + if (keyFile.has_key("File Browser", "ShowFileNames")) { + showFileNames = keyFile.get_boolean("File Browser", "ShowFileNames"); } - if (keyFile.has_key ("File Browser", "FilmStripShowFileNames")) { - filmStripShowFileNames = keyFile.get_boolean ("File Browser", "FilmStripShowFileNames"); + if (keyFile.has_key("File Browser", "FilmStripShowFileNames")) { + filmStripShowFileNames = keyFile.get_boolean("File Browser", "FilmStripShowFileNames"); } - if (keyFile.has_key ("File Browser", "InternalThumbIfUntouched")) { - internalThumbIfUntouched = keyFile.get_boolean ("File Browser", "InternalThumbIfUntouched"); + if (keyFile.has_key("File Browser", "InternalThumbIfUntouched")) { + internalThumbIfUntouched = keyFile.get_boolean("File Browser", "InternalThumbIfUntouched"); } - if (keyFile.has_key ("File Browser", "menuGroupRank")) { - menuGroupRank = keyFile.get_boolean ("File Browser", "menuGroupRank"); + if (keyFile.has_key("File Browser", "menuGroupRank")) { + menuGroupRank = keyFile.get_boolean("File Browser", "menuGroupRank"); } - if (keyFile.has_key ("File Browser", "menuGroupLabel")) { - menuGroupLabel = keyFile.get_boolean ("File Browser", "menuGroupLabel"); + if (keyFile.has_key("File Browser", "menuGroupLabel")) { + menuGroupLabel = keyFile.get_boolean("File Browser", "menuGroupLabel"); } - if (keyFile.has_key ("File Browser", "menuGroupFileOperations")) { - menuGroupFileOperations = keyFile.get_boolean ("File Browser", "menuGroupFileOperations"); + if (keyFile.has_key("File Browser", "menuGroupFileOperations")) { + menuGroupFileOperations = keyFile.get_boolean("File Browser", "menuGroupFileOperations"); } - if (keyFile.has_key ("File Browser", "menuGroupProfileOperations")) { - menuGroupProfileOperations = keyFile.get_boolean ("File Browser", "menuGroupProfileOperations"); + if (keyFile.has_key("File Browser", "menuGroupProfileOperations")) { + menuGroupProfileOperations = keyFile.get_boolean("File Browser", "menuGroupProfileOperations"); } - if (keyFile.has_key ("File Browser", "menuGroupExtProg")) { - menuGroupExtProg = keyFile.get_boolean ("File Browser", "menuGroupExtProg"); + if (keyFile.has_key("File Browser", "menuGroupExtProg")) { + menuGroupExtProg = keyFile.get_boolean("File Browser", "menuGroupExtProg"); } - if (keyFile.has_key ("File Browser", "MaxRecentFolders")) { - maxRecentFolders = keyFile.get_integer ("File Browser", "MaxRecentFolders"); + if (keyFile.has_key("File Browser", "MaxRecentFolders")) { + maxRecentFolders = keyFile.get_integer("File Browser", "MaxRecentFolders"); } - recentFolders.reserve (maxRecentFolders + 10); // reserve some more than maxRecentFolders, because at runtime it stores more than that + recentFolders.reserve(maxRecentFolders + 10); // reserve some more than maxRecentFolders, because at runtime it stores more than that - if (keyFile.has_key ("File Browser", "RecentFolders")) { - recentFolders = keyFile.get_string_list ("File Browser", "RecentFolders"); + if (keyFile.has_key("File Browser", "RecentFolders")) { + recentFolders = keyFile.get_string_list("File Browser", "RecentFolders"); } } - if (keyFile.has_group ("Clipping Indication")) { - if (keyFile.has_key ("Clipping Indication", "HighlightThreshold")) { - highlightThreshold = keyFile.get_integer ("Clipping Indication", "HighlightThreshold"); + if (keyFile.has_group("Clipping Indication")) { + if (keyFile.has_key("Clipping Indication", "HighlightThreshold")) { + highlightThreshold = keyFile.get_integer("Clipping Indication", "HighlightThreshold"); } - if (keyFile.has_key ("Clipping Indication", "ShadowThreshold")) { - shadowThreshold = keyFile.get_integer ("Clipping Indication", "ShadowThreshold"); + if (keyFile.has_key("Clipping Indication", "ShadowThreshold")) { + shadowThreshold = keyFile.get_integer("Clipping Indication", "ShadowThreshold"); } - if (keyFile.has_key ("Clipping Indication", "BlinkClipped")) { - blinkClipped = keyFile.get_boolean ("Clipping Indication", "BlinkClipped"); + if (keyFile.has_key("Clipping Indication", "BlinkClipped")) { + blinkClipped = keyFile.get_boolean("Clipping Indication", "BlinkClipped"); } } - if (keyFile.has_group ("Performance")) { - if (keyFile.has_key ("Performance", "RgbDenoiseThreadLimit")) { - rgbDenoiseThreadLimit = keyFile.get_integer ("Performance", "RgbDenoiseThreadLimit"); + if (keyFile.has_group("Performance")) { + if (keyFile.has_key("Performance", "RgbDenoiseThreadLimit")) { + rgbDenoiseThreadLimit = keyFile.get_integer("Performance", "RgbDenoiseThreadLimit"); } - if ( keyFile.has_key ("Performance", "NRauto")) { - rtSettings.nrauto = keyFile.get_double ("Performance", "NRauto"); + if (keyFile.has_key("Performance", "ClutCacheSize")) { + clutCacheSize = keyFile.get_integer("Performance", "ClutCacheSize"); } - if ( keyFile.has_key ("Performance", "NRautomax")) { - rtSettings.nrautomax = keyFile.get_double ("Performance", "NRautomax"); + if (keyFile.has_key("Performance", "MaxInspectorBuffers")) { + maxInspectorBuffers = keyFile.get_integer("Performance", "MaxInspectorBuffers"); } - if ( keyFile.has_key ("Performance", "NRhigh")) { - rtSettings.nrhigh = keyFile.get_double ("Performance", "NRhigh"); - } - - if (rtSettings.nrhigh == 0.0) { //avoid crash by division by zero in noise reduction - rtSettings.nrhigh = 0.45; - } - - if ( keyFile.has_key ("Performance", "NRWavlevel")) { - rtSettings.nrwavlevel = keyFile.get_integer ("Performance", "NRWavlevel"); - } - - if (keyFile.has_key ("Performance", "LevNR")) { - rtSettings.leveldnv = keyFile.get_integer ("Performance", "LevNR"); - } - - if (keyFile.has_key ("Performance", "LevNRTI")) { - rtSettings.leveldnti = keyFile.get_integer ("Performance", "LevNRTI"); - } - - if (keyFile.has_key ("Performance", "LevNRAUT")) { - rtSettings.leveldnaut = keyFile.get_integer ("Performance", "LevNRAUT"); - } - - if (keyFile.has_key ("Performance", "LevNRLISS")) { - rtSettings.leveldnliss = keyFile.get_integer ("Performance", "LevNRLISS"); - } - - if (keyFile.has_key ("Performance", "SIMPLNRAUT")) { - rtSettings.leveldnautsimpl = keyFile.get_integer ("Performance", "SIMPLNRAUT"); - } - - if (keyFile.has_key ("Performance", "ClutCacheSize")) { - clutCacheSize = keyFile.get_integer ("Performance", "ClutCacheSize"); - } - - if (keyFile.has_key ("Performance", "MaxInspectorBuffers")) { - maxInspectorBuffers = keyFile.get_integer ("Performance", "MaxInspectorBuffers"); - } - - if (keyFile.has_key ("Performance", "InspectorDelay")) { + if (keyFile.has_key("Performance", "InspectorDelay")) { inspectorDelay = keyFile.get_integer("Performance", "InspectorDelay"); } - if (keyFile.has_key ("Performance", "PreviewDemosaicFromSidecar")) { - prevdemo = (prevdemo_t)keyFile.get_integer ("Performance", "PreviewDemosaicFromSidecar"); + if (keyFile.has_key("Performance", "PreviewDemosaicFromSidecar")) { + prevdemo = (prevdemo_t)keyFile.get_integer("Performance", "PreviewDemosaicFromSidecar"); } - if (keyFile.has_key ("Performance", "Daubechies")) { - rtSettings.daubech = keyFile.get_boolean ("Performance", "Daubechies"); - } - - if (keyFile.has_key ("Performance", "SerializeTiffRead")) { - serializeTiffRead = keyFile.get_boolean ("Performance", "SerializeTiffRead"); + if (keyFile.has_key("Performance", "SerializeTiffRead")) { + serializeTiffRead = keyFile.get_boolean("Performance", "SerializeTiffRead"); } if (keyFile.has_key("Performance", "ThumbnailInspectorMode")) { @@ -1100,234 +1090,262 @@ void Options::readFromFile (Glib::ustring fname) } } - if (keyFile.has_group ("GUI")) { - if (keyFile.has_key ("GUI", "WindowWidth")) { - windowWidth = keyFile.get_integer ("GUI", "WindowWidth"); + if (keyFile.has_group("GUI")) { + if (keyFile.has_key("GUI", "WindowWidth")) { + windowWidth = keyFile.get_integer("GUI", "WindowWidth"); } - if (keyFile.has_key ("GUI", "WindowHeight")) { - windowHeight = keyFile.get_integer ("GUI", "WindowHeight"); + if (keyFile.has_key("GUI", "WindowHeight")) { + windowHeight = keyFile.get_integer("GUI", "WindowHeight"); } - if (keyFile.has_key ("GUI", "WindowX")) { - windowX = keyFile.get_integer ("GUI", "WindowX"); + if (keyFile.has_key("GUI", "WindowX")) { + windowX = keyFile.get_integer("GUI", "WindowX"); } - if (keyFile.has_key ("GUI", "WindowY")) { - windowY = keyFile.get_integer ("GUI", "WindowY"); + if (keyFile.has_key("GUI", "WindowY")) { + windowY = keyFile.get_integer("GUI", "WindowY"); } - if (keyFile.has_key ("GUI", "WindowMonitor")) { - windowMonitor = keyFile.get_integer ("GUI", "WindowMonitor"); + if (keyFile.has_key("GUI", "WindowMonitor")) { + windowMonitor = keyFile.get_integer("GUI", "WindowMonitor"); } - if (keyFile.has_key ("GUI", "MeowMonitor")) { - meowMonitor = keyFile.get_integer ("GUI", "MeowMonitor"); + if (keyFile.has_key("GUI", "MeowMonitor")) { + meowMonitor = keyFile.get_integer("GUI", "MeowMonitor"); } - if (keyFile.has_key ("GUI", "MeowFullScreen")) { - meowFullScreen = keyFile.get_boolean ("GUI", "MeowFullScreen"); + if (keyFile.has_key("GUI", "MeowFullScreen")) { + meowFullScreen = keyFile.get_boolean("GUI", "MeowFullScreen"); } - if (keyFile.has_key ("GUI", "MeowMaximized")) { - meowMaximized = keyFile.get_boolean ("GUI", "MeowMaximized"); + if (keyFile.has_key("GUI", "MeowMaximized")) { + meowMaximized = keyFile.get_boolean("GUI", "MeowMaximized"); } - if (keyFile.has_key ("GUI", "MeowWidth")) { - meowWidth = keyFile.get_integer ("GUI", "MeowWidth"); + if (keyFile.has_key("GUI", "MeowWidth")) { + meowWidth = keyFile.get_integer("GUI", "MeowWidth"); } - if (keyFile.has_key ("GUI", "MeowHeight")) { - meowHeight = keyFile.get_integer ("GUI", "MeowHeight"); + if (keyFile.has_key("GUI", "MeowHeight")) { + meowHeight = keyFile.get_integer("GUI", "MeowHeight"); } - if (keyFile.has_key ("GUI", "MeowX")) { - meowX = keyFile.get_integer ("GUI", "MeowX"); + if (keyFile.has_key("GUI", "MeowX")) { + meowX = keyFile.get_integer("GUI", "MeowX"); } - if (keyFile.has_key ("GUI", "MeowY")) { - meowY = keyFile.get_integer ("GUI", "MeowY"); + if (keyFile.has_key("GUI", "MeowY")) { + meowY = keyFile.get_integer("GUI", "MeowY"); } - if (keyFile.has_key ("GUI", "WindowMaximized")) { - windowMaximized = keyFile.get_boolean ("GUI", "WindowMaximized"); + if (keyFile.has_key("GUI", "WindowMaximized")) { + windowMaximized = keyFile.get_boolean("GUI", "WindowMaximized"); } - if (keyFile.has_key ("GUI", "DetailWindowWidth")) { - detailWindowWidth = keyFile.get_integer ("GUI", "DetailWindowWidth"); + if (keyFile.has_key("GUI", "DetailWindowWidth")) { + detailWindowWidth = keyFile.get_integer("GUI", "DetailWindowWidth"); } - if (keyFile.has_key ("GUI", "DetailWindowHeight")) { - detailWindowHeight = keyFile.get_integer ("GUI", "DetailWindowHeight"); + if (keyFile.has_key("GUI", "DetailWindowHeight")) { + detailWindowHeight = keyFile.get_integer("GUI", "DetailWindowHeight"); } - if (keyFile.has_key ("GUI", "DirBrowserWidth")) { - dirBrowserWidth = keyFile.get_integer ("GUI", "DirBrowserWidth"); + if (keyFile.has_key("GUI", "DirBrowserWidth")) { + dirBrowserWidth = keyFile.get_integer("GUI", "DirBrowserWidth"); } - if (keyFile.has_key ("GUI", "DirBrowserHeight")) { - dirBrowserHeight = keyFile.get_integer ("GUI", "DirBrowserHeight"); + if (keyFile.has_key("GUI", "DirBrowserHeight")) { + dirBrowserHeight = keyFile.get_integer("GUI", "DirBrowserHeight"); } - if (keyFile.has_key ("GUI", "SortType")) { - dirBrowserSortType = static_cast (keyFile.get_integer ("GUI", "SortType")); + if (keyFile.has_key("GUI", "SortType")) { + dirBrowserSortType = static_cast(keyFile.get_integer("GUI", "SortType")); } - if (keyFile.has_key ("GUI", "PreferencesWidth")) { - preferencesWidth = keyFile.get_integer ("GUI", "PreferencesWidth"); + if (keyFile.has_key("GUI", "PreferencesWidth")) { + preferencesWidth = keyFile.get_integer("GUI", "PreferencesWidth"); } - if (keyFile.has_key ("GUI", "PreferencesHeight")) { - preferencesHeight = keyFile.get_integer ("GUI", "PreferencesHeight"); + if (keyFile.has_key("GUI", "PreferencesHeight")) { + preferencesHeight = keyFile.get_integer("GUI", "PreferencesHeight"); } - if (keyFile.has_key ("GUI", "SaveAsDialogWidth")) { - saveAsDialogWidth = keyFile.get_integer ("GUI", "SaveAsDialogWidth"); + if (keyFile.has_key("GUI", "SaveAsDialogWidth")) { + saveAsDialogWidth = keyFile.get_integer("GUI", "SaveAsDialogWidth"); } - if (keyFile.has_key ("GUI", "SaveAsDialogHeight")) { - saveAsDialogHeight = keyFile.get_integer ("GUI", "SaveAsDialogHeight"); + if (keyFile.has_key("GUI", "SaveAsDialogHeight")) { + saveAsDialogHeight = keyFile.get_integer("GUI", "SaveAsDialogHeight"); } - if (keyFile.has_key ("GUI", "ToolPanelWidth")) { - toolPanelWidth = keyFile.get_integer ("GUI", "ToolPanelWidth"); + if (keyFile.has_key("GUI", "ToolPanelWidth")) { + toolPanelWidth = keyFile.get_integer("GUI", "ToolPanelWidth"); } - if (keyFile.has_key ("GUI", "BrowserToolPanelWidth")) { - browserToolPanelWidth = keyFile.get_integer ("GUI", "BrowserToolPanelWidth"); + if (keyFile.has_key("GUI", "BrowserToolPanelWidth")) { + browserToolPanelWidth = keyFile.get_integer("GUI", "BrowserToolPanelWidth"); } - if (keyFile.has_key ("GUI", "BrowserToolPanelHeight")) { - browserToolPanelHeight = keyFile.get_integer ("GUI", "BrowserToolPanelHeight"); + if (keyFile.has_key("GUI", "BrowserToolPanelHeight")) { + browserToolPanelHeight = keyFile.get_integer("GUI", "BrowserToolPanelHeight"); } - if (keyFile.has_key ("GUI", "BrowserToolPanelOpened")) { - browserToolPanelOpened = keyFile.get_boolean ("GUI", "BrowserToolPanelOpened"); + if (keyFile.has_key("GUI", "BrowserToolPanelOpened")) { + browserToolPanelOpened = keyFile.get_boolean("GUI", "BrowserToolPanelOpened"); } - if (keyFile.has_key ("GUI", "BrowserDirPanelOpened")) { - browserDirPanelOpened = keyFile.get_boolean ("GUI", "BrowserDirPanelOpened"); + if (keyFile.has_key("GUI", "BrowserDirPanelOpened")) { + browserDirPanelOpened = keyFile.get_boolean("GUI", "BrowserDirPanelOpened"); } - if (keyFile.has_key ("GUI", "EditorFilmStripOpened")) { - editorFilmStripOpened = keyFile.get_boolean ("GUI", "EditorFilmStripOpened"); + if (keyFile.has_key("GUI", "EditorFilmStripOpened")) { + editorFilmStripOpened = keyFile.get_boolean("GUI", "EditorFilmStripOpened"); } - if (keyFile.has_key ("GUI", "HistoryPanelWidth")) { - historyPanelWidth = keyFile.get_integer ("GUI", "HistoryPanelWidth"); + if (keyFile.has_key("GUI", "HistoryPanelWidth")) { + historyPanelWidth = keyFile.get_integer("GUI", "HistoryPanelWidth"); } - if (keyFile.has_key ("GUI", "FontFamily")) { - fontFamily = keyFile.get_string ("GUI", "FontFamily"); + if (keyFile.has_key("GUI", "FontFamily")) { + fontFamily = keyFile.get_string("GUI", "FontFamily"); } - if (keyFile.has_key ("GUI", "FontSize")) { - fontSize = keyFile.get_integer ("GUI", "FontSize"); + if (keyFile.has_key("GUI", "FontSize")) { + fontSize = keyFile.get_integer("GUI", "FontSize"); } - if (keyFile.has_key ("GUI", "CPFontFamily")) { - CPFontFamily = keyFile.get_string ("GUI", "CPFontFamily"); + if (keyFile.has_key("GUI", "CPFontFamily")) { + CPFontFamily = keyFile.get_string("GUI", "CPFontFamily"); } - if (keyFile.has_key ("GUI", "CPFontSize")) { - CPFontSize = keyFile.get_integer ("GUI", "CPFontSize"); + if (keyFile.has_key("GUI", "CPFontSize")) { + CPFontSize = keyFile.get_integer("GUI", "CPFontSize"); } - if (keyFile.has_key ("GUI", "LastPreviewScale")) { - lastScale = keyFile.get_integer ("GUI", "LastPreviewScale"); + if (keyFile.has_key("GUI", "LastPreviewScale")) { + lastScale = keyFile.get_integer("GUI", "LastPreviewScale"); } - if (keyFile.has_key ("GUI", "LastShowAllExif")) { - lastShowAllExif = keyFile.get_boolean ("GUI", "LastShowAllExif"); + if (keyFile.has_key("GUI", "LastShowAllExif")) { + lastShowAllExif = keyFile.get_boolean("GUI", "LastShowAllExif"); } - if (keyFile.has_key ("GUI", "PanAccelFactor")) { - panAccelFactor = keyFile.get_integer ("GUI", "PanAccelFactor"); + if (keyFile.has_key("GUI", "PanAccelFactor")) { + panAccelFactor = keyFile.get_integer("GUI", "PanAccelFactor"); } - if (keyFile.has_key ("GUI", "RememberZoomAndPan")) { - rememberZoomAndPan = keyFile.get_boolean ("GUI", "RememberZoomAndPan"); + if (keyFile.has_key("GUI", "RememberZoomAndPan")) { + rememberZoomAndPan = keyFile.get_boolean("GUI", "RememberZoomAndPan"); } - if (keyFile.has_key ("GUI", "LastCropSize")) { - lastCropSize = keyFile.get_integer ("GUI", "LastCropSize"); + if (keyFile.has_key("GUI", "LastCropSize")) { + lastCropSize = keyFile.get_integer("GUI", "LastCropSize"); } - if (keyFile.has_key ("GUI", "ShowHistory")) { - showHistory = keyFile.get_boolean ("GUI", "ShowHistory"); + if (keyFile.has_key("GUI", "ShowHistory")) { + showHistory = keyFile.get_boolean("GUI", "ShowHistory"); } - if (keyFile.has_key ("GUI", "ShowFilePanelState")) { - showFilePanelState = keyFile.get_integer ("GUI", "ShowFilePanelState"); + if (keyFile.has_key("GUI", "ShowFilePanelState")) { + showFilePanelState = keyFile.get_integer("GUI", "ShowFilePanelState"); } - if (keyFile.has_key ("GUI", "ShowInfo")) { - showInfo = keyFile.get_boolean ("GUI", "ShowInfo"); + if (keyFile.has_key("GUI", "ShowInfo")) { + showInfo = keyFile.get_boolean("GUI", "ShowInfo"); } - if (keyFile.has_key ("GUI", "MainNBVertical")) { - mainNBVertical = keyFile.get_boolean ("GUI", "MainNBVertical"); + if (keyFile.has_key("GUI", "MainNBVertical")) { + mainNBVertical = keyFile.get_boolean("GUI", "MainNBVertical"); } - if (keyFile.has_key ("GUI", "ShowClippedHighlights")) { - showClippedHighlights = keyFile.get_boolean ("GUI", "ShowClippedHighlights"); + if (keyFile.has_key("GUI", "ShowClippedHighlights")) { + showClippedHighlights = keyFile.get_boolean("GUI", "ShowClippedHighlights"); } - if (keyFile.has_key ("GUI", "ShowClippedShadows")) { - showClippedShadows = keyFile.get_boolean ("GUI", "ShowClippedShadows"); + if (keyFile.has_key("GUI", "ShowClippedShadows")) { + showClippedShadows = keyFile.get_boolean("GUI", "ShowClippedShadows"); } - if (keyFile.has_key ("GUI", "FrameColor")) { - bgcolor = keyFile.get_integer ("GUI", "FrameColor"); + if (keyFile.has_key("GUI", "FrameColor")) { + bgcolor = keyFile.get_integer("GUI", "FrameColor"); } - if (keyFile.has_key ("GUI", "ProcessingQueueEnbled")) { - procQueueEnabled = keyFile.get_boolean ("GUI", "ProcessingQueueEnbled"); + if (keyFile.has_key("GUI", "ProcessingQueueEnbled")) { + procQueueEnabled = keyFile.get_boolean("GUI", "ProcessingQueueEnbled"); } - if (keyFile.has_key ("GUI", "ToolPanelsExpanded")) { - tpOpen = keyFile.get_integer_list ("GUI", "ToolPanelsExpanded"); + if (keyFile.has_key("GUI", "ToolPanelsExpanded")) { + tpOpen = keyFile.get_integer_list("GUI", "ToolPanelsExpanded"); } - if (keyFile.has_key ("GUI", "ToolPanelsExpandedAutoSave")) { - autoSaveTpOpen = keyFile.get_boolean ("GUI", "ToolPanelsExpandedAutoSave"); + if (keyFile.has_key("GUI", "ToolPanelsExpandedAutoSave")) { + autoSaveTpOpen = keyFile.get_boolean("GUI", "ToolPanelsExpandedAutoSave"); } - if (keyFile.has_key ("GUI", "MultiDisplayMode")) { - multiDisplayMode = keyFile.get_integer ("GUI", "MultiDisplayMode"); + if (keyFile.has_key("GUI", "MultiDisplayMode")) { + multiDisplayMode = keyFile.get_integer("GUI", "MultiDisplayMode"); } //if (keyFile.has_key ("GUI", "CurvePanelsExpanded")) crvOpen = keyFile.get_integer_list ("GUI", "CurvePanelsExpanded"); - if (keyFile.has_key ("GUI", "CutOverlayBrush")) { - cutOverlayBrush = keyFile.get_double_list ("GUI", "CutOverlayBrush"); + if (keyFile.has_key("GUI", "CutOverlayBrush")) { + cutOverlayBrush = keyFile.get_double_list("GUI", "CutOverlayBrush"); } - if (keyFile.has_key ("GUI", "NavGuideBrush")) { - navGuideBrush = keyFile.get_double_list ("GUI", "NavGuideBrush"); + if (keyFile.has_key("GUI", "NavGuideBrush")) { + navGuideBrush = keyFile.get_double_list("GUI", "NavGuideBrush"); } - if (keyFile.has_key ("GUI", "HistogramPosition")) { - histogramPosition = keyFile.get_integer ("GUI", "HistogramPosition"); + if (keyFile.has_key("GUI", "HistogramPosition")) { + histogramPosition = keyFile.get_integer("GUI", "HistogramPosition"); + } + + if (keyFile.has_key("GUI", "HistogramRed")) { + histogramRed = keyFile.get_boolean("GUI", "HistogramRed"); + } + + if (keyFile.has_key("GUI", "HistogramGreen")) { + histogramGreen = keyFile.get_boolean("GUI", "HistogramGreen"); + } + + if (keyFile.has_key("GUI", "HistogramBlue")) { + histogramBlue = keyFile.get_boolean("GUI", "HistogramBlue"); + } + + if (keyFile.has_key("GUI", "HistogramLuma")) { + histogramLuma = keyFile.get_boolean("GUI", "HistogramLuma"); + } + + if (keyFile.has_key("GUI", "HistogramChroma")) { + histogramChroma = keyFile.get_boolean("GUI", "HistogramChroma"); + } + + if (keyFile.has_key("GUI", "HistogramRAW")) { + histogramRAW = keyFile.get_boolean("GUI", "HistogramRAW"); } - if (keyFile.has_key ("GUI", "HistogramBar")) { - histogramBar = keyFile.get_boolean ("GUI", "HistogramBar"); + if (keyFile.has_key("GUI", "HistogramBar")) { + histogramBar = keyFile.get_boolean("GUI", "HistogramBar"); + } + + if (keyFile.has_key ("GUI", "HistogramHeight")) { + histogramHeight = keyFile.get_integer ("GUI", "HistogramHeight"); + } + + if (keyFile.has_key ("GUI", "HistogramDrawMode")) { + histogramDrawMode = keyFile.get_integer ("GUI", "HistogramDrawMode"); } - if (keyFile.has_key ("GUI", "HistogramFullMode")) { - histogramFullMode = keyFile.get_boolean ("GUI", "HistogramFullMode"); + if (keyFile.has_key("GUI", "NavigatorRGBUnit")) { + navRGBUnit = (NavigatorUnit)keyFile.get_integer("GUI", "NavigatorRGBUnit"); } - if (keyFile.has_key ("GUI", "NavigatorRGBUnit")) { - navRGBUnit = (NavigatorUnit)keyFile.get_integer ("GUI", "NavigatorRGBUnit"); + if (keyFile.has_key("GUI", "NavigatorHSVUnit")) { + navHSVUnit = (NavigatorUnit)keyFile.get_integer("GUI", "NavigatorHSVUnit"); } - if (keyFile.has_key ("GUI", "NavigatorHSVUnit")) { - navHSVUnit = (NavigatorUnit)keyFile.get_integer ("GUI", "NavigatorHSVUnit"); - } - - if (keyFile.has_key ("GUI", "ShowFilmStripToolBar")) { - showFilmStripToolBar = keyFile.get_boolean ("GUI", "ShowFilmStripToolBar"); + if (keyFile.has_key("GUI", "ShowFilmStripToolBar")) { + showFilmStripToolBar = keyFile.get_boolean("GUI", "ShowFilmStripToolBar"); } if (keyFile.has_key ("GUI", "FileBrowserToolbarSingleRow")) { @@ -1338,82 +1356,87 @@ void Options::readFromFile (Glib::ustring fname) // Cannot scroll toolbox with mousewheel when HideTPVScrollbar=true #3413 hideTPVScrollbar = false; #else - if (keyFile.has_key ("GUI", "HideTPVScrollbar")) { - hideTPVScrollbar = keyFile.get_boolean ("GUI", "HideTPVScrollbar"); + + if (keyFile.has_key("GUI", "HideTPVScrollbar")) { + hideTPVScrollbar = keyFile.get_boolean("GUI", "HideTPVScrollbar"); } + #endif - if (keyFile.has_key ("GUI", "UseIconNoText")) { - UseIconNoText = keyFile.get_boolean ("GUI", "UseIconNoText"); + + if (keyFile.has_key("GUI", "UseIconNoText")) { + UseIconNoText = keyFile.get_boolean("GUI", "UseIconNoText"); } - if (keyFile.has_key ("GUI", "HistogramWorking")) { - rtSettings.HistogramWorking = keyFile.get_boolean ("GUI", "HistogramWorking"); + if (keyFile.has_key("GUI", "HistogramWorking")) { + rtSettings.HistogramWorking = keyFile.get_boolean("GUI", "HistogramWorking"); } - if (keyFile.has_key ("GUI", "CurveBBoxPosition")) { - curvebboxpos = keyFile.get_integer ("GUI", "CurveBBoxPosition"); + if (keyFile.has_key("GUI", "CurveBBoxPosition")) { + curvebboxpos = keyFile.get_integer("GUI", "CurveBBoxPosition"); } } - if (keyFile.has_group ("Crop Settings")) { - if (keyFile.has_key ("Crop Settings", "PPI")) { - cropPPI = keyFile.get_integer ("Crop Settings", "PPI"); + if (keyFile.has_group("Crop Settings")) { + if (keyFile.has_key("Crop Settings", "PPI")) { + cropPPI = keyFile.get_integer("Crop Settings", "PPI"); } + if (keyFile.has_key("Crop Settings", "GuidesMode")) { cropGuides = CropGuidesMode(std::max(int(CROP_GUIDE_NONE), std::min(keyFile.get_integer("Crop Settings", "GuidesMode"), int(CROP_GUIDE_FULL)))); } + if (keyFile.has_key("Crop Settings", "AutoFit")) { cropAutoFit = keyFile.get_boolean("Crop Settings", "AutoFit"); } } - if (keyFile.has_group ("Color Management")) { - if (keyFile.has_key ("Color Management", "ICCDirectory")) { - rtSettings.iccDirectory = keyFile.get_string ("Color Management", "ICCDirectory"); + if (keyFile.has_group("Color Management")) { + if (keyFile.has_key("Color Management", "ICCDirectory")) { + rtSettings.iccDirectory = keyFile.get_string("Color Management", "ICCDirectory"); } - if (keyFile.has_key ("Color Management", "PrinterIntent")) { - rtSettings.printerIntent = static_cast (keyFile.get_integer ("Color Management", "PrinterIntent")); + if (keyFile.has_key("Color Management", "PrinterIntent")) { + rtSettings.printerIntent = static_cast(keyFile.get_integer("Color Management", "PrinterIntent")); } - if (keyFile.has_key ("Color Management", "PrinterBPC")) { - rtSettings.printerBPC = keyFile.get_boolean ("Color Management", "PrinterBPC"); + if (keyFile.has_key("Color Management", "PrinterBPC")) { + rtSettings.printerBPC = keyFile.get_boolean("Color Management", "PrinterBPC"); } - if (keyFile.has_key ("Color Management", "PrinterProfile")) { - rtSettings.printerProfile = keyFile.get_string ("Color Management", "PrinterProfile"); + if (keyFile.has_key("Color Management", "PrinterProfile")) { + rtSettings.printerProfile = keyFile.get_string("Color Management", "PrinterProfile"); } - if (keyFile.has_key ("Color Management", "MonitorProfile")) { - rtSettings.monitorProfile = keyFile.get_string ("Color Management", "MonitorProfile"); + if (keyFile.has_key("Color Management", "MonitorProfile")) { + rtSettings.monitorProfile = keyFile.get_string("Color Management", "MonitorProfile"); } - if (keyFile.has_key ("Color Management", "AutoMonitorProfile")) { - rtSettings.autoMonitorProfile = keyFile.get_boolean ("Color Management", "AutoMonitorProfile"); + if (keyFile.has_key("Color Management", "AutoMonitorProfile")) { + rtSettings.autoMonitorProfile = keyFile.get_boolean("Color Management", "AutoMonitorProfile"); } - if (keyFile.has_key ("Color Management", "Autocielab")) { - rtSettings.autocielab = keyFile.get_boolean ("Color Management", "Autocielab"); + if (keyFile.has_key("Color Management", "Autocielab")) { + rtSettings.autocielab = keyFile.get_boolean("Color Management", "Autocielab"); } - if (keyFile.has_key ("Color Management", "RGBcurvesLumamode_Gamut")) { - rtSettings.rgbcurveslumamode_gamut = keyFile.get_boolean ("Color Management", "RGBcurvesLumamode_Gamut"); + if (keyFile.has_key("Color Management", "RGBcurvesLumamode_Gamut")) { + rtSettings.rgbcurveslumamode_gamut = keyFile.get_boolean("Color Management", "RGBcurvesLumamode_Gamut"); } - if (keyFile.has_key ("Color Management", "Intent")) { - rtSettings.monitorIntent = static_cast (keyFile.get_integer ("Color Management", "Intent")); + if (keyFile.has_key("Color Management", "Intent")) { + rtSettings.monitorIntent = static_cast(keyFile.get_integer("Color Management", "Intent")); } - if (keyFile.has_key ("Color Management", "MonitorBPC")) { - rtSettings.monitorBPC = keyFile.get_boolean ("Color Management", "MonitorBPC"); + if (keyFile.has_key("Color Management", "MonitorBPC")) { + rtSettings.monitorBPC = keyFile.get_boolean("Color Management", "MonitorBPC"); } - if (keyFile.has_key ("Color Management", "CRI")) { - rtSettings.CRI_color = keyFile.get_integer ("Color Management", "CRI"); + if (keyFile.has_key("Color Management", "CRI")) { + rtSettings.CRI_color = keyFile.get_integer("Color Management", "CRI"); } - if (keyFile.has_key ("Color Management", "DenoiseLabgamma")) { - rtSettings.denoiselabgamma = keyFile.get_integer ("Color Management", "DenoiseLabgamma"); + if (keyFile.has_key("Color Management", "DenoiseLabgamma")) { + rtSettings.denoiselabgamma = keyFile.get_integer("Color Management", "DenoiseLabgamma"); } /* @@ -1431,334 +1454,403 @@ void Options::readFromFile (Glib::ustring fname) } */ - if (keyFile.has_key ("Color Management", "CBDLlevel0")) { - rtSettings.level0_cbdl = keyFile.get_double ("Color Management", "CBDLlevel0"); + if (keyFile.has_key("Color Management", "CBDLlevel0")) { + rtSettings.level0_cbdl = keyFile.get_double("Color Management", "CBDLlevel0"); } - if (keyFile.has_key ("Color Management", "CBDLlevel123")) { - rtSettings.level123_cbdl = keyFile.get_double ("Color Management", "CBDLlevel123"); + if (keyFile.has_key("Color Management", "CBDLlevel123")) { + rtSettings.level123_cbdl = keyFile.get_double("Color Management", "CBDLlevel123"); } //if (keyFile.has_key ("Color Management", "Colortoningab")) rtSettings.colortoningab = keyFile.get_double("Color Management", "Colortoningab"); //if (keyFile.has_key ("Color Management", "Decaction")) rtSettings.decaction = keyFile.get_double("Color Management", "Decaction"); - if (keyFile.has_key ("Color Management", "WhiteBalanceSpotSize")) { - whiteBalanceSpotSize = keyFile.get_integer ("Color Management", "WhiteBalanceSpotSize"); + if (keyFile.has_key("Color Management", "WhiteBalanceSpotSize")) { + whiteBalanceSpotSize = keyFile.get_integer("Color Management", "WhiteBalanceSpotSize"); } - if ( keyFile.has_key ("Color Management", "GamutICC")) { - rtSettings.gamutICC = keyFile.get_boolean ("Color Management", "GamutICC"); + if (keyFile.has_key("Color Management", "GamutICC")) { + rtSettings.gamutICC = keyFile.get_boolean("Color Management", "GamutICC"); } - if ( keyFile.has_key ("Color Management", "AdobeRGB")) { - rtSettings.adobe = keyFile.get_string ("Color Management", "AdobeRGB"); + if (keyFile.has_key("Color Management", "AdobeRGB")) { + rtSettings.adobe = keyFile.get_string("Color Management", "AdobeRGB"); + if (rtSettings.adobe == "RT_Medium_gsRGB") { + rtSettings.adobe = "RTv4_Medium"; + } } - if ( keyFile.has_key ("Color Management", "ProPhoto")) { - rtSettings.prophoto = keyFile.get_string ("Color Management", "ProPhoto"); + if (keyFile.has_key("Color Management", "ProPhoto")) { + rtSettings.prophoto = keyFile.get_string("Color Management", "ProPhoto"); + if (rtSettings.prophoto == "RT_Large_gBT709") { + rtSettings.prophoto = "RTv4_Large"; + } } - if ( keyFile.has_key ("Color Management", "ProPhoto10")) { - rtSettings.prophoto10 = keyFile.get_string ("Color Management", "ProPhoto10"); + if (keyFile.has_key("Color Management", "WideGamut")) { + rtSettings.widegamut = keyFile.get_string("Color Management", "WideGamut"); + if (rtSettings.widegamut == "WideGamutRGB") { + rtSettings.widegamut = "RTv4_Wide"; + } } - if ( keyFile.has_key ("Color Management", "WideGamut")) { - rtSettings.widegamut = keyFile.get_string ("Color Management", "WideGamut"); + if (keyFile.has_key("Color Management", "sRGB")) { + rtSettings.srgb = keyFile.get_string("Color Management", "sRGB"); + if (rtSettings.srgb == "RT_sRGB") { + rtSettings.srgb = "RTv4_sRGB"; + } } - if ( keyFile.has_key ("Color Management", "sRGB")) { - rtSettings.srgb = keyFile.get_string ("Color Management", "sRGB"); + if (keyFile.has_key("Color Management", "Beta")) { + rtSettings.beta = keyFile.get_string("Color Management", "Beta"); + if (rtSettings.beta == "BetaRGB") { + rtSettings.beta = "RTv4_Beta"; + } } - if ( keyFile.has_key ("Color Management", "sRGB10")) { - rtSettings.srgb10 = keyFile.get_string ("Color Management", "sRGB10"); + if (keyFile.has_key("Color Management", "Best")) { + rtSettings.best = keyFile.get_string("Color Management", "Best"); + if (rtSettings.best == "BestRGB") { + rtSettings.best = "RTv4_Best"; + } } - if ( keyFile.has_key ("Color Management", "Beta")) { - rtSettings.beta = keyFile.get_string ("Color Management", "Beta"); + if (keyFile.has_key("Color Management", "Rec2020")) { + rtSettings.rec2020 = keyFile.get_string("Color Management", "Rec2020"); + if (rtSettings.rec2020 == "Rec2020") { + rtSettings.rec2020 = "RTv4_Rec2020"; + } } - if ( keyFile.has_key ("Color Management", "Best")) { - rtSettings.best = keyFile.get_string ("Color Management", "Best"); + if (keyFile.has_key("Color Management", "Bruce")) { + rtSettings.bruce = keyFile.get_string("Color Management", "Bruce"); + if (rtSettings.bruce == "Bruce") { + rtSettings.bruce = "RTv4_Bruce"; + } } - if ( keyFile.has_key ("Color Management", "Rec2020")) { - rtSettings.rec2020 = keyFile.get_string ("Color Management", "Rec2020"); + if (keyFile.has_key("Color Management", "ACES-AP0")) { + rtSettings.ACESp0 = keyFile.get_string("Color Management", "ACES-AP0"); } - if ( keyFile.has_key ("Color Management", "Bruce")) { - rtSettings.bruce = keyFile.get_string ("Color Management", "Bruce"); + if (keyFile.has_key("Color Management", "ACES-AP1")) { + rtSettings.ACESp1 = keyFile.get_string("Color Management", "ACES-AP1"); } - if ( keyFile.has_key ("Color Management", "GamutLch")) { - rtSettings.gamutLch = keyFile.get_boolean ("Color Management", "GamutLch"); + if (keyFile.has_key("Color Management", "GamutLch")) { + rtSettings.gamutLch = keyFile.get_boolean("Color Management", "GamutLch"); } - if ( keyFile.has_key ("Color Management", "ProtectRed")) { - rtSettings.protectred = keyFile.get_integer ("Color Management", "ProtectRed"); + if (keyFile.has_key("Color Management", "ProtectRed")) { + rtSettings.protectred = keyFile.get_integer("Color Management", "ProtectRed"); } - if ( keyFile.has_key ("Color Management", "ProtectRedH")) { - rtSettings.protectredh = keyFile.get_double ("Color Management", "ProtectRedH"); + if (keyFile.has_key("Color Management", "ProtectRedH")) { + rtSettings.protectredh = keyFile.get_double("Color Management", "ProtectRedH"); } - if ( keyFile.has_key ("Color Management", "Amountchroma")) { - rtSettings.amchroma = keyFile.get_integer ("Color Management", "Amountchroma"); + if (keyFile.has_key("Color Management", "Amountchroma")) { + rtSettings.amchroma = keyFile.get_integer("Color Management", "Amountchroma"); } - if ( keyFile.has_key ("Color Management", "ClutsDirectory")) { - clutsDir = keyFile.get_string ("Color Management", "ClutsDirectory"); + if (keyFile.has_key("Color Management", "ClutsDirectory")) { + clutsDir = keyFile.get_string("Color Management", "ClutsDirectory"); } //if( keyFile.has_key ("Color Management", "Ciebadpixgauss")) rtSettings.ciebadpixgauss = keyFile.get_boolean("Color Management", "Ciebadpixgauss"); } - if (keyFile.has_group ("Batch Processing")) { - if (keyFile.has_key ("Batch Processing", "AdjusterBehavior")) { - baBehav = keyFile.get_integer_list ("Batch Processing", "AdjusterBehavior"); + if (keyFile.has_group("ICC Profile Creator")) { + if (keyFile.has_key("ICC Profile Creator", "PimariesPreset")) { + ICCPC_primariesPreset = keyFile.get_string("ICC Profile Creator", "PimariesPreset"); + } + if (keyFile.has_key("ICC Profile Creator", "RedPrimaryX")) { + ICCPC_redPrimaryX = keyFile.get_double("ICC Profile Creator", "RedPrimaryX"); + } + if (keyFile.has_key("ICC Profile Creator", "RedPrimaryY")) { + ICCPC_redPrimaryY = keyFile.get_double("ICC Profile Creator", "RedPrimaryY"); + } + if (keyFile.has_key("ICC Profile Creator", "GreenPrimaryX")) { + ICCPC_greenPrimaryX = keyFile.get_double("ICC Profile Creator", "GreenPrimaryX"); + } + if (keyFile.has_key("ICC Profile Creator", "GreenPrimaryY")) { + ICCPC_greenPrimaryY = keyFile.get_double("ICC Profile Creator", "GreenPrimaryY"); + } + if (keyFile.has_key("ICC Profile Creator", "BluePrimaryX")) { + ICCPC_bluePrimaryX = keyFile.get_double("ICC Profile Creator", "BluePrimaryX"); + } + if (keyFile.has_key("ICC Profile Creator", "BluePrimaryY")) { + ICCPC_bluePrimaryY = keyFile.get_double("ICC Profile Creator", "BluePrimaryY"); + } + if (keyFile.has_key("ICC Profile Creator", "GammaPreset")) { + ICCPC_gammaPreset = keyFile.get_string("ICC Profile Creator", "GammaPreset"); + } + if (keyFile.has_key("ICC Profile Creator", "Gamma")) { + ICCPC_gamma = keyFile.get_double("ICC Profile Creator", "Gamma"); + } + if (keyFile.has_key("ICC Profile Creator", "Slope")) { + ICCPC_slope = keyFile.get_double("ICC Profile Creator", "Slope"); + } + if (keyFile.has_key("ICC Profile Creator", "ProfileVersion")) { + ICCPC_profileVersion = keyFile.get_string("ICC Profile Creator", "ProfileVersion"); + } + if (keyFile.has_key("ICC Profile Creator", "Illuminant")) { + ICCPC_illuminant = keyFile.get_string("ICC Profile Creator", "Illuminant"); + } + if (keyFile.has_key("ICC Profile Creator", "Description")) { + ICCPC_description = keyFile.get_string("ICC Profile Creator", "Description"); + } + if (keyFile.has_key("ICC Profile Creator", "Copyright")) { + ICCPC_copyright = keyFile.get_string("ICC Profile Creator", "Copyright"); + } + if (keyFile.has_key("ICC Profile Creator", "AppendParamsToDesc")) { + ICCPC_appendParamsToDesc = keyFile.get_boolean("ICC Profile Creator", "AppendParamsToDesc"); } } - if (keyFile.has_group ("Sounds")) { - if (keyFile.has_key ("Sounds", "Enable")) { - sndEnable = keyFile.get_boolean ("Sounds", "Enable"); - } - - if (keyFile.has_key ("Sounds", "BatchQueueDone")) { - sndBatchQueueDone = keyFile.get_string ("Sounds", "BatchQueueDone"); - } - - if (keyFile.has_key ("Sounds", "LngEditProcDone")) { - sndLngEditProcDone = keyFile.get_string ("Sounds", "LngEditProcDone"); - } - - if (keyFile.has_key ("Sounds", "LngEditProcDoneSecs")) { - sndLngEditProcDoneSecs = keyFile.get_double ("Sounds", "LngEditProcDoneSecs"); + if (keyFile.has_group("Batch Processing")) { + if (keyFile.has_key("Batch Processing", "AdjusterBehavior")) { + baBehav = keyFile.get_integer_list("Batch Processing", "AdjusterBehavior"); } } - if (keyFile.has_group ("Fast Export")) { - if (keyFile.has_key ("Fast Export", "fastexport_bypass_sharpening" )) { - fastexport_bypass_sharpening = keyFile.get_boolean ("Fast Export", "fastexport_bypass_sharpening" ); + if (keyFile.has_group("Sounds")) { + if (keyFile.has_key("Sounds", "Enable")) { + sndEnable = keyFile.get_boolean("Sounds", "Enable"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_sharpenEdge" )) { - fastexport_bypass_sharpenEdge = keyFile.get_boolean ("Fast Export", "fastexport_bypass_sharpenEdge" ); + if (keyFile.has_key("Sounds", "BatchQueueDone")) { + sndBatchQueueDone = keyFile.get_string("Sounds", "BatchQueueDone"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_sharpenMicro" )) { - fastexport_bypass_sharpenMicro = keyFile.get_boolean ("Fast Export", "fastexport_bypass_sharpenMicro" ); + if (keyFile.has_key("Sounds", "LngEditProcDone")) { + sndLngEditProcDone = keyFile.get_string("Sounds", "LngEditProcDone"); + } + + if (keyFile.has_key("Sounds", "LngEditProcDoneSecs")) { + sndLngEditProcDoneSecs = keyFile.get_double("Sounds", "LngEditProcDoneSecs"); + } + } + + if (keyFile.has_group("Fast Export")) { + if (keyFile.has_key("Fast Export", "fastexport_bypass_sharpening")) { + fastexport_bypass_sharpening = keyFile.get_boolean("Fast Export", "fastexport_bypass_sharpening"); + } + + if (keyFile.has_key("Fast Export", "fastexport_bypass_sharpenEdge")) { + fastexport_bypass_sharpenEdge = keyFile.get_boolean("Fast Export", "fastexport_bypass_sharpenEdge"); + } + + if (keyFile.has_key("Fast Export", "fastexport_bypass_sharpenMicro")) { + fastexport_bypass_sharpenMicro = keyFile.get_boolean("Fast Export", "fastexport_bypass_sharpenMicro"); } //if (keyFile.has_key ("Fast Export", "fastexport_bypass_lumaDenoise" )) fastexport_bypass_lumaDenoise = keyFile.get_boolean ("Fast Export", "fastexport_bypass_lumaDenoise" ); //if (keyFile.has_key ("Fast Export", "fastexport_bypass_colorDenoise" )) fastexport_bypass_colorDenoise = keyFile.get_boolean ("Fast Export", "fastexport_bypass_colorDenoise" ); - if (keyFile.has_key ("Fast Export", "fastexport_bypass_defringe" )) { - fastexport_bypass_defringe = keyFile.get_boolean ("Fast Export", "fastexport_bypass_defringe" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_defringe")) { + fastexport_bypass_defringe = keyFile.get_boolean("Fast Export", "fastexport_bypass_defringe"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_dirpyrDenoise" )) { - fastexport_bypass_dirpyrDenoise = keyFile.get_boolean ("Fast Export", "fastexport_bypass_dirpyrDenoise" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_dirpyrDenoise")) { + fastexport_bypass_dirpyrDenoise = keyFile.get_boolean("Fast Export", "fastexport_bypass_dirpyrDenoise"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_dirpyrequalizer" )) { - fastexport_bypass_dirpyrequalizer = keyFile.get_boolean ("Fast Export", "fastexport_bypass_dirpyrequalizer" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_dirpyrequalizer")) { + fastexport_bypass_dirpyrequalizer = keyFile.get_boolean("Fast Export", "fastexport_bypass_dirpyrequalizer"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_wavelet" )) { - fastexport_bypass_wavelet = keyFile.get_boolean ("Fast Export", "fastexport_bypass_wavelet" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_wavelet")) { + fastexport_bypass_wavelet = keyFile.get_boolean("Fast Export", "fastexport_bypass_wavelet"); } - if (keyFile.has_key ("Fast Export", "fastexport_raw_dmethod" )) { - fastexport_raw_bayer_method = keyFile.get_string ("Fast Export", "fastexport_raw_dmethod" ); + if (keyFile.has_key("Fast Export", "fastexport_raw_dmethod")) { + fastexport_raw_bayer_method = keyFile.get_string("Fast Export", "fastexport_raw_dmethod"); } - if (keyFile.has_key ("Fast Export", "fastexport_raw_bayer_method" )) { - fastexport_raw_bayer_method = keyFile.get_string ("Fast Export", "fastexport_raw_bayer_method" ); + if (keyFile.has_key("Fast Export", "fastexport_raw_bayer_method")) { + fastexport_raw_bayer_method = keyFile.get_string("Fast Export", "fastexport_raw_bayer_method"); } //if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_bayer_all_enhance" )) fastexport_bypass_raw_bayer_all_enhance = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_all_enhance" ); - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_dcb_iterations" )) { - fastexport_bypass_raw_bayer_dcb_iterations = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_dcb_iterations" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_dcb_iterations")) { + fastexport_bypass_raw_bayer_dcb_iterations = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_dcb_iterations"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_bayer_dcb_iterations" )) { - fastexport_bypass_raw_bayer_dcb_iterations = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_bayer_dcb_iterations" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_bayer_dcb_iterations")) { + fastexport_bypass_raw_bayer_dcb_iterations = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_bayer_dcb_iterations"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_dcb_enhance" )) { - fastexport_bypass_raw_bayer_dcb_enhance = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_dcb_enhance" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_dcb_enhance")) { + fastexport_bypass_raw_bayer_dcb_enhance = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_dcb_enhance"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_bayer_dcb_enhance" )) { - fastexport_bypass_raw_bayer_dcb_enhance = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_bayer_dcb_enhance" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_bayer_dcb_enhance")) { + fastexport_bypass_raw_bayer_dcb_enhance = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_bayer_dcb_enhance"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_lmmse_iterations" )) { - fastexport_bypass_raw_bayer_lmmse_iterations = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_lmmse_iterations" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_lmmse_iterations")) { + fastexport_bypass_raw_bayer_lmmse_iterations = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_lmmse_iterations"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_bayer_lmmse_iterations")) { - fastexport_bypass_raw_bayer_lmmse_iterations = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_bayer_lmmse_iterations"); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_bayer_lmmse_iterations")) { + fastexport_bypass_raw_bayer_lmmse_iterations = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_bayer_lmmse_iterations"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_linenoise" )) { - fastexport_bypass_raw_bayer_linenoise = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_linenoise" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_linenoise")) { + fastexport_bypass_raw_bayer_linenoise = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_linenoise"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_bayer_linenoise" )) { - fastexport_bypass_raw_bayer_linenoise = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_bayer_linenoise" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_bayer_linenoise")) { + fastexport_bypass_raw_bayer_linenoise = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_bayer_linenoise"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_greenthresh" )) { - fastexport_bypass_raw_bayer_greenthresh = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_greenthresh" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_greenthresh")) { + fastexport_bypass_raw_bayer_greenthresh = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_greenthresh"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_bayer_greenthresh" )) { - fastexport_bypass_raw_bayer_greenthresh = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_bayer_greenthresh" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_bayer_greenthresh")) { + fastexport_bypass_raw_bayer_greenthresh = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_bayer_greenthresh"); } - if (keyFile.has_key ("Fast Export", "fastexport_raw_xtrans_method" )) { - fastexport_raw_xtrans_method = keyFile.get_string ("Fast Export", "fastexport_raw_xtrans_method" ); + if (keyFile.has_key("Fast Export", "fastexport_raw_xtrans_method")) { + fastexport_raw_xtrans_method = keyFile.get_string("Fast Export", "fastexport_raw_xtrans_method"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_ccSteps" )) { - fastexport_bypass_raw_ccSteps = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_ccSteps" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_ccSteps")) { + fastexport_bypass_raw_ccSteps = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_ccSteps"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_ca" )) { - fastexport_bypass_raw_ca = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_ca" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_ca")) { + fastexport_bypass_raw_ca = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_ca"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_df" )) { - fastexport_bypass_raw_df = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_df" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_df")) { + fastexport_bypass_raw_df = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_df"); } - if (keyFile.has_key ("Fast Export", "fastexport_bypass_raw_ff" )) { - fastexport_bypass_raw_ff = keyFile.get_boolean ("Fast Export", "fastexport_bypass_raw_ff" ); + if (keyFile.has_key("Fast Export", "fastexport_bypass_raw_ff")) { + fastexport_bypass_raw_ff = keyFile.get_boolean("Fast Export", "fastexport_bypass_raw_ff"); } - if (keyFile.has_key ("Fast Export", "fastexport_icm_input" )) { - fastexport_icm_input = keyFile.get_string ("Fast Export", "fastexport_icm_input" ); + if (keyFile.has_key("Fast Export", "fastexport_icm_input")) { + fastexport_icm_input_profile = keyFile.get_string("Fast Export", "fastexport_icm_input"); } - if (keyFile.has_key ("Fast Export", "fastexport_icm_working" )) { - fastexport_icm_working = keyFile.get_string ("Fast Export", "fastexport_icm_working" ); + if (keyFile.has_key("Fast Export", "fastexport_icm_working")) { + fastexport_icm_working_profile = keyFile.get_string("Fast Export", "fastexport_icm_working"); } - if (keyFile.has_key ("Fast Export", "fastexport_icm_output" )) { - fastexport_icm_output = keyFile.get_string ("Fast Export", "fastexport_icm_output" ); + if (keyFile.has_key("Fast Export", "fastexport_icm_output")) { + fastexport_icm_output_profile = keyFile.get_string("Fast Export", "fastexport_icm_output"); } - if (keyFile.has_key ("Fast Export", "fastexport_icm_output_intent" )) { - fastexport_icm_outputIntent = static_cast (keyFile.get_integer ("Fast Export", "fastexport_icm_output_intent" )); + if (keyFile.has_key("Fast Export", "fastexport_icm_output_intent")) { + fastexport_icm_outputIntent = static_cast(keyFile.get_integer("Fast Export", "fastexport_icm_output_intent")); } - if (keyFile.has_key ("Fast Export", "fastexport_icm_output_bpc" )) { - fastexport_icm_outputBPC = keyFile.get_boolean ("Fast Export", "fastexport_icm_output_bpc" ); + if (keyFile.has_key("Fast Export", "fastexport_icm_output_bpc")) { + fastexport_icm_outputBPC = keyFile.get_boolean("Fast Export", "fastexport_icm_output_bpc"); } - if (keyFile.has_key ("Fast Export", "fastexport_icm_gamma" )) { - fastexport_icm_gamma = keyFile.get_string ("Fast Export", "fastexport_icm_gamma" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_enabled")) { + fastexport_resize_enabled = keyFile.get_boolean("Fast Export", "fastexport_resize_enabled"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_enabled" )) { - fastexport_resize_enabled = keyFile.get_boolean ("Fast Export", "fastexport_resize_enabled" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_scale")) { + fastexport_resize_scale = keyFile.get_double("Fast Export", "fastexport_resize_scale"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_scale" )) { - fastexport_resize_scale = keyFile.get_double ("Fast Export", "fastexport_resize_scale" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_appliesTo")) { + fastexport_resize_appliesTo = keyFile.get_string("Fast Export", "fastexport_resize_appliesTo"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_appliesTo" )) { - fastexport_resize_appliesTo = keyFile.get_string ("Fast Export", "fastexport_resize_appliesTo" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_method")) { + fastexport_resize_method = keyFile.get_string("Fast Export", "fastexport_resize_method"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_method" )) { - fastexport_resize_method = keyFile.get_string ("Fast Export", "fastexport_resize_method" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_dataspec")) { + fastexport_resize_dataspec = keyFile.get_integer("Fast Export", "fastexport_resize_dataspec"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_dataspec" )) { - fastexport_resize_dataspec = keyFile.get_integer ("Fast Export", "fastexport_resize_dataspec" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_width")) { + fastexport_resize_width = keyFile.get_integer("Fast Export", "fastexport_resize_width"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_width" )) { - fastexport_resize_width = keyFile.get_integer ("Fast Export", "fastexport_resize_width" ); + if (keyFile.has_key("Fast Export", "fastexport_resize_height")) { + fastexport_resize_height = keyFile.get_integer("Fast Export", "fastexport_resize_height"); } - if (keyFile.has_key ("Fast Export", "fastexport_resize_height" )) { - fastexport_resize_height = keyFile.get_integer ("Fast Export", "fastexport_resize_height" ); - } - - if (keyFile.has_key ("Fast Export", "fastexport_use_fast_pipeline" )) { - fastexport_use_fast_pipeline = keyFile.get_integer ("Fast Export", "fastexport_use_fast_pipeline" ); + if (keyFile.has_key("Fast Export", "fastexport_use_fast_pipeline")) { + fastexport_use_fast_pipeline = keyFile.get_integer("Fast Export", "fastexport_use_fast_pipeline"); } } - if (keyFile.has_group ("Dialogs")) { - safeDirGet (keyFile, "Dialogs", "LastIccDir", lastIccDir); - safeDirGet (keyFile, "Dialogs", "LastDarkframeDir", lastDarkframeDir); - safeDirGet (keyFile, "Dialogs", "LastFlatfieldDir", lastFlatfieldDir); - safeDirGet (keyFile, "Dialogs", "LastRgbCurvesDir", lastRgbCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastLabCurvesDir", lastLabCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastRetinexDir", lastRetinexDir); - safeDirGet (keyFile, "Dialogs", "LastDenoiseCurvesDir", lastDenoiseCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastWaveletCurvesDir", lastWaveletCurvesDir); + if (keyFile.has_group("Dialogs")) { + safeDirGet(keyFile, "Dialogs", "LastIccDir", lastIccDir); + safeDirGet(keyFile, "Dialogs", "LastDarkframeDir", lastDarkframeDir); + safeDirGet(keyFile, "Dialogs", "LastFlatfieldDir", lastFlatfieldDir); + safeDirGet(keyFile, "Dialogs", "LastRgbCurvesDir", lastRgbCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastLabCurvesDir", lastLabCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastRetinexDir", lastRetinexDir); + safeDirGet(keyFile, "Dialogs", "LastDenoiseCurvesDir", lastDenoiseCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastWaveletCurvesDir", lastWaveletCurvesDir); safeDirGet (keyFile, "Dialogs", "LastlocalCurvesDir", lastlocalCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastPFCurvesDir", lastPFCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastHsvCurvesDir", lastHsvCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastBWCurvesDir", lastBWCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastPFCurvesDir", lastPFCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastHsvCurvesDir", lastHsvCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastBWCurvesDir", lastBWCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastToneCurvesDir", lastToneCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir); - safeDirGet (keyFile, "Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); - safeDirGet (keyFile, "Dialogs", "LastLensProfileDir", lastLensProfileDir); + safeDirGet(keyFile, "Dialogs", "LastToneCurvesDir", lastToneCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir); + safeDirGet(keyFile, "Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); + safeDirGet(keyFile, "Dialogs", "LastLensProfileDir", lastLensProfileDir); + safeDirGet(keyFile, "Dialogs", "LastICCProfCreatorDir", lastICCProfCreatorDir); - if (keyFile.has_key ("Dialogs", "GimpPluginShowInfoDialog")) { - gimpPluginShowInfoDialog = keyFile.get_boolean ("Dialogs", "GimpPluginShowInfoDialog"); + if (keyFile.has_key("Dialogs", "GimpPluginShowInfoDialog")) { + gimpPluginShowInfoDialog = keyFile.get_boolean("Dialogs", "GimpPluginShowInfoDialog"); } } - if (keyFile.has_group ("Lensfun")) { - if (keyFile.has_key ("Lensfun", "DBDirectory")) { - rtSettings.lensfunDbDirectory = keyFile.get_string ("Lensfun", "DBDirectory"); + if (keyFile.has_group("Lensfun")) { + if (keyFile.has_key("Lensfun", "DBDirectory")) { + rtSettings.lensfunDbDirectory = keyFile.get_string("Lensfun", "DBDirectory"); } } // -------------------------------------------------------------------------------------------------------- - filterOutParsedExtensions (); + filterOutParsedExtensions(); return; } } catch (Glib::Error &err) { - Glib::ustring msg = Glib::ustring::compose ("Options::readFromFile / Error code %1 while reading values from \"%2\":\n%3", err.code(), fname, err.what()); + Glib::ustring msg = Glib::ustring::compose("Options::readFromFile / Error code %1 while reading values from \"%2\":\n%3", err.code(), fname, err.what()); if (options.rtSettings.verbose) { - printf ("%s\n", msg.c_str()); + printf("%s\n", msg.c_str()); } - throw Error (msg); + throw Error(msg); } catch (...) { - Glib::ustring msg = Glib::ustring::compose ("Options::readFromFile / Unknown exception while trying to load \"%1\"!", fname); + Glib::ustring msg = Glib::ustring::compose("Options::readFromFile / Unknown exception while trying to load \"%1\"!", fname); if (options.rtSettings.verbose) { - printf ("%s\n", msg.c_str()); + printf("%s\n", msg.c_str()); } - throw Error (msg); + throw Error(msg); } } -bool Options::safeDirGet (const Glib::KeyFile& keyFile, const Glib::ustring& section, - const Glib::ustring& entryName, Glib::ustring& destination) +bool Options::safeDirGet(const Glib::KeyFile& keyFile, const Glib::ustring& section, + const Glib::ustring& entryName, Glib::ustring& destination) { try { - if (keyFile.has_key (section, entryName) && !keyFile.get_string (section, entryName).empty ()) { - destination = keyFile.get_string (section, entryName); + if (keyFile.has_key(section, entryName) && !keyFile.get_string(section, entryName).empty()) { + destination = keyFile.get_string(section, entryName); return true; } @@ -1767,7 +1859,7 @@ bool Options::safeDirGet (const Glib::KeyFile& keyFile, const Glib::ustring& sec return false; } -void Options::saveToFile (Glib::ustring fname) +void Options::saveToFile(Glib::ustring fname) { Glib::ustring keyData; @@ -1776,17 +1868,17 @@ void Options::saveToFile (Glib::ustring fname) Glib::KeyFile keyFile; - keyFile.set_boolean ("General", "TabbedEditor", tabbedUI); - keyFile.set_boolean ("General", "StoreLastProfile", savesParamsAtExit); + keyFile.set_boolean("General", "TabbedEditor", tabbedUI); + keyFile.set_boolean("General", "StoreLastProfile", savesParamsAtExit); if (startupDir == STARTUPDIR_HOME) { - keyFile.set_string ("General", "StartupDirectory", "home"); + keyFile.set_string("General", "StartupDirectory", "home"); } else if (startupDir == STARTUPDIR_CURRENT) { - keyFile.set_string ("General", "StartupDirectory", "current"); + keyFile.set_string("General", "StartupDirectory", "current"); } else if (startupDir == STARTUPDIR_CUSTOM) { - keyFile.set_string ("General", "StartupDirectory", "custom"); + keyFile.set_string("General", "StartupDirectory", "custom"); } else if (startupDir == STARTUPDIR_LAST) { - keyFile.set_string ("General", "StartupDirectory", "last"); + keyFile.set_string("General", "StartupDirectory", "last"); } keyFile.set_string ("General", "StartupPath", startupPath); @@ -1805,162 +1897,154 @@ void Options::saveToFile (Glib::ustring fname) keyFile.set_double ("General", "Reduchigh", rtSettings.reduchigh); keyFile.set_double ("General", "Reduclow", rtSettings.reduclow); - keyFile.set_integer ("External Editor", "EditorKind", editorToSendTo); - keyFile.set_string ("External Editor", "GimpDir", gimpDir); - keyFile.set_string ("External Editor", "PhotoshopDir", psDir); - keyFile.set_string ("External Editor", "CustomEditor", customEditorProg); + keyFile.set_integer("External Editor", "EditorKind", editorToSendTo); + keyFile.set_string("External Editor", "GimpDir", gimpDir); + keyFile.set_string("External Editor", "PhotoshopDir", psDir); + keyFile.set_string("External Editor", "CustomEditor", customEditorProg); - keyFile.set_boolean ("File Browser", "BrowseOnlyRaw", fbOnlyRaw); - keyFile.set_boolean ("File Browser", "BrowserShowsDate", fbShowDateTime); - keyFile.set_boolean ("File Browser", "BrowserShowsExif", fbShowBasicExif); - keyFile.set_boolean ("File Browser", "BrowserShowsExpComp", fbShowExpComp); - keyFile.set_boolean ("File Browser", "BrowserShowsHidden", fbShowHidden); - keyFile.set_integer ("File Browser", "ThumbnailSize", thumbSize); - keyFile.set_integer ("File Browser", "ThumbnailSizeTab", thumbSizeTab); - keyFile.set_integer ("File Browser", "ThumbnailSizeQueue", thumbSizeQueue); - keyFile.set_integer ("File Browser", "SameThumbSize", sameThumbSize); - keyFile.set_integer ("File Browser", "MaxPreviewHeight", maxThumbnailHeight); - keyFile.set_integer ("File Browser", "MaxCacheEntries", maxCacheEntries); + keyFile.set_boolean("File Browser", "BrowseOnlyRaw", fbOnlyRaw); + keyFile.set_boolean("File Browser", "BrowserShowsDate", fbShowDateTime); + keyFile.set_boolean("File Browser", "BrowserShowsExif", fbShowBasicExif); + keyFile.set_boolean("File Browser", "BrowserShowsExpComp", fbShowExpComp); + keyFile.set_boolean("File Browser", "BrowserShowsHidden", fbShowHidden); + keyFile.set_integer("File Browser", "ThumbnailSize", thumbSize); + keyFile.set_integer("File Browser", "ThumbnailSizeTab", thumbSizeTab); + keyFile.set_integer("File Browser", "ThumbnailSizeQueue", thumbSizeQueue); + keyFile.set_integer("File Browser", "SameThumbSize", sameThumbSize); + keyFile.set_integer("File Browser", "MaxPreviewHeight", maxThumbnailHeight); + keyFile.set_integer("File Browser", "MaxCacheEntries", maxCacheEntries); Glib::ArrayHandle pext = parseExtensions; - keyFile.set_string_list ("File Browser", "ParseExtensions", pext); + keyFile.set_string_list("File Browser", "ParseExtensions", pext); Glib::ArrayHandle pextena = parseExtensionsEnabled; - keyFile.set_integer_list ("File Browser", "ParseExtensionsEnabled", pextena); - keyFile.set_integer ("File Browser", "ThumbnailArrangement", fbArrangement); - keyFile.set_integer ("File Browser", "ThumbnailInterpolation", thumbInterp); + keyFile.set_integer_list("File Browser", "ParseExtensionsEnabled", pextena); + keyFile.set_integer("File Browser", "ThumbnailArrangement", fbArrangement); + keyFile.set_integer("File Browser", "ThumbnailInterpolation", thumbInterp); Glib::ArrayHandle pfav = favoriteDirs; - keyFile.set_string_list ("File Browser", "FavoriteDirs", pfav); + keyFile.set_string_list("File Browser", "FavoriteDirs", pfav); Glib::ArrayHandle pren = renameTemplates; - keyFile.set_string_list ("File Browser", "RenameTemplates", pren); - keyFile.set_boolean ("File Browser", "RenameUseTemplates", renameUseTemplates); + keyFile.set_string_list("File Browser", "RenameTemplates", pren); + keyFile.set_boolean("File Browser", "RenameUseTemplates", renameUseTemplates); Glib::ArrayHandle ptzoom = thumbnailZoomRatios; - keyFile.set_double_list ("File Browser", "ThumbnailZoomRatios", ptzoom); - keyFile.set_boolean ("File Browser", "OverlayedFileNames", overlayedFileNames); - keyFile.set_boolean ("File Browser", "FilmStripOverlayedFileNames", filmStripOverlayedFileNames); - keyFile.set_boolean ("File Browser", "ShowFileNames", showFileNames ); - keyFile.set_boolean ("File Browser", "FilmStripShowFileNames", filmStripShowFileNames ); - keyFile.set_boolean ("File Browser", "InternalThumbIfUntouched", internalThumbIfUntouched ); - keyFile.set_boolean ("File Browser", "menuGroupRank", menuGroupRank); - keyFile.set_boolean ("File Browser", "menuGroupLabel", menuGroupLabel); - keyFile.set_boolean ("File Browser", "menuGroupFileOperations", menuGroupFileOperations); - keyFile.set_boolean ("File Browser", "menuGroupProfileOperations", menuGroupProfileOperations); - keyFile.set_boolean ("File Browser", "menuGroupExtProg", menuGroupExtProg); - keyFile.set_integer ("File Browser", "MaxRecentFolders", maxRecentFolders); + keyFile.set_double_list("File Browser", "ThumbnailZoomRatios", ptzoom); + keyFile.set_boolean("File Browser", "OverlayedFileNames", overlayedFileNames); + keyFile.set_boolean("File Browser", "FilmStripOverlayedFileNames", filmStripOverlayedFileNames); + keyFile.set_boolean("File Browser", "ShowFileNames", showFileNames); + keyFile.set_boolean("File Browser", "FilmStripShowFileNames", filmStripShowFileNames); + keyFile.set_boolean("File Browser", "InternalThumbIfUntouched", internalThumbIfUntouched); + keyFile.set_boolean("File Browser", "menuGroupRank", menuGroupRank); + keyFile.set_boolean("File Browser", "menuGroupLabel", menuGroupLabel); + keyFile.set_boolean("File Browser", "menuGroupFileOperations", menuGroupFileOperations); + keyFile.set_boolean("File Browser", "menuGroupProfileOperations", menuGroupProfileOperations); + keyFile.set_boolean("File Browser", "menuGroupExtProg", menuGroupExtProg); + keyFile.set_integer("File Browser", "MaxRecentFolders", maxRecentFolders); { std::vector temp; - temp.reserve (maxRecentFolders); + temp.reserve(maxRecentFolders); - for (unsigned int i = 0; i < std::min (recentFolders.size(), maxRecentFolders); i++) { - temp.push_back (recentFolders[i]); + for (unsigned int i = 0; i < std::min(recentFolders.size(), maxRecentFolders); i++) { + temp.push_back(recentFolders[i]); } - keyFile.set_string_list ("File Browser", "RecentFolders", temp); + keyFile.set_string_list("File Browser", "RecentFolders", temp); } - keyFile.set_integer ("Clipping Indication", "HighlightThreshold", highlightThreshold); - keyFile.set_integer ("Clipping Indication", "ShadowThreshold", shadowThreshold); - keyFile.set_boolean ("Clipping Indication", "BlinkClipped", blinkClipped); + keyFile.set_integer("Clipping Indication", "HighlightThreshold", highlightThreshold); + keyFile.set_integer("Clipping Indication", "ShadowThreshold", shadowThreshold); + keyFile.set_boolean("Clipping Indication", "BlinkClipped", blinkClipped); - keyFile.set_integer ("Performance", "RgbDenoiseThreadLimit", rgbDenoiseThreadLimit); - keyFile.set_double ("Performance", "NRauto", rtSettings.nrauto); - keyFile.set_double ("Performance", "NRautomax", rtSettings.nrautomax); - keyFile.set_double ("Performance", "NRhigh", rtSettings.nrhigh); - keyFile.set_integer ("Performance", "NRWavlevel", rtSettings.nrwavlevel); - keyFile.set_integer ("Performance", "LevNR", rtSettings.leveldnv); - keyFile.set_integer ("Performance", "LevNRTI", rtSettings.leveldnti); - keyFile.set_integer ("Performance", "LevNRAUT", rtSettings.leveldnaut); - keyFile.set_integer ("Performance", "LevNRLISS", rtSettings.leveldnliss); - keyFile.set_integer ("Performance", "SIMPLNRAUT", rtSettings.leveldnautsimpl); - keyFile.set_integer ("Performance", "ClutCacheSize", clutCacheSize); - keyFile.set_integer ("Performance", "MaxInspectorBuffers", maxInspectorBuffers); - keyFile.set_integer ("Performance", "InspectorDelay", inspectorDelay); - keyFile.set_integer ("Performance", "PreviewDemosaicFromSidecar", prevdemo); - keyFile.set_boolean ("Performance", "Daubechies", rtSettings.daubech); - keyFile.set_boolean ("Performance", "SerializeTiffRead", serializeTiffRead); + keyFile.set_integer("Performance", "RgbDenoiseThreadLimit", rgbDenoiseThreadLimit); + keyFile.set_integer("Performance", "ClutCacheSize", clutCacheSize); + keyFile.set_integer("Performance", "MaxInspectorBuffers", maxInspectorBuffers); + keyFile.set_integer("Performance", "InspectorDelay", inspectorDelay); + keyFile.set_integer("Performance", "PreviewDemosaicFromSidecar", prevdemo); + keyFile.set_boolean("Performance", "SerializeTiffRead", serializeTiffRead); keyFile.set_integer("Performance", "ThumbnailInspectorMode", int(rtSettings.thumbnail_inspector_mode)); - keyFile.set_string ("Output", "Format", saveFormat.format); - keyFile.set_integer ("Output", "JpegQuality", saveFormat.jpegQuality); - keyFile.set_integer ("Output", "JpegSubSamp", saveFormat.jpegSubSamp); - keyFile.set_integer ("Output", "PngBps", saveFormat.pngBits); - keyFile.set_integer ("Output", "TiffBps", saveFormat.tiffBits); - keyFile.set_boolean ("Output", "TiffUncompressed", saveFormat.tiffUncompressed); - keyFile.set_boolean ("Output", "SaveProcParams", saveFormat.saveParams); + keyFile.set_string("Output", "Format", saveFormat.format); + keyFile.set_integer("Output", "JpegQuality", saveFormat.jpegQuality); + keyFile.set_integer("Output", "JpegSubSamp", saveFormat.jpegSubSamp); + keyFile.set_integer("Output", "PngBps", saveFormat.pngBits); + keyFile.set_integer("Output", "TiffBps", saveFormat.tiffBits); + keyFile.set_boolean("Output", "TiffFloat", saveFormat.tiffFloat); + keyFile.set_boolean("Output", "TiffUncompressed", saveFormat.tiffUncompressed); + keyFile.set_boolean("Output", "SaveProcParams", saveFormat.saveParams); - keyFile.set_string ("Output", "FormatBatch", saveFormatBatch.format); - keyFile.set_integer ("Output", "JpegQualityBatch", saveFormatBatch.jpegQuality); - keyFile.set_integer ("Output", "JpegSubSampBatch", saveFormatBatch.jpegSubSamp); - keyFile.set_integer ("Output", "PngBpsBatch", saveFormatBatch.pngBits); - keyFile.set_integer ("Output", "TiffBpsBatch", saveFormatBatch.tiffBits); - keyFile.set_boolean ("Output", "TiffUncompressedBatch", saveFormatBatch.tiffUncompressed); - keyFile.set_boolean ("Output", "SaveProcParamsBatch", saveFormatBatch.saveParams); + keyFile.set_string("Output", "FormatBatch", saveFormatBatch.format); + keyFile.set_integer("Output", "JpegQualityBatch", saveFormatBatch.jpegQuality); + keyFile.set_integer("Output", "JpegSubSampBatch", saveFormatBatch.jpegSubSamp); + keyFile.set_integer("Output", "PngBpsBatch", saveFormatBatch.pngBits); + keyFile.set_integer("Output", "TiffBpsBatch", saveFormatBatch.tiffBits); + keyFile.set_boolean("Output", "TiffFloatBatch", saveFormatBatch.tiffFloat); + keyFile.set_boolean("Output", "TiffUncompressedBatch", saveFormatBatch.tiffUncompressed); + keyFile.set_boolean("Output", "SaveProcParamsBatch", saveFormatBatch.saveParams); - keyFile.set_string ("Output", "PathTemplate", savePathTemplate); - keyFile.set_string ("Output", "PathFolder", savePathFolder); - keyFile.set_boolean ("Output", "AutoSuffix", autoSuffix); - keyFile.set_boolean ("Output", "ForceFormatOpts", forceFormatOpts); - keyFile.set_integer ("Output", "SaveMethodNum", saveMethodNum); - keyFile.set_boolean ("Output", "UsePathTemplate", saveUsePathTemplate); - keyFile.set_string ("Output", "LastSaveAsPath", lastSaveAsPath); - keyFile.set_boolean ("Output", "OverwriteOutputFile", overwriteOutputFile); + keyFile.set_string("Output", "PathTemplate", savePathTemplate); + keyFile.set_string("Output", "PathFolder", savePathFolder); + keyFile.set_boolean("Output", "AutoSuffix", autoSuffix); + keyFile.set_boolean("Output", "ForceFormatOpts", forceFormatOpts); + keyFile.set_integer("Output", "SaveMethodNum", saveMethodNum); + keyFile.set_boolean("Output", "UsePathTemplate", saveUsePathTemplate); + keyFile.set_string("Output", "LastSaveAsPath", lastSaveAsPath); + keyFile.set_boolean("Output", "OverwriteOutputFile", overwriteOutputFile); - keyFile.set_string ("Profiles", "Directory", profilePath); - keyFile.set_boolean ("Profiles", "UseBundledProfiles", useBundledProfiles); - keyFile.set_string ("Profiles", "LoadSaveProfilePath", loadSaveProfilePath); - keyFile.set_string ("Profiles", "RawDefault", defProfRaw); - keyFile.set_string ("Profiles", "ImgDefault", defProfImg); - keyFile.set_boolean ("Profiles", "FilledProfile", filledProfile); - keyFile.set_boolean ("Profiles", "SaveParamsWithFile", saveParamsFile); - keyFile.set_boolean ("Profiles", "SaveParamsToCache", saveParamsCache); - keyFile.set_integer ("Profiles", "LoadParamsFromLocation", paramsLoadLocation); - keyFile.set_string ("Profiles", "CustomProfileBuilderPath", CPBPath); - keyFile.set_integer ("Profiles", "CustomProfileBuilderKeys", CPBKeys); + keyFile.set_string("Profiles", "Directory", profilePath); + keyFile.set_boolean("Profiles", "UseBundledProfiles", useBundledProfiles); + keyFile.set_string("Profiles", "LoadSaveProfilePath", loadSaveProfilePath); + keyFile.set_string("Profiles", "RawDefault", defProfRaw); + keyFile.set_string("Profiles", "ImgDefault", defProfImg); + keyFile.set_boolean("Profiles", "FilledProfile", filledProfile); + keyFile.set_boolean("Profiles", "SaveParamsWithFile", saveParamsFile); + keyFile.set_boolean("Profiles", "SaveParamsToCache", saveParamsCache); + keyFile.set_integer("Profiles", "LoadParamsFromLocation", paramsLoadLocation); + keyFile.set_string("Profiles", "CustomProfileBuilderPath", CPBPath); + keyFile.set_integer("Profiles", "CustomProfileBuilderKeys", CPBKeys); - keyFile.set_integer ("GUI", "WindowWidth", windowWidth); - keyFile.set_integer ("GUI", "WindowHeight", windowHeight); - keyFile.set_integer ("GUI", "WindowX", windowX); - keyFile.set_integer ("GUI", "WindowY", windowY); - keyFile.set_integer ("GUI", "WindowMonitor", windowMonitor); - keyFile.set_integer ("GUI", "MeowMonitor", meowMonitor); - keyFile.set_boolean ("GUI", "MeowFullScreen", meowFullScreen); - keyFile.set_boolean ("GUI", "MeowMaximized", meowMaximized); - keyFile.set_integer ("GUI", "MeowWidth", meowWidth); - keyFile.set_integer ("GUI", "MeowHeight", meowHeight); - keyFile.set_integer ("GUI", "MeowX", meowX); - keyFile.set_integer ("GUI", "MeowY", meowY); - keyFile.set_boolean ("GUI", "WindowMaximized", windowMaximized); - keyFile.set_integer ("GUI", "DetailWindowWidth", detailWindowWidth); - keyFile.set_integer ("GUI", "DetailWindowHeight", detailWindowHeight); - keyFile.set_integer ("GUI", "DirBrowserWidth", dirBrowserWidth); - keyFile.set_integer ("GUI", "DirBrowserHeight", dirBrowserHeight); - keyFile.set_integer ("GUI", "SortType", dirBrowserSortType); - keyFile.set_integer ("GUI", "PreferencesWidth", preferencesWidth); - keyFile.set_integer ("GUI", "PreferencesHeight", preferencesHeight); - keyFile.set_integer ("GUI", "SaveAsDialogWidth", saveAsDialogWidth); - keyFile.set_integer ("GUI", "SaveAsDialogHeight", saveAsDialogHeight); - keyFile.set_integer ("GUI", "ToolPanelWidth", toolPanelWidth); - keyFile.set_integer ("GUI", "BrowserToolPanelWidth", browserToolPanelWidth); - keyFile.set_integer ("GUI", "BrowserToolPanelHeight", browserToolPanelHeight); - keyFile.set_boolean ("GUI", "BrowserToolPanelOpened", browserToolPanelOpened); - keyFile.set_boolean ("GUI", "EditorFilmStripOpened", editorFilmStripOpened); - keyFile.set_boolean ("GUI", "BrowserDirPanelOpened", browserDirPanelOpened); - keyFile.set_integer ("GUI", "HistoryPanelWidth", historyPanelWidth); - keyFile.set_string ("GUI", "FontFamily", fontFamily); - keyFile.set_integer ("GUI", "FontSize", fontSize); - keyFile.set_string ("GUI", "CPFontFamily", CPFontFamily); - keyFile.set_integer ("GUI", "CPFontSize", CPFontSize); - keyFile.set_integer ("GUI", "LastPreviewScale", lastScale); - keyFile.set_boolean ("GUI", "LastShowAllExif", lastShowAllExif); - keyFile.set_integer ("GUI", "PanAccelFactor", panAccelFactor); - keyFile.set_boolean ("GUI", "RememberZoomAndPan", rememberZoomAndPan); - keyFile.set_integer ("GUI", "LastCropSize", lastCropSize); - keyFile.set_boolean ("GUI", "ShowHistory", showHistory); - keyFile.set_integer ("GUI", "ShowFilePanelState", showFilePanelState); - keyFile.set_boolean ("GUI", "ShowInfo", showInfo); - keyFile.set_boolean ("GUI", "MainNBVertical", mainNBVertical); - keyFile.set_boolean ("GUI", "ShowClippedHighlights", showClippedHighlights); - keyFile.set_boolean ("GUI", "ShowClippedShadows", showClippedShadows); - keyFile.set_integer ("GUI", "FrameColor", bgcolor); - keyFile.set_boolean ("GUI", "ProcessingQueueEnbled", procQueueEnabled); + keyFile.set_integer("GUI", "WindowWidth", windowWidth); + keyFile.set_integer("GUI", "WindowHeight", windowHeight); + keyFile.set_integer("GUI", "WindowX", windowX); + keyFile.set_integer("GUI", "WindowY", windowY); + keyFile.set_integer("GUI", "WindowMonitor", windowMonitor); + keyFile.set_integer("GUI", "MeowMonitor", meowMonitor); + keyFile.set_boolean("GUI", "MeowFullScreen", meowFullScreen); + keyFile.set_boolean("GUI", "MeowMaximized", meowMaximized); + keyFile.set_integer("GUI", "MeowWidth", meowWidth); + keyFile.set_integer("GUI", "MeowHeight", meowHeight); + keyFile.set_integer("GUI", "MeowX", meowX); + keyFile.set_integer("GUI", "MeowY", meowY); + keyFile.set_boolean("GUI", "WindowMaximized", windowMaximized); + keyFile.set_integer("GUI", "DetailWindowWidth", detailWindowWidth); + keyFile.set_integer("GUI", "DetailWindowHeight", detailWindowHeight); + keyFile.set_integer("GUI", "DirBrowserWidth", dirBrowserWidth); + keyFile.set_integer("GUI", "DirBrowserHeight", dirBrowserHeight); + keyFile.set_integer("GUI", "SortType", dirBrowserSortType); + keyFile.set_integer("GUI", "PreferencesWidth", preferencesWidth); + keyFile.set_integer("GUI", "PreferencesHeight", preferencesHeight); + keyFile.set_integer("GUI", "SaveAsDialogWidth", saveAsDialogWidth); + keyFile.set_integer("GUI", "SaveAsDialogHeight", saveAsDialogHeight); + keyFile.set_integer("GUI", "ToolPanelWidth", toolPanelWidth); + keyFile.set_integer("GUI", "BrowserToolPanelWidth", browserToolPanelWidth); + keyFile.set_integer("GUI", "BrowserToolPanelHeight", browserToolPanelHeight); + keyFile.set_boolean("GUI", "BrowserToolPanelOpened", browserToolPanelOpened); + keyFile.set_boolean("GUI", "EditorFilmStripOpened", editorFilmStripOpened); + keyFile.set_boolean("GUI", "BrowserDirPanelOpened", browserDirPanelOpened); + keyFile.set_integer("GUI", "HistoryPanelWidth", historyPanelWidth); + keyFile.set_string("GUI", "FontFamily", fontFamily); + keyFile.set_integer("GUI", "FontSize", fontSize); + keyFile.set_string("GUI", "CPFontFamily", CPFontFamily); + keyFile.set_integer("GUI", "CPFontSize", CPFontSize); + keyFile.set_integer("GUI", "LastPreviewScale", lastScale); + keyFile.set_boolean("GUI", "LastShowAllExif", lastShowAllExif); + keyFile.set_integer("GUI", "PanAccelFactor", panAccelFactor); + keyFile.set_boolean("GUI", "RememberZoomAndPan", rememberZoomAndPan); + keyFile.set_integer("GUI", "LastCropSize", lastCropSize); + keyFile.set_boolean("GUI", "ShowHistory", showHistory); + keyFile.set_integer("GUI", "ShowFilePanelState", showFilePanelState); + keyFile.set_boolean("GUI", "ShowInfo", showInfo); + keyFile.set_boolean("GUI", "MainNBVertical", mainNBVertical); + keyFile.set_boolean("GUI", "ShowClippedHighlights", showClippedHighlights); + keyFile.set_boolean("GUI", "ShowClippedShadows", showClippedShadows); + keyFile.set_integer("GUI", "FrameColor", bgcolor); + keyFile.set_boolean("GUI", "ProcessingQueueEnbled", procQueueEnabled); Glib::ArrayHandle tpopen = tpOpen; keyFile.set_integer_list ("GUI", "ToolPanelsExpanded", tpopen); keyFile.set_boolean ("GUI", "ToolPanelsExpandedAutoSave", autoSaveTpOpen); @@ -1968,8 +2052,15 @@ void Options::saveToFile (Glib::ustring fname) keyFile.set_double_list ("GUI", "CutOverlayBrush", cutOverlayBrush); keyFile.set_double_list ("GUI", "NavGuideBrush", navGuideBrush); keyFile.set_integer ("GUI", "HistogramPosition", histogramPosition); + keyFile.set_boolean ("GUI", "HistogramRed", histogramRed); + keyFile.set_boolean ("GUI", "HistogramGreen", histogramGreen); + keyFile.set_boolean ("GUI", "HistogramBlue", histogramBlue); + keyFile.set_boolean ("GUI", "HistogramLuma", histogramLuma); + keyFile.set_boolean ("GUI", "HistogramChroma", histogramChroma); + keyFile.set_boolean ("GUI", "HistogramRAW", histogramRAW); keyFile.set_boolean ("GUI", "HistogramBar", histogramBar); - keyFile.set_boolean ("GUI", "HistogramFullMode", histogramFullMode); + keyFile.set_integer ("GUI", "HistogramHeight", histogramHeight); + keyFile.set_integer ("GUI", "HistogramDrawMode", histogramDrawMode); keyFile.set_integer ("GUI", "NavigatorRGBUnit", (int)navRGBUnit); keyFile.set_integer ("GUI", "NavigatorHSVUnit", (int)navHSVUnit); keyFile.set_boolean ("GUI", "ShowFilmStripToolBar", showFilmStripToolBar); @@ -1982,135 +2073,151 @@ void Options::saveToFile (Glib::ustring fname) //Glib::ArrayHandle crvopen = crvOpen; //keyFile.set_integer_list ("GUI", "CurvePanelsExpanded", crvopen); - keyFile.set_integer ("Crop Settings", "PPI", cropPPI); + keyFile.set_integer("Crop Settings", "PPI", cropPPI); keyFile.set_integer("Crop Settings", "GuidesMode", cropGuides); keyFile.set_boolean("Crop Settings", "AutoFit", cropAutoFit); - keyFile.set_string ("Color Management", "PrinterProfile", rtSettings.printerProfile); - keyFile.set_integer ("Color Management", "PrinterIntent", rtSettings.printerIntent); - keyFile.set_boolean ("Color Management", "PrinterBPC", rtSettings.printerBPC); + keyFile.set_string("Color Management", "PrinterProfile", rtSettings.printerProfile); + keyFile.set_integer("Color Management", "PrinterIntent", rtSettings.printerIntent); + keyFile.set_boolean("Color Management", "PrinterBPC", rtSettings.printerBPC); - keyFile.set_string ("Color Management", "ICCDirectory", rtSettings.iccDirectory); - keyFile.set_string ("Color Management", "MonitorProfile", rtSettings.monitorProfile); - keyFile.set_boolean ("Color Management", "AutoMonitorProfile", rtSettings.autoMonitorProfile); - keyFile.set_boolean ("Color Management", "Autocielab", rtSettings.autocielab); - keyFile.set_boolean ("Color Management", "RGBcurvesLumamode_Gamut", rtSettings.rgbcurveslumamode_gamut); - keyFile.set_integer ("Color Management", "Intent", rtSettings.monitorIntent); - keyFile.set_boolean ("Color Management", "MonitorBPC", rtSettings.monitorBPC); + keyFile.set_string("Color Management", "ICCDirectory", rtSettings.iccDirectory); + keyFile.set_string("Color Management", "MonitorProfile", rtSettings.monitorProfile); + keyFile.set_boolean("Color Management", "AutoMonitorProfile", rtSettings.autoMonitorProfile); + keyFile.set_boolean("Color Management", "Autocielab", rtSettings.autocielab); + keyFile.set_boolean("Color Management", "RGBcurvesLumamode_Gamut", rtSettings.rgbcurveslumamode_gamut); + keyFile.set_integer("Color Management", "Intent", rtSettings.monitorIntent); + keyFile.set_boolean("Color Management", "MonitorBPC", rtSettings.monitorBPC); //keyFile.set_integer ("Color Management", "view", rtSettings.viewingdevice); //keyFile.set_integer ("Color Management", "grey", rtSettings.viewingdevicegrey); // keyFile.set_integer ("Color Management", "greySc", rtSettings.viewinggreySc); - keyFile.set_string ("Color Management", "AdobeRGB", rtSettings.adobe); - keyFile.set_string ("Color Management", "ProPhoto", rtSettings.prophoto); - keyFile.set_string ("Color Management", "ProPhoto10", rtSettings.prophoto10); - keyFile.set_string ("Color Management", "WideGamut", rtSettings.widegamut); - keyFile.set_string ("Color Management", "sRGB", rtSettings.srgb); - keyFile.set_string ("Color Management", "sRGB10", rtSettings.srgb10); - keyFile.set_string ("Color Management", "Beta", rtSettings.beta); - keyFile.set_string ("Color Management", "Best", rtSettings.best); - keyFile.set_string ("Color Management", "Rec2020", rtSettings.rec2020); - keyFile.set_string ("Color Management", "Bruce", rtSettings.bruce); - keyFile.set_integer ("Color Management", "WhiteBalanceSpotSize", whiteBalanceSpotSize); - keyFile.set_boolean ("Color Management", "GamutICC", rtSettings.gamutICC); - keyFile.set_boolean ("Color Management", "GamutLch", rtSettings.gamutLch); - keyFile.set_integer ("Color Management", "ProtectRed", rtSettings.protectred); - keyFile.set_integer ("Color Management", "Amountchroma", rtSettings.amchroma); - keyFile.set_double ("Color Management", "ProtectRedH", rtSettings.protectredh); - keyFile.set_integer ("Color Management", "CRI", rtSettings.CRI_color); - keyFile.set_integer ("Color Management", "DenoiseLabgamma", rtSettings.denoiselabgamma); + keyFile.set_string("Color Management", "AdobeRGB", rtSettings.adobe); + keyFile.set_string("Color Management", "ProPhoto", rtSettings.prophoto); + keyFile.set_string("Color Management", "WideGamut", rtSettings.widegamut); + keyFile.set_string("Color Management", "sRGB", rtSettings.srgb); + keyFile.set_string("Color Management", "Beta", rtSettings.beta); + keyFile.set_string("Color Management", "Best", rtSettings.best); + keyFile.set_string("Color Management", "Rec2020", rtSettings.rec2020); + keyFile.set_string("Color Management", "Bruce", rtSettings.bruce); + keyFile.set_string("Color Management", "ACES-AP0", rtSettings.ACESp0); + keyFile.set_string("Color Management", "ACES-AP1", rtSettings.ACESp1); + keyFile.set_integer("Color Management", "WhiteBalanceSpotSize", whiteBalanceSpotSize); + keyFile.set_boolean("Color Management", "GamutICC", rtSettings.gamutICC); + keyFile.set_boolean("Color Management", "GamutLch", rtSettings.gamutLch); + keyFile.set_integer("Color Management", "ProtectRed", rtSettings.protectred); + keyFile.set_integer("Color Management", "Amountchroma", rtSettings.amchroma); + keyFile.set_double("Color Management", "ProtectRedH", rtSettings.protectredh); + keyFile.set_integer("Color Management", "CRI", rtSettings.CRI_color); + keyFile.set_integer("Color Management", "DenoiseLabgamma", rtSettings.denoiselabgamma); //keyFile.set_boolean ("Color Management", "Ciebadpixgauss", rtSettings.ciebadpixgauss); - keyFile.set_double ("Color Management", "CBDLlevel0", rtSettings.level0_cbdl); - keyFile.set_double ("Color Management", "CBDLlevel123", rtSettings.level123_cbdl); + keyFile.set_double("Color Management", "CBDLlevel0", rtSettings.level0_cbdl); + keyFile.set_double("Color Management", "CBDLlevel123", rtSettings.level123_cbdl); //keyFile.set_double ("Color Management", "Colortoningab", rtSettings.colortoningab); //keyFile.set_double ("Color Management", "Decaction", rtSettings.decaction); - keyFile.set_string ("Color Management", "ClutsDirectory", clutsDir); + keyFile.set_string("Color Management", "ClutsDirectory", clutsDir); + + keyFile.set_string("ICC Profile Creator", "PimariesPreset", ICCPC_primariesPreset); + keyFile.set_double("ICC Profile Creator", "RedPrimaryX", ICCPC_redPrimaryX); + keyFile.set_double("ICC Profile Creator", "RedPrimaryY", ICCPC_redPrimaryY); + keyFile.set_double("ICC Profile Creator", "GreenPrimaryX", ICCPC_greenPrimaryX); + keyFile.set_double("ICC Profile Creator", "GreenPrimaryY", ICCPC_greenPrimaryY); + keyFile.set_double("ICC Profile Creator", "BluePrimaryX", ICCPC_bluePrimaryX); + keyFile.set_double("ICC Profile Creator", "BluePrimaryY", ICCPC_bluePrimaryY); + keyFile.set_string("ICC Profile Creator", "GammaPreset", ICCPC_gammaPreset); + keyFile.set_double("ICC Profile Creator", "Gamma", ICCPC_gamma); + keyFile.set_double("ICC Profile Creator", "Slope", ICCPC_slope); + keyFile.set_string("ICC Profile Creator", "ProfileVersion", ICCPC_profileVersion); + keyFile.set_string("ICC Profile Creator", "Illuminant", ICCPC_illuminant); + keyFile.set_string("ICC Profile Creator", "Description", ICCPC_description); + keyFile.set_string("ICC Profile Creator", "Copyright", ICCPC_copyright); + keyFile.set_boolean("ICC Profile Creator", "AppendParamsToDesc", ICCPC_appendParamsToDesc); Glib::ArrayHandle bab = baBehav; - keyFile.set_integer_list ("Batch Processing", "AdjusterBehavior", bab); + keyFile.set_integer_list("Batch Processing", "AdjusterBehavior", bab); - keyFile.set_boolean ("Sounds", "Enable", sndEnable); - keyFile.set_string ("Sounds", "BatchQueueDone", sndBatchQueueDone); - keyFile.set_string ("Sounds", "LngEditProcDone", sndLngEditProcDone); - keyFile.set_double ("Sounds", "LngEditProcDoneSecs", sndLngEditProcDoneSecs); + keyFile.set_boolean("Sounds", "Enable", sndEnable); + keyFile.set_string("Sounds", "BatchQueueDone", sndBatchQueueDone); + keyFile.set_string("Sounds", "LngEditProcDone", sndLngEditProcDone); + keyFile.set_double("Sounds", "LngEditProcDoneSecs", sndLngEditProcDoneSecs); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_sharpening", fastexport_bypass_sharpening); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_sharpenEdge", fastexport_bypass_sharpenEdge); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_sharpenMicro", fastexport_bypass_sharpenMicro); + keyFile.set_boolean("Fast Export", "fastexport_bypass_sharpening", fastexport_bypass_sharpening); + keyFile.set_boolean("Fast Export", "fastexport_bypass_sharpenEdge", fastexport_bypass_sharpenEdge); + keyFile.set_boolean("Fast Export", "fastexport_bypass_sharpenMicro", fastexport_bypass_sharpenMicro); //keyFile.set_boolean ("Fast Export", "fastexport_bypass_lumaDenoise" , fastexport_bypass_lumaDenoise); //keyFile.set_boolean ("Fast Export", "fastexport_bypass_colorDenoise" , fastexport_bypass_colorDenoise); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_defringe", fastexport_bypass_defringe); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_dirpyrDenoise", fastexport_bypass_dirpyrDenoise); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_dirpyrequalizer", fastexport_bypass_dirpyrequalizer); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_wavelet", fastexport_bypass_wavelet); - keyFile.set_string ("Fast Export", "fastexport_raw_bayer_method", fastexport_raw_bayer_method); + keyFile.set_boolean("Fast Export", "fastexport_bypass_defringe", fastexport_bypass_defringe); + keyFile.set_boolean("Fast Export", "fastexport_bypass_dirpyrDenoise", fastexport_bypass_dirpyrDenoise); + keyFile.set_boolean("Fast Export", "fastexport_bypass_dirpyrequalizer", fastexport_bypass_dirpyrequalizer); + keyFile.set_boolean("Fast Export", "fastexport_bypass_wavelet", fastexport_bypass_wavelet); + keyFile.set_string("Fast Export", "fastexport_raw_bayer_method", fastexport_raw_bayer_method); //keyFile.set_boolean ("Fast Export", "fastexport_bypass_bayer_raw_all_enhance" , fastexport_bypass_raw_bayer_all_enhance); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_bayer_dcb_iterations", fastexport_bypass_raw_bayer_dcb_iterations); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_bayer_dcb_enhance", fastexport_bypass_raw_bayer_dcb_enhance); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_bayer_lmmse_iterations", fastexport_bypass_raw_bayer_lmmse_iterations); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_bayer_linenoise", fastexport_bypass_raw_bayer_linenoise ); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_bayer_greenthresh", fastexport_bypass_raw_bayer_greenthresh ); - keyFile.set_string ("Fast Export", "fastexport_raw_xtrans_method", fastexport_raw_xtrans_method ); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_ccSteps", fastexport_bypass_raw_ccSteps ); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_ca", fastexport_bypass_raw_ca ); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_df", fastexport_bypass_raw_df ); - keyFile.set_boolean ("Fast Export", "fastexport_bypass_raw_ff", fastexport_bypass_raw_ff ); - keyFile.set_string ("Fast Export", "fastexport_icm_input", fastexport_icm_input ); - keyFile.set_string ("Fast Export", "fastexport_icm_working", fastexport_icm_working ); - keyFile.set_string ("Fast Export", "fastexport_icm_output", fastexport_icm_output ); - keyFile.set_integer ("Fast Export", "fastexport_icm_output_intent", fastexport_icm_outputIntent ); - keyFile.set_boolean ("Fast Export", "fastexport_icm_output_bpc", fastexport_icm_outputBPC ); - keyFile.set_string ("Fast Export", "fastexport_icm_gamma", fastexport_icm_gamma ); - keyFile.set_boolean ("Fast Export", "fastexport_resize_enabled", fastexport_resize_enabled ); - keyFile.set_double ("Fast Export", "fastexport_resize_scale", fastexport_resize_scale ); - keyFile.set_string ("Fast Export", "fastexport_resize_appliesTo", fastexport_resize_appliesTo ); - keyFile.set_string ("Fast Export", "fastexport_resize_method", fastexport_resize_method ); - keyFile.set_integer ("Fast Export", "fastexport_resize_dataspec", fastexport_resize_dataspec ); - keyFile.set_integer ("Fast Export", "fastexport_resize_width", fastexport_resize_width ); - keyFile.set_integer ("Fast Export", "fastexport_resize_height", fastexport_resize_height ); - keyFile.set_integer ("Fast Export", "fastexport_use_fast_pipeline", fastexport_use_fast_pipeline ); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_bayer_dcb_iterations", fastexport_bypass_raw_bayer_dcb_iterations); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_bayer_dcb_enhance", fastexport_bypass_raw_bayer_dcb_enhance); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_bayer_lmmse_iterations", fastexport_bypass_raw_bayer_lmmse_iterations); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_bayer_linenoise", fastexport_bypass_raw_bayer_linenoise); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_bayer_greenthresh", fastexport_bypass_raw_bayer_greenthresh); + keyFile.set_string("Fast Export", "fastexport_raw_xtrans_method", fastexport_raw_xtrans_method); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_ccSteps", fastexport_bypass_raw_ccSteps); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_ca", fastexport_bypass_raw_ca); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_df", fastexport_bypass_raw_df); + keyFile.set_boolean("Fast Export", "fastexport_bypass_raw_ff", fastexport_bypass_raw_ff); + keyFile.set_string("Fast Export", "fastexport_icm_input", fastexport_icm_input_profile); + keyFile.set_string("Fast Export", "fastexport_icm_working", fastexport_icm_working_profile); + keyFile.set_string("Fast Export", "fastexport_icm_output", fastexport_icm_output_profile); + keyFile.set_integer("Fast Export", "fastexport_icm_output_intent", fastexport_icm_outputIntent); + keyFile.set_boolean("Fast Export", "fastexport_icm_output_bpc", fastexport_icm_outputBPC); + keyFile.set_boolean("Fast Export", "fastexport_resize_enabled", fastexport_resize_enabled); + keyFile.set_double("Fast Export", "fastexport_resize_scale", fastexport_resize_scale); + keyFile.set_string("Fast Export", "fastexport_resize_appliesTo", fastexport_resize_appliesTo); + keyFile.set_string("Fast Export", "fastexport_resize_method", fastexport_resize_method); + keyFile.set_integer("Fast Export", "fastexport_resize_dataspec", fastexport_resize_dataspec); + keyFile.set_integer("Fast Export", "fastexport_resize_width", fastexport_resize_width); + keyFile.set_integer("Fast Export", "fastexport_resize_height", fastexport_resize_height); + keyFile.set_integer("Fast Export", "fastexport_use_fast_pipeline", fastexport_use_fast_pipeline); - keyFile.set_string ("Dialogs", "LastIccDir", lastIccDir); - keyFile.set_string ("Dialogs", "LastDarkframeDir", lastDarkframeDir); - keyFile.set_string ("Dialogs", "LastFlatfieldDir", lastFlatfieldDir); - keyFile.set_string ("Dialogs", "LastRgbCurvesDir", lastRgbCurvesDir); - keyFile.set_string ("Dialogs", "LastLabCurvesDir", lastLabCurvesDir); - keyFile.set_string ("Dialogs", "LastRetinexDir", lastRetinexDir); - keyFile.set_string ("Dialogs", "LastDenoiseCurvesDir", lastDenoiseCurvesDir); - keyFile.set_string ("Dialogs", "LastWaveletCurvesDir", lastWaveletCurvesDir); + keyFile.set_string("Dialogs", "LastIccDir", lastIccDir); + keyFile.set_string("Dialogs", "LastDarkframeDir", lastDarkframeDir); + keyFile.set_string("Dialogs", "LastFlatfieldDir", lastFlatfieldDir); + keyFile.set_string("Dialogs", "LastRgbCurvesDir", lastRgbCurvesDir); + keyFile.set_string("Dialogs", "LastLabCurvesDir", lastLabCurvesDir); + keyFile.set_string("Dialogs", "LastRetinexDir", lastRetinexDir); + keyFile.set_string("Dialogs", "LastDenoiseCurvesDir", lastDenoiseCurvesDir); + keyFile.set_string("Dialogs", "LastWaveletCurvesDir", lastWaveletCurvesDir); keyFile.set_string ("Dialogs", "LastlocalCurvesDir", lastlocalCurvesDir); - keyFile.set_string ("Dialogs", "LastPFCurvesDir", lastPFCurvesDir); - keyFile.set_string ("Dialogs", "LastHsvCurvesDir", lastHsvCurvesDir); - keyFile.set_string ("Dialogs", "LastBWCurvesDir", lastBWCurvesDir); - keyFile.set_string ("Dialogs", "LastToneCurvesDir", lastToneCurvesDir); - keyFile.set_string ("Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir); - keyFile.set_string ("Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); - keyFile.set_string ("Dialogs", "LastLensProfileDir", lastLensProfileDir); - keyFile.set_boolean ("Dialogs", "GimpPluginShowInfoDialog", gimpPluginShowInfoDialog); + keyFile.set_string("Dialogs", "LastPFCurvesDir", lastPFCurvesDir); + keyFile.set_string("Dialogs", "LastHsvCurvesDir", lastHsvCurvesDir); + keyFile.set_string("Dialogs", "LastBWCurvesDir", lastBWCurvesDir); + keyFile.set_string("Dialogs", "LastToneCurvesDir", lastToneCurvesDir); + keyFile.set_string("Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir); + keyFile.set_string("Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); + keyFile.set_string("Dialogs", "LastLensProfileDir", lastLensProfileDir); + keyFile.set_string("Dialogs", "LastICCProfCreatorDir", lastICCProfCreatorDir); + keyFile.set_boolean("Dialogs", "GimpPluginShowInfoDialog", gimpPluginShowInfoDialog); - keyFile.set_string ("Lensfun", "DBDirectory", rtSettings.lensfunDbDirectory); + keyFile.set_string("Lensfun", "DBDirectory", rtSettings.lensfunDbDirectory); - keyData = keyFile.to_data (); + keyData = keyFile.to_data(); } catch (Glib::KeyFileError &e) { - throw Error (e.what()); + throw Error(e.what()); } - FILE *f = g_fopen (fname.c_str (), "wt"); + FILE *f = g_fopen(fname.c_str(), "wt"); if (f == nullptr) { std::cout << "Warning! Unable to save your preferences to: " << fname << std::endl; - Glib::ustring msg_ = Glib::ustring::compose (M ("MAIN_MSG_WRITEFAILED"), fname.c_str()); - throw Error (msg_); + Glib::ustring msg_ = Glib::ustring::compose(M("MAIN_MSG_WRITEFAILED"), fname.c_str()); + throw Error(msg_); } else { - fprintf (f, "%s", keyData.c_str ()); - fclose (f); + fprintf(f, "%s", keyData.c_str()); + fclose(f); } } -void Options::load (bool lightweight) +void Options::load(bool lightweight) { // Find the application data path @@ -2118,89 +2225,91 @@ void Options::load (bool lightweight) const gchar* path; Glib::ustring dPath; - path = g_getenv ("RT_SETTINGS"); + path = g_getenv("RT_SETTINGS"); if (path != nullptr) { - rtdir = Glib::ustring (path); + rtdir = Glib::ustring(path); - if (!Glib::path_is_absolute (rtdir)) { - Glib::ustring msg = Glib::ustring::compose ("Settings path %1 is not absolute", rtdir); - throw Error (msg); + if (!Glib::path_is_absolute(rtdir)) { + Glib::ustring msg = Glib::ustring::compose("Settings path %1 is not absolute", rtdir); + throw Error(msg); } } else { #ifdef WIN32 WCHAR pathW[MAX_PATH] = {0}; - if (SHGetSpecialFolderPathW (NULL, pathW, CSIDL_LOCAL_APPDATA, false)) { + if (SHGetSpecialFolderPathW(NULL, pathW, CSIDL_LOCAL_APPDATA, false)) { char pathA[MAX_PATH]; - WideCharToMultiByte (CP_UTF8, 0, pathW, -1, pathA, MAX_PATH, 0, 0); - rtdir = Glib::build_filename (Glib::ustring (pathA), Glib::ustring (CACHEFOLDERNAME)); + WideCharToMultiByte(CP_UTF8, 0, pathW, -1, pathA, MAX_PATH, 0, 0); + rtdir = Glib::build_filename(Glib::ustring(pathA), Glib::ustring(CACHEFOLDERNAME)); } #else - rtdir = Glib::build_filename (Glib::ustring (g_get_user_config_dir ()), Glib::ustring (CACHEFOLDERNAME)); + rtdir = Glib::build_filename(Glib::ustring(g_get_user_config_dir()), Glib::ustring(CACHEFOLDERNAME)); #endif } if (options.rtSettings.verbose) { - printf ("Settings directory (rtdir) = %s\n", rtdir.c_str()); + printf("Settings directory (rtdir) = %s\n", rtdir.c_str()); } // Set the cache folder in RT's base folder - cacheBaseDir = Glib::build_filename (argv0, "mycache"); + cacheBaseDir = Glib::build_filename(argv0, "mycache"); // Read the global option file (the one located in the application's base folder) try { - options.readFromFile (Glib::build_filename (argv0, "options")); + options.readFromFile(Glib::build_filename(argv0, "options")); } catch (Options::Error &) { // ignore errors here } if (!options.multiUser && path == nullptr) { - rtdir = Glib::build_filename (argv0, "mysettings"); + rtdir = Glib::build_filename(argv0, "mysettings"); } // Modify the path of the cache folder to the one provided in RT_CACHE environment variable - path = g_getenv ("RT_CACHE"); + path = g_getenv("RT_CACHE"); if (path != nullptr) { - cacheBaseDir = Glib::ustring (path); + cacheBaseDir = Glib::ustring(path); - if (!Glib::path_is_absolute (cacheBaseDir)) { - Glib::ustring msg = Glib::ustring::compose ("Cache base dir %1 is not absolute", cacheBaseDir); - throw Error (msg); + if (!Glib::path_is_absolute(cacheBaseDir)) { + Glib::ustring msg = Glib::ustring::compose("Cache base dir %1 is not absolute", cacheBaseDir); + throw Error(msg); } } // No environment variable provided, so falling back to the multi user mode, if enabled else if (options.multiUser) { #ifdef WIN32 - cacheBaseDir = Glib::build_filename (rtdir, "cache"); + cacheBaseDir = Glib::build_filename(rtdir, "cache"); #else - cacheBaseDir = Glib::build_filename (Glib::ustring (g_get_user_cache_dir()), Glib::ustring (CACHEFOLDERNAME)); + cacheBaseDir = Glib::build_filename(Glib::ustring(g_get_user_cache_dir()), Glib::ustring(CACHEFOLDERNAME)); #endif } // Read the user option file (the one located somewhere in the user's home folder) // Those values supersets those of the global option file try { - options.readFromFile (Glib::build_filename (rtdir, "options")); + options.readFromFile(Glib::build_filename(rtdir, "options")); } catch (Options::Error &) { // If the local option file does not exist or is broken, and the local cache folder does not exist, recreate it - if (!g_mkdir_with_parents (rtdir.c_str (), 511)) { + if (!g_mkdir_with_parents(rtdir.c_str(), 511)) { // Save the option file - options.saveToFile (Glib::build_filename (rtdir, "options")); + options.saveToFile(Glib::build_filename(rtdir, "options")); } } #ifdef __APPLE__ + if (options.multiUser) { // make sure .local/share exists on OS X so we don't get problems with recently-used.xbel - g_mkdir_with_parents (g_get_user_data_dir(), 511); + g_mkdir_with_parents(g_get_user_data_dir(), 511); } + #endif if (options.rtSettings.verbose) { - printf ("Cache directory (cacheBaseDir) = %s\n", cacheBaseDir.c_str()); + printf("Cache directory (cacheBaseDir) = %s\n", cacheBaseDir.c_str()); } // Update profile's path and recreate it if necessary @@ -2210,7 +2319,7 @@ void Options::load (bool lightweight) if (options.defProfRaw.empty()) { options.defProfRaw = DEFPROFILE_RAW; } else { - if (!options.findProfilePath (options.defProfRaw).empty()) { + if (!options.findProfilePath(options.defProfRaw).empty()) { if (options.rtSettings.verbose) { std::cout << "Default profile for raw images \"" << options.defProfRaw << "\" found" << std::endl; } @@ -2219,7 +2328,8 @@ void Options::load (bool lightweight) options.setDefProfRawMissing(true); Glib::ustring dpr(DEFPROFILE_RAW); - if (options.findProfilePath (dpr).empty()) { + + if (options.findProfilePath(dpr).empty()) { options.setBundledDefProfRawMissing(true); } } else { @@ -2231,7 +2341,7 @@ void Options::load (bool lightweight) if (options.defProfImg.empty()) { options.defProfImg = DEFPROFILE_IMG; } else { - if (!options.findProfilePath (options.defProfImg).empty()) { + if (!options.findProfilePath(options.defProfImg).empty()) { if (options.rtSettings.verbose) { std::cout << "Default profile for non-raw images \"" << options.defProfImg << "\" found" << std::endl; } @@ -2240,7 +2350,8 @@ void Options::load (bool lightweight) options.setDefProfImgMissing(true); Glib::ustring dpi(DEFPROFILE_IMG); - if (options.findProfilePath (dpi).empty()) { + + if (options.findProfilePath(dpi).empty()) { options.setBundledDefProfImgMissing(true); } } else { @@ -2264,7 +2375,7 @@ void Options::load (bool lightweight) // out which are the parent translations. Furthermore, there must be a file for each locale () -- you cannot have // 'French (CA)' unless there is a file 'French'. - Glib::ustring defaultTranslation = Glib::build_filename (argv0, "languages", "default"); + Glib::ustring defaultTranslation = Glib::build_filename(argv0, "languages", "default"); Glib::ustring languageTranslation = ""; Glib::ustring localeTranslation = ""; @@ -2273,34 +2384,34 @@ void Options::load (bool lightweight) } if (!options.language.empty()) { - std::vector langPortions = Glib::Regex::split_simple (" ", options.language); + std::vector langPortions = Glib::Regex::split_simple(" ", options.language); if (langPortions.size() >= 1) { - languageTranslation = Glib::build_filename (argv0, "languages", langPortions.at (0)); + languageTranslation = Glib::build_filename(argv0, "languages", langPortions.at(0)); } if (langPortions.size() >= 2) { - localeTranslation = Glib::build_filename (argv0, "languages", options.language); + localeTranslation = Glib::build_filename(argv0, "languages", options.language); } } - langMgr.load (options.language, {localeTranslation, languageTranslation, defaultTranslation}); + langMgr.load(options.language, {localeTranslation, languageTranslation, defaultTranslation}); - rtengine::init (&options.rtSettings, argv0, rtdir, !lightweight); + rtengine::init(&options.rtSettings, argv0, rtdir, !lightweight); } -void Options::save () +void Options::save() { - options.saveToFile (Glib::build_filename (rtdir, "options")); + options.saveToFile(Glib::build_filename(rtdir, "options")); } /* * return true if ext is a parsed extension (retained or not) */ -bool Options::is_parse_extention (Glib::ustring fname) +bool Options::is_parse_extention(Glib::ustring fname) { - Glib::ustring ext = getExtension (fname).lowercase(); + Glib::ustring ext = getExtension(fname).lowercase(); if (!ext.empty()) { // there is an extension to the filename @@ -2319,10 +2430,10 @@ bool Options::is_parse_extention (Glib::ustring fname) /* * return true if fname ends with one of the retained image file extensions */ -bool Options::has_retained_extention (Glib::ustring fname) +bool Options::has_retained_extention(Glib::ustring fname) { - Glib::ustring ext = getExtension (fname).lowercase(); + Glib::ustring ext = getExtension(fname).lowercase(); if (!ext.empty()) { // there is an extension to the filename @@ -2341,7 +2452,7 @@ bool Options::has_retained_extention (Glib::ustring fname) /* * return true if ext is an enabled extension */ -bool Options::is_extention_enabled (Glib::ustring ext) +bool Options::is_extention_enabled(Glib::ustring ext) { for (int j = 0; j < (int)parseExtensions.size(); j++) if (parseExtensions[j].casefold() == ext.casefold()) { @@ -2369,7 +2480,7 @@ bool Options::is_defProfImgMissing() { return defProfError & rtengine::toUnderlying(DefProfError::defProfImgMissing); } -void Options::setDefProfRawMissing (bool value) +void Options::setDefProfRawMissing(bool value) { if (value) { defProfError |= rtengine::toUnderlying(DefProfError::defProfRawMissing); @@ -2377,7 +2488,7 @@ void Options::setDefProfRawMissing (bool value) defProfError &= ~rtengine::toUnderlying(DefProfError::defProfRawMissing); } } -void Options::setDefProfImgMissing (bool value) +void Options::setDefProfImgMissing(bool value) { if (value) { defProfError |= rtengine::toUnderlying(DefProfError::defProfImgMissing); @@ -2393,7 +2504,7 @@ bool Options::is_bundledDefProfImgMissing() { return defProfError & rtengine::toUnderlying(DefProfError::bundledDefProfImgMissing); } -void Options::setBundledDefProfRawMissing (bool value) +void Options::setBundledDefProfRawMissing(bool value) { if (value) { defProfError |= rtengine::toUnderlying(DefProfError::bundledDefProfRawMissing); @@ -2401,7 +2512,7 @@ void Options::setBundledDefProfRawMissing (bool value) defProfError &= ~rtengine::toUnderlying(DefProfError::bundledDefProfRawMissing); } } -void Options::setBundledDefProfImgMissing (bool value) +void Options::setBundledDefProfImgMissing(bool value) { if (value) { defProfError |= rtengine::toUnderlying(DefProfError::bundledDefProfImgMissing); @@ -2409,4 +2520,9 @@ void Options::setBundledDefProfImgMissing (bool value) defProfError &= ~rtengine::toUnderlying(DefProfError::bundledDefProfImgMissing); } } - +Glib::ustring Options::getICCProfileCopyright() +{ + Glib::Date now; + now.set_time_current(); + return Glib::ustring::compose("Copyright RawTherapee %1, CC0", now.get_year()); +} diff --git a/rtgui/options.h b/rtgui/options.h index f68cde353..5e5bce2fe 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -50,6 +50,7 @@ struct SaveFormat { jpegQuality (90), jpegSubSamp (2), tiffBits (8), + tiffFloat(false), tiffUncompressed (true), saveParams (true) { @@ -60,6 +61,7 @@ struct SaveFormat { int jpegQuality; int jpegSubSamp; // 1=best compression, 3=best quality int tiffBits; + bool tiffFloat; bool tiffUncompressed; bool saveParams; }; @@ -254,9 +256,11 @@ public: bool sndEnable; int histogramPosition; // 0=disabled, 1=left pane, 2=right pane - //int histogramWorking; // 0=disabled, 1=left pane, 2=right pane + bool histogramRed, histogramGreen, histogramBlue; + bool histogramLuma, histogramChroma, histogramRAW; bool histogramBar; - bool histogramFullMode; + int histogramHeight; + int histogramDrawMode; bool FileBrowserToolbarSingleRow; bool hideTPVScrollbar; bool UseIconNoText; @@ -287,6 +291,23 @@ public: bool menuGroupProfileOperations; bool menuGroupExtProg; + // ICC Profile Creator + Glib::ustring ICCPC_primariesPreset; + double ICCPC_redPrimaryX; + double ICCPC_redPrimaryY; + double ICCPC_greenPrimaryX; + double ICCPC_greenPrimaryY; + double ICCPC_bluePrimaryX; + double ICCPC_bluePrimaryY; + Glib::ustring ICCPC_gammaPreset; + double ICCPC_gamma; + double ICCPC_slope; + Glib::ustring ICCPC_profileVersion; + Glib::ustring ICCPC_illuminant; + Glib::ustring ICCPC_description; + Glib::ustring ICCPC_copyright; + bool ICCPC_appendParamsToDesc; + // fast export options bool fastexport_bypass_sharpening; bool fastexport_bypass_sharpenEdge; @@ -309,12 +330,12 @@ public: bool fastexport_bypass_raw_ca; bool fastexport_bypass_raw_df; bool fastexport_bypass_raw_ff; - Glib::ustring fastexport_icm_input; - Glib::ustring fastexport_icm_working; - Glib::ustring fastexport_icm_output; + Glib::ustring fastexport_icm_input_profile; + Glib::ustring fastexport_icm_working_profile; + Glib::ustring fastexport_icm_output_profile; rtengine::RenderingIntent fastexport_icm_outputIntent; bool fastexport_icm_outputBPC; - Glib::ustring fastexport_icm_gamma; + Glib::ustring fastexport_icm_custom_output_profile; bool fastexport_resize_enabled; double fastexport_resize_scale; Glib::ustring fastexport_resize_appliesTo; @@ -342,6 +363,7 @@ public: Glib::ustring lastProfilingReferenceDir; Glib::ustring lastBWCurvesDir; Glib::ustring lastLensProfileDir; + Glib::ustring lastICCProfCreatorDir; bool gimpPluginShowInfoDialog; size_t maxRecentFolders; // max. number of recent folders stored in options file @@ -374,6 +396,7 @@ public: void setBundledDefProfRawMissing (bool value); void setDefProfImgMissing (bool value); void setBundledDefProfImgMissing (bool value); + static Glib::ustring getICCProfileCopyright(); }; extern Options options; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index d6ed3f6da..a9e743e52 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -50,6 +50,7 @@ void ParamsEdited::set(bool v) toneCurve.hrenabled = v; toneCurve.method = v; toneCurve.histmatching = v; + toneCurve.fromHistMatching = v; toneCurve.clampOOG = v; retinex.cdcurve = v; retinex.mapcurve = v; @@ -492,21 +493,22 @@ void ParamsEdited::set(bool v) resize.width = v; resize.height = v; resize.enabled = v; - icm.input = v; + resize.allowUpscaling = v; + icm.inputProfile = v; icm.toneCurve = v; icm.applyLookTable = v; icm.applyBaselineExposureOffset = v; icm.applyHueSatMap = v; icm.dcpIlluminant = v; - icm.working = v; - icm.output = v; + icm.workingProfile = v; + icm.outputProfile = v; icm.outputIntent = v; - icm.outputBPC = v; - icm.gamma = v; - icm.freegamma = v; - icm.gampos = v; - icm.slpos = v; + icm.outputBPC = v; + icm.workingTRCGamma = v; + icm.workingTRCSlope = v; + icm.workingTRC = v; raw.bayersensor.method = v; + raw.bayersensor.border = v; raw.bayersensor.imageNum = v; raw.bayersensor.ccSteps = v; raw.bayersensor.exBlack0 = v; @@ -544,6 +546,8 @@ void ParamsEdited::set(bool v) raw.xtranssensor.exBlackGreen = v; raw.xtranssensor.exBlackBlue = v; raw.ca_autocorrect = v; + raw.ca_avoidcolourshift = v; + raw.caautoiterations = v; raw.cablue = v; raw.cared = v; raw.hotPixelFilter = v; @@ -674,6 +678,8 @@ void ParamsEdited::set(bool v) filmSimulation.enabled = v; filmSimulation.clutFilename = v; filmSimulation.strength = v; + softlight.enabled = v; + softlight.strength = v; metadata.mode = v; exif = v; @@ -713,6 +719,7 @@ void ParamsEdited::initFrom(const std::vector& toneCurve.hrenabled = toneCurve.hrenabled && p.toneCurve.hrenabled == other.toneCurve.hrenabled; toneCurve.method = toneCurve.method && p.toneCurve.method == other.toneCurve.method; toneCurve.histmatching = toneCurve.histmatching && p.toneCurve.histmatching == other.toneCurve.histmatching; + toneCurve.fromHistMatching = toneCurve.fromHistMatching && p.toneCurve.fromHistMatching == other.toneCurve.fromHistMatching; toneCurve.clampOOG = toneCurve.clampOOG && p.toneCurve.clampOOG == other.toneCurve.clampOOG; retinex.cdcurve = retinex.cdcurve && p.retinex.cdcurve == other.retinex.cdcurve; retinex.mapcurve = retinex.mapcurve && p.retinex.mapcurve == other.retinex.mapcurve; @@ -1158,21 +1165,22 @@ void ParamsEdited::initFrom(const std::vector& resize.width = resize.width && p.resize.width == other.resize.width; resize.height = resize.height && p.resize.height == other.resize.height; resize.enabled = resize.enabled && p.resize.enabled == other.resize.enabled; - icm.input = icm.input && p.icm.input == other.icm.input; + resize.allowUpscaling = resize.allowUpscaling && p.resize.allowUpscaling == other.resize.allowUpscaling; + icm.inputProfile = icm.inputProfile && p.icm.inputProfile == other.icm.inputProfile; icm.toneCurve = icm.toneCurve && p.icm.toneCurve == other.icm.toneCurve; icm.applyLookTable = icm.applyLookTable && p.icm.applyLookTable == other.icm.applyLookTable; icm.applyBaselineExposureOffset = icm.applyBaselineExposureOffset && p.icm.applyBaselineExposureOffset == other.icm.applyBaselineExposureOffset; icm.applyHueSatMap = icm.applyHueSatMap && p.icm.applyHueSatMap == other.icm.applyHueSatMap; icm.dcpIlluminant = icm.dcpIlluminant && p.icm.dcpIlluminant == other.icm.dcpIlluminant; - icm.working = icm.working && p.icm.working == other.icm.working; - icm.output = icm.output && p.icm.output == other.icm.output; + icm.workingProfile = icm.workingProfile && p.icm.workingProfile == other.icm.workingProfile; + icm.outputProfile = icm.outputProfile && p.icm.outputProfile == other.icm.outputProfile; icm.outputIntent = icm.outputIntent && p.icm.outputIntent == other.icm.outputIntent; icm.outputBPC = icm.outputBPC && p.icm.outputBPC == other.icm.outputBPC ; - icm.gamma = icm.gamma && p.icm.gamma == other.icm.gamma; - icm.freegamma = icm.freegamma && p.icm.freegamma == other.icm.freegamma; - icm.gampos = icm.gampos && p.icm.gampos == other.icm.gampos; - icm.slpos = icm.slpos && p.icm.slpos == other.icm.slpos; + icm.workingTRCGamma = icm.workingTRCGamma && p.icm.workingTRCGamma == other.icm.workingTRCGamma; + icm.workingTRCSlope = icm.workingTRCSlope && p.icm.workingTRCSlope == other.icm.workingTRCSlope; + icm.workingTRC = icm.workingTRC && p.icm.workingTRC == other.icm.workingTRC; raw.bayersensor.method = raw.bayersensor.method && p.raw.bayersensor.method == other.raw.bayersensor.method; + raw.bayersensor.border = raw.bayersensor.border && p.raw.bayersensor.border == other.raw.bayersensor.border; raw.bayersensor.imageNum = raw.bayersensor.imageNum && p.raw.bayersensor.imageNum == other.raw.bayersensor.imageNum; raw.bayersensor.ccSteps = raw.bayersensor.ccSteps && p.raw.bayersensor.ccSteps == other.raw.bayersensor.ccSteps; raw.bayersensor.exBlack0 = raw.bayersensor.exBlack0 && p.raw.bayersensor.black0 == other.raw.bayersensor.black0; @@ -1210,6 +1218,8 @@ void ParamsEdited::initFrom(const std::vector& raw.xtranssensor.exBlackGreen = raw.xtranssensor.exBlackGreen && p.raw.xtranssensor.blackgreen == other.raw.xtranssensor.blackgreen; raw.xtranssensor.exBlackBlue = raw.xtranssensor.exBlackBlue && p.raw.xtranssensor.blackblue == other.raw.xtranssensor.blackblue; raw.ca_autocorrect = raw.ca_autocorrect && p.raw.ca_autocorrect == other.raw.ca_autocorrect; + raw.ca_avoidcolourshift = raw.ca_avoidcolourshift && p.raw.ca_avoidcolourshift == other.raw.ca_avoidcolourshift; + raw.caautoiterations = raw.caautoiterations && p.raw.caautoiterations == other.raw.caautoiterations; raw.cared = raw.cared && p.raw.cared == other.raw.cared; raw.cablue = raw.cablue && p.raw.cablue == other.raw.cablue; raw.hotPixelFilter = raw.hotPixelFilter && p.raw.hotPixelFilter == other.raw.hotPixelFilter; @@ -1335,6 +1345,8 @@ void ParamsEdited::initFrom(const std::vector& filmSimulation.enabled = filmSimulation.enabled && p.filmSimulation.enabled == other.filmSimulation.enabled; filmSimulation.clutFilename = filmSimulation.clutFilename && p.filmSimulation.clutFilename == other.filmSimulation.clutFilename; filmSimulation.strength = filmSimulation.strength && p.filmSimulation.strength == other.filmSimulation.strength; + softlight.enabled = softlight.enabled && p.softlight.enabled == other.softlight.enabled; + softlight.strength = softlight.strength && p.softlight.strength == other.softlight.strength; metadata.mode = metadata.mode && p.metadata.mode == other.metadata.mode; // How the hell can we handle that??? @@ -1416,6 +1428,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.toneCurve.histmatching = mods.toneCurve.histmatching; } + if (toneCurve.fromHistMatching) { + toEdit.toneCurve.fromHistMatching = mods.toneCurve.fromHistMatching; + } + if (toneCurve.clampOOG) { toEdit.toneCurve.clampOOG = mods.toneCurve.clampOOG; } @@ -3043,8 +3059,12 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.resize.enabled = mods.resize.enabled; } - if (icm.input) { - toEdit.icm.input = mods.icm.input; + if (resize.allowUpscaling) { + toEdit.resize.allowUpscaling = mods.resize.allowUpscaling; + } + + if (icm.inputProfile) { + toEdit.icm.inputProfile = mods.icm.inputProfile; } if (icm.toneCurve) { @@ -3067,12 +3087,12 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.icm.dcpIlluminant = mods.icm.dcpIlluminant; } - if (icm.working) { - toEdit.icm.working = mods.icm.working; + if (icm.workingProfile) { + toEdit.icm.workingProfile = mods.icm.workingProfile; } - if (icm.output) { - toEdit.icm.output = mods.icm.output; + if (icm.outputProfile) { + toEdit.icm.outputProfile = mods.icm.outputProfile; } if (icm.outputIntent) { @@ -3083,26 +3103,26 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.icm.outputBPC = mods.icm.outputBPC; } - if (icm.gampos) { - toEdit.icm.gampos = dontforceSet && options.baBehav[ADDSET_FREE_OUPUT_GAMMA] ? toEdit.icm.gampos + mods.icm.gampos : mods.icm.gampos; + if (icm.workingTRCGamma) { + toEdit.icm.workingTRCGamma = mods.icm.workingTRCGamma; } - if (icm.slpos) { - toEdit.icm.slpos = dontforceSet && options.baBehav[ADDSET_FREE_OUTPUT_SLOPE] ? toEdit.icm.slpos + mods.icm.slpos : mods.icm.slpos; + if (icm.workingTRCSlope) { + toEdit.icm.workingTRCSlope = mods.icm.workingTRCSlope; } - if (icm.gamma) { - toEdit.icm.gamma = mods.icm.gamma; - } - - if (icm.freegamma) { - toEdit.icm.freegamma = mods.icm.freegamma; + if (icm.workingTRC) { + toEdit.icm.workingTRC = mods.icm.workingTRC; } if (raw.bayersensor.method) { toEdit.raw.bayersensor.method = mods.raw.bayersensor.method; } + if (raw.bayersensor.border) { + toEdit.raw.bayersensor.border = mods.raw.bayersensor.border; + } + if (raw.bayersensor.imageNum) { toEdit.raw.bayersensor.imageNum = mods.raw.bayersensor.imageNum; } @@ -3247,6 +3267,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.raw.ca_autocorrect = mods.raw.ca_autocorrect; } + if (raw.ca_avoidcolourshift) { + toEdit.raw.ca_avoidcolourshift = mods.raw.ca_avoidcolourshift; + } + + if (raw.caautoiterations) { + toEdit.raw.caautoiterations = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.caautoiterations + mods.raw.caautoiterations : mods.raw.caautoiterations; + } + if (raw.cared) { toEdit.raw.cared = dontforceSet && options.baBehav[ADDSET_RAWCACORR] ? toEdit.raw.cared + mods.raw.cared : mods.raw.cared; } @@ -3708,6 +3736,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.filmSimulation.strength = dontforceSet && options.baBehav[ADDSET_FILMSIMULATION_STRENGTH] ? toEdit.filmSimulation.strength + mods.filmSimulation.strength : mods.filmSimulation.strength; } + if (softlight.enabled) { + toEdit.softlight.enabled = mods.softlight.enabled; + } + + if (softlight.strength) { + toEdit.softlight.strength = dontforceSet && options.baBehav[ADDSET_SOFTLIGHT_STRENGTH] ? toEdit.softlight.strength + mods.softlight.strength : mods.softlight.strength; + } + if (metadata.mode) { toEdit.metadata.mode = mods.metadata.mode; } @@ -3727,7 +3763,7 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng bool RAWParamsEdited::BayerSensor::isUnchanged() const { - return method && imageNum && dcbIterations && dcbEnhance && lmmseIterations && dualDemosaicContrast /*&& allEnhance*/ && greenEq + return method && border && imageNum && dcbIterations && dcbEnhance && lmmseIterations && dualDemosaicContrast /*&& allEnhance*/ && greenEq && pixelShiftMotionCorrectionMethod && pixelShiftEperIso && pixelShiftSigma && pixelShiftShowMotion && pixelShiftShowMotionMaskOnly && pixelShiftHoleFill && pixelShiftMedian && pixelShiftNonGreenCross && pixelShiftDemosaicMethod && pixelShiftGreen && pixelShiftBlur && pixelShiftSmooth && pixelShiftEqualBright && pixelShiftEqualBrightChannel && linenoise && linenoiseDirection && pdafLinesFilter && exBlack0 && exBlack1 && exBlack2 && exBlack3 && exTwoGreen; @@ -3740,7 +3776,7 @@ bool RAWParamsEdited::XTransSensor::isUnchanged() const bool RAWParamsEdited::isUnchanged() const { - return bayersensor.isUnchanged() && xtranssensor.isUnchanged() && ca_autocorrect && cared && cablue && hotPixelFilter && deadPixelFilter && hotdeadpix_thresh && darkFrame + return bayersensor.isUnchanged() && xtranssensor.isUnchanged() && ca_autocorrect && ca_avoidcolourshift && caautoiterations && cared && cablue && hotPixelFilter && deadPixelFilter && hotdeadpix_thresh && darkFrame && df_autoselect && ff_file && ff_AutoSelect && ff_BlurRadius && ff_BlurType && exPos && exPreser && ff_AutoClipControl && ff_clipControl; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d9329eb97..5450fa77b 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -54,6 +54,7 @@ public: bool hrenabled; bool method; bool histmatching; + bool fromHistMatching; bool clampOOG; }; @@ -684,26 +685,28 @@ public: bool width; bool height; bool enabled; + bool allowUpscaling; }; class ColorManagementParamsEdited { public: - bool input; + bool inputProfile; bool toneCurve; bool applyLookTable; bool applyBaselineExposureOffset; bool applyHueSatMap; bool dcpIlluminant; - bool working; - bool output; + + bool workingProfile; + bool workingTRC; + bool workingTRCGamma; + bool workingTRCSlope; + + bool outputProfile; bool outputIntent; bool outputBPC; - bool gamma; - bool gampos; - bool slpos; - bool freegamma; }; class WaveletParamsEdited { @@ -827,6 +830,13 @@ public: bool strength; }; +class SoftLightParamsEdited +{ +public: + bool enabled; + bool strength; +}; + class RAWParamsEdited { @@ -836,6 +846,7 @@ public: public: bool method; + bool border; bool imageNum; bool ccSteps; bool exBlack0; @@ -889,6 +900,8 @@ public: XTransSensor xtranssensor; bool ca_autocorrect; + bool ca_avoidcolourshift; + bool caautoiterations; bool cared; bool cablue; bool hotPixelFilter; @@ -965,6 +978,7 @@ public: WaveletParamsEdited wavelet; HSVEqualizerParamsEdited hsvequalizer; FilmSimulationParamsEdited filmSimulation; + SoftLightParamsEdited softlight; MetaDataParamsEdited metadata; bool exif; bool iptc; diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 99411e46c..556360bda 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -78,6 +78,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren blackwhite = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_CHANNELMIXERBW"))); hsveq = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_HSVEQUALIZER"))); filmSimulation = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_FILMSIMULATION")) ); + softlight = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_SOFTLIGHT")) ); rgbcurves = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RGBCURVES"))); colortoning = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_COLORTONING"))); @@ -104,6 +105,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren // Raw Settings: raw_method = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAW_DMETHOD"))); raw_imagenum = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAW_IMAGENUM"))); + raw_border = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAW_BORDER"))); raw_pixelshift = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAW_PIXELSHIFT"))); raw_ccSteps = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAW_FALSECOLOR"))); raw_dcb_iterations = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_RAW_DCBITERATIONS"))); @@ -175,6 +177,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vboxes[2]->pack_start (*blackwhite, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*hsveq, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*filmSimulation, Gtk::PACK_SHRINK, 2); + vboxes[2]->pack_start (*softlight, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*rgbcurves, Gtk::PACK_SHRINK, 2); vboxes[2]->pack_start (*colortoning, Gtk::PACK_SHRINK, 2); @@ -215,6 +218,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vboxes[7]->pack_start (*raw, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*hseps[7], Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_method, Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start (*raw_border, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_imagenum, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_pixelshift, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_ccSteps, Gtk::PACK_SHRINK, 2); @@ -334,6 +338,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren chmixerbwConn = blackwhite->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); hsveqConn = hsveq->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); filmSimulationConn = filmSimulation->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); + softlightConn = softlight->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); rgbcurvesConn = rgbcurves->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); colortoningConn = colortoning->signal_toggled().connect (sigc::bind (sigc::mem_fun(*color, &Gtk::CheckButton::set_inconsistent), true)); @@ -359,6 +364,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren // Raw Settings: raw_methodConn = raw_method->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); + raw_borderConn = raw_border->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); raw_imagenumConn = raw_imagenum->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); raw_pixelshiftConn = raw_pixelshift->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); raw_ccStepsConn = raw_ccSteps->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); @@ -434,6 +440,7 @@ void PartialPasteDlg::rawToggled () { ConnectionBlocker raw_methodBlocker(raw_methodConn); + ConnectionBlocker raw_borderBlocker(raw_borderConn); ConnectionBlocker raw_imagenumBlocker(raw_imagenumConn); ConnectionBlocker raw_pixelshiftBlocker(raw_pixelshiftConn); ConnectionBlocker raw_ccStepsBlocker(raw_ccStepsConn); @@ -461,6 +468,7 @@ void PartialPasteDlg::rawToggled () raw->set_inconsistent (false); raw_method->set_active (raw->get_active ()); + raw_border->set_active (raw->get_active ()); raw_imagenum->set_active (raw->get_active ()); raw_pixelshift->set_active (raw->get_active ()); raw_ccSteps->set_active (raw->get_active ()); @@ -557,6 +565,7 @@ void PartialPasteDlg::colorToggled () ConnectionBlocker chmixerbwBlocker(chmixerbwConn); ConnectionBlocker hsveqBlocker(hsveqConn); ConnectionBlocker filmSimulationBlocker(filmSimulationConn); + ConnectionBlocker softlightBlocker(softlightConn); ConnectionBlocker rgbcurvesBlocker(rgbcurvesConn); ConnectionBlocker colortoningBlocker(colortoningConn); @@ -568,6 +577,7 @@ void PartialPasteDlg::colorToggled () blackwhite->set_active (color->get_active ()); hsveq->set_active (color->get_active ()); filmSimulation->set_active (color->get_active ()); + softlight->set_active (color->get_active ()); rgbcurves->set_active (color->get_active ()); colortoning->set_active(color->get_active ()); } @@ -743,6 +753,10 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.filmSimulation = falsePE.filmSimulation; } + if (!softlight->get_active ()) { + filterPE.softlight = falsePE.softlight; + } + if (!rgbcurves->get_active ()) { filterPE.rgbCurves = falsePE.rgbCurves; } @@ -809,7 +823,13 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param if (!raw_method->get_active ()) { filterPE.raw.bayersensor.method = falsePE.raw.bayersensor.method; + filterPE.raw.bayersensor.dualDemosaicContrast = falsePE.raw.bayersensor.dualDemosaicContrast; filterPE.raw.xtranssensor.method = falsePE.raw.xtranssensor.method; + filterPE.raw.xtranssensor.dualDemosaicContrast = falsePE.raw.xtranssensor.dualDemosaicContrast; + } + + if (!raw_border->get_active ()) { + filterPE.raw.bayersensor.border = falsePE.raw.bayersensor.border; } if (!raw_imagenum->get_active ()) { @@ -881,6 +901,7 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param if (!raw_ca_autocorrect->get_active ()) { filterPE.raw.ca_autocorrect = falsePE.raw.ca_autocorrect; + filterPE.raw.caautoiterations = falsePE.raw.caautoiterations; } if (!raw_caredblue->get_active ()) { diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index b404db156..7f903730b 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -73,6 +73,7 @@ public: Gtk::CheckButton* chmixer; Gtk::CheckButton* blackwhite; Gtk::CheckButton* hsveq; + Gtk::CheckButton* softlight; Gtk::CheckButton* filmSimulation; Gtk::CheckButton* rgbcurves; Gtk::CheckButton* colortoning; @@ -110,6 +111,7 @@ public: Gtk::CheckButton* raw_linenoise; Gtk::CheckButton* raw_greenthresh; Gtk::CheckButton* raw_method; + Gtk::CheckButton* raw_border; Gtk::CheckButton* raw_imagenum; Gtk::CheckButton* raw_ccSteps; Gtk::CheckButton* raw_dcb_iterations; @@ -129,12 +131,12 @@ public: sigc::connection wbConn, exposureConn, localcontrastConn, shConn, pcvignetteConn, gradientConn, labcurveConn, colorappearanceConn; sigc::connection sharpenConn, gradsharpenConn, microcontrastConn, impdenConn, dirpyrdenConn, defringeConn, epdConn, fattalConn, dirpyreqConn, waveletConn, retinexConn; - sigc::connection vibranceConn, chmixerConn, hsveqConn, rgbcurvesConn, chmixerbwConn, colortoningConn, filmSimulationConn; + sigc::connection vibranceConn, chmixerConn, hsveqConn, rgbcurvesConn, chmixerbwConn, colortoningConn, filmSimulationConn, softlightConn; sigc::connection distortionConn, cacorrConn, vignettingConn, lcpConn; sigc::connection coarserotConn, finerotConn, cropConn, resizeConn, prsharpeningConn, perspectiveConn, commonTransConn; sigc::connection metadataConn, exifchConn, iptcConn, icmConn; sigc::connection df_fileConn, df_AutoSelectConn, ff_fileConn, ff_AutoSelectConn, ff_BlurRadiusConn, ff_BlurTypeConn, ff_ClipControlConn; - sigc::connection raw_caredblueConn, raw_ca_autocorrectConn, raw_hotpix_filtConn, raw_deadpix_filtConn, raw_pdaf_lines_filterConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_methodConn, raw_imagenumConn, raw_dcb_iterationsConn, raw_lmmse_iterationsConn, raw_pixelshiftConn, raw_dcb_enhanceConn, raw_exposConn, raw_preserConn, raw_blackConn; + sigc::connection raw_caredblueConn, raw_ca_autocorrectConn, raw_hotpix_filtConn, raw_deadpix_filtConn, raw_pdaf_lines_filterConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_methodConn, raw_borderConn, raw_imagenumConn, raw_dcb_iterationsConn, raw_lmmse_iterationsConn, raw_pixelshiftConn, raw_dcb_enhanceConn, raw_exposConn, raw_preserConn, raw_blackConn; public: PartialPasteDlg (const Glib::ustring &title, Gtk::Window* parent); diff --git a/rtgui/perspective.cc b/rtgui/perspective.cc index c94e9d568..1ca6e54b6 100644 --- a/rtgui/perspective.cc +++ b/rtgui/perspective.cc @@ -25,10 +25,10 @@ using namespace rtengine::procparams; PerspCorrection::PerspCorrection () : FoldableToolPanel(this, "perspective", M("TP_PERSPECTIVE_LABEL")) { - Gtk::Image* ipersHL = Gtk::manage (new RTImage ("perspective-h1.png")); - Gtk::Image* ipersHR = Gtk::manage (new RTImage ("perspective-h2.png")); - Gtk::Image* ipersVL = Gtk::manage (new RTImage ("perspective-v1.png")); - Gtk::Image* ipersVR = Gtk::manage (new RTImage ("perspective-v2.png")); + Gtk::Image* ipersHL = Gtk::manage (new RTImage ("perspective-horizontal-left-small.png")); + Gtk::Image* ipersHR = Gtk::manage (new RTImage ("perspective-horizontal-right-small.png")); + Gtk::Image* ipersVL = Gtk::manage (new RTImage ("perspective-vertical-bottom-small.png")); + Gtk::Image* ipersVR = Gtk::manage (new RTImage ("perspective-vertical-top-small.png")); horiz = Gtk::manage (new Adjuster (M("TP_PERSPECTIVE_HORIZONTAL"), -100, 100, 0.1, 0, ipersHL, ipersHR)); horiz->setAdjusterListener (this); diff --git a/rtgui/placesbrowser.cc b/rtgui/placesbrowser.cc index 490b9ff47..0d20e9bad 100644 --- a/rtgui/placesbrowser.cc +++ b/rtgui/placesbrowser.cc @@ -42,13 +42,13 @@ PlacesBrowser::PlacesBrowser () setExpandAlignProperties(add, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); //add->get_style_context()->set_junction_sides(Gtk::JUNCTION_RIGHT); add->get_style_context()->add_class("Left"); - add->set_image (*Gtk::manage (new RTImage ("list-add.png"))); + add->set_image (*Gtk::manage (new RTImage ("add-small.png"))); del = Gtk::manage (new Gtk::Button ()); del->set_tooltip_text(M("MAIN_FRAME_PLACES_DEL")); setExpandAlignProperties(del, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); //del->get_style_context()->set_junction_sides(Gtk::JUNCTION_LEFT); del->get_style_context()->add_class("Right"); - del->set_image (*Gtk::manage (new RTImage ("list-remove.png"))); + del->set_image (*Gtk::manage (new RTImage ("remove-small.png"))); Gtk::Grid* buttonBox = Gtk::manage (new Gtk::Grid ()); buttonBox->set_orientation(Gtk::ORIENTATION_HORIZONTAL); buttonBox->attach_next_to(*add, Gtk::POS_LEFT, 1, 1); diff --git a/rtgui/pointermotionlistener.h b/rtgui/pointermotionlistener.h index 09a9b3b4f..88a4b2279 100644 --- a/rtgui/pointermotionlistener.h +++ b/rtgui/pointermotionlistener.h @@ -27,9 +27,8 @@ protected: public: virtual ~PointerMotionListener() {} - virtual void pointerMoved (bool validPos, Glib::ustring profile, Glib::ustring profileW, int x, int y, int r, int g, int b) {} - virtual void toggleFreeze () {} - virtual void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB) { sR = "--"; sG = "--"; sB = "--"; } + virtual void pointerMoved (bool validPos, const Glib::ustring &profile, const Glib::ustring &profileW, int x, int y, int r, int g, int b, bool isRaw = false) = 0; + virtual void getRGBText (int r, int g, int b, Glib::ustring &sR, Glib::ustring &sG, Glib::ustring &sB, bool isRaw = false) { sR = "--"; sG = "--"; sB = "--"; } virtual void getHSVText (float h, float s, float v, Glib::ustring &sH, Glib::ustring &sS, Glib::ustring &sV) { sH = "--"; sS = "--"; sV = "--"; } virtual void getLABText (float l, float a, float b, Glib::ustring &sL, Glib::ustring &sA, Glib::ustring &sB) { sL = "--"; sA = "--"; sB = "--"; } diff --git a/rtgui/popupcommon.cc b/rtgui/popupcommon.cc index c79c69011..b7d08721e 100644 --- a/rtgui/popupcommon.cc +++ b/rtgui/popupcommon.cc @@ -47,6 +47,7 @@ PopUpCommon::PopUpCommon (Gtk::Button* thisButton, const Glib::ustring& label) buttonGroup = Gtk::manage( new Gtk::Grid()); setExpandAlignProperties(buttonGroup, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); buttonGroup->attach(*button, 0, 0, 1, 1); + buttonGroup->get_style_context()->add_class("image-combo"); } PopUpCommon::~PopUpCommon () @@ -79,7 +80,8 @@ bool PopUpCommon::addEntry (const Glib::ustring& fileName, const Glib::ustring& // When there is at least 1 choice, we add the arrow button if (images.size() == 1) { Gtk::Button* arrowButton = Gtk::manage( new Gtk::Button() ); - RTImage* arrowImage = Gtk::manage( new RTImage("popuparrow.png") ); + Gtk::Image *arrowImage = Gtk::manage(new Gtk::Image()); + arrowImage->set_from_icon_name("pan-down-symbolic", Gtk::ICON_SIZE_BUTTON); setExpandAlignProperties(arrowButton, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); arrowButton->add(*arrowImage); //menuSymbol); buttonGroup->attach_next_to(*arrowButton, *button, Gtk::POS_RIGHT, 1, 1); diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index ea908835c..c2ce57f79 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -1,13 +1,27 @@ #pragma once // This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes -#define PPVERSION 337 +#define PPVERSION 344 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* Log of version changes - 337 2018-07-26 + 344 2018-09-25 Added Locallab tool parameters + 343 2018-09-06 + raw auto ca correction avoid colour shift + 342 2018-09-05 + raw auto ca correction iterations + 341 2018-07-22 + [ICM] enhanced custom output profile + 340 2018-07-08 + store whether curve is from histogram matching + 339 2018-07-04 + added allowUpscaling to ResizeParams + 338 2018-06-15 + increased precision for the channel mixer + 337 2018-06-13 + new scales for the LabGrid color toning parameters 336 2018-06-01 new demosaic method combobox for pixelshift 335 2018-05-30 diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 679d2a277..b48253c92 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -49,13 +49,6 @@ Preferences::Preferences(RTWindow *rtwindow) moptions.copyFrom(&options); - /* - * Do not increase height, since it's not visible on e.g. smaller netbook - * screens. The default height is about 620 pixels currently, that's why - * we do not set the height anymore. Netbook users will most certainly set - * a smaller font, so they'll be able to shrink the Preferences window and - * close it. - */ set_size_request(650, -1); set_default_size(options.preferencesWidth, options.preferencesHeight); @@ -69,9 +62,9 @@ Preferences::Preferences(RTWindow *rtwindow) mainBox->set_spacing(8); #endif //GTK318 - //set_has_separator (false); Gtk::Notebook* nb = Gtk::manage(new Gtk::Notebook()); + nb->set_scrollable(true); nb->set_name("PrefNotebook"); mainBox->pack_start(*nb); @@ -87,16 +80,16 @@ Preferences::Preferences(RTWindow *rtwindow) get_action_area()->pack_end(*ok); get_action_area()->pack_end(*cancel); - nb->append_page(*getGeneralPanel(), M("PREFERENCES_TAB_GENERAL")); - nb->append_page(*getProcParamsPanel(), M("PREFERENCES_TAB_IMPROC")); - nb->append_page(*getDynProfilePanel(), M("PREFERENCES_TAB_DYNAMICPROFILE")); - nb->append_page(*getFileBrowserPanel(), M("PREFERENCES_TAB_BROWSER")); - nb->append_page(*getColorManagementPanel(), M("PREFERENCES_TAB_COLORMGR")); - nb->append_page(*getBatchProcPanel(), M("PREFERENCES_BATCH_PROCESSING")); - nb->append_page(*getPerformancePanel(), M("PREFERENCES_TAB_PERFORMANCE")); + nb->append_page(*getGeneralPanel(), M("PREFERENCES_TAB_GENERAL")); + nb->append_page(*getImageProcessingPanel(), M("PREFERENCES_TAB_IMPROC")); + nb->append_page(*getDynamicProfilePanel(), M("PREFERENCES_TAB_DYNAMICPROFILE")); + nb->append_page(*getFileBrowserPanel(), M("PREFERENCES_TAB_BROWSER")); + nb->append_page(*getColorManPanel(), M("PREFERENCES_TAB_COLORMGR")); + nb->append_page(*getBatchProcPanel(), M("PREFERENCES_BATCH_PROCESSING")); + nb->append_page(*getPerformancePanel(), M("PREFERENCES_TAB_PERFORMANCE")); // Sounds only on Windows and Linux #if defined(WIN32) || defined(__linux__) - nb->append_page(*getSoundPanel(), M("PREFERENCES_TAB_SOUND")); + nb->append_page(*getSoundsPanel(), M("PREFERENCES_TAB_SOUND")); #endif nb->set_current_page(0); @@ -131,8 +124,10 @@ int Preferences::getThemeRowNumber(Glib::ustring& longThemeFName) Gtk::Widget* Preferences::getBatchProcPanel() { + swBatchProc = Gtk::manage(new Gtk::ScrolledWindow()); + swBatchProc->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::VBox* mvbpp = Gtk::manage(new Gtk::VBox()); + Gtk::VBox* vbBatchProc = Gtk::manage (new Gtk::VBox ()); Gtk::ScrolledWindow* behscrollw = Gtk::manage(new Gtk::ScrolledWindow()); behscrollw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); @@ -141,8 +136,7 @@ Gtk::Widget* Preferences::getBatchProcPanel() vbbeh->pack_start(*behscrollw, Gtk::PACK_EXPAND_WIDGET); Gtk::Frame* behFrame = Gtk::manage(new Gtk::Frame(M("PREFERENCES_BEHAVIOR"))); behFrame->add(*vbbeh); - //mvbpp->pack_start (*behFrame); - mvbpp->pack_start(*behFrame, Gtk::PACK_EXPAND_WIDGET, 4); + vbBatchProc->pack_start (*behFrame, Gtk::PACK_EXPAND_WIDGET, 4); Gtk::TreeView* behTreeView = Gtk::manage(new Gtk::TreeView()); behscrollw->add(*behTreeView); @@ -239,7 +233,6 @@ Gtk::Widget* Preferences::getBatchProcPanel() appendBehavList(mi, M("TP_LOCALCONTRAST_AMOUNT"), ADDSET_LOCALCONTRAST_AMOUNT, false); appendBehavList(mi, M("TP_LOCALCONTRAST_DARKNESS"), ADDSET_LOCALCONTRAST_DARKNESS, false); appendBehavList(mi, M("TP_LOCALCONTRAST_LIGHTNESS"), ADDSET_LOCALCONTRAST_LIGHTNESS, false); - mi = behModel->append(); mi->set_value(behavColumns.label, M("TP_SHARPENEDGE_LABEL")); @@ -254,7 +247,6 @@ Gtk::Widget* Preferences::getBatchProcPanel() mi = behModel->append(); mi->set_value(behavColumns.label, M("TP_DIRPYRDENOISE_LABEL")); - //appendBehavList (mi, M("TP_DIRPYRDENOISE_LUMA")+", "+M("TP_DIRPYRDENOISE_CHROMA"), ADDSET_DIRPYRDN_CHLUM, true); appendBehavList (mi, M ("TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING"), ADDSET_DIRPYRDN_LUMA, true); appendBehavList (mi, M ("TP_DIRPYRDENOISE_LUMINANCE_DETAIL"), ADDSET_DIRPYRDN_LUMDET, true); appendBehavList (mi, M ("TP_DIRPYRDENOISE_CHROMINANCE_MASTER"), ADDSET_DIRPYRDN_CHROMA, true); @@ -292,8 +284,6 @@ Gtk::Widget* Preferences::getBatchProcPanel() mi = behModel->append(); mi->set_value(behavColumns.label, M("TP_GAMMA_OUTPUT")); - appendBehavList(mi, M("TP_GAMMA_CURV"), ADDSET_FREE_OUPUT_GAMMA, false); - appendBehavList(mi, M("TP_GAMMA_SLOP"), ADDSET_FREE_OUTPUT_SLOPE, false); mi = behModel->append(); mi->set_value(behavColumns.label, M("TP_CHMIXER_LABEL")); @@ -309,6 +299,10 @@ Gtk::Widget* Preferences::getBatchProcPanel() appendBehavList(mi, M("TP_FILMSIMULATION_STRENGTH"), ADDSET_FILMSIMULATION_STRENGTH, true); mi = behModel->append(); + mi->set_value ( behavColumns.label, M ("TP_SOFTLIGHT_LABEL") ); + appendBehavList ( mi, M ( "TP_SOFTLIGHT_STRENGTH" ), ADDSET_SOFTLIGHT_STRENGTH, true ); + + mi = behModel->append (); mi->set_value(behavColumns.label, M("TP_COLORTONING_LABEL")); appendBehavList(mi, M("TP_COLORTONING_SPLITCOCO"), ADDSET_COLORTONING_SPLIT, true); appendBehavList(mi, M("TP_COLORTONING_SATURATIONTHRESHOLD"), ADDSET_COLORTONING_SATTHRESHOLD, true); @@ -433,15 +427,15 @@ Gtk::Widget* Preferences::getBatchProcPanel() behSetAll->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::behSetAllPressed)); Gtk::HBox* buttonpanel1 = Gtk::manage(new Gtk::HBox()); - //buttonpanel1->set_spacing(8); buttonpanel1->pack_end(*behSetAll, Gtk::PACK_SHRINK, 4); buttonpanel1->pack_end(*behAddAll, Gtk::PACK_SHRINK, 4); vbbeh->pack_start(*buttonpanel1, Gtk::PACK_SHRINK, 4); chOverwriteOutputFile = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_OVERWRITEOUTPUTFILE"))); - mvbpp->pack_start(*chOverwriteOutputFile, Gtk::PACK_SHRINK, 4); + vbBatchProc->pack_start (*chOverwriteOutputFile, Gtk::PACK_SHRINK, 4); - return mvbpp; + swBatchProc->add(*vbBatchProc); + return swBatchProc; } void Preferences::appendBehavList(Gtk::TreeModel::iterator& parent, Glib::ustring label, int id, bool set) @@ -473,17 +467,24 @@ void Preferences::behSetRadioToggled(const Glib::ustring& path) } -Gtk::Widget *Preferences::getDynProfilePanel() +Gtk::Widget *Preferences::getDynamicProfilePanel() { + swDynamicProfile = Gtk::manage(new Gtk::ScrolledWindow()); + swDynamicProfile->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + dynProfilePanel = Gtk::manage(new DynamicProfilePanel()); - return dynProfilePanel; + + swDynamicProfile->add(*dynProfilePanel); + return swDynamicProfile; } -Gtk::Widget* Preferences::getProcParamsPanel() +Gtk::Widget* Preferences::getImageProcessingPanel () { + swImageProcessing = Gtk::manage(new Gtk::ScrolledWindow()); + swImageProcessing->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::VBox* mvbpp = Gtk::manage(new Gtk::VBox()); + Gtk::VBox* vbImageProcessing = Gtk::manage (new Gtk::VBox ()); Gtk::Frame* fpp = Gtk::manage(new Gtk::Frame(M("PREFERENCES_IMPROCPARAMS"))); Gtk::VBox* vbpp = Gtk::manage(new Gtk::VBox()); @@ -510,7 +511,7 @@ Gtk::Widget* Preferences::getProcParamsPanel() bpconn = useBundledProfiles->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::bundledProfilesChanged)); vbpp->pack_start(*useBundledProfiles, Gtk::PACK_SHRINK, 4); fpp->add(*vbpp); - mvbpp->pack_start(*fpp, Gtk::PACK_SHRINK, 4); + vbImageProcessing->pack_start (*fpp, Gtk::PACK_SHRINK, 4); // Custom profile builder box Gtk::Frame* cpfrm = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CUSTPROFBUILD"))); @@ -528,7 +529,7 @@ Gtk::Widget* Preferences::getProcParamsPanel() cpbt->attach(*cpltypelab, 0, 1, 1, 2, Gtk::FILL, Gtk::SHRINK, 2, 2); cpbt->attach(*custProfBuilderLabelType, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); cpfrm->add(*cpbt); - mvbpp->pack_start(*cpfrm, Gtk::PACK_SHRINK, 4); + vbImageProcessing->pack_start (*cpfrm, Gtk::PACK_SHRINK, 4); Gtk::Frame* fdp = Gtk::manage(new Gtk::Frame(M("PREFERENCES_PROFILEHANDLING"))); Gtk::Table* vbdp = Gtk::manage(new Gtk::Table(2, 2)); @@ -546,7 +547,7 @@ Gtk::Widget* Preferences::getProcParamsPanel() vbdp->attach(*lplab, 0, 1, 1, 2, Gtk::FILL, Gtk::SHRINK, 2, 2); vbdp->attach(*loadParamsPreference, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); fdp->add(*vbdp); - mvbpp->pack_start(*fdp, Gtk::PACK_SHRINK, 4); + vbImageProcessing->pack_start (*fdp, Gtk::PACK_SHRINK, 4); // Gtk::Frame* fdf = Gtk::manage (new Gtk::Frame (M ("PREFERENCES_DARKFRAME")) ); // Gtk::HBox* hb42 = Gtk::manage (new Gtk::HBox ()); @@ -567,8 +568,7 @@ Gtk::Widget* Preferences::getProcParamsPanel() dirgrid->attach_next_to(*darkFrameDir, *dfLab, Gtk::POS_RIGHT, 1, 1); dirgrid->attach_next_to(*dfLabel, *darkFrameDir, Gtk::POS_RIGHT, 1, 1); - //dfconn = darkFrameDir->signal_file_set().connect ( sigc::mem_fun(*this, &Preferences::darkFrameChanged), true); - dfconn = darkFrameDir->signal_selection_changed().connect(sigc::mem_fun(*this, &Preferences::darkFrameChanged)); //, true); + dfconn = darkFrameDir->signal_selection_changed().connect ( sigc::mem_fun (*this, &Preferences::darkFrameChanged)); // FLATFIELD Gtk::Label *ffLab = Gtk::manage(new Gtk::Label(M("PREFERENCES_FLATFIELDSDIR") + ":")); @@ -582,8 +582,7 @@ Gtk::Widget* Preferences::getProcParamsPanel() dirgrid->attach_next_to(*flatFieldDir, *ffLab, Gtk::POS_RIGHT, 1, 1); dirgrid->attach_next_to(*ffLabel, *flatFieldDir, Gtk::POS_RIGHT, 1, 1); - //ffconn = flatFieldDir->signal_file_set().connect ( sigc::mem_fun(*this, &Preferences::flatFieldChanged), true); - ffconn = flatFieldDir->signal_selection_changed().connect(sigc::mem_fun(*this, &Preferences::flatFieldChanged)); //, true); + ffconn = flatFieldDir->signal_selection_changed().connect ( sigc::mem_fun (*this, &Preferences::flatFieldChanged)); //Cluts Dir Gtk::Label *clutsDirLabel = Gtk::manage(new Gtk::Label(M("PREFERENCES_CLUTSDIR") + ":")); @@ -598,7 +597,7 @@ Gtk::Widget* Preferences::getProcParamsPanel() dirgrid->attach_next_to(*clutsRestartNeeded, *clutsDir, Gtk::POS_RIGHT, 1, 1); cdf->add(*dirgrid); - mvbpp->pack_start(*cdf, Gtk::PACK_SHRINK, 4); + vbImageProcessing->pack_start (*cdf, Gtk::PACK_SHRINK, 4 ); // Crop Gtk::Frame *cropframe = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CROP"))); @@ -614,15 +613,19 @@ Gtk::Widget* Preferences::getProcParamsPanel() cropAutoFit = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_CROP_AUTO_FIT"))); cropvb->pack_start(*cropAutoFit); cropframe->add(*cropvb); - mvbpp->pack_start(*cropframe, Gtk::PACK_SHRINK, 4); + vbImageProcessing->pack_start(*cropframe, Gtk::PACK_SHRINK, 4); - return mvbpp; + swImageProcessing->add(*vbImageProcessing); + return swImageProcessing; } Gtk::Widget* Preferences::getPerformancePanel() { - Gtk::VBox* mainContainer = Gtk::manage(new Gtk::VBox()); - mainContainer->set_spacing(4); + swPerformance = Gtk::manage(new Gtk::ScrolledWindow()); + swPerformance->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + + Gtk::VBox* vbPerformance = Gtk::manage ( new Gtk::VBox () ); + vbPerformance->set_spacing (4); Gtk::Frame* fprevdemo = Gtk::manage(new Gtk::Frame(M("PREFERENCES_PREVDEMO"))); Gtk::HBox* hbprevdemo = Gtk::manage(new Gtk::HBox(false, 4)); @@ -634,7 +637,7 @@ Gtk::Widget* Preferences::getPerformancePanel() hbprevdemo->pack_start(*lprevdemo, Gtk::PACK_SHRINK); hbprevdemo->pack_start(*cprevdemo); fprevdemo->add(*hbprevdemo); - mainContainer->pack_start(*fprevdemo, Gtk::PACK_SHRINK, 4); + vbPerformance->pack_start (*fprevdemo, Gtk::PACK_SHRINK, 4); Gtk::Frame* ftiffserialize = Gtk::manage(new Gtk::Frame(M("PREFERENCES_SERIALIZE_TIFF_READ"))); Gtk::HBox* htiffserialize = Gtk::manage(new Gtk::HBox(false, 4)); @@ -642,7 +645,7 @@ Gtk::Widget* Preferences::getPerformancePanel() ctiffserialize->set_tooltip_text(M("PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP")); htiffserialize->pack_start(*ctiffserialize); ftiffserialize->add(*htiffserialize); - mainContainer->pack_start(*ftiffserialize, Gtk::PACK_SHRINK, 4); + vbPerformance->pack_start (*ftiffserialize, Gtk::PACK_SHRINK, 4); Gtk::Frame* fclut = Gtk::manage(new Gtk::Frame(M("PREFERENCES_CLUTSCACHE"))); Gtk::HBox* clutCacheSizeHB = Gtk::manage(new Gtk::HBox()); @@ -660,7 +663,7 @@ Gtk::Widget* Preferences::getPerformancePanel() clutCacheSizeHB->pack_start(*CLUTLl, Gtk::PACK_SHRINK, 0); clutCacheSizeHB->pack_end(*clutCacheSizeSB, Gtk::PACK_SHRINK, 0); fclut->add(*clutCacheSizeHB); - mainContainer->pack_start(*fclut, Gtk::PACK_SHRINK, 4); + vbPerformance->pack_start (*fclut, Gtk::PACK_SHRINK, 4); Gtk::Frame* finspect = Gtk::manage(new Gtk::Frame(M("PREFERENCES_INSPECT_LABEL"))); Gtk::HBox* maxIBuffersHB = Gtk::manage(new Gtk::HBox()); @@ -687,96 +690,44 @@ Gtk::Widget* Preferences::getPerformancePanel() insphb->pack_start(*thumbnailInspectorMode); inspectorvb->pack_start(*insphb); finspect->add (*inspectorvb); - mainContainer->pack_start(*finspect, Gtk::PACK_SHRINK, 4); + vbPerformance->pack_start (*finspect, Gtk::PACK_SHRINK, 4); - Gtk::Frame* fdenoise = Gtk::manage(new Gtk::Frame(M("PREFERENCES_NOISE"))); - Gtk::VBox* vbdenoise = Gtk::manage(new Gtk::VBox(Gtk::PACK_SHRINK, 4)); + Gtk::Frame* threadsFrame = Gtk::manage ( new Gtk::Frame (M ("PREFERENCES_PERFORMANCE_THREADS")) ); + Gtk::VBox* threadsVBox = Gtk::manage ( new Gtk::VBox (Gtk::PACK_SHRINK, 4) ); - Gtk::Label* lreloadneeded2 = Gtk::manage(new Gtk::Label(M("PREFERENCES_IMG_RELOAD_NEEDED"), Gtk::ALIGN_START)); - Gtk::HBox* threadLimitHB = Gtk::manage(new Gtk::HBox(Gtk::PACK_SHRINK, 4)); - threadLimitHB->set_tooltip_text(M("PREFERENCES_RGBDTL_TOOLTIP")); - Gtk::Label* RGBDTLl = Gtk::manage(new Gtk::Label(M("PREFERENCES_RGBDTL_LABEL") + ":", Gtk::ALIGN_START)); - rgbDenoiseTreadLimitSB = Gtk::manage(new Gtk::SpinButton()); - rgbDenoiseTreadLimitSB->set_digits(0); - rgbDenoiseTreadLimitSB->set_increments(1, 5); - rgbDenoiseTreadLimitSB->set_max_length(2); // Will this be sufficient? :) + Gtk::HBox* threadsHBox = Gtk::manage (new Gtk::HBox (Gtk::PACK_SHRINK, 4)); + Gtk::Label* threadsLbl = Gtk::manage ( new Gtk::Label (M ("PREFERENCES_PERFORMANCE_THREADS_LABEL") + ":", Gtk::ALIGN_START)); + threadsSpinBtn = Gtk::manage ( new Gtk::SpinButton () ); + threadsSpinBtn->set_digits (0); + threadsSpinBtn->set_increments (1, 5); + threadsSpinBtn->set_max_length (2); // Will this be sufficient? :) #ifdef _OPENMP int maxThreadNumber = omp_get_max_threads(); #else int maxThreadNumber = 10; #endif - rgbDenoiseTreadLimitSB->set_range(0, maxThreadNumber); - threadLimitHB->pack_start(*RGBDTLl, Gtk::PACK_SHRINK, 2); - threadLimitHB->pack_end(*rgbDenoiseTreadLimitSB, Gtk::PACK_SHRINK, 2); - Gtk::Label* dnlab = Gtk::manage(new Gtk::Label(M("PREFERENCES_LEVDN") + ":", Gtk::ALIGN_START)); - Gtk::Label* dnautlab = Gtk::manage(new Gtk::Label(M("PREFERENCES_LEVAUTDN") + ":", Gtk::ALIGN_START)); - Gtk::Label* dnautsimpllab = Gtk::manage(new Gtk::Label(M("PREFERENCES_SIMPLAUT") + ":", Gtk::ALIGN_START)); - Gtk::Label* dntilab = Gtk::manage(new Gtk::Label(M("PREFERENCES_TINB") + ":", Gtk::ALIGN_START)); - Gtk::Label* dnwavlab = Gtk::manage(new Gtk::Label(M("PREFERENCES_WAVLEV") + ":", Gtk::ALIGN_START)); - Gtk::Label* dnlisslab = Gtk::manage(new Gtk::Label(M("PREFERENCES_LISS") + ":", Gtk::ALIGN_START)); + threadsSpinBtn->set_range (0, maxThreadNumber); - dnv = Gtk::manage(new Gtk::ComboBoxText()); - dnv->append(M("PREFERENCES_MIN")); - dnv->append(M("PREFERENCES_SMA")); - dnv->append(M("PREFERENCES_MED")); - dnv->append(M("PREFERENCES_MAX")); - dnaut = Gtk::manage(new Gtk::ComboBoxText()); - dnaut->append(M("PREFERENCES_AUTLOW")); - dnaut->append(M("PREFERENCES_AUTSTD")); + threadsHBox->pack_start (*threadsLbl, Gtk::PACK_SHRINK, 2); + threadsHBox->pack_end (*threadsSpinBtn, Gtk::PACK_SHRINK, 2); - dnautsimpl = Gtk::manage(new Gtk::ComboBoxText()); - dnautsimpl->append(M("PREFERENCES_STDAUT")); - dnautsimpl->append(M("PREFERENCES_EXPAUT")); + threadsVBox->pack_start (*threadsHBox, Gtk::PACK_SHRINK); + threadsFrame->add (*threadsVBox); - dnliss = Gtk::manage(new Gtk::ComboBoxText()); - dnliss->append(M("PREFERENCES_AUTLISVLOW")); //very low - dnliss->append(M("PREFERENCES_AUTLISLOW")); //low - dnliss->append(M("PREFERENCES_AUTLISSTD")); //med - dnliss->append(M("PREFERENCES_AUTLISMAX")); //max + vbPerformance->pack_start (*threadsFrame, Gtk::PACK_SHRINK, 4); + swPerformance->add(*vbPerformance); - dnti = Gtk::manage(new Gtk::ComboBoxText()); - dnti->append(M("PREFERENCES_TISTD")); - dnti->append(M("PREFERENCES_TIMAX")); - - dnwavlev = Gtk::manage(new Gtk::ComboBoxText()); - dnwavlev->append(M("PREFERENCES_WLZER")); - dnwavlev->append(M("PREFERENCES_WLONE")); - dnwavlev->append(M("PREFERENCES_WLTWO")); - - Gtk::Table* colon = Gtk::manage(new Gtk::Table(6, 2)); - colon->attach(*dnlab, 0, 1, 0, 1, Gtk::FILL, Gtk::SHRINK, 2, 2); - colon->attach(*dnv, 1, 2, 0, 1, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); - colon->attach(*dnautlab, 0, 1, 1, 2, Gtk::FILL, Gtk::SHRINK, 2, 2); - colon->attach(*dnaut, 1, 2, 1, 2, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); - colon->attach(*dnautsimpllab, 0, 1, 2, 3, Gtk::FILL, Gtk::SHRINK, 2, 2); - colon->attach(*dnautsimpl, 1, 2, 2, 3, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); - colon->attach(*dnlisslab, 0, 1, 3, 4, Gtk::FILL, Gtk::SHRINK, 2, 2); - colon->attach(*dnliss, 1, 2, 3, 4, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); - colon->attach(*dntilab, 0, 1, 4, 5, Gtk::FILL, Gtk::SHRINK, 2, 2); - colon->attach(*dnti, 1, 2, 4, 5, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); - colon->attach(*dnwavlab, 0, 1, 5, 6, Gtk::FILL, Gtk::SHRINK, 2, 2); - colon->attach(*dnwavlev, 1, 2, 5, 6, Gtk::EXPAND | Gtk::FILL | Gtk::SHRINK, Gtk::SHRINK, 2, 2); - - vbdenoise->pack_start(*lreloadneeded2, Gtk::PACK_SHRINK); - vbdenoise->pack_start(*colon, Gtk::PACK_SHRINK); - vbdenoise->pack_start(*threadLimitHB, Gtk::PACK_SHRINK); - // <--- To be hard-coded and removed once tested - cbdaubech = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_DAUB_LABEL"), Gtk::ALIGN_START)); - cbdaubech->set_tooltip_markup(M("PREFERENCES_DAUB_TOOLTIP")); -// vbdenoise->pack_start (*cbdaubech, Gtk::PACK_SHRINK); - // ---> - fdenoise->add(*vbdenoise); - mainContainer->pack_start(*fdenoise, Gtk::PACK_SHRINK, 4); - - return mainContainer; + return swPerformance; } -Gtk::Widget* Preferences::getColorManagementPanel() +Gtk::Widget* Preferences::getColorManPanel () { + swColorMan = Gtk::manage(new Gtk::ScrolledWindow()); + swColorMan->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::VBox* mvbcm = Gtk::manage(new Gtk::VBox()); - mvbcm->set_spacing(4); + Gtk::VBox* vbColorMan = Gtk::manage (new Gtk::VBox ()); + vbColorMan->set_spacing (4); iccDir = Gtk::manage(new MyFileChooserButton(M("PREFERENCES_ICCDIR"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER)); setExpandAlignProperties(iccDir, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); @@ -796,7 +747,7 @@ Gtk::Widget* Preferences::getColorManagementPanel() iccDir->signal_selection_changed().connect(sigc::mem_fun(this, &Preferences::iccDirChanged)); - mvbcm->pack_start(*iccdgrid, Gtk::PACK_SHRINK); + vbColorMan->pack_start (*iccdgrid, Gtk::PACK_SHRINK); //------------------------- MONITOR ---------------------- @@ -836,11 +787,9 @@ Gtk::Widget* Preferences::getColorManagementPanel() setExpandAlignProperties(monBPC, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); monBPC->set_active(true); -//#if defined(WIN32) // Auto-detection not implemented for Linux, see issue 851 cbAutoMonProfile = Gtk::manage(new Gtk::CheckButton(M("PREFERENCES_AUTOMONPROFILE"))); setExpandAlignProperties(cbAutoMonProfile, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); autoMonProfileConn = cbAutoMonProfile->signal_toggled().connect(sigc::mem_fun(*this, &Preferences::autoMonProfileToggled)); -//#endif int row = 0; gmonitor->attach(*mplabel, 0, row, 1, 1); @@ -852,22 +801,18 @@ Gtk::Widget* Preferences::getColorManagementPanel() gmonitor->attach(*monProfile, 1, row, 1, 1); #endif ++row; -//#if defined(WIN32) gmonitor->attach(*cbAutoMonProfile, 1, row, 1, 1); ++row; -//#endif gmonitor->attach(*milabel, 0, row, 1, 1); gmonitor->attach(*monIntent, 1, row, 1, 1); ++row; gmonitor->attach(*monBPC, 0, row, 2, 1); -//#if defined(WIN32) autoMonProfileToggled(); -//#endif fmonitor->add(*gmonitor); - mvbcm->pack_start(*fmonitor, Gtk::PACK_SHRINK); + vbColorMan->pack_start (*fmonitor, Gtk::PACK_SHRINK); //------------------------- PRINTER ---------------------- @@ -912,22 +857,23 @@ Gtk::Widget* Preferences::getColorManagementPanel() ++row; gprinter->attach(*prtBPC, 0, row, 2, 1); -//#if defined(WIN32) autoMonProfileToggled(); -//#endif fprinter->add(*gprinter); - mvbcm->pack_start(*fprinter, Gtk::PACK_SHRINK); - return mvbcm; + vbColorMan->pack_start (*fprinter, Gtk::PACK_SHRINK); + swColorMan->add(*vbColorMan); + return swColorMan; } Gtk::Widget* Preferences::getGeneralPanel() { + swGeneral = Gtk::manage(new Gtk::ScrolledWindow()); + swGeneral->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::Grid* mvbsd = Gtk::manage(new Gtk::Grid()); - mvbsd->set_column_spacing(4); - mvbsd->set_row_spacing(4); + Gtk::Grid* vbGeneral = Gtk::manage ( new Gtk::Grid () ); + vbGeneral->set_column_spacing (4); + vbGeneral->set_row_spacing (4); Gtk::Frame* fworklflow = Gtk::manage(new Gtk::Frame(M("PREFERENCES_WORKFLOW"))); setExpandAlignProperties(fworklflow, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); @@ -1010,7 +956,7 @@ Gtk::Widget* Preferences::getGeneralPanel() fworklflow->add(*workflowGrid); - mvbsd->attach_next_to(*fworklflow, Gtk::POS_TOP, 2, 1); + vbGeneral->attach_next_to (*fworklflow, Gtk::POS_TOP, 2, 1); // --------------------------------------------- @@ -1045,7 +991,7 @@ Gtk::Widget* Preferences::getGeneralPanel() langGrid->attach_next_to(*languages, *langlab, Gtk::POS_RIGHT, 1, 1); langGrid->attach_next_to(*langw, *languages, Gtk::POS_RIGHT, 1, 1); flang->add(*langGrid); - mvbsd->attach_next_to(*flang, *fworklflow, Gtk::POS_BOTTOM, 2, 1); + vbGeneral->attach_next_to (*flang, *fworklflow, Gtk::POS_BOTTOM, 2, 1); // --------------------------------------------- @@ -1118,7 +1064,7 @@ Gtk::Widget* Preferences::getGeneralPanel() themeGrid->attach_next_to(*butNavGuideCol, *navGuideLabel, Gtk::POS_RIGHT, 1, 1); ftheme->add(*themeGrid); - mvbsd->attach_next_to(*ftheme, *flang, Gtk::POS_BOTTOM, 2, 1); + vbGeneral->attach_next_to(*ftheme, *flang, Gtk::POS_BOTTOM, 2, 1); // --------------------------------------------- @@ -1151,7 +1097,7 @@ Gtk::Widget* Preferences::getGeneralPanel() clipGrid->attach_next_to(*shThresh, *shl, Gtk::POS_RIGHT, 1, 1); fclip->add(*clipGrid); - mvbsd->attach_next_to(*fclip, *ftheme, Gtk::POS_BOTTOM, 1, 1); + vbGeneral->attach_next_to (*fclip, *ftheme, Gtk::POS_BOTTOM, 1, 1); // --------------------------------------------- @@ -1179,7 +1125,7 @@ Gtk::Widget* Preferences::getGeneralPanel() navigationGrid->attach_next_to(*rememberZoomPanCheckbutton, *panFactorLabel, Gtk::POS_BOTTOM, 2, 1); fnav->add(*navigationGrid); - mvbsd->attach_next_to(*fnav, *fclip, Gtk::POS_RIGHT, 1, 1); + vbGeneral->attach_next_to (*fnav, *fclip, Gtk::POS_RIGHT, 1, 1); // --------------------------------------------- @@ -1242,19 +1188,22 @@ Gtk::Widget* Preferences::getGeneralPanel() #endif fdg->add(*externaleditorGrid); - mvbsd->attach_next_to(*fdg, *fclip, Gtk::POS_BOTTOM, 2, 1); + vbGeneral->attach_next_to (*fdg, *fclip, Gtk::POS_BOTTOM, 2, 1); langAutoDetectConn = ckbLangAutoDetect->signal_toggled().connect(sigc::mem_fun(*this, &Preferences::langAutoDetectToggled)); tconn = theme->signal_changed().connect(sigc::mem_fun(*this, &Preferences::themeChanged)); fconn = fontButton->signal_font_set().connect(sigc::mem_fun(*this, &Preferences::fontChanged)); cpfconn = colorPickerFontButton->signal_font_set().connect(sigc::mem_fun(*this, &Preferences::cpFontChanged)); - return mvbsd; + swGeneral->add(*vbGeneral); + return swGeneral; } Gtk::Widget* Preferences::getFileBrowserPanel() { + swFileBrowser = Gtk::manage(new Gtk::ScrolledWindow()); + swFileBrowser->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); - Gtk::VBox* mvbfb = Gtk::manage(new Gtk::VBox()); + Gtk::VBox* vbFileBrowser = Gtk::manage ( new Gtk::VBox () ); Gtk::Frame* fsd = Gtk::manage(new Gtk::Frame(M("PREFERENCES_STARTUPIMDIR"))); @@ -1265,7 +1214,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel() startupdir = Gtk::manage(new Gtk::Entry()); Gtk::Button* sdselect = Gtk::manage(new Gtk::Button()); - sdselect->set_image(*Gtk::manage(new RTImage("gtk-open.png"))); + sdselect->set_image (*Gtk::manage (new RTImage ("folder-open.png"))); Gtk::RadioButton::Group opts = sdcurrent->get_group(); sdlast->set_group(opts); @@ -1283,7 +1232,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel() vbsd->pack_start(*otherbox, Gtk::PACK_SHRINK, 0); fsd->add(*vbsd); - mvbfb->pack_start(*fsd, Gtk::PACK_SHRINK, 4); + vbFileBrowser->pack_start (*fsd, Gtk::PACK_SHRINK, 4); sdselect->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::selectStartupDir)); @@ -1367,8 +1316,8 @@ Gtk::Widget* Preferences::getFileBrowserPanel() delExt->set_tooltip_text(M("PREFERENCES_PARSEDEXTDELHINT")); moveExtUp->set_tooltip_text(M("PREFERENCES_PARSEDEXTUPHINT")); moveExtDown->set_tooltip_text(M("PREFERENCES_PARSEDEXTDOWNHINT")); - Gtk::Image* addExtImg = Gtk::manage(new RTImage("list-add-small.png")); - Gtk::Image* delExtImg = Gtk::manage(new RTImage("list-remove-red-small.png")); + Gtk::Image* addExtImg = Gtk::manage ( new RTImage ("add-small.png") ); + Gtk::Image* delExtImg = Gtk::manage ( new RTImage ("remove-small.png") ); Gtk::Image* moveExtUpImg = Gtk::manage(new RTImage("arrow-up-small.png")); Gtk::Image* moveExtDownImg = Gtk::manage(new RTImage("arrow-down-small.png")); addExt->add(*addExtImg); @@ -1440,11 +1389,7 @@ Gtk::Widget* Preferences::getFileBrowserPanel() hb6->pack_start(*fre); hb6->set_spacing(4); - mvbfb->pack_start(*hb6, Gtk::PACK_SHRINK, 4); - -// mvbfb->pack_start (*fro, Gtk::PACK_SHRINK, 4); -// mvbfb->pack_start (*fre); -// mvbfb->pack_start (*frc, Gtk::PACK_SHRINK, 4); + vbFileBrowser->pack_start (*hb6, Gtk::PACK_SHRINK, 4); addExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::addExtPressed)); delExt->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::delExtPressed)); @@ -1456,22 +1401,26 @@ Gtk::Widget* Preferences::getFileBrowserPanel() clearmip->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::clearmipPressed)); clearAll->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::clearAllPressed)); - return mvbfb; + swFileBrowser->add(*vbFileBrowser); + return swFileBrowser; } -Gtk::Widget* Preferences::getSoundPanel() +Gtk::Widget* Preferences::getSoundsPanel () { - Gtk::VBox* pSnd = new Gtk::VBox(); + swSounds = Gtk::manage(new Gtk::ScrolledWindow()); + swSounds->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); + + Gtk::VBox* vbSounds = new Gtk::VBox (); ckbSndEnable = Gtk::manage(new Gtk::CheckButton(M("GENERAL_ENABLE"))); sndEnableConn = ckbSndEnable->signal_toggled().connect(sigc::mem_fun(*this, &Preferences::sndEnableToggled)); - pSnd->pack_start(*ckbSndEnable, Gtk::PACK_SHRINK, 4); + vbSounds->pack_start (*ckbSndEnable, Gtk::PACK_SHRINK, 4); Gtk::HBox* hblSndHelp = Gtk::manage(new Gtk::HBox()); Gtk::Label* lSndHelp = Gtk::manage(new Gtk::Label(M("PREFERENCES_SND_HELP"))); hblSndHelp->pack_start(*lSndHelp, Gtk::PACK_SHRINK, 4); - pSnd->pack_start(*hblSndHelp, Gtk::PACK_SHRINK, 4); + vbSounds->pack_start (*hblSndHelp, Gtk::PACK_SHRINK, 4); // BatchQueueDone Gtk::HBox* pBatchQueueDone = Gtk::manage(new Gtk::HBox()); @@ -1482,7 +1431,7 @@ Gtk::Widget* Preferences::getSoundPanel() txtSndBatchQueueDone = Gtk::manage(new Gtk::Entry()); pBatchQueueDone->pack_end(*txtSndBatchQueueDone, Gtk::PACK_EXPAND_WIDGET, 4); - pSnd->pack_start(*pBatchQueueDone, Gtk::PACK_SHRINK, 4); + vbSounds->pack_start (*pBatchQueueDone, Gtk::PACK_SHRINK, 4); // LngEditProcDone Gtk::HBox* pSndLngEditProcDone = Gtk::manage(new Gtk::HBox()); @@ -1502,11 +1451,12 @@ Gtk::Widget* Preferences::getSoundPanel() spbSndLngEditProcDoneSecs->set_range(0, 10); pSndLngEditProcDone->pack_end(*spbSndLngEditProcDoneSecs, Gtk::PACK_SHRINK, 4); - pSnd->pack_start(*pSndLngEditProcDone, Gtk::PACK_SHRINK, 4); + vbSounds->pack_start (*pSndLngEditProcDone, Gtk::PACK_SHRINK, 4); sndEnableToggled(); - return pSnd; + swSounds->add(*vbSounds); + return swSounds; } void Preferences::parseDir(Glib::ustring dirname, std::vector& items, Glib::ustring ext) @@ -1598,8 +1548,9 @@ void Preferences::parseThemeDir(Glib::ustring dirname) void Preferences::storePreferences() { -// With the new mechanism, we can't be sure of the availability of the DEFPROFILE_RAW & DEFPROFILE_IMG profiles, -// because useBundledProfiles may be false. We're now using DEFPROFILE_INTERNAL instead, which is always available. + // With the new mechanism, we can't be sure of the availability of the DEFPROFILE_RAW & DEFPROFILE_IMG profiles, + // because useBundledProfiles may be false. We're now using DEFPROFILE_INTERNAL instead, which is always available. + moptions.defProfRaw = rprofiles->getFullPathFromActiveRow(); if (moptions.defProfRaw.empty()) { @@ -1732,25 +1683,12 @@ void Preferences::storePreferences() } moptions.rtSettings.monitorBPC = monBPC->get_active(); -//#if defined(WIN32) moptions.rtSettings.autoMonitorProfile = cbAutoMonProfile->get_active(); -//#endif #endif moptions.rtSettings.iccDirectory = iccDir->get_filename(); -// moptions.rtSettings.viewingdevice = view->get_active_row_number (); -// moptions.rtSettings.viewingdevicegrey = grey->get_active_row_number (); -// moptions.rtSettings.viewinggreySc = greySc->get_active_row_number (); -// moptions.rtSettings.autocielab = cbAutocielab->get_active (); - moptions.rtSettings.leveldnv = dnv->get_active_row_number(); - moptions.rtSettings.leveldnti = dnti->get_active_row_number(); - moptions.rtSettings.leveldnliss = dnliss->get_active_row_number(); - moptions.rtSettings.leveldnaut = dnaut->get_active_row_number(); - moptions.rtSettings.nrwavlevel = dnwavlev->get_active_row_number(); - moptions.rtSettings.leveldnautsimpl = dnautsimpl->get_active_row_number(); - moptions.rtSettings.daubech = cbdaubech->get_active(); - moptions.prevdemo = (prevdemo_t)cprevdemo->get_active_row_number(); + moptions.prevdemo = (prevdemo_t)cprevdemo->get_active_row_number (); moptions.serializeTiffRead = ctiffserialize->get_active(); if (sdcurrent->get_active()) { @@ -1814,7 +1752,7 @@ void Preferences::storePreferences() moptions.autoSaveTpOpen = ckbAutoSaveTpOpen->get_active(); - moptions.rgbDenoiseThreadLimit = rgbDenoiseTreadLimitSB->get_value_as_int(); + moptions.rgbDenoiseThreadLimit = threadsSpinBtn->get_value_as_int(); moptions.clutCacheSize = clutCacheSizeSB->get_value_as_int(); moptions.maxInspectorBuffers = maxInspectorBuffersSB->get_value_as_int(); moptions.rtSettings.thumbnail_inspector_mode = static_cast(thumbnailInspectorMode->get_active_row_number()); @@ -1891,28 +1829,14 @@ void Preferences::fillPreferences() } monBPC->set_active(moptions.rtSettings.monitorBPC); -//#if defined(WIN32) cbAutoMonProfile->set_active(moptions.rtSettings.autoMonitorProfile); -//#endif #endif if (Glib::file_test(moptions.rtSettings.iccDirectory, Glib::FILE_TEST_IS_DIR)) { iccDir->set_current_folder(moptions.rtSettings.iccDirectory); } -// view->set_active (moptions.rtSettings.viewingdevice); -// grey->set_active (moptions.rtSettings.viewingdevicegrey); -// greySc->set_active (moptions.rtSettings.viewinggreySc); - dnv->set_active(moptions.rtSettings.leveldnv); - dnti->set_active(moptions.rtSettings.leveldnti); - dnliss->set_active(moptions.rtSettings.leveldnliss); - dnaut->set_active(moptions.rtSettings.leveldnaut); - dnautsimpl->set_active(moptions.rtSettings.leveldnautsimpl); - dnwavlev->set_active(moptions.rtSettings.nrwavlevel); - cprevdemo->set_active(moptions.prevdemo); - cbdaubech->set_active(moptions.rtSettings.daubech); - -// cbAutocielab->set_active (moptions.rtSettings.autocielab); + cprevdemo->set_active (moptions.prevdemo); languages->set_active_text(moptions.language); ckbLangAutoDetect->set_active(moptions.languageAutoDetect); int themeNbr = getThemeRowNumber(moptions.theme); @@ -2025,7 +1949,6 @@ void Preferences::fillPreferences() curveBBoxPosC->set_active(moptions.curvebboxpos); ckbHistogramPositionLeft->set_active(moptions.histogramPosition == 1); -// ckbHistogramWorking->set_active(moptions.histogramWorking==1); ckbFileBrowserToolbarSingleRow->set_active(moptions.FileBrowserToolbarSingleRow); ckbShowFilmStripToolBar->set_active(moptions.showFilmStripToolBar); ckbHideTPVScrollbar->set_active(moptions.hideTPVScrollbar); @@ -2033,9 +1956,9 @@ void Preferences::fillPreferences() ckbAutoSaveTpOpen->set_active(moptions.autoSaveTpOpen); - rgbDenoiseTreadLimitSB->set_value(moptions.rgbDenoiseThreadLimit); - clutCacheSizeSB->set_value(moptions.clutCacheSize); - maxInspectorBuffersSB->set_value(moptions.maxInspectorBuffers); + threadsSpinBtn->set_value (moptions.rgbDenoiseThreadLimit); + clutCacheSizeSB->set_value (moptions.clutCacheSize); + maxInspectorBuffersSB->set_value (moptions.maxInspectorBuffers); thumbnailInspectorMode->set_active(int(moptions.rtSettings.thumbnail_inspector_mode)); darkFrameDir->set_current_folder(moptions.rtSettings.darkFramesPath); @@ -2100,17 +2023,17 @@ void Preferences::savePressed () { } */ -//#if defined(WIN32) void Preferences::autoMonProfileToggled() { monProfile->set_sensitive(!cbAutoMonProfile->get_active()); } -//#endif + /* void Preferences::autocielabToggled () { // cbAutocielab->set_sensitive(cbAutocielab->get_active()); } */ + void Preferences::sndEnableToggled() { txtSndBatchQueueDone->set_sensitive(ckbSndEnable->get_active()); @@ -2164,7 +2087,7 @@ void Preferences::cancelPressed() // update the profileStore if (useBundledProfiles->get_active() != options.useBundledProfiles) { - // we have to rescan with the old value; + // we have to rescan with the old value bpconn.block(true); useBundledProfiles->set_active(false); bundledProfilesChanged(); @@ -2178,7 +2101,7 @@ void Preferences::selectStartupDir() { Gtk::FileChooserDialog dialog(getToplevelWindow(this), M("PREFERENCES_DIRSELECTDLG"), Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER); -// dialog.set_transient_for(*this); + //dialog.set_transient_for(*this); //Add response buttons to the dialog: dialog.add_button(M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); diff --git a/rtgui/preferences.h b/rtgui/preferences.h index c129088f4..b167a84a1 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -163,7 +163,7 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener Gtk::CheckButton* filmStripOverlayedFileNames; Gtk::CheckButton* sameThumbSize; - Gtk::SpinButton* rgbDenoiseTreadLimitSB; + Gtk::SpinButton* threadsSpinBtn; Gtk::SpinButton* clutCacheSizeSB; Gtk::SpinButton* maxInspectorBuffersSB; Gtk::ComboBoxText *thumbnailInspectorMode; @@ -243,14 +243,23 @@ class Preferences : public Gtk::Dialog, public ProfileStoreListener void appendBehavList (Gtk::TreeModel::iterator& parent, Glib::ustring label, int id, bool set); - Gtk::Widget* getProcParamsPanel (); - Gtk::Widget* getColorManagementPanel (); - Gtk::Widget* getFileBrowserPanel (); - Gtk::Widget* getGeneralPanel (); - Gtk::Widget* getBatchProcPanel (); - Gtk::Widget* getPerformancePanel (); - Gtk::Widget* getSoundPanel (); - Gtk::Widget* getDynProfilePanel (); + Gtk::ScrolledWindow *swGeneral; + Gtk::ScrolledWindow *swImageProcessing; + Gtk::ScrolledWindow *swDynamicProfile; + Gtk::ScrolledWindow *swFileBrowser; + Gtk::ScrolledWindow *swColorMan; + Gtk::ScrolledWindow *swBatchProc; + Gtk::ScrolledWindow *swPerformance; + Gtk::ScrolledWindow *swSounds; + + Gtk::Widget *getGeneralPanel(); + Gtk::Widget *getImageProcessingPanel(); + Gtk::Widget *getDynamicProfilePanel(); + Gtk::Widget *getFileBrowserPanel(); + Gtk::Widget *getColorManPanel(); + Gtk::Widget *getBatchProcPanel(); + Gtk::Widget *getPerformancePanel(); + Gtk::Widget *getSoundsPanel(); public: explicit Preferences (RTWindow *rtwindow); diff --git a/rtgui/previewmodepanel.cc b/rtgui/previewmodepanel.cc index 60b450e4a..086f6ab17 100644 --- a/rtgui/previewmodepanel.cc +++ b/rtgui/previewmodepanel.cc @@ -24,60 +24,68 @@ PreviewModePanel::PreviewModePanel (ImageArea* ia) : imageArea(ia) { - iR = new RTImage ("previewmodeR-on.png"); - iG = new RTImage ("previewmodeG-on.png"); - iB = new RTImage ("previewmodeB-on.png"); - iL = new RTImage ("previewmodeL-on.png"); - iBC0 = new RTImage ("previewmodeBC0-on.png"); - iBC1 = new RTImage ("previewmodeBC1-on.png"); - iBC2 = new RTImage ("previewmodeBC2-on.png"); - iBC3 = new RTImage ("previewmodeBC3-on.png"); + iR = new RTImage ("square-toggle-red-on-narrow.png"); + iG = new RTImage ("square-toggle-green-on-narrow.png"); + iB = new RTImage ("square-toggle-blue-on-narrow.png"); + iL = new RTImage ("square-toggle-luminosity-on-narrow.png"); + iBC0 = new RTImage ("square-toggle-theme-on-narrow.png"); + iBC1 = new RTImage ("square-toggle-black-on-narrow.png"); + iBC2 = new RTImage ("square-toggle-white-on-narrow.png"); + iBC3 = new RTImage ("square-toggle-gray-on-narrow.png"); - igR = new RTImage ("previewmodeR-off.png"); - igG = new RTImage ("previewmodeG-off.png"); - igB = new RTImage ("previewmodeB-off.png"); - igL = new RTImage ("previewmodeL-off.png"); - igBC0 = new RTImage ("previewmodeBC0-off.png"); - igBC1 = new RTImage ("previewmodeBC1-off.png"); - igBC2 = new RTImage ("previewmodeBC2-off.png"); - igBC3 = new RTImage ("previewmodeBC3-off.png"); + igR = new RTImage ("square-toggle-red-off-narrow.png"); + igG = new RTImage ("square-toggle-green-off-narrow.png"); + igB = new RTImage ("square-toggle-blue-off-narrow.png"); + igL = new RTImage ("square-toggle-luminosity-off-narrow.png"); + igBC0 = new RTImage ("square-toggle-theme-off-narrow.png"); + igBC1 = new RTImage ("square-toggle-black-off-narrow.png"); + igBC2 = new RTImage ("square-toggle-white-off-narrow.png"); + igBC3 = new RTImage ("square-toggle-gray-off-narrow.png"); backColor0 = Gtk::manage (new Gtk::ToggleButton ()); + backColor0->get_style_context()->add_class("narrowbutton"); backColor0->set_relief(Gtk::RELIEF_NONE); backColor0->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR0")); backColor0->set_image(options.bgcolor == 0 ? *iBC0 : *igBC0); backColor1 = Gtk::manage (new Gtk::ToggleButton ()); + backColor1->get_style_context()->add_class("narrowbutton"); backColor1->set_relief(Gtk::RELIEF_NONE); backColor1->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR1")); backColor1->set_image(options.bgcolor == 1 ? *iBC1 : *igBC1); backColor3 = Gtk::manage (new Gtk::ToggleButton ()); + backColor3->get_style_context()->add_class("narrowbutton"); backColor3->set_relief(Gtk::RELIEF_NONE); backColor3->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR3")); backColor3->set_image(options.bgcolor == 3 ? *iBC3 : *igBC3); backColor2 = Gtk::manage (new Gtk::ToggleButton ()); + backColor2->get_style_context()->add_class("narrowbutton"); backColor2->set_relief(Gtk::RELIEF_NONE); backColor2->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR2")); backColor2->set_image(options.bgcolor == 2 ? *iBC2 : *igBC2); previewR = Gtk::manage (new Gtk::ToggleButton ()); + previewR->get_style_context()->add_class("narrowbutton"); previewR->set_relief(Gtk::RELIEF_NONE); previewR->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWR")); previewR->set_image(*igR); previewG = Gtk::manage (new Gtk::ToggleButton ()); + previewG->get_style_context()->add_class("narrowbutton"); previewG->set_relief(Gtk::RELIEF_NONE); previewG->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWG")); previewG->set_image(*igG); previewB = Gtk::manage (new Gtk::ToggleButton ()); + previewB->get_style_context()->add_class("narrowbutton"); previewB->set_relief(Gtk::RELIEF_NONE); previewB->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWB")); previewB->set_image(*igB); previewL = Gtk::manage (new Gtk::ToggleButton ()); + previewL->get_style_context()->add_class("narrowbutton"); previewL->set_relief(Gtk::RELIEF_NONE); previewL->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWL")); previewL->set_image(*igL); diff --git a/rtgui/previewwindow.cc b/rtgui/previewwindow.cc index 06ce3ad18..5c7cce997 100644 --- a/rtgui/previewwindow.cc +++ b/rtgui/previewwindow.cc @@ -230,8 +230,9 @@ bool PreviewWindow::on_motion_notify_event (GdkEventMotion* event) mainCropWin->remoteMove ((event->x - press_x) / zoom, (event->y - press_y) / zoom); press_x = event->x; press_y = event->y; + newType = CSHandClosed; } else if (inside) { - newType = CSClosedHand; + newType = CSHandOpen; } else { newType = CSArrow; } @@ -262,8 +263,8 @@ bool PreviewWindow::on_button_press_event (GdkEventButton* event) press_x = event->x; press_y = event->y; - if (cursor_type != CSClosedHand) { - cursor_type = CSClosedHand; + if (cursor_type != CSHandClosed) { + cursor_type = CSHandClosed; CursorManager::setWidgetCursor(get_window(), cursor_type); } } diff --git a/rtgui/profilechangelistener.h b/rtgui/profilechangelistener.h index b3baa62d7..79705b114 100644 --- a/rtgui/profilechangelistener.h +++ b/rtgui/profilechangelistener.h @@ -27,7 +27,7 @@ class ProfileChangeListener public: virtual ~ProfileChangeListener() {} - virtual void profileChange (const rtengine::procparams::PartialProfile* nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr) {} + virtual void profileChange (const rtengine::procparams::PartialProfile* nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr, bool fromLastSaved = false) {} virtual void setDefaults (rtengine::procparams::ProcParams* defparams) {} }; diff --git a/rtgui/profilepanel.cc b/rtgui/profilepanel.cc index 236161420..0adfb85cb 100644 --- a/rtgui/profilepanel.cc +++ b/rtgui/profilepanel.cc @@ -63,20 +63,20 @@ ProfilePanel::ProfilePanel () : storedPProfile(nullptr), lastFilename(""), image setExpandAlignProperties(profiles, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); load = Gtk::manage (new Gtk::Button ()); - load->add (*Gtk::manage (new RTImage ("gtk-open.png"))); + load->add (*Gtk::manage (new RTImage ("folder-open.png"))); load->get_style_context()->add_class("Left"); load->set_margin_left(2); setExpandAlignProperties(load, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); save = Gtk::manage (new Gtk::Button ()); - save->add (*Gtk::manage (new RTImage ("gtk-save-large.png"))); + save->add (*Gtk::manage (new RTImage ("save.png"))); save->get_style_context()->add_class("MiddleH"); setExpandAlignProperties(save, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); copy = Gtk::manage (new Gtk::Button ()); - copy->add (*Gtk::manage (new RTImage ("edit-copy.png"))); + copy->add (*Gtk::manage (new RTImage ("copy.png"))); copy->get_style_context()->add_class("MiddleH"); setExpandAlignProperties(copy, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); paste = Gtk::manage (new Gtk::Button ()); - paste->add (*Gtk::manage (new RTImage ("edit-paste.png"))); + paste->add (*Gtk::manage (new RTImage ("paste.png"))); paste->get_style_context()->add_class("Right"); setExpandAlignProperties(paste, false, true, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); @@ -797,7 +797,7 @@ void ProfilePanel::initProfile (const Glib::ustring& profileFullPath, ProcParams if (tpc) { tpc->setDefaults (lastsaved->pparams); - tpc->profileChange (lastsaved, EvPhotoLoaded, profiles->getSelectedEntry()->label); + tpc->profileChange (lastsaved, EvPhotoLoaded, profiles->getSelectedEntry()->label, nullptr, true); } } else { if (pse) { diff --git a/rtgui/prsharpening.cc b/rtgui/prsharpening.cc index bafc8446d..8179efcd8 100644 --- a/rtgui/prsharpening.cc +++ b/rtgui/prsharpening.cc @@ -37,7 +37,7 @@ PrSharpening::PrSharpening () : FoldableToolPanel(this, "prsharpening", M("TP_PR Gtk::HBox* hb = Gtk::manage (new Gtk::HBox ()); hb->show (); - contrast = Gtk::manage(new Adjuster (M("TP_SHARPENING_CONTRAST"), 0, 100, 1, 0)); + contrast = Gtk::manage(new Adjuster (M("TP_SHARPENING_CONTRAST"), 0, 200, 1, 0)); contrast->setAdjusterListener (this); pack_start(*contrast); contrast->show(); diff --git a/rtgui/rawcacorrection.cc b/rtgui/rawcacorrection.cc index 75c60a7a2..37f01cfcf 100644 --- a/rtgui/rawcacorrection.cc +++ b/rtgui/rawcacorrection.cc @@ -17,6 +17,7 @@ * along with RawTherapee. If not, see . */ #include "rawcacorrection.h" +#include "eventmapper.h" #include "guiutils.h" #include "rtimage.h" @@ -25,15 +26,27 @@ using namespace rtengine::procparams; RAWCACorr::RAWCACorr () : FoldableToolPanel(this, "rawcacorrection", M("TP_CHROMATABERR_LABEL")) { - Gtk::Image* icaredL = Gtk::manage (new RTImage ("ajd-ca-red1.png")); - Gtk::Image* icaredR = Gtk::manage (new RTImage ("ajd-ca-red2.png")); - Gtk::Image* icablueL = Gtk::manage (new RTImage ("ajd-ca-blue1.png")); - Gtk::Image* icablueR = Gtk::manage (new RTImage ("ajd-ca-blue2.png")); + auto m = ProcEventMapper::getInstance(); + EvPreProcessCAAutoiterations = m->newEvent(DARKFRAME, "HISTORY_MSG_RAWCACORR_AUTOIT"); + EvPreProcessCAColourshift = m->newEvent(DARKFRAME, "HISTORY_MSG_RAWCACORR_COLOURSHIFT"); + EvPreProcessCAColourshiftHistory = m->newEvent(M_VOID, "HISTORY_MSG_RAWCACORR_COLOURSHIFT"); + + Gtk::Image* icaredL = Gtk::manage (new RTImage ("circle-red-cyan-small.png")); + Gtk::Image* icaredR = Gtk::manage (new RTImage ("circle-cyan-red-small.png")); + Gtk::Image* icablueL = Gtk::manage (new RTImage ("circle-blue-yellow-small.png")); + Gtk::Image* icablueR = Gtk::manage (new RTImage ("circle-yellow-blue-small.png")); caAutocorrect = Gtk::manage (new CheckBox(M("TP_RAWCACORR_AUTO"), multiImage)); caAutocorrect->setCheckBoxListener (this); - caRed = Gtk::manage(new Adjuster (M("TP_RAWCACORR_CARED"), -4.0, 4.0, 0.1, 0, icaredL, icaredR)); + caAutoiterations = Gtk::manage(new Adjuster (M("TP_RAWCACORR_AUTOIT"), 1, 5, 1, 2)); + caAutoiterations->setAdjusterListener (this); + + if (caAutoiterations->delay < options.adjusterMaxDelay) { + caAutoiterations->delay = options.adjusterMaxDelay; + } + + caRed = Gtk::manage(new Adjuster (M("TP_RAWCACORR_CARED"), -8.0, 8.0, 0.1, 0, icaredL, icaredR)); caRed->setAdjusterListener (this); if (caRed->delay < options.adjusterMaxDelay) { @@ -41,7 +54,7 @@ RAWCACorr::RAWCACorr () : FoldableToolPanel(this, "rawcacorrection", M("TP_CHROM } caRed->show(); - caBlue = Gtk::manage(new Adjuster (M("TP_RAWCACORR_CABLUE"), -4.0, 4.0, 0.1, 0, icablueL, icablueR)); + caBlue = Gtk::manage(new Adjuster (M("TP_RAWCACORR_CABLUE"), -8.0, 8.0, 0.1, 0, icablueL, icablueR)); caBlue->setAdjusterListener (this); if (caBlue->delay < options.adjusterMaxDelay) { @@ -51,9 +64,15 @@ RAWCACorr::RAWCACorr () : FoldableToolPanel(this, "rawcacorrection", M("TP_CHROM caBlue->show(); pack_start( *caAutocorrect, Gtk::PACK_SHRINK, 4); + pack_start( *caAutoiterations, Gtk::PACK_SHRINK, 4); pack_start( *caRed, Gtk::PACK_SHRINK, 4); pack_start( *caBlue, Gtk::PACK_SHRINK, 4); + caAvoidcolourshift = Gtk::manage (new CheckBox(M("TP_RAWCACORR_AVOIDCOLORSHIFT"), multiImage)); + caAvoidcolourshift->setCheckBoxListener (this); + pack_start( *caAvoidcolourshift, Gtk::PACK_SHRINK, 4); + + } void RAWCACorr::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) @@ -62,15 +81,21 @@ void RAWCACorr::read(const rtengine::procparams::ProcParams* pp, const ParamsEdi if(pedited ) { caAutocorrect->setEdited(pedited->raw.ca_autocorrect); + caAvoidcolourshift->setEdited(pedited->raw.ca_avoidcolourshift); + caAutoiterations->setEditedState( pedited->raw.caautoiterations ? Edited : UnEdited ); caRed->setEditedState( pedited->raw.cared ? Edited : UnEdited ); caBlue->setEditedState( pedited->raw.cablue ? Edited : UnEdited ); } - // disable Red and Blue sliders when caAutocorrect is enabled - caRed->set_sensitive(!pp->raw.ca_autocorrect); - caBlue->set_sensitive(!pp->raw.ca_autocorrect); - + if (!batchMode) { + // disable Red and Blue sliders when caAutocorrect is enabled + caAutoiterations->set_sensitive(pp->raw.ca_autocorrect); + caRed->set_sensitive(!pp->raw.ca_autocorrect); + caBlue->set_sensitive(!pp->raw.ca_autocorrect); + } caAutocorrect->setValue(pp->raw.ca_autocorrect); + caAvoidcolourshift->setValue(pp->raw.ca_avoidcolourshift); + caAutoiterations->setValue (pp->raw.caautoiterations); caRed->setValue (pp->raw.cared); caBlue->setValue (pp->raw.cablue); @@ -80,11 +105,15 @@ void RAWCACorr::read(const rtengine::procparams::ProcParams* pp, const ParamsEdi void RAWCACorr::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) { pp->raw.ca_autocorrect = caAutocorrect->getLastActive(); + pp->raw.ca_avoidcolourshift = caAvoidcolourshift->getLastActive(); + pp->raw.caautoiterations = caAutoiterations->getValue(); pp->raw.cared = caRed->getValue(); pp->raw.cablue = caBlue->getValue(); if (pedited) { pedited->raw.ca_autocorrect = !caAutocorrect->get_inconsistent(); + pedited->raw.ca_avoidcolourshift = !caAvoidcolourshift->get_inconsistent(); + pedited->raw.caautoiterations = caAutoiterations->getEditedState (); pedited->raw.cared = caRed->getEditedState (); pedited->raw.cablue = caBlue->getEditedState (); } @@ -97,7 +126,9 @@ void RAWCACorr::adjusterChanged (Adjuster* a, double newval) Glib::ustring value = a->getTextValue(); - if (a == caRed) { + if (a == caAutoiterations) { + listener->panelChanged (EvPreProcessCAAutoiterations, value ); + } else if (a == caRed) { listener->panelChanged (EvPreProcessCARed, value ); } else if (a == caBlue) { listener->panelChanged (EvPreProcessCABlue, value ); @@ -110,6 +141,7 @@ void RAWCACorr::checkBoxToggled (CheckBox* c, CheckValue newval) if (c == caAutocorrect) { if (!batchMode) { // disable Red and Blue sliders when caAutocorrect is enabled + caAutoiterations->set_sensitive(caAutocorrect->getLastActive ()); caRed->set_sensitive(!caAutocorrect->getLastActive ()); caBlue->set_sensitive(!caAutocorrect->getLastActive ()); } @@ -117,24 +149,33 @@ void RAWCACorr::checkBoxToggled (CheckBox* c, CheckValue newval) listener->panelChanged (EvPreProcessAutoCA, caAutocorrect->getLastActive() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); } } + else if (c == caAvoidcolourshift) { + if (listener) { + listener->panelChanged ((caAutocorrect->getLastActive() || caRed->getValue() != 0 || caBlue->getValue() != 0) ? EvPreProcessCAColourshift : EvPreProcessCAColourshiftHistory, caAvoidcolourshift->getLastActive() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED")); + } + } } void RAWCACorr::setBatchMode(bool batchMode) { ToolPanel::setBatchMode (batchMode); + caAutoiterations->showEditedCB (); caRed->showEditedCB (); caBlue->showEditedCB (); } void RAWCACorr::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) { + caAutoiterations->setDefault( defParams->raw.caautoiterations); caRed->setDefault( defParams->raw.cared); caBlue->setDefault( defParams->raw.cablue); if (pedited) { + caAutoiterations->setDefaultEditedState( pedited->raw.caautoiterations ? Edited : UnEdited); caRed->setDefaultEditedState( pedited->raw.cared ? Edited : UnEdited); caBlue->setDefaultEditedState( pedited->raw.cablue ? Edited : UnEdited); } else { + caAutoiterations->setDefaultEditedState( Irrelevant ); caRed->setDefaultEditedState( Irrelevant ); caBlue->setDefaultEditedState( Irrelevant ); } @@ -150,6 +191,7 @@ void RAWCACorr::setAdjusterBehavior (bool caadd) void RAWCACorr::trimValues (rtengine::procparams::ProcParams* pp) { + caAutoiterations->trimValue(pp->raw.caautoiterations); caRed->trimValue(pp->raw.cared); caBlue->trimValue(pp->raw.cablue); } diff --git a/rtgui/rawcacorrection.h b/rtgui/rawcacorrection.h index 69292b1aa..dea9ef738 100644 --- a/rtgui/rawcacorrection.h +++ b/rtgui/rawcacorrection.h @@ -29,8 +29,14 @@ class RAWCACorr : public ToolParamBlock, public AdjusterListener, public CheckBo protected: CheckBox* caAutocorrect; + Adjuster* caAutoiterations; Adjuster* caRed; Adjuster* caBlue; + CheckBox* caAvoidcolourshift; + + rtengine::ProcEvent EvPreProcessCAAutoiterations; + rtengine::ProcEvent EvPreProcessCAColourshift; + rtengine::ProcEvent EvPreProcessCAColourshiftHistory; public: diff --git a/rtgui/renamedlg.cc b/rtgui/renamedlg.cc index ce59fe5f5..f03df455f 100644 --- a/rtgui/renamedlg.cc +++ b/rtgui/renamedlg.cc @@ -179,8 +179,8 @@ Glib::ustring RenameDialog::getNewName () // templ = Gtk::manage (new Gtk::Entry ()); // Gtk::Button* add = Gtk::manage (new Gtk::Button ()); // Gtk::Button* del = Gtk::manage (new Gtk::Button ()); -// add->add (*Gtk::manage (new RTImage ("list-add-small.png"))); -// del->add (*Gtk::manage (new RTImage ("list-remove-red-small.png"))); +// add->add (*Gtk::manage (new RTImage ("add-small.png"))); +// del->add (*Gtk::manage (new RTImage ("remove-small.png"))); // hb->pack_start (*templ); // hb->pack_start (*add, Gtk::PACK_SHRINK, 2); // hb->pack_start (*del, Gtk::PACK_SHRINK, 2); diff --git a/rtgui/resize.cc b/rtgui/resize.cc index 0491065d2..d99068096 100644 --- a/rtgui/resize.cc +++ b/rtgui/resize.cc @@ -18,12 +18,15 @@ */ #include "resize.h" #include "guiutils.h" +#include "eventmapper.h" using namespace rtengine; using namespace rtengine::procparams; Resize::Resize () : FoldableToolPanel(this, "resize", M("TP_RESIZE_LABEL"), false, true), maxw(100000), maxh(100000) { + auto m = ProcEventMapper::getInstance(); + EvResizeAllowUpscaling = m->newEvent(RESIZE, "HISTORY_MSG_RESIZE_ALLOWUPSCALING"); cropw = 0; croph = 0; @@ -88,6 +91,11 @@ Resize::Resize () : FoldableToolPanel(this, "resize", M("TP_RESIZE_LABEL"), fals sbox->pack_start (*hbox); sizeBox->pack_start (*sbox, Gtk::PACK_SHRINK, 0); + + allowUpscaling = Gtk::manage(new Gtk::CheckButton(M("TP_RESIZE_ALLOW_UPSCALING"))); + sizeBox->pack_start(*allowUpscaling); + allowUpscaling->signal_toggled().connect(sigc::mem_fun(*this, &Resize::allowUpscalingChanged)); + sizeBox->show_all (); sizeBox->reference (); @@ -137,6 +145,7 @@ void Resize::read (const ProcParams* pp, const ParamsEdited* pedited) h->set_value (pp->resize.height); setEnabled (pp->resize.enabled); spec->set_active (pp->resize.dataspec); + allowUpscaling->set_active(pp->resize.allowUpscaling); updateGUI(); appliesTo->set_active (0); @@ -175,6 +184,7 @@ void Resize::read (const ProcParams* pp, const ParamsEdited* pedited) spec->set_active (4); } + allowUpscaling->set_inconsistent(!pedited->resize.allowUpscaling); set_inconsistent (multiImage && !pedited->resize.enabled); } @@ -214,6 +224,8 @@ void Resize::write (ProcParams* pp, ParamsEdited* pedited) pp->resize.enabled = getEnabled (); //printf(" L:%d H:%d\n", pp->resize.width, pp->resize.height); + pp->resize.allowUpscaling = allowUpscaling->get_active(); + if (pedited) { pedited->resize.enabled = !get_inconsistent(); pedited->resize.dataspec = dataSpec != MAX_SCALE; @@ -229,6 +241,7 @@ void Resize::write (ProcParams* pp, ParamsEdited* pedited) pedited->resize.width = false; pedited->resize.height = false; } + pedited->resize.allowUpscaling = !allowUpscaling->get_inconsistent(); } } @@ -620,6 +633,22 @@ void Resize::enabledChanged () } } + +void Resize::allowUpscalingChanged() +{ + + if (listener) { + if (allowUpscaling->get_inconsistent()) { + listener->panelChanged(EvResizeAllowUpscaling, M("GENERAL_UNCHANGED")); + } else if (allowUpscaling->get_active()) { + listener->panelChanged(EvResizeAllowUpscaling, M("GENERAL_ENABLED")); + } else { + listener->panelChanged(EvResizeAllowUpscaling, M("GENERAL_DISABLED")); + } + } +} + + void Resize::setAdjusterBehavior (bool scaleadd) { diff --git a/rtgui/resize.h b/rtgui/resize.h index f179b65f9..0534e292a 100644 --- a/rtgui/resize.h +++ b/rtgui/resize.h @@ -66,7 +66,9 @@ private: int getComputedHeight (); void notifyBBox (); void updateGUI (); + void allowUpscalingChanged(); + rtengine::ProcEvent EvResizeAllowUpscaling; Adjuster* scale; Gtk::VBox* sizeBox; MyComboBoxText* appliesTo; @@ -74,6 +76,7 @@ private: MyComboBoxText* spec; MySpinButton* w; MySpinButton* h; + Gtk::CheckButton *allowUpscaling; int maxw, maxh; int cropw, croph; sigc::connection sconn, aconn, wconn, hconn; diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index 320c91fd5..5fdb8998a 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -468,7 +468,7 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL") neutral = Gtk::manage (new Gtk::Button (M ("TP_RETINEX_NEUTRAL"))); setExpandAlignProperties (neutral, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); - RTImage *resetImg = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")); + RTImage *resetImg = Gtk::manage (new RTImage ("undo-small.png", "redo-small.png")); setExpandAlignProperties (resetImg, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); neutral->set_image (*resetImg); neutral->set_tooltip_text (M ("TP_RETINEX_NEUTRAL_TIP")); diff --git a/rtgui/rotate.cc b/rtgui/rotate.cc index e8ea6c48e..802519d8d 100644 --- a/rtgui/rotate.cc +++ b/rtgui/rotate.cc @@ -30,15 +30,16 @@ Rotate::Rotate () : FoldableToolPanel(this, "rotate", M("TP_ROTATE_LABEL")) rlistener = nullptr; //TODO the action of the rotation slider is counter-intuitive - Gtk::Image* irotateL = Gtk::manage (new RTImage ("rotate-right-2.png")); - Gtk::Image* irotateR = Gtk::manage (new RTImage ("rotate-left-2.png")); + Gtk::Image* irotateL = Gtk::manage (new RTImage ("rotate-right-small.png")); + Gtk::Image* irotateR = Gtk::manage (new RTImage ("rotate-left-small.png")); degree = Gtk::manage (new Adjuster (M("TP_ROTATE_DEGREE"), -45, 45, 0.01, 0, irotateL, irotateR)); degree->setAdjusterListener (this); pack_start (*degree); selectStraight = Gtk::manage (new Gtk::Button (M("TP_ROTATE_SELECTLINE"))); - selectStraight->set_image (*Gtk::manage (new RTImage ("straighten-small.png"))); + selectStraight->set_image (*Gtk::manage (new RTImage ("rotate-straighten-small.png"))); + selectStraight->get_style_context()->add_class("independent"); pack_start (*selectStraight, Gtk::PACK_SHRINK, 2); selectStraight->signal_pressed().connect( sigc::mem_fun(*this, &Rotate::selectStraightPressed) ); diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 0a8140955..8541504f8 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -21,6 +21,7 @@ #include "rtwindow.h" #include "options.h" #include "preferences.h" +#include "iccprofilecreator.h" #include "cursormanager.h" #include "rtimage.h" #include "whitebalance.h" @@ -95,10 +96,11 @@ RTWindow::RTWindow () #ifndef WIN32 const std::vector> appIcons = { - RTImage::createFromFile("rt-logo-tiny.png"), - RTImage::createFromFile("rt-logo-small.png"), - RTImage::createFromFile("rt-logo-medium.png"), - RTImage::createFromFile("rt-logo-large.png") + RTImage::createFromFile("rawtherapee-logo-16.png"), + RTImage::createFromFile("rawtherapee-logo-24.png"), + RTImage::createFromFile("rawtherapee-logo-48.png"), + RTImage::createFromFile("rawtherapee-logo-128.png"), + RTImage::createFromFile("rawtherapee-logo-256.png") }; try { set_default_icon_list(appIcons); @@ -190,10 +192,10 @@ RTWindow::RTWindow () if (options.mainNBVertical) { mainNB->set_tab_pos (Gtk::POS_LEFT); fpl->set_angle (90); - fpanelLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("gtk-directory.png")), Gtk::POS_TOP, 1, 1); + fpanelLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("folder-closed.png")), Gtk::POS_TOP, 1, 1); fpanelLabelGrid->attach_next_to (*fpl, Gtk::POS_TOP, 1, 1); } else { - fpanelLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("gtk-directory.png")), Gtk::POS_RIGHT, 1, 1); + fpanelLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("folder-closed.png")), Gtk::POS_RIGHT, 1, 1); fpanelLabelGrid->attach_next_to (*fpl, Gtk::POS_RIGHT, 1, 1); } @@ -225,14 +227,20 @@ RTWindow::RTWindow () //mainBox->pack_start (*mainNB); // filling bottom box - iFullscreen = new RTImage ("fullscreen.png"); - iFullscreen_exit = new RTImage ("fullscreen-exit.png"); + iFullscreen = new RTImage ("fullscreen-enter.png"); + iFullscreen_exit = new RTImage ("fullscreen-leave.png"); + + Gtk::Button* iccProfileCreator = Gtk::manage (new Gtk::Button ()); + setExpandAlignProperties (iccProfileCreator, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + iccProfileCreator->set_image (*Gtk::manage (new RTImage ("gamut-plus.png"))); + iccProfileCreator->set_tooltip_markup (M ("MAIN_BUTTON_ICCPROFCREATOR")); + iccProfileCreator->signal_clicked().connect ( sigc::mem_fun (*this, &RTWindow::showICCProfileCreator) ); //Gtk::LinkButton* rtWeb = Gtk::manage (new Gtk::LinkButton ("http://rawtherapee.com")); // unused... but fail to be linked anyway !? //Gtk::Button* preferences = Gtk::manage (new Gtk::Button (M("MAIN_BUTTON_PREFERENCES")+"...")); Gtk::Button* preferences = Gtk::manage (new Gtk::Button ()); setExpandAlignProperties (preferences, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - preferences->set_image (*Gtk::manage (new RTImage ("gtk-preferences.png"))); + preferences->set_image (*Gtk::manage (new RTImage ("preferences.png"))); preferences->set_tooltip_markup (M ("MAIN_BUTTON_PREFERENCES")); preferences->signal_clicked().connect ( sigc::mem_fun (*this, &RTWindow::showPreferences) ); @@ -256,6 +264,7 @@ RTWindow::RTWindow () prProgBar.set_inverted (true); actionGrid->set_orientation (Gtk::ORIENTATION_VERTICAL); actionGrid->attach_next_to (prProgBar, Gtk::POS_BOTTOM, 1, 1); + actionGrid->attach_next_to (*iccProfileCreator, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*preferences, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*btn_fullscreen, Gtk::POS_BOTTOM, 1, 1); mainNB->set_action_widget (actionGrid, Gtk::PACK_END); @@ -263,6 +272,7 @@ RTWindow::RTWindow () prProgBar.set_orientation (Gtk::ORIENTATION_HORIZONTAL); actionGrid->set_orientation (Gtk::ORIENTATION_HORIZONTAL); actionGrid->attach_next_to (prProgBar, Gtk::POS_RIGHT, 1, 1); + actionGrid->attach_next_to (*iccProfileCreator, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*preferences, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*btn_fullscreen, Gtk::POS_RIGHT, 1, 1); mainNB->set_action_widget (actionGrid, Gtk::PACK_END); @@ -440,7 +450,7 @@ void RTWindow::addEditorPanel (EditorPanel* ep, const std::string &name) // construct closeable tab for the image Gtk::Grid* titleGrid = Gtk::manage (new Gtk::Grid ()); titleGrid->set_tooltip_markup (name); - RTImage *closebimg = Gtk::manage (new RTImage ("gtk-close.png")); + RTImage *closebimg = Gtk::manage (new RTImage ("cancel-small.png")); Gtk::Button* closeb = Gtk::manage (new Gtk::Button ()); closeb->set_name ("CloseButton"); closeb->add (*closebimg); @@ -448,7 +458,7 @@ void RTWindow::addEditorPanel (EditorPanel* ep, const std::string &name) closeb->set_focus_on_click (false); closeb->signal_clicked().connect ( sigc::bind (sigc::mem_fun (*this, &RTWindow::remEditorPanel), ep)); - titleGrid->attach_next_to (*Gtk::manage (new RTImage ("rtwindow.png")), Gtk::POS_RIGHT, 1, 1); + titleGrid->attach_next_to (*Gtk::manage (new RTImage ("aperture.png")), Gtk::POS_RIGHT, 1, 1); titleGrid->attach_next_to (*Gtk::manage (new Gtk::Label (Glib::path_get_basename (name))), Gtk::POS_RIGHT, 1, 1); titleGrid->attach_next_to (*closeb, Gtk::POS_RIGHT, 1, 1); titleGrid->show_all (); @@ -747,6 +757,23 @@ void RTWindow::writeToolExpandedStatus (std::vector &tpOpen) } +void RTWindow::showICCProfileCreator () +{ + ICCProfileCreator *iccpc = new ICCProfileCreator (this); + iccpc->run (); + delete iccpc; + + fpanel->optionsChanged (); + + if (epanel) { + epanel->defaultMonitorProfileChanged (options.rtSettings.monitorProfile, options.rtSettings.autoMonitorProfile); + } + + for (const auto &p : epanels) { + p.second->defaultMonitorProfileChanged (options.rtSettings.monitorProfile, options.rtSettings.autoMonitorProfile); + } +} + void RTWindow::showPreferences () { Preferences *pref = new Preferences (this); @@ -983,7 +1010,7 @@ void RTWindow::createSetmEditor() el->set_angle (90); } - editorLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("rt-logo-small.png")), pos, 1, 1); + editorLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("rawtherapee-logo-24.png")), pos, 1, 1); editorLabelGrid->attach_next_to (*el, pos, 1, 1); editorLabelGrid->set_tooltip_markup (M ("MAIN_FRAME_EDITOR_TOOLTIP")); diff --git a/rtgui/rtwindow.h b/rtgui/rtwindow.h index e9fe51b1d..7bb818c7c 100644 --- a/rtgui/rtwindow.h +++ b/rtgui/rtwindow.h @@ -86,6 +86,7 @@ public: bool on_window_state_event (GdkEventWindowState* event); void on_mainNB_switch_page (Gtk::Widget* widget, guint page_num); + void showICCProfileCreator (); void showPreferences (); void on_realize (); void toggle_fullscreen (); diff --git a/rtgui/saveformatpanel.cc b/rtgui/saveformatpanel.cc index a14a7359c..755cb9239 100644 --- a/rtgui/saveformatpanel.cc +++ b/rtgui/saveformatpanel.cc @@ -40,6 +40,7 @@ SaveFormatPanel::SaveFormatPanel () : listener (nullptr) format->append ("JPEG (8-bit)"); format->append ("TIFF (8-bit)"); format->append ("TIFF (16-bit)"); + format->append ("TIFF (16-bit float)"); format->append ("TIFF (32-bit float)"); format->append ("PNG (8-bit)"); format->append ("PNG (16-bit)"); @@ -48,8 +49,9 @@ SaveFormatPanel::SaveFormatPanel () : listener (nullptr) fstr[1] = "tif"; fstr[2] = "tif"; fstr[3] = "tif"; - fstr[4] = "png"; + fstr[4] = "tif"; fstr[5] = "png"; + fstr[6] = "png"; hb1->attach (*flab, 0, 0, 1, 1); hb1->attach (*format, 1, 0, 1, 1); @@ -123,10 +125,12 @@ void SaveFormatPanel::init (SaveFormat &sf) if (sf.format == "jpg") { format->set_active (0); } else if (sf.format == "png" && sf.pngBits == 16) { - format->set_active (5); + format->set_active (6); } else if (sf.format == "png" && sf.pngBits == 8) { - format->set_active (4); + format->set_active (5); } else if (sf.format == "tif" && sf.tiffBits == 32) { + format->set_active (4); + } else if (sf.format == "tif" && sf.tiffBits == 16 && sf.tiffFloat) { format->set_active (3); } else if (sf.format == "tif" && sf.tiffBits == 16) { format->set_active (2); @@ -150,20 +154,22 @@ SaveFormat SaveFormatPanel::getFormat () int sel = format->get_active_row_number(); sf.format = fstr[sel]; - if (sel == 5) { + if (sel == 6) { sf.pngBits = 16; } else { sf.pngBits = 8; } - if (sel == 2) { + if (sel == 2 || sel == 3) { sf.tiffBits = 16; - } else if (sel == 3) { + } else if (sel == 4) { sf.tiffBits = 32; } else { sf.tiffBits = 8; } + sf.tiffFloat = sel == 4 || sel == 3; + sf.jpegQuality = (int) jpegQual->getValue (); sf.jpegSubSamp = jpegSubSamp->get_active_row_number() + 1; sf.tiffUncompressed = tiffUncompressed->get_active(); @@ -176,7 +182,7 @@ void SaveFormatPanel::formatChanged () int act = format->get_active_row_number(); - if (act < 0 || act > 5) { + if (act < 0 || act > 6) { return; } diff --git a/rtgui/saveformatpanel.h b/rtgui/saveformatpanel.h index 8dc493051..788593d9e 100644 --- a/rtgui/saveformatpanel.h +++ b/rtgui/saveformatpanel.h @@ -44,7 +44,7 @@ protected: Gtk::Grid* jpegOpts; Gtk::Label* jpegSubSampLabel; FormatChangeListener* listener; - Glib::ustring fstr[6]; + Glib::ustring fstr[7]; Gtk::CheckButton* savesPP; diff --git a/rtgui/sharpenmicro.cc b/rtgui/sharpenmicro.cc index 7c2b4d9fb..9beb5a340 100644 --- a/rtgui/sharpenmicro.cc +++ b/rtgui/sharpenmicro.cc @@ -44,15 +44,15 @@ SharpenMicro::SharpenMicro () : FoldableToolPanel(this, "sharpenmicro", M("TP_SH uniformity->setAdjusterListener (this); uniformity->show(); + pack_start( *contrast, Gtk::PACK_SHRINK, 0); + pack_start( *amount, Gtk::PACK_SHRINK, 0); + pack_start( *uniformity, Gtk::PACK_SHRINK, 0); + matrix = Gtk::manage (new Gtk::CheckButton (M("TP_SHARPENMICRO_MATRIX"))); matrix->set_active (true); pack_start(*matrix, Gtk::PACK_SHRINK, 0); matrix->show (); - pack_start( *contrast, Gtk::PACK_SHRINK, 0); - pack_start( *amount, Gtk::PACK_SHRINK, 0); - pack_start( *uniformity, Gtk::PACK_SHRINK, 0); - matrixconn = matrix->signal_toggled().connect( sigc::mem_fun(*this, &SharpenMicro::matrix_toggled) ); } diff --git a/rtgui/softlight.cc b/rtgui/softlight.cc new file mode 100644 index 000000000..cac534ce3 --- /dev/null +++ b/rtgui/softlight.cc @@ -0,0 +1,115 @@ +/** -*- C++ -*- + * + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Alberto Griggio + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include "softlight.h" +#include "eventmapper.h" +#include +#include + +using namespace rtengine; +using namespace rtengine::procparams; + +SoftLight::SoftLight(): FoldableToolPanel(this, "softlight", M("TP_SOFTLIGHT_LABEL"), false, true) +{ + auto m = ProcEventMapper::getInstance(); + EvSoftLightEnabled = m->newEvent(RGBCURVE, "HISTORY_MSG_SOFTLIGHT_ENABLED"); + EvSoftLightStrength = m->newEvent(RGBCURVE, "HISTORY_MSG_SOFTLIGHT_STRENGTH"); + + strength = Gtk::manage(new Adjuster(M("TP_SOFTLIGHT_STRENGTH"), 0., 100., 1., 30.)); + strength->setAdjusterListener(this); + strength->show(); + + pack_start(*strength); +} + + +void SoftLight::read(const ProcParams *pp, const ParamsEdited *pedited) +{ + disableListener(); + + if (pedited) { + strength->setEditedState(pedited->softlight.strength ? Edited : UnEdited); + set_inconsistent(multiImage && !pedited->softlight.enabled); + } + + setEnabled(pp->softlight.enabled); + strength->setValue(pp->softlight.strength); + + enableListener(); +} + + +void SoftLight::write(ProcParams *pp, ParamsEdited *pedited) +{ + pp->softlight.strength = strength->getValue(); + pp->softlight.enabled = getEnabled(); + + if (pedited) { + pedited->softlight.strength = strength->getEditedState(); + pedited->softlight.enabled = !get_inconsistent(); + } +} + +void SoftLight::setDefaults(const ProcParams *defParams, const ParamsEdited *pedited) +{ + strength->setDefault(defParams->softlight.strength); + + if (pedited) { + strength->setDefaultEditedState(pedited->softlight.strength ? Edited : UnEdited); + } else { + strength->setDefaultEditedState(Irrelevant); + } +} + + +void SoftLight::adjusterChanged(Adjuster* a, double newval) +{ + if (listener && getEnabled()) { + listener->panelChanged(EvSoftLightStrength, a->getTextValue()); + } +} + + +void SoftLight::enabledChanged () +{ + if (listener) { + if (get_inconsistent()) { + listener->panelChanged(EvSoftLightEnabled, M("GENERAL_UNCHANGED")); + } else if (getEnabled()) { + listener->panelChanged(EvSoftLightEnabled, M("GENERAL_ENABLED")); + } else { + listener->panelChanged(EvSoftLightEnabled, M("GENERAL_DISABLED")); + } + } +} + + +void SoftLight::setBatchMode(bool batchMode) +{ + ToolPanel::setBatchMode(batchMode); + + strength->showEditedCB(); +} + + +void SoftLight::setAdjusterBehavior(bool strengthAdd) +{ + strength->setAddMode(strengthAdd); +} + diff --git a/rtgui/softlight.h b/rtgui/softlight.h new file mode 100644 index 000000000..dc51ac730 --- /dev/null +++ b/rtgui/softlight.h @@ -0,0 +1,47 @@ +/** -*- C++ -*- + * + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Alberto Griggio + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#pragma once + +#include +#include "adjuster.h" +#include "toolpanel.h" + +class SoftLight: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel +{ +private: + Adjuster *strength; + + rtengine::ProcEvent EvSoftLightEnabled; + rtengine::ProcEvent EvSoftLightStrength; + +public: + + SoftLight(); + + 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 adjusterChanged(Adjuster *a, double newval); + void enabledChanged(); + void setAdjusterBehavior(bool strengthAdd); +}; + diff --git a/rtgui/thresholdadjuster.cc b/rtgui/thresholdadjuster.cc index f9afae0ea..210f63333 100644 --- a/rtgui/thresholdadjuster.cc +++ b/rtgui/thresholdadjuster.cc @@ -96,7 +96,7 @@ void ThresholdAdjuster::initObject (Glib::ustring label, bool editedcb) hbox->pack_start (*this->label); reset = Gtk::manage (new Gtk::Button ()); - reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png"))); + reset->add (*Gtk::manage (new RTImage ("undo-small.png", "redo-small.png"))); reset->set_relief (Gtk::RELIEF_NONE); reset->set_tooltip_markup (M("ADJUSTER_RESET_TO_DEFAULT")); diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 2d27550bc..829aec9f7 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -501,8 +501,8 @@ void ThumbBrowserBase::configScrollBars () vscroll.get_adjustment()->set_upper (inH); hscroll.get_adjustment()->set_lower (0); vscroll.get_adjustment()->set_lower (0); - hscroll.get_adjustment()->set_step_increment (32); - vscroll.get_adjustment()->set_step_increment (32); + hscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); + vscroll.get_adjustment()->set_step_increment (!fd.empty() ? fd[0]->getEffectiveHeight() : 0); hscroll.get_adjustment()->set_page_increment (iw); vscroll.get_adjustment()->set_page_increment (ih); hscroll.get_adjustment()->set_page_size (iw); @@ -567,7 +567,7 @@ void ThumbBrowserBase::arrangeFiles() MYREADERLOCK_RELEASE(l); // This will require a Writer access - resizeThumbnailArea(currx, rowHeight); + resizeThumbnailArea(currx, !fd.empty() ? fd[0]->getEffectiveHeight() : rowHeight); } else { const int availWidth = internal.get_width(); diff --git a/rtgui/thumbbrowserentrybase.cc b/rtgui/thumbbrowserentrybase.cc index 34557ccc4..ed34c65c7 100644 --- a/rtgui/thumbbrowserentrybase.cc +++ b/rtgui/thumbbrowserentrybase.cc @@ -742,16 +742,19 @@ Glib::ustring ThumbBrowserEntryBase::getToolTip (int x, int y) tooltip = buttonSet->getToolTip (x, y); } - // if the fileinfo is not shown anyway, make a tooltip with the info - if (withFilename < WFNAME_FULL && inside(x, y) && tooltip.empty()) { + // Always show the filename in the tooltip since the filename in the thumbnail could be truncated. + // If "Show Exif info" is disabled, also show Exif info in the tooltip. + if (inside(x, y) && tooltip.empty()) { tooltip = dispname; - if (options.fbShowDateTime && datetimeline != "") { - tooltip += Glib::ustring("\n") + datetimeline; - } + if (withFilename < WFNAME_FULL) { + if (options.fbShowDateTime && datetimeline != "") { + tooltip += Glib::ustring("\n") + datetimeline; + } - if (options.fbShowBasicExif && exifline != "") { - tooltip += Glib::ustring("\n") + exifline; + if (options.fbShowBasicExif && exifline != "") { + tooltip += Glib::ustring("\n") + exifline; + } } } diff --git a/rtgui/thumbbrowserentrybase.h b/rtgui/thumbbrowserentrybase.h index 0ebf597e2..8237b7c6b 100644 --- a/rtgui/thumbbrowserentrybase.h +++ b/rtgui/thumbbrowserentrybase.h @@ -19,12 +19,15 @@ #ifndef _THUMBNAILBROWSERENTRYBASE_ #define _THUMBNAILBROWSERENTRYBASE_ +#include + #include -#include "lwbuttonset.h" -#include "thumbnail.h" -#include "threadutils.h" -#include "guiutils.h" + #include "cursormanager.h" +#include "guiutils.h" +#include "lwbuttonset.h" +#include "threadutils.h" +#include "thumbnail.h" class ThumbBrowserBase; class ThumbBrowserEntryBase @@ -71,7 +74,7 @@ protected: int ofsX, ofsY; // offset due to the scrolling of the parent - int redrawRequests; + std::atomic redrawRequests; ThumbBrowserBase* parent; ThumbBrowserEntryBase* original; diff --git a/rtgui/thumbimageupdater.cc b/rtgui/thumbimageupdater.cc index 696c68811..992b38812 100644 --- a/rtgui/thumbimageupdater.cc +++ b/rtgui/thumbimageupdater.cc @@ -17,9 +17,13 @@ * along with RawTherapee. If not, see . */ +#include #include -#include "thumbimageupdater.h" + #include + +#include "thumbimageupdater.h" + #include "guiutils.h" #include "threadutils.h" @@ -83,7 +87,7 @@ public: JobList jobs_; - unsigned int active_; + std::atomic active_; bool inactive_waiting_; @@ -157,13 +161,11 @@ public: j.listener_->updateImage(img, scale, thm->getProcParams().crop); } - { + if ( --active_ == 0 ) { Glib::Threads::Mutex::Lock lock(mutex_); - - if ( --active_ == 0 && - inactive_waiting_ ) { + if (inactive_waiting_) { inactive_waiting_ = false; - inactive_.signal(); + inactive_.broadcast(); } } } @@ -181,8 +183,7 @@ ThumbImageUpdater::ThumbImageUpdater(): { } -void -ThumbImageUpdater::add(ThumbBrowserEntryBase* tbe, bool* priority, bool upgrade, ThumbImageUpdateListener* l) +void ThumbImageUpdater::add(ThumbBrowserEntryBase* tbe, bool* priority, bool upgrade, ThumbImageUpdateListener* l) { // nobody listening? if ( l == nullptr ) { @@ -216,49 +217,51 @@ ThumbImageUpdater::add(ThumbBrowserEntryBase* tbe, bool* priority, bool upgrade, } -void -ThumbImageUpdater::removeJobs(ThumbImageUpdateListener* listener) +void ThumbImageUpdater::removeJobs(ThumbImageUpdateListener* listener) { DEBUG("removeJobs(%p)", listener); - Glib::Threads::Mutex::Lock lock(impl_->mutex_); + { + Glib::Threads::Mutex::Lock lock(impl_->mutex_); - for( Impl::JobList::iterator i(impl_->jobs_.begin()); i != impl_->jobs_.end(); ) { - if (i->listener_ == listener) { - DEBUG("erasing specific job"); - Impl::JobList::iterator e(i++); - impl_->jobs_.erase(e); - } else { - ++i; + for( Impl::JobList::iterator i(impl_->jobs_.begin()); i != impl_->jobs_.end(); ) { + if (i->listener_ == listener) { + DEBUG("erasing specific job"); + Impl::JobList::iterator e(i++); + impl_->jobs_.erase(e); + } else { + ++i; + } } } while ( impl_->active_ != 0 ) { - // XXX this is nasty... it would be nicer if we weren't called with - // this lock held - GThreadUnLock unlock; DEBUG("waiting for running jobs1"); - impl_->inactive_waiting_ = true; - impl_->inactive_.wait(impl_->mutex_); + { + Glib::Threads::Mutex::Lock lock(impl_->mutex_); + impl_->inactive_waiting_ = true; + impl_->inactive_.wait(impl_->mutex_); + } } } -void -ThumbImageUpdater::removeAllJobs() +void ThumbImageUpdater::removeAllJobs() { DEBUG("stop"); - Glib::Threads::Mutex::Lock lock(impl_->mutex_); + { + Glib::Threads::Mutex::Lock lock(impl_->mutex_); - impl_->jobs_.clear(); + impl_->jobs_.clear(); + } while ( impl_->active_ != 0 ) { - // XXX this is nasty... it would be nicer if we weren't called with - // this lock held - GThreadUnLock unlock; DEBUG("waiting for running jobs2"); - impl_->inactive_waiting_ = true; - impl_->inactive_.wait(impl_->mutex_); + { + Glib::Threads::Mutex::Lock lock(impl_->mutex_); + impl_->inactive_waiting_ = true; + impl_->inactive_.wait(impl_->mutex_); + } } } diff --git a/rtgui/tonecurve.cc b/rtgui/tonecurve.cc index be683c3ee..5205d6f18 100644 --- a/rtgui/tonecurve.cc +++ b/rtgui/tonecurve.cc @@ -111,7 +111,7 @@ ToneCurve::ToneCurve () : FoldableToolPanel(this, "tonecurve", M("TP_EXPOSURE_LA //----------- Highlight recovery & threshold ------------- hlcompr = Gtk::manage (new Adjuster (M("TP_EXPOSURE_COMPRHIGHLIGHTS"), 0, 500, 1, 0)); pack_start (*hlcompr); - hlcomprthresh = Gtk::manage (new Adjuster (M("TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD"), 0, 100, 1, 33)); + hlcomprthresh = Gtk::manage (new Adjuster (M("TP_EXPOSURE_COMPRHIGHLIGHTSTHRESHOLD"), 0, 100, 1, 0)); pack_start (*hlcomprthresh); //----------- Black Level & Compression ------------------- @@ -229,9 +229,13 @@ void ToneCurve::read (const ProcParams* pp, const ParamsEdited* pedited) hlcomprthresh->setValue (pp->toneCurve.hlcomprthresh); shcompr->setValue (pp->toneCurve.shcompr); - if (!black->getAddMode()) { + if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect + } brightness->setValue (pp->toneCurve.brightness); contrast->setValue (pp->toneCurve.contrast); @@ -243,6 +247,7 @@ void ToneCurve::read (const ProcParams* pp, const ParamsEdited* pedited) toneCurveMode2->set_active(rtengine::toUnderlying(pp->toneCurve.curveMode2)); histmatching->set_active(pp->toneCurve.histmatching); + fromHistMatching = pp->toneCurve.fromHistMatching; clampOOG->set_active(pp->toneCurve.clampOOG); if (pedited) { @@ -366,6 +371,7 @@ void ToneCurve::write (ProcParams* pp, ParamsEdited* pedited) } pp->toneCurve.histmatching = histmatching->get_active(); + pp->toneCurve.fromHistMatching = fromHistMatching; pp->toneCurve.clampOOG = clampOOG->get_active(); if (pedited) { @@ -386,6 +392,7 @@ void ToneCurve::write (ProcParams* pp, ParamsEdited* pedited) pedited->toneCurve.method = method->get_active_row_number() != 4; pedited->toneCurve.hrenabled = !hrenabled->get_inconsistent(); pedited->toneCurve.histmatching = !histmatching->get_inconsistent(); + pedited->toneCurve.fromHistMatching = true; pedited->toneCurve.clampOOG = !clampOOG->get_inconsistent(); } @@ -608,7 +615,7 @@ void ToneCurve::adjusterChanged (Adjuster* a, double newval) } else if (a == black) { listener->panelChanged (EvBlack, costr); - if (!black->getAddMode()) { + if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } } else if (a == contrast) { @@ -617,6 +624,10 @@ void ToneCurve::adjusterChanged (Adjuster* a, double newval) listener->panelChanged (EvSaturation, costr); } else if (a == hlcompr) { listener->panelChanged (EvHLCompr, costr); + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect + } } else if (a == hlcomprthresh) { listener->panelChanged (EvHLComprThreshold, costr); } else if (a == shcompr) { @@ -657,9 +668,13 @@ void ToneCurve::neutral_pressed () hlrbox->hide(); } - if (!black->getAddMode()) { + if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect + } contrast->setValue(0); //saturation->setValue(0); @@ -730,6 +745,11 @@ void ToneCurve::autolevels_toggled () if (!black->getAddMode()) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect + } + } else { listener->panelChanged (EvFixedExp, M("GENERAL_DISABLED")); } @@ -844,9 +864,13 @@ bool ToneCurve::autoExpComputed_ () hlrbox->hide(); } - if (!black->getAddMode()) { + if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue () == 0)); //at black=0 shcompr value has no effect } + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect + } enableListener (); @@ -916,6 +940,7 @@ void ToneCurve::updateCurveBackgroundHistogram (LUTu & histToneCurve, LUTu & his void ToneCurve::setHistmatching(bool enabled) { + fromHistMatching = enabled; if (histmatching->get_active()) { histmatchconn.block(true); histmatching->set_active(enabled); @@ -930,6 +955,7 @@ void ToneCurve::histmatchingToggled() if (listener) { if (!batchMode) { if (histmatching->get_active()) { + fromHistMatching = false; listener->panelChanged(EvHistMatching, M("GENERAL_ENABLED")); waitForAutoExp(); } else { @@ -966,9 +992,13 @@ bool ToneCurve::histmatchingComputed() contrast->setValue(0); black->setValue(0); - if (!black->getAddMode()) { + if (!black->getAddMode() && !batchMode) { shcompr->set_sensitive(!((int)black->getValue() == 0)); } + + if (!hlcompr->getAddMode() && !batchMode) { + hlcomprthresh->set_sensitive(!((int)hlcompr->getValue () == 0)); //at hlcompr=0 hlcomprthresh value has no effect + } if (autolevels->get_active() ) { expcomp->setValue(0); @@ -984,6 +1014,7 @@ bool ToneCurve::histmatchingComputed() shape->openIfNonlinear(); enableListener(); + fromHistMatching = true; return false; } diff --git a/rtgui/tonecurve.h b/rtgui/tonecurve.h index 7d4440e2c..ce431986a 100644 --- a/rtgui/tonecurve.h +++ b/rtgui/tonecurve.h @@ -58,6 +58,7 @@ protected: MyComboBoxText* toneCurveMode; MyComboBoxText* toneCurveMode2; Gtk::ToggleButton *histmatching; + bool fromHistMatching; Gtk::CheckButton *clampOOG; bool clipDirty, lastAuto; diff --git a/rtgui/toolbar.cc b/rtgui/toolbar.cc index cf5148d8b..9bed78768 100644 --- a/rtgui/toolbar.cc +++ b/rtgui/toolbar.cc @@ -26,8 +26,8 @@ ToolBar::ToolBar () : showColPickers(true), listener (nullptr), pickerListener(n editingMode = false; - handimg.reset(new RTImage("openhand.png")); - editinghandimg.reset(new RTImage("editmodehand.png")); + handimg.reset(new RTImage("hand-open.png")); + editinghandimg.reset(new RTImage("crosshair-adjust.png")); handTool = Gtk::manage (new Gtk::ToggleButton ()); handTool->add (*handimg); @@ -38,7 +38,7 @@ ToolBar::ToolBar () : showColPickers(true), listener (nullptr), pickerListener(n pack_start (*handTool); wbTool = Gtk::manage (new Gtk::ToggleButton ()); - Gtk::Image* wbimg = Gtk::manage (new RTImage ("gtk-color-picker.png")); + Gtk::Image* wbimg = Gtk::manage (new RTImage ("color-picker.png")); wbTool->add (*wbimg); wbimg->show (); wbTool->set_relief(Gtk::RELIEF_NONE); @@ -46,8 +46,8 @@ ToolBar::ToolBar () : showColPickers(true), listener (nullptr), pickerListener(n pack_start (*wbTool); - showcolpickersimg.reset(new RTImage("colorPickers-show.png")); - hidecolpickersimg.reset(new RTImage("colorPickers-hide.png")); + showcolpickersimg.reset(new RTImage("color-picker-bars.png")); + hidecolpickersimg.reset(new RTImage("color-picker-hide.png")); colPickerTool = Gtk::manage (new Gtk::ToggleButton ()); colPickerTool->add (*showcolpickersimg); @@ -67,7 +67,7 @@ ToolBar::ToolBar () : showColPickers(true), listener (nullptr), pickerListener(n pack_start (*cropTool); straTool = Gtk::manage (new Gtk::ToggleButton ()); - Gtk::Image* straimg = Gtk::manage (new RTImage ("straighten.png")); + Gtk::Image* straimg = Gtk::manage (new RTImage ("rotate-straighten.png")); straTool->add (*straimg); straimg->show (); straTool->set_relief(Gtk::RELIEF_NONE); diff --git a/rtgui/toolpanel.cc b/rtgui/toolpanel.cc index 812203517..c9c4f823c 100644 --- a/rtgui/toolpanel.cc +++ b/rtgui/toolpanel.cc @@ -56,7 +56,7 @@ FoldableToolPanel::FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, label->set_alignment(Gtk::ALIGN_START, Gtk::ALIGN_CENTER); titleHBox->pack_start(*label, Gtk::PACK_EXPAND_WIDGET, 0); - RTImage *image = Gtk::manage (new RTImage("zoom-100-identifier.png")); + RTImage *image = Gtk::manage (new RTImage("one-to-one-small.png")); image->set_tooltip_text(M("TP_GENERAL_11SCALE_TOOLTIP")); titleHBox->pack_end(*image, Gtk::PACK_SHRINK, 0); @@ -146,5 +146,14 @@ void FoldableToolPanel::setEnabledTooltipText(Glib::ustring tooltipText) } } - +void FoldableToolPanel::setGrayedOut(bool doGrayOut) +{ + if (doGrayOut) { + exp->setEnabled(false); + exp->set_expanded(false); + exp->set_sensitive(false); + } else { + exp->set_sensitive(true); + } +} diff --git a/rtgui/toolpanel.h b/rtgui/toolpanel.h index d3d7439a9..fd7d27fbe 100644 --- a/rtgui/toolpanel.h +++ b/rtgui/toolpanel.h @@ -205,6 +205,7 @@ public: void setEnabledTooltipText(Glib::ustring tooltipText); bool get_inconsistent(); // related to the enabled/disabled state void set_inconsistent(bool isInconsistent); // related to the enabled/disabled state + void setGrayedOut(bool doGrayOut); // Set whether the tool should be disabled, collapsed and grayed-out. void setLevel (int level); diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index da2e2e846..9cbd2482f 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -78,6 +78,7 @@ ToolPanelCoordinator::ToolPanelCoordinator(bool batch) : ipc(nullptr), hasChange dirpyrequalizer = Gtk::manage(new DirPyrEqualizer()); hsvequalizer = Gtk::manage(new HSVEqualizer()); filmSimulation = Gtk::manage(new FilmSimulation()); + softlight = Gtk::manage(new SoftLight()); sensorbayer = Gtk::manage(new SensorBayer()); sensorxtrans = Gtk::manage(new SensorXTrans()); bayerprocess = Gtk::manage(new BayerProcess()); @@ -112,6 +113,7 @@ ToolPanelCoordinator::ToolPanelCoordinator(bool batch) : ipc(nullptr), hasChange addPanel(detailsPanel, sharpenMicro); addPanel(colorPanel, hsvequalizer); addPanel(colorPanel, filmSimulation); + addPanel (colorPanel, softlight); addPanel(colorPanel, rgbcurves); addPanel(colorPanel, colortoning); addPanel(exposurePanel, epd); @@ -173,7 +175,7 @@ ToolPanelCoordinator::ToolPanelCoordinator(bool batch) : ipc(nullptr), hasChange // load panel endings for (int i = 0; i < 7; i++) { vbPanelEnd[i] = Gtk::manage(new Gtk::VBox()); - imgPanelEnd[i] = Gtk::manage(new RTImage("PanelEnding.png")); + imgPanelEnd[i] = Gtk::manage (new RTImage ("ornament1.png")); imgPanelEnd[i]->show(); vbPanelEnd[i]->pack_start(*imgPanelEnd[i], Gtk::PACK_SHRINK); vbPanelEnd[i]->show_all(); @@ -212,13 +214,12 @@ ToolPanelCoordinator::ToolPanelCoordinator(bool batch) : ipc(nullptr), hasChange TOITypes type = options.UseIconNoText ? TOI_ICON : TOI_TEXT; toiE = Gtk::manage(new TextOrIcon("exposure.png", M("MAIN_TAB_EXPOSURE"), M("MAIN_TAB_EXPOSURE_TOOLTIP"), type)); toiD = Gtk::manage(new TextOrIcon("detail.png", M("MAIN_TAB_DETAIL"), M("MAIN_TAB_DETAIL_TOOLTIP"), type)); - toiC = Gtk::manage(new TextOrIcon("colour.png", M("MAIN_TAB_COLOR"), M("MAIN_TAB_COLOR_TOOLTIP"), type)); - toiW = Gtk::manage(new TextOrIcon("atom.png", M("MAIN_TAB_ADVANCED"), M("MAIN_TAB_ADVANCED_TOOLTIP"), type)); - toiL = Gtk::manage(new TextOrIcon("openhand.png", M("MAIN_TAB_LOCALLAB"), M("MAIN_TAB_LOCALLAB_TOOLTIP"), type)); - + toiC = Gtk::manage (new TextOrIcon ("color-circles.png", M ("MAIN_TAB_COLOR"), M ("MAIN_TAB_COLOR_TOOLTIP"), type)); + toiW = Gtk::manage (new TextOrIcon ("atom.png", M ("MAIN_TAB_ADVANCED"), M ("MAIN_TAB_ADVANCED_TOOLTIP"), type)); + toiL = Gtk::manage(new TextOrIcon("hand-open.png", M("MAIN_TAB_LOCALLAB"), M("MAIN_TAB_LOCALLAB_TOOLTIP"), type)); toiT = Gtk::manage(new TextOrIcon("transform.png", M("MAIN_TAB_TRANSFORM"), M("MAIN_TAB_TRANSFORM_TOOLTIP"), type)); - toiR = Gtk::manage(new TextOrIcon("raw.png", M("MAIN_TAB_RAW"), M("MAIN_TAB_RAW_TOOLTIP"), type)); - toiM = Gtk::manage(new TextOrIcon("meta.png", M("MAIN_TAB_METADATA"), M("MAIN_TAB_METADATA_TOOLTIP"), type)); + toiR = Gtk::manage (new TextOrIcon ("bayer.png", M ("MAIN_TAB_RAW"), M ("MAIN_TAB_RAW_TOOLTIP"), type)); + toiM = Gtk::manage (new TextOrIcon ("metadata.png", M ("MAIN_TAB_METADATA"), M ("MAIN_TAB_METADATA_TOOLTIP"), type)); toolPanelNotebook->append_page(*exposurePanelSW, *toiE); toolPanelNotebook->append_page(*detailsPanelSW, *toiD); @@ -305,6 +306,7 @@ void ToolPanelCoordinator::imageTypeChanged(bool isRaw, bool isBayer, bool isXtr self->sensorbayer->FoldableToolPanel::show(); self->preprocess->FoldableToolPanel::show(); self->flatfield->FoldableToolPanel::show(); + self->retinex->FoldableToolPanel::setGrayedOut(false); return FALSE; }; @@ -318,6 +320,7 @@ void ToolPanelCoordinator::imageTypeChanged(bool isRaw, bool isBayer, bool isXtr self->sensorbayer->FoldableToolPanel::hide(); self->preprocess->FoldableToolPanel::show(); self->flatfield->FoldableToolPanel::show(); + self->retinex->FoldableToolPanel::setGrayedOut(false); return FALSE; }; @@ -331,6 +334,7 @@ void ToolPanelCoordinator::imageTypeChanged(bool isRaw, bool isBayer, bool isXtr self->sensorxtrans->FoldableToolPanel::hide(); self->preprocess->FoldableToolPanel::hide(); self->flatfield->FoldableToolPanel::show(); + self->retinex->FoldableToolPanel::setGrayedOut(false); return FALSE; }; @@ -344,6 +348,7 @@ void ToolPanelCoordinator::imageTypeChanged(bool isRaw, bool isBayer, bool isXtr self->sensorxtrans->FoldableToolPanel::hide(); self->preprocess->FoldableToolPanel::hide(); self->flatfield->FoldableToolPanel::hide(); + self->retinex->FoldableToolPanel::setGrayedOut(false); return FALSE; }; @@ -353,7 +358,8 @@ void ToolPanelCoordinator::imageTypeChanged(bool isRaw, bool isBayer, bool isXtr const auto func = [](gpointer data) -> gboolean { ToolPanelCoordinator* const self = static_cast(data); - self->rawPanelSW->set_sensitive(false); + self->rawPanelSW->set_sensitive (false); + self->retinex->FoldableToolPanel::setGrayedOut(true); return FALSE; }; @@ -454,7 +460,7 @@ void ToolPanelCoordinator::panelChanged(rtengine::ProcEvent event, const Glib::u photoLoadedOnce = true; } -void ToolPanelCoordinator::profileChange(const PartialProfile *nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited) +void ToolPanelCoordinator::profileChange(const PartialProfile *nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited, bool fromLastSave) { // TODO Locallab printf printf("profileChanged\n"); @@ -479,7 +485,7 @@ void ToolPanelCoordinator::profileChange(const PartialProfile *nparams, rtengine } // And apply the partial profile nparams to mergedParams - nparams->applyTo(mergedParams); + nparams->applyTo(mergedParams, fromLastSave); // Derive the effective changes, if it's a profile change, to prevent slow RAW rerendering if not necessary bool filterRawRefresh = false; diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index cc56fed4d..dbbbc6bf7 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -80,6 +80,7 @@ #include "prsharpening.h" #include "fattaltonemap.h" #include "localcontrast.h" +#include "softlight.h" #include "guiutils.h" class ImageEditorCoordinator; @@ -136,6 +137,7 @@ protected: Wavelet * wavelet; DirPyrEqualizer* dirpyrequalizer; HSVEqualizer* hsvequalizer; + SoftLight *softlight; FilmSimulation *filmSimulation; SensorBayer * sensorbayer; SensorXTrans * sensorxtrans; @@ -228,7 +230,7 @@ public: void imageTypeChanged(bool isRaw, bool isBayer, bool isXtrans, bool isMono = false); // profilechangelistener interface - void profileChange(const rtengine::procparams::PartialProfile* nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr); + void profileChange(const rtengine::procparams::PartialProfile* nparams, rtengine::ProcEvent event, const Glib::ustring& descr, const ParamsEdited* paramsEdited = nullptr, bool fromLastSave = false); void setDefaults(rtengine::procparams::ProcParams* defparams); // DirSelectionListener interface diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index ca6a28708..7acce1e90 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -698,20 +698,20 @@ Wavelet::Wavelet() : cbenabConn = cbenab->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::cbenabToggled) ); cbenab->set_tooltip_text (M("TP_WAVELET_CB_TOOLTIP")); - Gtk::Image* const iblueR = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* const iyelL = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* const imagL = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* const igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + Gtk::Image* const iblueR = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* const iyelL = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* const imagL = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* const igreenR = Gtk::manage (new RTImage ("circle-green-small.png")); - Gtk::Image* const iblueRm = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* const iyelLm = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* const imagLm = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* const igreenRm = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + Gtk::Image* const iblueRm = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* const iyelLm = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* const imagLm = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* const igreenRm = Gtk::manage (new RTImage ("circle-green-small.png")); - Gtk::Image* const iblueRh = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* const iyelLh = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* const imagLh = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* const igreenRh = Gtk::manage (new RTImage ("ajd-wb-green2.png")); + Gtk::Image* const iblueRh = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* const iyelLh = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* const imagLh = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* const igreenRh = Gtk::manage (new RTImage ("circle-green-small.png")); greenhigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenRh, imagLh)); bluehigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueRh, iyelLh)); @@ -745,7 +745,7 @@ Wavelet::Wavelet() : resBox->pack_start(*chanMixerMidFrame, Gtk::PACK_SHRINK); resBox->pack_start(*chanMixerShadowsFrame, Gtk::PACK_SHRINK); - //RTImage *resetImg = Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")); + //RTImage *resetImg = Gtk::manage (new RTImage ("undo-small.png", "redo-small.png")); //neutral->set_image(*resetImg); Gtk::Button* const neutral = Gtk::manage(new Gtk::Button(M("TP_COLORTONING_NEUTRAL"))); neutral->set_tooltip_text (M("TP_COLORTONING_NEUTRAL_TIP")); @@ -919,7 +919,7 @@ void Wavelet::updatewavLabel () } } -// Will only reset the chanel mixer +// Will only reset the channel mixer // WARNING! In mutiImage mode, and for sliders in ADD mode, this will reset the slider to 0, but not to the default value as in SET mode. void Wavelet::neutral_pressed () { diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 1f2863635..99a564a85 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -43,19 +43,19 @@ Glib::RefPtr WhiteBalance::wbCameraPB, WhiteBalance::wbAutoPB, Whit void WhiteBalance::init () { - wbPixbufs[toUnderlying(WBEntry::Type::CAMERA)] = RTImage::createFromFile ("wb-camera.png"); - wbPixbufs[toUnderlying(WBEntry::Type::AUTO)] = RTImage::createFromFile ("wb-auto.png"); - wbPixbufs[toUnderlying(WBEntry::Type::DAYLIGHT)] = RTImage::createFromFile ("wb-sun.png"); - wbPixbufs[toUnderlying(WBEntry::Type::CLOUDY)] = RTImage::createFromFile ("wb-cloudy.png"); - wbPixbufs[toUnderlying(WBEntry::Type::SHADE)] = RTImage::createFromFile ("wb-shade.png"); - wbPixbufs[toUnderlying(WBEntry::Type::WATER)] = RTImage::createFromFile ("wb-water.png"); -// wbPixbufs[WBEntry::Type::WATER2] = RTImage::createFromFile ("wb-water.png"); - wbPixbufs[toUnderlying(WBEntry::Type::TUNGSTEN)] = RTImage::createFromFile ("wb-tungsten.png"); - wbPixbufs[toUnderlying(WBEntry::Type::FLUORESCENT)] = RTImage::createFromFile ("wb-fluorescent.png"); - wbPixbufs[toUnderlying(WBEntry::Type::LAMP)] = RTImage::createFromFile ("wb-lamp.png"); - wbPixbufs[toUnderlying(WBEntry::Type::FLASH)] = RTImage::createFromFile ("wb-flash.png"); - wbPixbufs[toUnderlying(WBEntry::Type::LED)] = RTImage::createFromFile ("wb-led.png"); - wbPixbufs[toUnderlying(WBEntry::Type::CUSTOM)] = RTImage::createFromFile ("wb-custom.png"); + wbPixbufs[toUnderlying(WBEntry::Type::CAMERA)] = RTImage::createFromFile ("wb-camera-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::AUTO)] = RTImage::createFromFile ("wb-auto-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::DAYLIGHT)] = RTImage::createFromFile ("wb-sun-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::CLOUDY)] = RTImage::createFromFile ("wb-cloudy-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::SHADE)] = RTImage::createFromFile ("wb-shade-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::WATER)] = RTImage::createFromFile ("wb-water-small.png"); + //wbPixbufs[WBEntry::Type::WATER2] = RTImage::createFromFile ("wb-water-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::TUNGSTEN)] = RTImage::createFromFile ("wb-tungsten-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::FLUORESCENT)] = RTImage::createFromFile ("wb-fluorescent-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::LAMP)] = RTImage::createFromFile ("wb-lamp-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::FLASH)] = RTImage::createFromFile ("wb-flash-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::LED)] = RTImage::createFromFile ("wb-led-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::CUSTOM)] = RTImage::createFromFile ("wb-custom-small.png"); } void WhiteBalance::cleanup () @@ -255,8 +255,9 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB spotbox->show (); spotbutton = Gtk::manage (new Gtk::Button ()); + spotbutton->get_style_context()->add_class("independent"); spotbutton->set_tooltip_text(M("TP_WBALANCE_SPOTWB")); - Gtk::Image* spotimg = Gtk::manage (new RTImage ("gtk-color-picker-small.png")); + Gtk::Image* spotimg = Gtk::manage (new RTImage ("color-picker.png")); spotimg->show (); spotbutton->set_image (*spotimg); spotbutton->show (); @@ -303,14 +304,14 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB pack_start (*spotbox, Gtk::PACK_SHRINK, 0); - Gtk::Image* itempL = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* itempR = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); - Gtk::Image* igreenL = Gtk::manage (new RTImage ("ajd-wb-green1.png")); - Gtk::Image* igreenR = Gtk::manage (new RTImage ("ajd-wb-green2.png")); - Gtk::Image* iblueredL = Gtk::manage (new RTImage ("ajd-wb-bluered1.png")); - Gtk::Image* iblueredR = Gtk::manage (new RTImage ("ajd-wb-bluered2.png")); - Gtk::Image* itempbiasL = Gtk::manage (new RTImage ("ajd-wb-temp1.png")); - Gtk::Image* itempbiasR = Gtk::manage (new RTImage ("ajd-wb-temp2.png")); + Gtk::Image* itempL = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* itempR = Gtk::manage (new RTImage ("circle-yellow-small.png")); + Gtk::Image* igreenL = Gtk::manage (new RTImage ("circle-magenta-small.png")); + Gtk::Image* igreenR = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* iblueredL = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* iblueredR = Gtk::manage (new RTImage ("circle-red-small.png")); + Gtk::Image* itempbiasL = Gtk::manage (new RTImage ("circle-blue-small.png")); + Gtk::Image* itempbiasR = Gtk::manage (new RTImage ("circle-yellow-small.png")); temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, CENTERTEMP, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider)); green = Gtk::manage (new Adjuster (M("TP_WBALANCE_GREEN"), MINGREEN, MAXGREEN, 0.001, 1.0, igreenL, igreenR)); diff --git a/rtgui/xtransprocess.cc b/rtgui/xtransprocess.cc index 1b2b4a40d..27b5810c4 100644 --- a/rtgui/xtransprocess.cc +++ b/rtgui/xtransprocess.cc @@ -118,7 +118,8 @@ void XTransProcess::read(const rtengine::procparams::ProcParams* pp, const Param dualDemosaicContrast->setValue (pp->raw.xtranssensor.dualDemosaicContrast); ccSteps->setValue (pp->raw.xtranssensor.ccSteps); if (!batchMode) { - dualDemosaicOptions->set_visible(pp->raw.xtranssensor.method == procparams::RAWParams::XTransSensor::getMethodString(procparams::RAWParams::XTransSensor::Method::FOUR_PASS)); + dualDemosaicOptions->set_visible(pp->raw.xtranssensor.method == procparams::RAWParams::XTransSensor::getMethodString(procparams::RAWParams::XTransSensor::Method::FOUR_PASS) + || pp->raw.xtranssensor.method == procparams::RAWParams::XTransSensor::getMethodString(procparams::RAWParams::XTransSensor::Method::TWO_PASS)); } methodconn.block (false); @@ -192,7 +193,7 @@ void XTransProcess::methodChanged () oldSelection = curSelection; if (!batchMode) { - if (currentMethod == procparams::RAWParams::XTransSensor::Method::FOUR_PASS) { + if (currentMethod == procparams::RAWParams::XTransSensor::Method::FOUR_PASS || currentMethod == procparams::RAWParams::XTransSensor::Method::TWO_PASS) { dualDemosaicOptions->show(); } else { dualDemosaicOptions->hide(); diff --git a/rtgui/zoompanel.cc b/rtgui/zoompanel.cc index 7e88fb1b3..ea57b7fdc 100644 --- a/rtgui/zoompanel.cc +++ b/rtgui/zoompanel.cc @@ -25,15 +25,15 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) { set_name ("EditorZoomPanel"); - Gtk::Image* imageOut = Gtk::manage (new RTImage ("gtk-zoom-out.png")); + Gtk::Image* imageOut = Gtk::manage (new RTImage ("magnifier-minus.png")); imageOut->set_padding(0, 0); - Gtk::Image* imageIn = Gtk::manage (new RTImage ("gtk-zoom-in.png")); + Gtk::Image* imageIn = Gtk::manage (new RTImage ("magnifier-plus.png")); imageIn->set_padding(0, 0); - Gtk::Image* image11 = Gtk::manage ( new RTImage ("gtk-zoom-100.png")); + Gtk::Image* image11 = Gtk::manage ( new RTImage ("magnifier-1to1.png")); image11->set_padding(0, 0); - Gtk::Image* imageFit = Gtk::manage (new RTImage ("gtk-zoom-fit.png")); + Gtk::Image* imageFit = Gtk::manage (new RTImage ("magnifier-fit.png")); imageFit->set_padding(0, 0); - Gtk::Image* imageFitCrop = Gtk::manage (new RTImage ("gtk-zoom-crop.png")); + Gtk::Image* imageFitCrop = Gtk::manage (new RTImage ("magnifier-crop.png")); imageFit->set_padding(0, 0); zoomOut = Gtk::manage (new Gtk::Button()); @@ -67,7 +67,7 @@ ZoomPanel::ZoomPanel (ImageArea* iarea) : iarea(iarea) setExpandAlignProperties(zoomLabel, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_FILL); attach_next_to (*zoomLabel, Gtk::POS_RIGHT, 1, 1); - Gtk::Image* imageCrop = Gtk::manage (new RTImage ("new-detail-window.png")); + Gtk::Image* imageCrop = Gtk::manage (new RTImage ("window-add.png")); imageCrop->set_padding(0, 0); newCrop = Gtk::manage (new Gtk::Button()); newCrop->add (*imageCrop); diff --git a/tools/RTProfileBuilderSample.cs b/tools/RTProfileBuilderSample.cs index 4b1b2bff0..a097e6883 100644 --- a/tools/RTProfileBuilderSample.cs +++ b/tools/RTProfileBuilderSample.cs @@ -270,11 +270,11 @@ namespace RTProfilerBuilder { if (adFocLen[i] >= adFocLen[i + 1]) throw new Exception("The distortion correction focal length points must be ordered!"); } - /// Calculates regession value of RT distortion amount for the given focal length. + /// Calculates regression value of RT distortion amount for the given focal length. /// Input focal length. /// Distortion in RT format. public string GetDistortionAmount(double focalLength) { - // if it's out of area (which should just happing with e.g. rounding errors), return flat defaults. + // if it's out of area (which should just happen with e.g. rounding errors), return flat defaults. if (focalLength <= adFocLen[0]) return adCorrect[0].ToString("G", CultureInfo.InvariantCulture); if (focalLength >= adFocLen[adFocLen.Length - 1]) return adCorrect[adFocLen.Length - 1].ToString("G", CultureInfo.InvariantCulture); diff --git a/tools/generatePngIcons b/tools/generatePngIcons new file mode 100755 index 000000000..70ee3ee1b --- /dev/null +++ b/tools/generatePngIcons @@ -0,0 +1,146 @@ +#!/usr/bin/env bash +# By Maciej Dworak +# Version 2018-07-21 +# This script generates PNG icons from SVG files using Inkscape. +# If pngquant is installed, it will automatically use it to compress the PNGs. +# +# PNG files are written to /tmp/rt-icons-XXXX +# +# USAGE EXAMPLES +# ./tools/generatePngIcons rtdata/images/themed/svg/* +# ./tools/generatePngIcons rtdata/images/themed/svg/circle* rtdata/images/themed/svg/square-toggle-* + +# No touching below this line +# ----------------------------------------------------------------------------- + +#tmpDir="$(mktemp -d /tmp/rt-icons-XXXX)" || exit +tmpDir="/tmp/rt-icons" +rm -r "$tmpDir" +mkdir "$tmpDir" || exit 1 +outDir="$tmpDir" + +# Abort if Inkscape is not installed: +if [[ ${OSTYPE^^} = "MSYS" ]]; then + if ! command -v "/c/Program Files/Inkscape/inkscape.exe" >/dev/null; then + printf '%s\n' "Inkscape does not appear to be installed. Aborting." + exit 1 + fi +else + if ! command -v inkscape >/dev/null; then + printf '%s\n' "Inkscape does not appear to be installed. Aborting." + exit 1 + fi +fi + +# Command-line arguments: +if [[ $# -eq 0 ]]; then + printf '%s\n' "This script generates PNG icons from SVG files using Inkscape." \ + "" \ + "USAGE" \ + " Generate PNG icons from many SVG icons and output to /tmp/rt-icons-XXXX" \ + " ./generatePngIcons some-icons-*.svg" \ + "" \ + "If pngquant is installed, it will automatically use it to compress the PNGs." \ + "" + exit 0 +fi + +printf '%s\n' "Converting SVG icons to PNG." "${#} files passed as arguments." + +# This color will be replaced by each theme's color: +colRef="#2a7fff" + +# Define theme names, and for each theme the color which will replace colorRef: +declare -A themes +themes=( ["dark"]="#CCCCCC" ["light"]="#252525" ) + +# Optionally use pngquant to compress resulting PNGs: +doCompress="false" +if command -v pngquant >/dev/null; then + doCompress="true" + printf '%s\n' "pngquant found, will compress PNG files." "" +fi + +# Ask for confirmation if folders already present: +folderExists="false" +doDelete="true" +for theme in "${!themes[@]}"; do + if [[ -d "${outDir}/${theme}" ]]; then + folderExists="true" + doDelete="false" + fi +done +if [[ $folderExists = "true" ]]; then + printf '%s\n' "One or more output folders already exist in \"${outDir}\". If you proceed, they will be deleted." + read -r -p "Proceed? [y/n]: " + if [[ $REPLY =~ ^[Yy]$ ]]; then + doDelete="true" + else + printf '%s\n' "Aborting." + exit 0 + fi +fi + +# Create output folders: +for theme in "${!themes[@]}"; do + if [[ -d "${outDir}/${theme}" && $doDelete = "true" ]]; then + rm -rf "${outDir:?}/${theme}" + fi + mkdir -p "${outDir:?}/${theme}" || exit 1 +done +printf '%s\n' "Output folder: ${outDir}" "" + +# Platform-dependent SVG to PNG conversion using Inkscape +# $1 = output PNG absolute path +# $2 = input SVG absolute path +convertSvg() { + if [[ ${OSTYPE^^} = "MSYS" ]]; then + "/c/Program Files/Inkscape/inkscape.exe" \ + --without-gui \ + --export-area-page \ + --export-background-opacity="0" \ + --export-png="$1" \ + "$2" + else + inkscape \ + --without-gui \ + --export-area-page \ + --export-background-opacity="0" \ + --export-png="$1" \ + "$2" + fi + + if [[ $doCompress = "true" ]]; then + sizeBefore=$(wc -c < "$1") + pngquant \ + --quality=70-80 \ + --ext .png \ + --force \ + --skip-if-larger \ + "$1" + sizeAfter=$(wc -c < "$1") + printf 'Filesize before: %s After: %s Difference: %s\n' "$sizeBefore" "$sizeAfter" "$((sizeBefore - sizeAfter))" + fi +} + +# Iterate over each SVG, saving PNGs for each theme. +# Files passed as arguments can have absolute paths or just filenames depending on how the user calls the script, +# so svgFilename and svgAbsolute are explicitly handled. +for f in "${@}"; do + if [[ $f = *.svg || $f = *.svgz ]]; then + svgAbsolute="$(readlink -m -n "$f")" + svgFilename="$(basename "$svgAbsolute")" + printf '%s\n' "Processing: ${svgAbsolute}" + + for theme in "${!themes[@]}"; do + printf '%s\n' "Theme: ${theme}" + sed -e "s/fill:${colRef};/fill:${themes[$theme]};/" -e "s/stroke:${colRef};/stroke:${themes[$theme]};/" "$svgAbsolute" > "${outDir}/${theme}/${svgFilename}" + convertSvg "${outDir}/${theme}/${svgFilename%.svg*}.png" "${outDir}/${theme}/${svgFilename}" + rm "${outDir}/${theme}/${svgFilename}" + done + + printf '\n' + fi +done + +printf '%s\n' "Done." "" diff --git a/tools/source_icons/README b/tools/source_icons/README deleted file mode 100644 index dbdd03e24..000000000 --- a/tools/source_icons/README +++ /dev/null @@ -1,32 +0,0 @@ -The repository tools/source_icons contains source icons (in SVG format) and the script to generate PNG icons for both Dark and Light themes. - -tools/source_icons/scalable ---------------------------- -- Contains icons in SVG format. -- A sidecar *.file for each *.svg file. -- The sidecar *.file has the following format: - -> Fields are separated by a comma. - -> The first field defines the PNG filename to be created. - -> The second field indicates either the width (e.g. w22) or the height (e.g. h16) in pixels for the PNG file. - -> The third field is optional. It indicates the icon category (e.g. actions, devices, places). If not indicated, the icon is assumed to belong to "actions". - -tools/source_icons/script -------------------------- -- The main script which creates the icons is make_all_icon_theme.bash -- Launch: - ./make_all_icon_theme.bash /path/to/new/svg/icons/ /tmp/png -- An archive with all the icons will be created in /tmp/png - -Guidelines for icon name ------------------------- -- Use stock item names when prebuilt icons exist (e.g. gtk-open.png). See http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html -- Use "-" to separate words (e.g. panel-to-left.png) -- Avoid the use of the icon's size as a suffix in the filename (colour.png and not colour-24.png). If needed, use the suffix -large or -small (gtk-close-small.png). - -How to easily work with new icons ---------------------------------- -1- Have a dir which contains only the new SVG files -2- Creates a .file for each .svg (change "w22" and "actions" as needed, explained above): - for f in *.svg; do printf "%s\n" "${f%%.*}.png,w22,actions" > "${f%%.*}.file"; done -3- Makes the PNG icons (you need to run the script from it's containing dir): - cd ~/programs/code-rawtherapee/tools/source_icons/script && ./make_all_icon_theme.bash /path/to/new/svg/icons/ /tmp/png diff --git a/tools/source_icons/scalable/HDR-thumbnail.file b/tools/source_icons/scalable/HDR-thumbnail.file deleted file mode 100644 index 59f729498..000000000 --- a/tools/source_icons/scalable/HDR-thumbnail.file +++ /dev/null @@ -1 +0,0 @@ -HDR-thumbnail.png,w29,actions diff --git a/tools/source_icons/scalable/HDR-thumbnail.svg b/tools/source_icons/scalable/HDR-thumbnail.svg deleted file mode 100644 index ef070f380..000000000 --- a/tools/source_icons/scalable/HDR-thumbnail.svg +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/PanelEnding.file b/tools/source_icons/scalable/PanelEnding.file deleted file mode 100644 index 70f44222b..000000000 --- a/tools/source_icons/scalable/PanelEnding.file +++ /dev/null @@ -1 +0,0 @@ -PanelEnding.png,h28,actions diff --git a/tools/source_icons/scalable/PanelEnding.svg b/tools/source_icons/scalable/PanelEnding.svg deleted file mode 100644 index 18d756b8c..000000000 --- a/tools/source_icons/scalable/PanelEnding.svg +++ /dev/null @@ -1,801 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Created by potrace 1.8, written by Peter Selinger 2001-2007 - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/PixelShift-thumbnail.file b/tools/source_icons/scalable/PixelShift-thumbnail.file deleted file mode 100644 index a62809a4d..000000000 --- a/tools/source_icons/scalable/PixelShift-thumbnail.file +++ /dev/null @@ -1 +0,0 @@ -PixelShift-thumbnail.png,w18,actions diff --git a/tools/source_icons/scalable/PixelShift-thumbnail.svg b/tools/source_icons/scalable/PixelShift-thumbnail.svg deleted file mode 100644 index b606b24f8..000000000 --- a/tools/source_icons/scalable/PixelShift-thumbnail.svg +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/adj-black.svg b/tools/source_icons/scalable/adj-black.svg deleted file mode 100644 index 0fa707113..000000000 --- a/tools/source_icons/scalable/adj-black.svg +++ /dev/null @@ -1,102 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/adj-white.svg b/tools/source_icons/scalable/adj-white.svg deleted file mode 100644 index 83a0d66aa..000000000 --- a/tools/source_icons/scalable/adj-white.svg +++ /dev/null @@ -1,103 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-down-small.file b/tools/source_icons/scalable/arrow-down-small.file deleted file mode 100644 index df0b971b0..000000000 --- a/tools/source_icons/scalable/arrow-down-small.file +++ /dev/null @@ -1 +0,0 @@ -arrow-down-small.png,w16,actions diff --git a/tools/source_icons/scalable/arrow-down-small.svg b/tools/source_icons/scalable/arrow-down-small.svg deleted file mode 100644 index 7042bdabd..000000000 --- a/tools/source_icons/scalable/arrow-down-small.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-down.file b/tools/source_icons/scalable/arrow-down.file deleted file mode 100644 index 67ebd1f45..000000000 --- a/tools/source_icons/scalable/arrow-down.file +++ /dev/null @@ -1 +0,0 @@ -arrow-down.png,w22,actions diff --git a/tools/source_icons/scalable/arrow-down.svg b/tools/source_icons/scalable/arrow-down.svg deleted file mode 100644 index 7042bdabd..000000000 --- a/tools/source_icons/scalable/arrow-down.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-left-small.file b/tools/source_icons/scalable/arrow-left-small.file deleted file mode 100644 index fcf5e7094..000000000 --- a/tools/source_icons/scalable/arrow-left-small.file +++ /dev/null @@ -1 +0,0 @@ -arrow-left-small.png,w16,actions diff --git a/tools/source_icons/scalable/arrow-left-small.svg b/tools/source_icons/scalable/arrow-left-small.svg deleted file mode 100644 index c0ecb3b13..000000000 --- a/tools/source_icons/scalable/arrow-left-small.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-left.file b/tools/source_icons/scalable/arrow-left.file deleted file mode 100644 index 4ed6a9390..000000000 --- a/tools/source_icons/scalable/arrow-left.file +++ /dev/null @@ -1 +0,0 @@ -arrow-left.png,w22,actions diff --git a/tools/source_icons/scalable/arrow-left.svg b/tools/source_icons/scalable/arrow-left.svg deleted file mode 100644 index c0ecb3b13..000000000 --- a/tools/source_icons/scalable/arrow-left.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-right-small.file b/tools/source_icons/scalable/arrow-right-small.file deleted file mode 100644 index bc480df22..000000000 --- a/tools/source_icons/scalable/arrow-right-small.file +++ /dev/null @@ -1 +0,0 @@ -arrow-right-small.png,w16,actions diff --git a/tools/source_icons/scalable/arrow-right-small.svg b/tools/source_icons/scalable/arrow-right-small.svg deleted file mode 100644 index 8d1c4694c..000000000 --- a/tools/source_icons/scalable/arrow-right-small.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-right.file b/tools/source_icons/scalable/arrow-right.file deleted file mode 100644 index 7040fee0a..000000000 --- a/tools/source_icons/scalable/arrow-right.file +++ /dev/null @@ -1 +0,0 @@ -arrow-right.png,w22,actions diff --git a/tools/source_icons/scalable/arrow-right.svg b/tools/source_icons/scalable/arrow-right.svg deleted file mode 100644 index 8d1c4694c..000000000 --- a/tools/source_icons/scalable/arrow-right.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-up-small.file b/tools/source_icons/scalable/arrow-up-small.file deleted file mode 100644 index e20834553..000000000 --- a/tools/source_icons/scalable/arrow-up-small.file +++ /dev/null @@ -1 +0,0 @@ -arrow-up-small.png,w16,actions diff --git a/tools/source_icons/scalable/arrow-up-small.svg b/tools/source_icons/scalable/arrow-up-small.svg deleted file mode 100644 index cb6379f6b..000000000 --- a/tools/source_icons/scalable/arrow-up-small.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/arrow-up.file b/tools/source_icons/scalable/arrow-up.file deleted file mode 100644 index 187c9e710..000000000 --- a/tools/source_icons/scalable/arrow-up.file +++ /dev/null @@ -1 +0,0 @@ -arrow-up.png,w22,actions diff --git a/tools/source_icons/scalable/arrow-up.svg b/tools/source_icons/scalable/arrow-up.svg deleted file mode 100644 index cb6379f6b..000000000 --- a/tools/source_icons/scalable/arrow-up.svg +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/atom.file b/tools/source_icons/scalable/atom.file deleted file mode 100644 index 8c7faa135..000000000 --- a/tools/source_icons/scalable/atom.file +++ /dev/null @@ -1 +0,0 @@ -atom.png,w22,actions diff --git a/tools/source_icons/scalable/atom.svg b/tools/source_icons/scalable/atom.svg deleted file mode 100644 index 33eb0a7e5..000000000 --- a/tools/source_icons/scalable/atom.svg +++ /dev/null @@ -1,121 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/beforeafter.file b/tools/source_icons/scalable/beforeafter.file deleted file mode 100644 index dc6d27251..000000000 --- a/tools/source_icons/scalable/beforeafter.file +++ /dev/null @@ -1 +0,0 @@ -beforeafter.png,w22,actions diff --git a/tools/source_icons/scalable/beforeafter.svg b/tools/source_icons/scalable/beforeafter.svg deleted file mode 100644 index 0e45b9d06..000000000 --- a/tools/source_icons/scalable/beforeafter.svg +++ /dev/null @@ -1,532 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/cglabel0.file b/tools/source_icons/scalable/cglabel0.file deleted file mode 100644 index a8b3d6f7e..000000000 --- a/tools/source_icons/scalable/cglabel0.file +++ /dev/null @@ -1 +0,0 @@ -cglabel0.png,h10,actions diff --git a/tools/source_icons/scalable/cglabel0.svg b/tools/source_icons/scalable/cglabel0.svg deleted file mode 100644 index cbb4ee903..000000000 --- a/tools/source_icons/scalable/cglabel0.svg +++ /dev/null @@ -1,624 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/cglabel1.file b/tools/source_icons/scalable/cglabel1.file deleted file mode 100644 index 82cf9fad5..000000000 --- a/tools/source_icons/scalable/cglabel1.file +++ /dev/null @@ -1 +0,0 @@ -cglabel1.png,h10,actions diff --git a/tools/source_icons/scalable/cglabel1.svg b/tools/source_icons/scalable/cglabel1.svg deleted file mode 100644 index 96172577c..000000000 --- a/tools/source_icons/scalable/cglabel1.svg +++ /dev/null @@ -1,623 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/cglabel2.file b/tools/source_icons/scalable/cglabel2.file deleted file mode 100644 index c7b1dc8a3..000000000 --- a/tools/source_icons/scalable/cglabel2.file +++ /dev/null @@ -1 +0,0 @@ -cglabel2.png,h10,actions diff --git a/tools/source_icons/scalable/cglabel2.svg b/tools/source_icons/scalable/cglabel2.svg deleted file mode 100644 index eb5fc9a08..000000000 --- a/tools/source_icons/scalable/cglabel2.svg +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/cglabel3.file b/tools/source_icons/scalable/cglabel3.file deleted file mode 100644 index 5c5bd5eb5..000000000 --- a/tools/source_icons/scalable/cglabel3.file +++ /dev/null @@ -1 +0,0 @@ -cglabel3.png,h10,actions diff --git a/tools/source_icons/scalable/cglabel3.svg b/tools/source_icons/scalable/cglabel3.svg deleted file mode 100644 index 5e9b6a72c..000000000 --- a/tools/source_icons/scalable/cglabel3.svg +++ /dev/null @@ -1,623 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/cglabel4.file b/tools/source_icons/scalable/cglabel4.file deleted file mode 100644 index ce7c74532..000000000 --- a/tools/source_icons/scalable/cglabel4.file +++ /dev/null @@ -1 +0,0 @@ -cglabel4.png,h10,actions diff --git a/tools/source_icons/scalable/cglabel4.svg b/tools/source_icons/scalable/cglabel4.svg deleted file mode 100644 index 8f98c5284..000000000 --- a/tools/source_icons/scalable/cglabel4.svg +++ /dev/null @@ -1,623 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/cglabel5.file b/tools/source_icons/scalable/cglabel5.file deleted file mode 100644 index f0a6a447b..000000000 --- a/tools/source_icons/scalable/cglabel5.file +++ /dev/null @@ -1 +0,0 @@ -cglabel5.png,h10,actions diff --git a/tools/source_icons/scalable/cglabel5.svg b/tools/source_icons/scalable/cglabel5.svg deleted file mode 100644 index 829d41604..000000000 --- a/tools/source_icons/scalable/cglabel5.svg +++ /dev/null @@ -1,623 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/clabel0.file b/tools/source_icons/scalable/clabel0.file deleted file mode 100644 index 05789c9b6..000000000 --- a/tools/source_icons/scalable/clabel0.file +++ /dev/null @@ -1 +0,0 @@ -clabel0.png,h10,actions diff --git a/tools/source_icons/scalable/clabel0.svg b/tools/source_icons/scalable/clabel0.svg deleted file mode 100644 index 4aef0c70c..000000000 --- a/tools/source_icons/scalable/clabel0.svg +++ /dev/null @@ -1,625 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/clabel1.file b/tools/source_icons/scalable/clabel1.file deleted file mode 100644 index ee2bd7652..000000000 --- a/tools/source_icons/scalable/clabel1.file +++ /dev/null @@ -1 +0,0 @@ -clabel1.png,h10,actions diff --git a/tools/source_icons/scalable/clabel1.svg b/tools/source_icons/scalable/clabel1.svg deleted file mode 100644 index 5b7046f05..000000000 --- a/tools/source_icons/scalable/clabel1.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/clabel2.file b/tools/source_icons/scalable/clabel2.file deleted file mode 100644 index fe6f470ff..000000000 --- a/tools/source_icons/scalable/clabel2.file +++ /dev/null @@ -1 +0,0 @@ -clabel2.png,h10,actions diff --git a/tools/source_icons/scalable/clabel2.svg b/tools/source_icons/scalable/clabel2.svg deleted file mode 100644 index fa363f6a3..000000000 --- a/tools/source_icons/scalable/clabel2.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/clabel3.file b/tools/source_icons/scalable/clabel3.file deleted file mode 100644 index e80189869..000000000 --- a/tools/source_icons/scalable/clabel3.file +++ /dev/null @@ -1 +0,0 @@ -clabel3.png,h10,actions diff --git a/tools/source_icons/scalable/clabel3.svg b/tools/source_icons/scalable/clabel3.svg deleted file mode 100644 index 311083bd6..000000000 --- a/tools/source_icons/scalable/clabel3.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/clabel4.file b/tools/source_icons/scalable/clabel4.file deleted file mode 100644 index b15df7ca9..000000000 --- a/tools/source_icons/scalable/clabel4.file +++ /dev/null @@ -1 +0,0 @@ -clabel4.png,h10,actions diff --git a/tools/source_icons/scalable/clabel4.svg b/tools/source_icons/scalable/clabel4.svg deleted file mode 100644 index e18b8dc54..000000000 --- a/tools/source_icons/scalable/clabel4.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/clabel5.file b/tools/source_icons/scalable/clabel5.file deleted file mode 100644 index 317abad4b..000000000 --- a/tools/source_icons/scalable/clabel5.file +++ /dev/null @@ -1 +0,0 @@ -clabel5.png,h10,actions diff --git a/tools/source_icons/scalable/clabel5.svg b/tools/source_icons/scalable/clabel5.svg deleted file mode 100644 index 986911fa8..000000000 --- a/tools/source_icons/scalable/clabel5.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/closedhand.file b/tools/source_icons/scalable/closedhand.file deleted file mode 100644 index d1f705e03..000000000 --- a/tools/source_icons/scalable/closedhand.file +++ /dev/null @@ -1 +0,0 @@ -closedhand.png,w22,actions diff --git a/tools/source_icons/scalable/closedhand.svg b/tools/source_icons/scalable/closedhand.svg deleted file mode 100644 index e6d9727f5..000000000 --- a/tools/source_icons/scalable/closedhand.svg +++ /dev/null @@ -1,1317 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/tools/source_icons/scalable/colorPickers-hide.file b/tools/source_icons/scalable/colorPickers-hide.file deleted file mode 100644 index 728529716..000000000 --- a/tools/source_icons/scalable/colorPickers-hide.file +++ /dev/null @@ -1 +0,0 @@ -colorPickers-hide.png,w22,actions diff --git a/tools/source_icons/scalable/colorPickers-hide.svg b/tools/source_icons/scalable/colorPickers-hide.svg deleted file mode 100644 index fe0c7bf14..000000000 --- a/tools/source_icons/scalable/colorPickers-hide.svg +++ /dev/null @@ -1,4301 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/colorPickers-show.file b/tools/source_icons/scalable/colorPickers-show.file deleted file mode 100644 index 96db803fc..000000000 --- a/tools/source_icons/scalable/colorPickers-show.file +++ /dev/null @@ -1 +0,0 @@ -colorPickers-show.png,w22,actions diff --git a/tools/source_icons/scalable/colorPickers-show.svg b/tools/source_icons/scalable/colorPickers-show.svg deleted file mode 100644 index d03472020..000000000 --- a/tools/source_icons/scalable/colorPickers-show.svg +++ /dev/null @@ -1,4372 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/colour.file b/tools/source_icons/scalable/colour.file deleted file mode 100644 index ca546e7bc..000000000 --- a/tools/source_icons/scalable/colour.file +++ /dev/null @@ -1 +0,0 @@ -colour.png,w24,actions diff --git a/tools/source_icons/scalable/colour.svg b/tools/source_icons/scalable/colour.svg deleted file mode 100644 index 27b160e49..000000000 --- a/tools/source_icons/scalable/colour.svg +++ /dev/null @@ -1,855 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/crop-auto.file b/tools/source_icons/scalable/crop-auto.file deleted file mode 100644 index d642c35b1..000000000 --- a/tools/source_icons/scalable/crop-auto.file +++ /dev/null @@ -1 +0,0 @@ -crop-auto.png,h18,actions diff --git a/tools/source_icons/scalable/crop-auto.svg b/tools/source_icons/scalable/crop-auto.svg deleted file mode 100644 index 9aab86fa9..000000000 --- a/tools/source_icons/scalable/crop-auto.svg +++ /dev/null @@ -1,464 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/crop.file b/tools/source_icons/scalable/crop.file deleted file mode 100644 index d0dbe770f..000000000 --- a/tools/source_icons/scalable/crop.file +++ /dev/null @@ -1 +0,0 @@ -crop.png,w22,actions diff --git a/tools/source_icons/scalable/crop.svg b/tools/source_icons/scalable/crop.svg deleted file mode 100644 index c25a302d0..000000000 --- a/tools/source_icons/scalable/crop.svg +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/crossCursor.svg b/tools/source_icons/scalable/crossCursor.svg deleted file mode 100644 index 3ae8ab282..000000000 --- a/tools/source_icons/scalable/crossCursor.svg +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/crossed-arrows-in.file b/tools/source_icons/scalable/crossed-arrows-in.file deleted file mode 100644 index 8405de976..000000000 --- a/tools/source_icons/scalable/crossed-arrows-in.file +++ /dev/null @@ -1 +0,0 @@ -crossed-arrows-in.png,w22,actions diff --git a/tools/source_icons/scalable/crossed-arrows-in.svg b/tools/source_icons/scalable/crossed-arrows-in.svg deleted file mode 100644 index 56c346d18..000000000 --- a/tools/source_icons/scalable/crossed-arrows-in.svg +++ /dev/null @@ -1,424 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/crossed-arrows-out.file b/tools/source_icons/scalable/crossed-arrows-out.file deleted file mode 100644 index efb263648..000000000 --- a/tools/source_icons/scalable/crossed-arrows-out.file +++ /dev/null @@ -1 +0,0 @@ -crossed-arrows-out.png,w22,actions diff --git a/tools/source_icons/scalable/crossed-arrows-out.svg b/tools/source_icons/scalable/crossed-arrows-out.svg deleted file mode 100644 index dd9269923..000000000 --- a/tools/source_icons/scalable/crossed-arrows-out.svg +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/curveType-NURBS.file b/tools/source_icons/scalable/curveType-NURBS.file deleted file mode 100644 index e283505d8..000000000 --- a/tools/source_icons/scalable/curveType-NURBS.file +++ /dev/null @@ -1 +0,0 @@ -curveType-NURBS.png,w18,actions diff --git a/tools/source_icons/scalable/curveType-NURBS.svg b/tools/source_icons/scalable/curveType-NURBS.svg deleted file mode 100644 index 3a8624355..000000000 --- a/tools/source_icons/scalable/curveType-NURBS.svg +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/curveType-controlPoints.file b/tools/source_icons/scalable/curveType-controlPoints.file deleted file mode 100644 index 5a904de85..000000000 --- a/tools/source_icons/scalable/curveType-controlPoints.file +++ /dev/null @@ -1 +0,0 @@ -curveType-controlPoints.png,w18,actions diff --git a/tools/source_icons/scalable/curveType-controlPoints.svg b/tools/source_icons/scalable/curveType-controlPoints.svg deleted file mode 100644 index 6e5e1f6ec..000000000 --- a/tools/source_icons/scalable/curveType-controlPoints.svg +++ /dev/null @@ -1,773 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/curveType-flatLinear.file b/tools/source_icons/scalable/curveType-flatLinear.file deleted file mode 100644 index f4bfb52f9..000000000 --- a/tools/source_icons/scalable/curveType-flatLinear.file +++ /dev/null @@ -1 +0,0 @@ -curveType-flatLinear.png,w18,actions diff --git a/tools/source_icons/scalable/curveType-flatLinear.svg b/tools/source_icons/scalable/curveType-flatLinear.svg deleted file mode 100644 index e4923d637..000000000 --- a/tools/source_icons/scalable/curveType-flatLinear.svg +++ /dev/null @@ -1,777 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/curveType-linear.file b/tools/source_icons/scalable/curveType-linear.file deleted file mode 100644 index adceccc33..000000000 --- a/tools/source_icons/scalable/curveType-linear.file +++ /dev/null @@ -1 +0,0 @@ -curveType-linear.png,w18,actions diff --git a/tools/source_icons/scalable/curveType-linear.svg b/tools/source_icons/scalable/curveType-linear.svg deleted file mode 100644 index 8ae43977c..000000000 --- a/tools/source_icons/scalable/curveType-linear.svg +++ /dev/null @@ -1,583 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/curveType-parametric.file b/tools/source_icons/scalable/curveType-parametric.file deleted file mode 100644 index f7cc51e7b..000000000 --- a/tools/source_icons/scalable/curveType-parametric.file +++ /dev/null @@ -1 +0,0 @@ -curveType-parametric.png,w18,actions diff --git a/tools/source_icons/scalable/curveType-parametric.svg b/tools/source_icons/scalable/curveType-parametric.svg deleted file mode 100644 index 2d11b90da..000000000 --- a/tools/source_icons/scalable/curveType-parametric.svg +++ /dev/null @@ -1,595 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/curveType-spline.file b/tools/source_icons/scalable/curveType-spline.file deleted file mode 100644 index 4c64e10c9..000000000 --- a/tools/source_icons/scalable/curveType-spline.file +++ /dev/null @@ -1 +0,0 @@ -curveType-spline.png,w18,actions diff --git a/tools/source_icons/scalable/curveType-spline.svg b/tools/source_icons/scalable/curveType-spline.svg deleted file mode 100644 index a24b7ae9c..000000000 --- a/tools/source_icons/scalable/curveType-spline.svg +++ /dev/null @@ -1,629 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/detail.file b/tools/source_icons/scalable/detail.file deleted file mode 100644 index a82843776..000000000 --- a/tools/source_icons/scalable/detail.file +++ /dev/null @@ -1 +0,0 @@ -detail.png,w24,actions diff --git a/tools/source_icons/scalable/detail.svg b/tools/source_icons/scalable/detail.svg deleted file mode 100644 index 7910c1492..000000000 --- a/tools/source_icons/scalable/detail.svg +++ /dev/null @@ -1,5185 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/distorsion.file b/tools/source_icons/scalable/distorsion.file deleted file mode 100644 index 881efa97a..000000000 --- a/tools/source_icons/scalable/distorsion.file +++ /dev/null @@ -1 +0,0 @@ -distorsion.png,w22,actions diff --git a/tools/source_icons/scalable/distorsion.svg b/tools/source_icons/scalable/distorsion.svg deleted file mode 100644 index 3be8206b3..000000000 --- a/tools/source_icons/scalable/distorsion.svg +++ /dev/null @@ -1,1056 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/distortion-auto.file b/tools/source_icons/scalable/distortion-auto.file deleted file mode 100644 index 06f4a0745..000000000 --- a/tools/source_icons/scalable/distortion-auto.file +++ /dev/null @@ -1 +0,0 @@ -distortion-auto.png,h18,actions diff --git a/tools/source_icons/scalable/distortion-auto.svg b/tools/source_icons/scalable/distortion-auto.svg deleted file mode 100644 index a36ee2f34..000000000 --- a/tools/source_icons/scalable/distortion-auto.svg +++ /dev/null @@ -1,1068 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/distortion-barrel.file b/tools/source_icons/scalable/distortion-barrel.file deleted file mode 100644 index 555f27f5d..000000000 --- a/tools/source_icons/scalable/distortion-barrel.file +++ /dev/null @@ -1 +0,0 @@ -distortion-barrel.png,w22,actions diff --git a/tools/source_icons/scalable/distortion-barrel.svg b/tools/source_icons/scalable/distortion-barrel.svg deleted file mode 100644 index fe76c60c3..000000000 --- a/tools/source_icons/scalable/distortion-barrel.svg +++ /dev/null @@ -1,1150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/distortion-pincushion.file b/tools/source_icons/scalable/distortion-pincushion.file deleted file mode 100644 index 56807fba7..000000000 --- a/tools/source_icons/scalable/distortion-pincushion.file +++ /dev/null @@ -1 +0,0 @@ -distortion-pincushion.png,w22,actions diff --git a/tools/source_icons/scalable/distortion-pincushion.svg b/tools/source_icons/scalable/distortion-pincushion.svg deleted file mode 100644 index 0a5efed14..000000000 --- a/tools/source_icons/scalable/distortion-pincushion.svg +++ /dev/null @@ -1,1149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/distortion.file b/tools/source_icons/scalable/distortion.file deleted file mode 100644 index 46b17a564..000000000 --- a/tools/source_icons/scalable/distortion.file +++ /dev/null @@ -1 +0,0 @@ -distortion.png,w22,actions diff --git a/tools/source_icons/scalable/distortion.svg b/tools/source_icons/scalable/distortion.svg deleted file mode 100644 index 3be8206b3..000000000 --- a/tools/source_icons/scalable/distortion.svg +++ /dev/null @@ -1,1056 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/document-open-recent.file b/tools/source_icons/scalable/document-open-recent.file deleted file mode 100644 index 2eb27f8b5..000000000 --- a/tools/source_icons/scalable/document-open-recent.file +++ /dev/null @@ -1 +0,0 @@ -document-open-recent.png,h18,actions diff --git a/tools/source_icons/scalable/document-open-recent.svg b/tools/source_icons/scalable/document-open-recent.svg deleted file mode 100644 index 978b28c3f..000000000 --- a/tools/source_icons/scalable/document-open-recent.svg +++ /dev/null @@ -1,1643 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/drive-harddisk.file b/tools/source_icons/scalable/drive-harddisk.file deleted file mode 100644 index b50693e40..000000000 --- a/tools/source_icons/scalable/drive-harddisk.file +++ /dev/null @@ -1,4 +0,0 @@ -drive-harddisk.png,h18,devices -computer.png,h18,devices -media-flash.png,h18,devices -media-tape.png,h18,devices diff --git a/tools/source_icons/scalable/drive-harddisk.svg b/tools/source_icons/scalable/drive-harddisk.svg deleted file mode 100644 index f548c5671..000000000 --- a/tools/source_icons/scalable/drive-harddisk.svg +++ /dev/null @@ -1,2582 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/drive-optical.file b/tools/source_icons/scalable/drive-optical.file deleted file mode 100644 index 3054e2a2e..000000000 --- a/tools/source_icons/scalable/drive-optical.file +++ /dev/null @@ -1,5 +0,0 @@ -gtk-cdrom.png,h18,devices -media-optical.png,h18,devices -drive-optical.png,h18,devices -media-optical-bd.png,h18,devices -media-optical-dvd.png,h18,devices diff --git a/tools/source_icons/scalable/drive-optical.svg b/tools/source_icons/scalable/drive-optical.svg deleted file mode 100644 index b27e6d194..000000000 --- a/tools/source_icons/scalable/drive-optical.svg +++ /dev/null @@ -1,1388 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/edited.file b/tools/source_icons/scalable/edited.file deleted file mode 100644 index 95b77b754..000000000 --- a/tools/source_icons/scalable/edited.file +++ /dev/null @@ -1,2 +0,0 @@ -edited.png,w18,actions -edited-small.png,h10,actions diff --git a/tools/source_icons/scalable/edited.svg b/tools/source_icons/scalable/edited.svg deleted file mode 100644 index 0126b05d8..000000000 --- a/tools/source_icons/scalable/edited.svg +++ /dev/null @@ -1,785 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/editedg.file b/tools/source_icons/scalable/editedg.file deleted file mode 100644 index 49951f9b9..000000000 --- a/tools/source_icons/scalable/editedg.file +++ /dev/null @@ -1 +0,0 @@ -editedg-small.png,h10,actions diff --git a/tools/source_icons/scalable/editedg.svg b/tools/source_icons/scalable/editedg.svg deleted file mode 100644 index 578ecfa7e..000000000 --- a/tools/source_icons/scalable/editedg.svg +++ /dev/null @@ -1,753 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/editednot.file b/tools/source_icons/scalable/editednot.file deleted file mode 100644 index d4d663433..000000000 --- a/tools/source_icons/scalable/editednot.file +++ /dev/null @@ -1 +0,0 @@ -editednot-small.png,h10,actions diff --git a/tools/source_icons/scalable/editednot.svg b/tools/source_icons/scalable/editednot.svg deleted file mode 100644 index c286de2dc..000000000 --- a/tools/source_icons/scalable/editednot.svg +++ /dev/null @@ -1,761 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/editednotg.file b/tools/source_icons/scalable/editednotg.file deleted file mode 100644 index 4e6ac8b28..000000000 --- a/tools/source_icons/scalable/editednotg.file +++ /dev/null @@ -1 +0,0 @@ -editednotg-small.png,h10,actions diff --git a/tools/source_icons/scalable/editednotg.svg b/tools/source_icons/scalable/editednotg.svg deleted file mode 100644 index 6c51de9cf..000000000 --- a/tools/source_icons/scalable/editednotg.svg +++ /dev/null @@ -1,893 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/editmodehand.file b/tools/source_icons/scalable/editmodehand.file deleted file mode 100644 index 93df595c9..000000000 --- a/tools/source_icons/scalable/editmodehand.file +++ /dev/null @@ -1 +0,0 @@ -editmodehand.png,w22,actions diff --git a/tools/source_icons/scalable/editmodehand.svg b/tools/source_icons/scalable/editmodehand.svg deleted file mode 100644 index 9a9898e68..000000000 --- a/tools/source_icons/scalable/editmodehand.svg +++ /dev/null @@ -1,581 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/tools/source_icons/scalable/equalizer-narrow.file b/tools/source_icons/scalable/equalizer-narrow.file deleted file mode 100644 index c922b3554..000000000 --- a/tools/source_icons/scalable/equalizer-narrow.file +++ /dev/null @@ -1 +0,0 @@ -equalizer-narrow.png,w22,actions diff --git a/tools/source_icons/scalable/equalizer-narrow.svg b/tools/source_icons/scalable/equalizer-narrow.svg deleted file mode 100644 index b31128b36..000000000 --- a/tools/source_icons/scalable/equalizer-narrow.svg +++ /dev/null @@ -1,201 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/equalizer-wide.file b/tools/source_icons/scalable/equalizer-wide.file deleted file mode 100644 index 22ee0b4b9..000000000 --- a/tools/source_icons/scalable/equalizer-wide.file +++ /dev/null @@ -1 +0,0 @@ -equalizer-wide.png,w22,actions diff --git a/tools/source_icons/scalable/equalizer-wide.svg b/tools/source_icons/scalable/equalizer-wide.svg deleted file mode 100644 index dcf184f56..000000000 --- a/tools/source_icons/scalable/equalizer-wide.svg +++ /dev/null @@ -1,256 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/expanderClosed.file b/tools/source_icons/scalable/expanderClosed.file deleted file mode 100644 index 46bb9877d..000000000 --- a/tools/source_icons/scalable/expanderClosed.file +++ /dev/null @@ -1 +0,0 @@ -expanderClosed.png,w14,actions diff --git a/tools/source_icons/scalable/expanderClosed.svg b/tools/source_icons/scalable/expanderClosed.svg deleted file mode 100644 index b9778cca4..000000000 --- a/tools/source_icons/scalable/expanderClosed.svg +++ /dev/null @@ -1,738 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/expanderDisabled.file b/tools/source_icons/scalable/expanderDisabled.file deleted file mode 100644 index 36e6dc1e4..000000000 --- a/tools/source_icons/scalable/expanderDisabled.file +++ /dev/null @@ -1 +0,0 @@ -expanderDisabled.png,w14,actions diff --git a/tools/source_icons/scalable/expanderDisabled.svg b/tools/source_icons/scalable/expanderDisabled.svg deleted file mode 100644 index 4518548cb..000000000 --- a/tools/source_icons/scalable/expanderDisabled.svg +++ /dev/null @@ -1,634 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/expanderEnabled.file b/tools/source_icons/scalable/expanderEnabled.file deleted file mode 100644 index 0835d223a..000000000 --- a/tools/source_icons/scalable/expanderEnabled.file +++ /dev/null @@ -1 +0,0 @@ -expanderEnabled.png,w14,actions diff --git a/tools/source_icons/scalable/expanderEnabled.svg b/tools/source_icons/scalable/expanderEnabled.svg deleted file mode 100644 index 4606416c0..000000000 --- a/tools/source_icons/scalable/expanderEnabled.svg +++ /dev/null @@ -1,698 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/expanderInconsistent.file b/tools/source_icons/scalable/expanderInconsistent.file deleted file mode 100644 index 1121c311e..000000000 --- a/tools/source_icons/scalable/expanderInconsistent.file +++ /dev/null @@ -1 +0,0 @@ -expanderInconsistent.png,w14,actions diff --git a/tools/source_icons/scalable/expanderInconsistent.svg b/tools/source_icons/scalable/expanderInconsistent.svg deleted file mode 100644 index 8021f1199..000000000 --- a/tools/source_icons/scalable/expanderInconsistent.svg +++ /dev/null @@ -1,1243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/expanderOpened.file b/tools/source_icons/scalable/expanderOpened.file deleted file mode 100644 index f6bfd1a54..000000000 --- a/tools/source_icons/scalable/expanderOpened.file +++ /dev/null @@ -1 +0,0 @@ -expanderOpened.png,w14,actions diff --git a/tools/source_icons/scalable/expanderOpened.svg b/tools/source_icons/scalable/expanderOpened.svg deleted file mode 100644 index a0092792c..000000000 --- a/tools/source_icons/scalable/expanderOpened.svg +++ /dev/null @@ -1,748 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/exposure.file b/tools/source_icons/scalable/exposure.file deleted file mode 100644 index 0d166322a..000000000 --- a/tools/source_icons/scalable/exposure.file +++ /dev/null @@ -1 +0,0 @@ -exposure.png,w24,actions diff --git a/tools/source_icons/scalable/exposure.svg b/tools/source_icons/scalable/exposure.svg deleted file mode 100644 index e1a029520..000000000 --- a/tools/source_icons/scalable/exposure.svg +++ /dev/null @@ -1,668 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/filter-original-1.file b/tools/source_icons/scalable/filter-original-1.file deleted file mode 100644 index 8f2876c7b..000000000 --- a/tools/source_icons/scalable/filter-original-1.file +++ /dev/null @@ -1 +0,0 @@ -filter-original-1.png,w22,actions diff --git a/tools/source_icons/scalable/filter-original-1.svg b/tools/source_icons/scalable/filter-original-1.svg deleted file mode 100644 index 4295c2fdb..000000000 --- a/tools/source_icons/scalable/filter-original-1.svg +++ /dev/null @@ -1,738 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/filter-original-2.file b/tools/source_icons/scalable/filter-original-2.file deleted file mode 100644 index d2e205806..000000000 --- a/tools/source_icons/scalable/filter-original-2.file +++ /dev/null @@ -1 +0,0 @@ -filter-original-2.png,w22,actions diff --git a/tools/source_icons/scalable/filter-original-2.svg b/tools/source_icons/scalable/filter-original-2.svg deleted file mode 100644 index e1c436ac0..000000000 --- a/tools/source_icons/scalable/filter-original-2.svg +++ /dev/null @@ -1,768 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/filter.file b/tools/source_icons/scalable/filter.file deleted file mode 100644 index 06d8465ab..000000000 --- a/tools/source_icons/scalable/filter.file +++ /dev/null @@ -1 +0,0 @@ -filter.png,w22,actions diff --git a/tools/source_icons/scalable/filter.svg b/tools/source_icons/scalable/filter.svg deleted file mode 100644 index c29442938..000000000 --- a/tools/source_icons/scalable/filter.svg +++ /dev/null @@ -1,1198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/filterclear.file b/tools/source_icons/scalable/filterclear.file deleted file mode 100644 index 00636c71c..000000000 --- a/tools/source_icons/scalable/filterclear.file +++ /dev/null @@ -1 +0,0 @@ -filterclear.png,w22,actions diff --git a/tools/source_icons/scalable/filterclear.svg b/tools/source_icons/scalable/filterclear.svg deleted file mode 100644 index 367c0de73..000000000 --- a/tools/source_icons/scalable/filterclear.svg +++ /dev/null @@ -1,1263 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gamut-hist.file b/tools/source_icons/scalable/gamut-hist.file deleted file mode 100644 index 5eb359187..000000000 --- a/tools/source_icons/scalable/gamut-hist.file +++ /dev/null @@ -1 +0,0 @@ -gamut-hist.png,w22,actions diff --git a/tools/source_icons/scalable/gamut-hist.svg b/tools/source_icons/scalable/gamut-hist.svg deleted file mode 100644 index cf163df83..000000000 --- a/tools/source_icons/scalable/gamut-hist.svg +++ /dev/null @@ -1,852 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - Morgan Hardwood - - - RawTherapee www.rawtherapee.com - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gamut-softproof.file b/tools/source_icons/scalable/gamut-softproof.file deleted file mode 100644 index 18b57b0a2..000000000 --- a/tools/source_icons/scalable/gamut-softproof.file +++ /dev/null @@ -1 +0,0 @@ -gamut-softproof.png,w22,actions diff --git a/tools/source_icons/scalable/gamut-softproof.svg b/tools/source_icons/scalable/gamut-softproof.svg deleted file mode 100644 index 5129ab9de..000000000 --- a/tools/source_icons/scalable/gamut-softproof.svg +++ /dev/null @@ -1,303 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gamut-warning.file b/tools/source_icons/scalable/gamut-warning.file deleted file mode 100644 index da853059c..000000000 --- a/tools/source_icons/scalable/gamut-warning.file +++ /dev/null @@ -1 +0,0 @@ -gamut-warning.png,w22,actions diff --git a/tools/source_icons/scalable/gamut-warning.svg b/tools/source_icons/scalable/gamut-warning.svg deleted file mode 100644 index be75417c2..000000000 --- a/tools/source_icons/scalable/gamut-warning.svg +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Icons for the "Expert" tab in RawTherapee - - - - - - - - image/svg+xml - - Icons for the "Expert" tab in RawTherapee - - - Morgan Hardwood - - - - - - - - - - - - - - - - - - ! - - diff --git a/tools/source_icons/scalable/gamut_srgb_prophoto_xy.svg b/tools/source_icons/scalable/gamut_srgb_prophoto_xy.svg deleted file mode 100644 index 21058878e..000000000 --- a/tools/source_icons/scalable/gamut_srgb_prophoto_xy.svg +++ /dev/null @@ -1,656 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - Morgan Hardwood - - - RawTherapee www.rawtherapee.com - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/grayrated.file b/tools/source_icons/scalable/grayrated.file deleted file mode 100644 index 5b2be3e7f..000000000 --- a/tools/source_icons/scalable/grayrated.file +++ /dev/null @@ -1 +0,0 @@ -grayrated.png,h10,actions diff --git a/tools/source_icons/scalable/grayrated.svg b/tools/source_icons/scalable/grayrated.svg deleted file mode 100644 index 66eb88a7b..000000000 --- a/tools/source_icons/scalable/grayrated.svg +++ /dev/null @@ -1,645 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-add.file b/tools/source_icons/scalable/gtk-add.file deleted file mode 100644 index 24df258a3..000000000 --- a/tools/source_icons/scalable/gtk-add.file +++ /dev/null @@ -1,3 +0,0 @@ -list-add.png,w16,actions -gtk-add.png,w16,actions -list-add-small.png,w12,actions diff --git a/tools/source_icons/scalable/gtk-add.svg b/tools/source_icons/scalable/gtk-add.svg deleted file mode 100644 index 16cc1a352..000000000 --- a/tools/source_icons/scalable/gtk-add.svg +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-apply.file b/tools/source_icons/scalable/gtk-apply.file deleted file mode 100644 index a319cbc75..000000000 --- a/tools/source_icons/scalable/gtk-apply.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-apply.png,w16,actions -gtk-ok.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-apply.svg b/tools/source_icons/scalable/gtk-apply.svg deleted file mode 100644 index c3e79f8a1..000000000 --- a/tools/source_icons/scalable/gtk-apply.svg +++ /dev/null @@ -1,760 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-cancel.file b/tools/source_icons/scalable/gtk-cancel.file deleted file mode 100644 index 92d2ea411..000000000 --- a/tools/source_icons/scalable/gtk-cancel.file +++ /dev/null @@ -1 +0,0 @@ -gtk-cancel.png.old,h16,actions diff --git a/tools/source_icons/scalable/gtk-cancel.svg b/tools/source_icons/scalable/gtk-cancel.svg deleted file mode 100644 index 8c4529dd7..000000000 --- a/tools/source_icons/scalable/gtk-cancel.svg +++ /dev/null @@ -1,705 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-close.file b/tools/source_icons/scalable/gtk-close.file deleted file mode 100644 index bc92ba643..000000000 --- a/tools/source_icons/scalable/gtk-close.file +++ /dev/null @@ -1,3 +0,0 @@ -gtk-close.png,w16,actions -gtk-close-small.png,h13,actions -gtk-cancel.png,h16,actions diff --git a/tools/source_icons/scalable/gtk-close.svg b/tools/source_icons/scalable/gtk-close.svg deleted file mode 100644 index 0cb1d4711..000000000 --- a/tools/source_icons/scalable/gtk-close.svg +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-color-picker-add.file b/tools/source_icons/scalable/gtk-color-picker-add.file deleted file mode 100644 index f51e051bd..000000000 --- a/tools/source_icons/scalable/gtk-color-picker-add.file +++ /dev/null @@ -1 +0,0 @@ -gtk-color-picker-add.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-color-picker-add.svg b/tools/source_icons/scalable/gtk-color-picker-add.svg deleted file mode 100644 index a12197ffe..000000000 --- a/tools/source_icons/scalable/gtk-color-picker-add.svg +++ /dev/null @@ -1,4839 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-color-picker.file b/tools/source_icons/scalable/gtk-color-picker.file deleted file mode 100644 index d17a0648a..000000000 --- a/tools/source_icons/scalable/gtk-color-picker.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-color-picker.png,w22,actions -gtk-color-picker-small.png,h18,actions diff --git a/tools/source_icons/scalable/gtk-color-picker.svg b/tools/source_icons/scalable/gtk-color-picker.svg deleted file mode 100644 index 5a0591bb0..000000000 --- a/tools/source_icons/scalable/gtk-color-picker.svg +++ /dev/null @@ -1,4834 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-copy.file b/tools/source_icons/scalable/gtk-copy.file deleted file mode 100644 index 6c4bec508..000000000 --- a/tools/source_icons/scalable/gtk-copy.file +++ /dev/null @@ -1,2 +0,0 @@ -edit-copy.png,w22,actions -gtk-copy.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-copy.svg b/tools/source_icons/scalable/gtk-copy.svg deleted file mode 100644 index e3dafc549..000000000 --- a/tools/source_icons/scalable/gtk-copy.svg +++ /dev/null @@ -1,727 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-delete.file b/tools/source_icons/scalable/gtk-delete.file deleted file mode 100644 index c73446d0a..000000000 --- a/tools/source_icons/scalable/gtk-delete.file +++ /dev/null @@ -1,2 +0,0 @@ -trash.png,w22,actions -trash-show-empty.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-delete.svg b/tools/source_icons/scalable/gtk-delete.svg deleted file mode 100644 index c3f85b1d9..000000000 --- a/tools/source_icons/scalable/gtk-delete.svg +++ /dev/null @@ -1,862 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-directory.file b/tools/source_icons/scalable/gtk-directory.file deleted file mode 100644 index 85e55324b..000000000 --- a/tools/source_icons/scalable/gtk-directory.file +++ /dev/null @@ -1,2 +0,0 @@ -folder.png,h18,places -gtk-directory.png,h18,places diff --git a/tools/source_icons/scalable/gtk-directory.svg b/tools/source_icons/scalable/gtk-directory.svg deleted file mode 100644 index 493ed2f3c..000000000 --- a/tools/source_icons/scalable/gtk-directory.svg +++ /dev/null @@ -1,1586 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-edit.file b/tools/source_icons/scalable/gtk-edit.file deleted file mode 100644 index 4dcec3be2..000000000 --- a/tools/source_icons/scalable/gtk-edit.file +++ /dev/null @@ -1 +0,0 @@ -gtk-edit.png,h18,actions diff --git a/tools/source_icons/scalable/gtk-edit.svg b/tools/source_icons/scalable/gtk-edit.svg deleted file mode 100644 index 2ec58e4e7..000000000 --- a/tools/source_icons/scalable/gtk-edit.svg +++ /dev/null @@ -1,681 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-execute.file b/tools/source_icons/scalable/gtk-execute.file deleted file mode 100644 index d7c02b31d..000000000 --- a/tools/source_icons/scalable/gtk-execute.file +++ /dev/null @@ -1 +0,0 @@ -processing.png,w20,actions diff --git a/tools/source_icons/scalable/gtk-execute.svg b/tools/source_icons/scalable/gtk-execute.svg deleted file mode 100644 index f54159c69..000000000 --- a/tools/source_icons/scalable/gtk-execute.svg +++ /dev/null @@ -1,409 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-file.file b/tools/source_icons/scalable/gtk-file.file deleted file mode 100644 index a50463a1d..000000000 --- a/tools/source_icons/scalable/gtk-file.file +++ /dev/null @@ -1 +0,0 @@ -rtwindow.png,w20,actions diff --git a/tools/source_icons/scalable/gtk-file.svg b/tools/source_icons/scalable/gtk-file.svg deleted file mode 100644 index 76bc44c89..000000000 --- a/tools/source_icons/scalable/gtk-file.svg +++ /dev/null @@ -1,2735 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-find.file b/tools/source_icons/scalable/gtk-find.file deleted file mode 100644 index 2ca2b36a0..000000000 --- a/tools/source_icons/scalable/gtk-find.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-find.png,h18,actions -edit-find.png,h18,actions diff --git a/tools/source_icons/scalable/gtk-find.svg b/tools/source_icons/scalable/gtk-find.svg deleted file mode 100644 index 70fe453ea..000000000 --- a/tools/source_icons/scalable/gtk-find.svg +++ /dev/null @@ -1,580 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-fullscreen.file b/tools/source_icons/scalable/gtk-fullscreen.file deleted file mode 100644 index 320e0e84b..000000000 --- a/tools/source_icons/scalable/gtk-fullscreen.file +++ /dev/null @@ -1 +0,0 @@ -fullscreen.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-fullscreen.svg b/tools/source_icons/scalable/gtk-fullscreen.svg deleted file mode 100644 index 3b24a0741..000000000 --- a/tools/source_icons/scalable/gtk-fullscreen.svg +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-goto-first.file b/tools/source_icons/scalable/gtk-goto-first.file deleted file mode 100644 index bad72d8a0..000000000 --- a/tools/source_icons/scalable/gtk-goto-first.file +++ /dev/null @@ -1 +0,0 @@ -toleftend.png,h16,actions diff --git a/tools/source_icons/scalable/gtk-goto-first.svg b/tools/source_icons/scalable/gtk-goto-first.svg deleted file mode 100644 index 281180ba0..000000000 --- a/tools/source_icons/scalable/gtk-goto-first.svg +++ /dev/null @@ -1,605 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-goto-last.file b/tools/source_icons/scalable/gtk-goto-last.file deleted file mode 100644 index aace4f459..000000000 --- a/tools/source_icons/scalable/gtk-goto-last.file +++ /dev/null @@ -1 +0,0 @@ -torightend.png,h16,actions diff --git a/tools/source_icons/scalable/gtk-goto-last.svg b/tools/source_icons/scalable/gtk-goto-last.svg deleted file mode 100644 index 9149f5477..000000000 --- a/tools/source_icons/scalable/gtk-goto-last.svg +++ /dev/null @@ -1,605 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-leave-fullscreen.file b/tools/source_icons/scalable/gtk-leave-fullscreen.file deleted file mode 100644 index 1880eacae..000000000 --- a/tools/source_icons/scalable/gtk-leave-fullscreen.file +++ /dev/null @@ -1 +0,0 @@ -fullscreen-exit.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-leave-fullscreen.svg b/tools/source_icons/scalable/gtk-leave-fullscreen.svg deleted file mode 100644 index a28049fde..000000000 --- a/tools/source_icons/scalable/gtk-leave-fullscreen.svg +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-media-play.file b/tools/source_icons/scalable/gtk-media-play.file deleted file mode 100644 index 8d32e77c6..000000000 --- a/tools/source_icons/scalable/gtk-media-play.file +++ /dev/null @@ -1 +0,0 @@ -gtk-media-play.png,w13,actions diff --git a/tools/source_icons/scalable/gtk-media-play.svg b/tools/source_icons/scalable/gtk-media-play.svg deleted file mode 100644 index 105ceaa57..000000000 --- a/tools/source_icons/scalable/gtk-media-play.svg +++ /dev/null @@ -1,604 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-media-stop.file b/tools/source_icons/scalable/gtk-media-stop.file deleted file mode 100644 index db36b568b..000000000 --- a/tools/source_icons/scalable/gtk-media-stop.file +++ /dev/null @@ -1 +0,0 @@ -gtk-media-stop.png,w13,actions diff --git a/tools/source_icons/scalable/gtk-media-stop.svg b/tools/source_icons/scalable/gtk-media-stop.svg deleted file mode 100644 index e70bb5e60..000000000 --- a/tools/source_icons/scalable/gtk-media-stop.svg +++ /dev/null @@ -1,661 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-open.file b/tools/source_icons/scalable/gtk-open.file deleted file mode 100644 index ee4eb5b7f..000000000 --- a/tools/source_icons/scalable/gtk-open.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-open.png,h18,actions -document-open.png,h18,actions diff --git a/tools/source_icons/scalable/gtk-open.svg b/tools/source_icons/scalable/gtk-open.svg deleted file mode 100644 index 9101e96ca..000000000 --- a/tools/source_icons/scalable/gtk-open.svg +++ /dev/null @@ -1,2007 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-paste.file b/tools/source_icons/scalable/gtk-paste.file deleted file mode 100644 index 78b7b677c..000000000 --- a/tools/source_icons/scalable/gtk-paste.file +++ /dev/null @@ -1,2 +0,0 @@ -edit-paste.png,w22,actions -gtk-paste.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-paste.svg b/tools/source_icons/scalable/gtk-paste.svg deleted file mode 100644 index c1844a849..000000000 --- a/tools/source_icons/scalable/gtk-paste.svg +++ /dev/null @@ -1,1599 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-preferences.file b/tools/source_icons/scalable/gtk-preferences.file deleted file mode 100644 index aca57191b..000000000 --- a/tools/source_icons/scalable/gtk-preferences.file +++ /dev/null @@ -1 +0,0 @@ -gtk-preferences.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-preferences.svg b/tools/source_icons/scalable/gtk-preferences.svg deleted file mode 100644 index 1e45e94f3..000000000 --- a/tools/source_icons/scalable/gtk-preferences.svg +++ /dev/null @@ -1,2516 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-remove-red.file b/tools/source_icons/scalable/gtk-remove-red.file deleted file mode 100644 index 0e8243c23..000000000 --- a/tools/source_icons/scalable/gtk-remove-red.file +++ /dev/null @@ -1 +0,0 @@ -list-remove-red-small.png,w12,actions diff --git a/tools/source_icons/scalable/gtk-remove-red.svg b/tools/source_icons/scalable/gtk-remove-red.svg deleted file mode 100644 index c06356bbf..000000000 --- a/tools/source_icons/scalable/gtk-remove-red.svg +++ /dev/null @@ -1,663 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-remove.file b/tools/source_icons/scalable/gtk-remove.file deleted file mode 100644 index 46f4b8ff3..000000000 --- a/tools/source_icons/scalable/gtk-remove.file +++ /dev/null @@ -1,2 +0,0 @@ -list-remove.png,w16,actions -gtk-remove.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-remove.svg b/tools/source_icons/scalable/gtk-remove.svg deleted file mode 100644 index 344e2f922..000000000 --- a/tools/source_icons/scalable/gtk-remove.svg +++ /dev/null @@ -1,663 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-save.file b/tools/source_icons/scalable/gtk-save.file deleted file mode 100644 index 14e20f87d..000000000 --- a/tools/source_icons/scalable/gtk-save.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-save-large.png,w22,actions -gtk-save.png,h18,actions diff --git a/tools/source_icons/scalable/gtk-save.svg b/tools/source_icons/scalable/gtk-save.svg deleted file mode 100644 index ced16de85..000000000 --- a/tools/source_icons/scalable/gtk-save.svg +++ /dev/null @@ -1,2807 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-undo-rtl.file b/tools/source_icons/scalable/gtk-undo-rtl.file deleted file mode 100644 index 2ab2af327..000000000 --- a/tools/source_icons/scalable/gtk-undo-rtl.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-undo-rtl.png,h16,actions -gtk-undo-rtl-small.png,h11,actions diff --git a/tools/source_icons/scalable/gtk-undo-rtl.svg b/tools/source_icons/scalable/gtk-undo-rtl.svg deleted file mode 100644 index be883d98b..000000000 --- a/tools/source_icons/scalable/gtk-undo-rtl.svg +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-undo.file b/tools/source_icons/scalable/gtk-undo.file deleted file mode 100644 index 527c94db9..000000000 --- a/tools/source_icons/scalable/gtk-undo.file +++ /dev/null @@ -1,2 +0,0 @@ -gtk-undo-ltr.png,h16,actions -gtk-undo-ltr-small.png,h11,actions diff --git a/tools/source_icons/scalable/gtk-undo.svg b/tools/source_icons/scalable/gtk-undo.svg deleted file mode 100644 index af5ae1a36..000000000 --- a/tools/source_icons/scalable/gtk-undo.svg +++ /dev/null @@ -1,665 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-undoall-ltr.file b/tools/source_icons/scalable/gtk-undoall-ltr.file deleted file mode 100644 index bdd6db95a..000000000 --- a/tools/source_icons/scalable/gtk-undoall-ltr.file +++ /dev/null @@ -1 +0,0 @@ -gtk-undoall-ltr.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-undoall-ltr.svg b/tools/source_icons/scalable/gtk-undoall-ltr.svg deleted file mode 100644 index fef739619..000000000 --- a/tools/source_icons/scalable/gtk-undoall-ltr.svg +++ /dev/null @@ -1,1170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-undoall-rtl.file b/tools/source_icons/scalable/gtk-undoall-rtl.file deleted file mode 100644 index f42fa476e..000000000 --- a/tools/source_icons/scalable/gtk-undoall-rtl.file +++ /dev/null @@ -1 +0,0 @@ -gtk-undoall-rtl.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-undoall-rtl.svg b/tools/source_icons/scalable/gtk-undoall-rtl.svg deleted file mode 100644 index 7228b7e89..000000000 --- a/tools/source_icons/scalable/gtk-undoall-rtl.svg +++ /dev/null @@ -1,1170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-100-small.file b/tools/source_icons/scalable/gtk-zoom-100-small.file deleted file mode 100644 index b78fca5ae..000000000 --- a/tools/source_icons/scalable/gtk-zoom-100-small.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-100-small.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-zoom-100-small.svg b/tools/source_icons/scalable/gtk-zoom-100-small.svg deleted file mode 100644 index cce49706f..000000000 --- a/tools/source_icons/scalable/gtk-zoom-100-small.svg +++ /dev/null @@ -1,623 +0,0 @@ - - - - - gtk-zoom-100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - gtk-zoom-100 - - http://www.rawtherapee.com/ - 2013-04-10 - - - DrSlony - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-100.file b/tools/source_icons/scalable/gtk-zoom-100.file deleted file mode 100644 index d2b450253..000000000 --- a/tools/source_icons/scalable/gtk-zoom-100.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-100.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-zoom-100.svg b/tools/source_icons/scalable/gtk-zoom-100.svg deleted file mode 100644 index cce49706f..000000000 --- a/tools/source_icons/scalable/gtk-zoom-100.svg +++ /dev/null @@ -1,623 +0,0 @@ - - - - - gtk-zoom-100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - gtk-zoom-100 - - http://www.rawtherapee.com/ - 2013-04-10 - - - DrSlony - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-crop.file b/tools/source_icons/scalable/gtk-zoom-crop.file deleted file mode 100644 index 9d79868b9..000000000 --- a/tools/source_icons/scalable/gtk-zoom-crop.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-crop.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-zoom-crop.svg b/tools/source_icons/scalable/gtk-zoom-crop.svg deleted file mode 100644 index 7ed5d51c2..000000000 --- a/tools/source_icons/scalable/gtk-zoom-crop.svg +++ /dev/null @@ -1,512 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-fit.file b/tools/source_icons/scalable/gtk-zoom-fit.file deleted file mode 100644 index a82764c69..000000000 --- a/tools/source_icons/scalable/gtk-zoom-fit.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-fit.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-zoom-fit.svg b/tools/source_icons/scalable/gtk-zoom-fit.svg deleted file mode 100644 index 95b81e1d6..000000000 --- a/tools/source_icons/scalable/gtk-zoom-fit.svg +++ /dev/null @@ -1,509 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-in-small.file b/tools/source_icons/scalable/gtk-zoom-in-small.file deleted file mode 100644 index a15fb60de..000000000 --- a/tools/source_icons/scalable/gtk-zoom-in-small.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-in-small.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-zoom-in-small.svg b/tools/source_icons/scalable/gtk-zoom-in-small.svg deleted file mode 100644 index bbc50a171..000000000 --- a/tools/source_icons/scalable/gtk-zoom-in-small.svg +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-in.file b/tools/source_icons/scalable/gtk-zoom-in.file deleted file mode 100644 index 2bb454228..000000000 --- a/tools/source_icons/scalable/gtk-zoom-in.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-in.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-zoom-in.svg b/tools/source_icons/scalable/gtk-zoom-in.svg deleted file mode 100644 index bbc50a171..000000000 --- a/tools/source_icons/scalable/gtk-zoom-in.svg +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-out-small.file b/tools/source_icons/scalable/gtk-zoom-out-small.file deleted file mode 100644 index 08a4ba843..000000000 --- a/tools/source_icons/scalable/gtk-zoom-out-small.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-out-small.png,w16,actions diff --git a/tools/source_icons/scalable/gtk-zoom-out-small.svg b/tools/source_icons/scalable/gtk-zoom-out-small.svg deleted file mode 100644 index 8ca1e951b..000000000 --- a/tools/source_icons/scalable/gtk-zoom-out-small.svg +++ /dev/null @@ -1,558 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/gtk-zoom-out.file b/tools/source_icons/scalable/gtk-zoom-out.file deleted file mode 100644 index 5427894ff..000000000 --- a/tools/source_icons/scalable/gtk-zoom-out.file +++ /dev/null @@ -1 +0,0 @@ -gtk-zoom-out.png,w22,actions diff --git a/tools/source_icons/scalable/gtk-zoom-out.svg b/tools/source_icons/scalable/gtk-zoom-out.svg deleted file mode 100644 index 8ca1e951b..000000000 --- a/tools/source_icons/scalable/gtk-zoom-out.svg +++ /dev/null @@ -1,558 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histBar.file b/tools/source_icons/scalable/histBar.file deleted file mode 100644 index 3ede85b7a..000000000 --- a/tools/source_icons/scalable/histBar.file +++ /dev/null @@ -1 +0,0 @@ -histBar.png,w10,actions diff --git a/tools/source_icons/scalable/histBar.svg b/tools/source_icons/scalable/histBar.svg deleted file mode 100644 index 2bb232311..000000000 --- a/tools/source_icons/scalable/histBar.svg +++ /dev/null @@ -1,587 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histBarg.file b/tools/source_icons/scalable/histBarg.file deleted file mode 100644 index 31c8b58f5..000000000 --- a/tools/source_icons/scalable/histBarg.file +++ /dev/null @@ -1 +0,0 @@ -histBarg.png,w10,actions diff --git a/tools/source_icons/scalable/histBarg.svg b/tools/source_icons/scalable/histBarg.svg deleted file mode 100644 index a1cec3797..000000000 --- a/tools/source_icons/scalable/histBarg.svg +++ /dev/null @@ -1,555 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histBlue.file b/tools/source_icons/scalable/histBlue.file deleted file mode 100644 index 6efe5f403..000000000 --- a/tools/source_icons/scalable/histBlue.file +++ /dev/null @@ -1 +0,0 @@ -histBlue.png,w10,actions diff --git a/tools/source_icons/scalable/histBlue.svg b/tools/source_icons/scalable/histBlue.svg deleted file mode 100644 index 129c708e9..000000000 --- a/tools/source_icons/scalable/histBlue.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histBlueg.file b/tools/source_icons/scalable/histBlueg.file deleted file mode 100644 index 8a1a0e6ee..000000000 --- a/tools/source_icons/scalable/histBlueg.file +++ /dev/null @@ -1 +0,0 @@ -histBlueg.png,w10,actions diff --git a/tools/source_icons/scalable/histBlueg.svg b/tools/source_icons/scalable/histBlueg.svg deleted file mode 100644 index ab0b32804..000000000 --- a/tools/source_icons/scalable/histBlueg.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histFull.file b/tools/source_icons/scalable/histFull.file deleted file mode 100644 index f1577e57d..000000000 --- a/tools/source_icons/scalable/histFull.file +++ /dev/null @@ -1 +0,0 @@ -histFull.png,w10,actions diff --git a/tools/source_icons/scalable/histFull.svg b/tools/source_icons/scalable/histFull.svg deleted file mode 100644 index 46336770d..000000000 --- a/tools/source_icons/scalable/histFull.svg +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histFullg.file b/tools/source_icons/scalable/histFullg.file deleted file mode 100644 index b011c3a49..000000000 --- a/tools/source_icons/scalable/histFullg.file +++ /dev/null @@ -1 +0,0 @@ -histFullg.png,w10,actions diff --git a/tools/source_icons/scalable/histFullg.svg b/tools/source_icons/scalable/histFullg.svg deleted file mode 100644 index 37765aaff..000000000 --- a/tools/source_icons/scalable/histFullg.svg +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histGreen.file b/tools/source_icons/scalable/histGreen.file deleted file mode 100644 index a2699dfd3..000000000 --- a/tools/source_icons/scalable/histGreen.file +++ /dev/null @@ -1 +0,0 @@ -histGreen.png,w10,actions diff --git a/tools/source_icons/scalable/histGreen.svg b/tools/source_icons/scalable/histGreen.svg deleted file mode 100644 index 0c8babc4d..000000000 --- a/tools/source_icons/scalable/histGreen.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histGreeng.file b/tools/source_icons/scalable/histGreeng.file deleted file mode 100644 index 793be799d..000000000 --- a/tools/source_icons/scalable/histGreeng.file +++ /dev/null @@ -1 +0,0 @@ -histGreeng.png,w10,actions diff --git a/tools/source_icons/scalable/histGreeng.svg b/tools/source_icons/scalable/histGreeng.svg deleted file mode 100644 index c85a8d412..000000000 --- a/tools/source_icons/scalable/histGreeng.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histRaw.file b/tools/source_icons/scalable/histRaw.file deleted file mode 100644 index b0b56e108..000000000 --- a/tools/source_icons/scalable/histRaw.file +++ /dev/null @@ -1 +0,0 @@ -histRaw.png,w10,actions diff --git a/tools/source_icons/scalable/histRaw.svg b/tools/source_icons/scalable/histRaw.svg deleted file mode 100644 index 73fa612ce..000000000 --- a/tools/source_icons/scalable/histRaw.svg +++ /dev/null @@ -1,632 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histRawg.file b/tools/source_icons/scalable/histRawg.file deleted file mode 100644 index 3b526f92e..000000000 --- a/tools/source_icons/scalable/histRawg.file +++ /dev/null @@ -1 +0,0 @@ -histRawg.png,w10,actions diff --git a/tools/source_icons/scalable/histRawg.svg b/tools/source_icons/scalable/histRawg.svg deleted file mode 100644 index 69fac8f10..000000000 --- a/tools/source_icons/scalable/histRawg.svg +++ /dev/null @@ -1,615 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histRed.file b/tools/source_icons/scalable/histRed.file deleted file mode 100644 index 7517b28d3..000000000 --- a/tools/source_icons/scalable/histRed.file +++ /dev/null @@ -1 +0,0 @@ -histRed.png,w10,actions diff --git a/tools/source_icons/scalable/histRed.svg b/tools/source_icons/scalable/histRed.svg deleted file mode 100644 index fdff14a74..000000000 --- a/tools/source_icons/scalable/histRed.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histRedg.file b/tools/source_icons/scalable/histRedg.file deleted file mode 100644 index 03cc3e79a..000000000 --- a/tools/source_icons/scalable/histRedg.file +++ /dev/null @@ -1 +0,0 @@ -histRedg.png,w10,actions diff --git a/tools/source_icons/scalable/histRedg.svg b/tools/source_icons/scalable/histRedg.svg deleted file mode 100644 index c25dba5c2..000000000 --- a/tools/source_icons/scalable/histRedg.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histValue.file b/tools/source_icons/scalable/histValue.file deleted file mode 100644 index 077c9b761..000000000 --- a/tools/source_icons/scalable/histValue.file +++ /dev/null @@ -1 +0,0 @@ -histValue.png,w10,actions diff --git a/tools/source_icons/scalable/histValue.svg b/tools/source_icons/scalable/histValue.svg deleted file mode 100644 index b82f4da01..000000000 --- a/tools/source_icons/scalable/histValue.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histValueg.file b/tools/source_icons/scalable/histValueg.file deleted file mode 100644 index 37c61fe32..000000000 --- a/tools/source_icons/scalable/histValueg.file +++ /dev/null @@ -1 +0,0 @@ -histValueg.png,w10,actions diff --git a/tools/source_icons/scalable/histValueg.svg b/tools/source_icons/scalable/histValueg.svg deleted file mode 100644 index ffc0daaf8..000000000 --- a/tools/source_icons/scalable/histValueg.svg +++ /dev/null @@ -1,494 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/histogramButtons.svg b/tools/source_icons/scalable/histogramButtons.svg deleted file mode 100644 index 231b6dd94..000000000 --- a/tools/source_icons/scalable/histogramButtons.svg +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/image-editor.file b/tools/source_icons/scalable/image-editor.file deleted file mode 100644 index c1853f678..000000000 --- a/tools/source_icons/scalable/image-editor.file +++ /dev/null @@ -1 +0,0 @@ -image-editor.png,w22,actions diff --git a/tools/source_icons/scalable/image-editor.svg b/tools/source_icons/scalable/image-editor.svg deleted file mode 100644 index 220138a9a..000000000 --- a/tools/source_icons/scalable/image-editor.svg +++ /dev/null @@ -1,2652 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/info.file b/tools/source_icons/scalable/info.file deleted file mode 100644 index ede775c5b..000000000 --- a/tools/source_icons/scalable/info.file +++ /dev/null @@ -1 +0,0 @@ -info.png,w22,actions diff --git a/tools/source_icons/scalable/info.svg b/tools/source_icons/scalable/info.svg deleted file mode 100644 index e25fca2f0..000000000 --- a/tools/source_icons/scalable/info.svg +++ /dev/null @@ -1,454 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/intent-absolute.file b/tools/source_icons/scalable/intent-absolute.file deleted file mode 100644 index 57278bff2..000000000 --- a/tools/source_icons/scalable/intent-absolute.file +++ /dev/null @@ -1 +0,0 @@ -intent-absolute.png,w25,actions diff --git a/tools/source_icons/scalable/intent-absolute.svg b/tools/source_icons/scalable/intent-absolute.svg deleted file mode 100644 index b5092b0c5..000000000 --- a/tools/source_icons/scalable/intent-absolute.svg +++ /dev/null @@ -1,1376 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/intent-perceptual.file b/tools/source_icons/scalable/intent-perceptual.file deleted file mode 100644 index 3e7520042..000000000 --- a/tools/source_icons/scalable/intent-perceptual.file +++ /dev/null @@ -1 +0,0 @@ -intent-perceptual.png,w25,actions diff --git a/tools/source_icons/scalable/intent-perceptual.svg b/tools/source_icons/scalable/intent-perceptual.svg deleted file mode 100644 index 3c949c91e..000000000 --- a/tools/source_icons/scalable/intent-perceptual.svg +++ /dev/null @@ -1,1362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/intent-relative.file b/tools/source_icons/scalable/intent-relative.file deleted file mode 100644 index 5191a25c3..000000000 --- a/tools/source_icons/scalable/intent-relative.file +++ /dev/null @@ -1 +0,0 @@ -intent-relative.png,w25,actions diff --git a/tools/source_icons/scalable/intent-relative.svg b/tools/source_icons/scalable/intent-relative.svg deleted file mode 100644 index 706de23d1..000000000 --- a/tools/source_icons/scalable/intent-relative.svg +++ /dev/null @@ -1,1361 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - diff --git a/tools/source_icons/scalable/intent-saturation.file b/tools/source_icons/scalable/intent-saturation.file deleted file mode 100644 index 9f33b978e..000000000 --- a/tools/source_icons/scalable/intent-saturation.file +++ /dev/null @@ -1 +0,0 @@ -intent-saturation.png,w25,actions diff --git a/tools/source_icons/scalable/intent-saturation.svg b/tools/source_icons/scalable/intent-saturation.svg deleted file mode 100644 index 1af08f4f2..000000000 --- a/tools/source_icons/scalable/intent-saturation.svg +++ /dev/null @@ -1,1362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/lock-off.file b/tools/source_icons/scalable/lock-off.file deleted file mode 100644 index 38ddabc0d..000000000 --- a/tools/source_icons/scalable/lock-off.file +++ /dev/null @@ -1 +0,0 @@ -lock-off.png,h10,actions diff --git a/tools/source_icons/scalable/lock-off.svg b/tools/source_icons/scalable/lock-off.svg deleted file mode 100644 index caeeed555..000000000 --- a/tools/source_icons/scalable/lock-off.svg +++ /dev/null @@ -1,916 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/lock-on.file b/tools/source_icons/scalable/lock-on.file deleted file mode 100644 index ba7eef7a3..000000000 --- a/tools/source_icons/scalable/lock-on.file +++ /dev/null @@ -1 +0,0 @@ -lock-on.png,h10,actions diff --git a/tools/source_icons/scalable/lock-on.svg b/tools/source_icons/scalable/lock-on.svg deleted file mode 100644 index 8d841a0cd..000000000 --- a/tools/source_icons/scalable/lock-on.svg +++ /dev/null @@ -1,777 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/media-floppy.file b/tools/source_icons/scalable/media-floppy.file deleted file mode 100644 index 1ffa70b86..000000000 --- a/tools/source_icons/scalable/media-floppy.file +++ /dev/null @@ -1,2 +0,0 @@ -media-floppy.png,h18,devices -drive-removable-media.png,h18,devices diff --git a/tools/source_icons/scalable/media-floppy.svg b/tools/source_icons/scalable/media-floppy.svg deleted file mode 100644 index 9032f9041..000000000 --- a/tools/source_icons/scalable/media-floppy.svg +++ /dev/null @@ -1,661 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/media-usb.file b/tools/source_icons/scalable/media-usb.file deleted file mode 100644 index 3012badee..000000000 --- a/tools/source_icons/scalable/media-usb.file +++ /dev/null @@ -1 +0,0 @@ -media-usb.png,h18,actions diff --git a/tools/source_icons/scalable/media-usb.svg b/tools/source_icons/scalable/media-usb.svg deleted file mode 100644 index e9b36285c..000000000 --- a/tools/source_icons/scalable/media-usb.svg +++ /dev/null @@ -1,2590 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/meta.file b/tools/source_icons/scalable/meta.file deleted file mode 100644 index 8e432502e..000000000 --- a/tools/source_icons/scalable/meta.file +++ /dev/null @@ -1 +0,0 @@ -meta.png,w24,actions diff --git a/tools/source_icons/scalable/meta.svg b/tools/source_icons/scalable/meta.svg deleted file mode 100644 index a4ac324dc..000000000 --- a/tools/source_icons/scalable/meta.svg +++ /dev/null @@ -1,657 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - META - - - - - - - diff --git a/tools/source_icons/scalable/move-1D-h.svg b/tools/source_icons/scalable/move-1D-h.svg deleted file mode 100644 index 64514eed1..000000000 --- a/tools/source_icons/scalable/move-1D-h.svg +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/move-1D-v.svg b/tools/source_icons/scalable/move-1D-v.svg deleted file mode 100644 index 24b49a7de..000000000 --- a/tools/source_icons/scalable/move-1D-v.svg +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/move-2D.svg b/tools/source_icons/scalable/move-2D.svg deleted file mode 100644 index bb0eece8f..000000000 --- a/tools/source_icons/scalable/move-2D.svg +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/nav-next.file b/tools/source_icons/scalable/nav-next.file deleted file mode 100644 index fc7568def..000000000 --- a/tools/source_icons/scalable/nav-next.file +++ /dev/null @@ -1 +0,0 @@ -nav-next.png,w19,actions diff --git a/tools/source_icons/scalable/nav-next.svg b/tools/source_icons/scalable/nav-next.svg deleted file mode 100644 index 123f334d9..000000000 --- a/tools/source_icons/scalable/nav-next.svg +++ /dev/null @@ -1,649 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/nav-prev.file b/tools/source_icons/scalable/nav-prev.file deleted file mode 100644 index ea876f7fb..000000000 --- a/tools/source_icons/scalable/nav-prev.file +++ /dev/null @@ -1 +0,0 @@ -nav-prev.png,w19,actions diff --git a/tools/source_icons/scalable/nav-prev.svg b/tools/source_icons/scalable/nav-prev.svg deleted file mode 100644 index 4112c31fb..000000000 --- a/tools/source_icons/scalable/nav-prev.svg +++ /dev/null @@ -1,649 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/nav-sync.file b/tools/source_icons/scalable/nav-sync.file deleted file mode 100644 index 92c643323..000000000 --- a/tools/source_icons/scalable/nav-sync.file +++ /dev/null @@ -1 +0,0 @@ -nav-sync.png,w14,actions diff --git a/tools/source_icons/scalable/nav-sync.svg b/tools/source_icons/scalable/nav-sync.svg deleted file mode 100644 index 420e2c335..000000000 --- a/tools/source_icons/scalable/nav-sync.svg +++ /dev/null @@ -1,833 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/new-detail-window.file b/tools/source_icons/scalable/new-detail-window.file deleted file mode 100644 index d4ee2bf2c..000000000 --- a/tools/source_icons/scalable/new-detail-window.file +++ /dev/null @@ -1 +0,0 @@ -new-detail-window.png,w22,actions diff --git a/tools/source_icons/scalable/new-detail-window.svg b/tools/source_icons/scalable/new-detail-window.svg deleted file mode 100644 index 5241e38d9..000000000 --- a/tools/source_icons/scalable/new-detail-window.svg +++ /dev/null @@ -1,500 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/openhand.file b/tools/source_icons/scalable/openhand.file deleted file mode 100644 index 2a05645a0..000000000 --- a/tools/source_icons/scalable/openhand.file +++ /dev/null @@ -1 +0,0 @@ -openhand.png,w22,actions diff --git a/tools/source_icons/scalable/openhand.svg b/tools/source_icons/scalable/openhand.svg deleted file mode 100644 index 9fd47c0df..000000000 --- a/tools/source_icons/scalable/openhand.svg +++ /dev/null @@ -1,760 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/tools/source_icons/scalable/panel-to-bottom.file b/tools/source_icons/scalable/panel-to-bottom.file deleted file mode 100644 index 2474ef833..000000000 --- a/tools/source_icons/scalable/panel-to-bottom.file +++ /dev/null @@ -1 +0,0 @@ -panel-to-bottom.png,w22,actions diff --git a/tools/source_icons/scalable/panel-to-bottom.svg b/tools/source_icons/scalable/panel-to-bottom.svg deleted file mode 100644 index 03d4ba020..000000000 --- a/tools/source_icons/scalable/panel-to-bottom.svg +++ /dev/null @@ -1,802 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/panel-to-left.file b/tools/source_icons/scalable/panel-to-left.file deleted file mode 100644 index f730a3c74..000000000 --- a/tools/source_icons/scalable/panel-to-left.file +++ /dev/null @@ -1 +0,0 @@ -panel-to-left.png,h22,actions diff --git a/tools/source_icons/scalable/panel-to-left.svg b/tools/source_icons/scalable/panel-to-left.svg deleted file mode 100644 index 3483477b3..000000000 --- a/tools/source_icons/scalable/panel-to-left.svg +++ /dev/null @@ -1,794 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/panel-to-right.file b/tools/source_icons/scalable/panel-to-right.file deleted file mode 100644 index 9ae79460a..000000000 --- a/tools/source_icons/scalable/panel-to-right.file +++ /dev/null @@ -1 +0,0 @@ -panel-to-right.png,h22,actions diff --git a/tools/source_icons/scalable/panel-to-right.svg b/tools/source_icons/scalable/panel-to-right.svg deleted file mode 100644 index 5a999fc47..000000000 --- a/tools/source_icons/scalable/panel-to-right.svg +++ /dev/null @@ -1,812 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/panel-to-top.file b/tools/source_icons/scalable/panel-to-top.file deleted file mode 100644 index b9eee13ad..000000000 --- a/tools/source_icons/scalable/panel-to-top.file +++ /dev/null @@ -1 +0,0 @@ -panel-to-top.png,w22,actions diff --git a/tools/source_icons/scalable/panel-to-top.svg b/tools/source_icons/scalable/panel-to-top.svg deleted file mode 100644 index 12e513aa0..000000000 --- a/tools/source_icons/scalable/panel-to-top.svg +++ /dev/null @@ -1,784 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/perspective-h1.file b/tools/source_icons/scalable/perspective-h1.file deleted file mode 100644 index f6f27cad6..000000000 --- a/tools/source_icons/scalable/perspective-h1.file +++ /dev/null @@ -1 +0,0 @@ -perspective-h1.png,w22,actions diff --git a/tools/source_icons/scalable/perspective-h1.svg b/tools/source_icons/scalable/perspective-h1.svg deleted file mode 100644 index 5a5a9e33e..000000000 --- a/tools/source_icons/scalable/perspective-h1.svg +++ /dev/null @@ -1,1133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/perspective-h2.file b/tools/source_icons/scalable/perspective-h2.file deleted file mode 100644 index 60cc690af..000000000 --- a/tools/source_icons/scalable/perspective-h2.file +++ /dev/null @@ -1 +0,0 @@ -perspective-h2.png,w22,actions diff --git a/tools/source_icons/scalable/perspective-h2.svg b/tools/source_icons/scalable/perspective-h2.svg deleted file mode 100644 index a36956151..000000000 --- a/tools/source_icons/scalable/perspective-h2.svg +++ /dev/null @@ -1,1133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/perspective-v1.file b/tools/source_icons/scalable/perspective-v1.file deleted file mode 100644 index cbc05fec6..000000000 --- a/tools/source_icons/scalable/perspective-v1.file +++ /dev/null @@ -1 +0,0 @@ -perspective-v1.png,w22,actions diff --git a/tools/source_icons/scalable/perspective-v1.svg b/tools/source_icons/scalable/perspective-v1.svg deleted file mode 100644 index 712447c2a..000000000 --- a/tools/source_icons/scalable/perspective-v1.svg +++ /dev/null @@ -1,1138 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/perspective-v2.file b/tools/source_icons/scalable/perspective-v2.file deleted file mode 100644 index c4ade9f63..000000000 --- a/tools/source_icons/scalable/perspective-v2.file +++ /dev/null @@ -1 +0,0 @@ -perspective-v2.png,w22,actions diff --git a/tools/source_icons/scalable/perspective-v2.svg b/tools/source_icons/scalable/perspective-v2.svg deleted file mode 100644 index 8842e9c41..000000000 --- a/tools/source_icons/scalable/perspective-v2.svg +++ /dev/null @@ -1,1140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/popuparrow.file b/tools/source_icons/scalable/popuparrow.file deleted file mode 100644 index 1a3ca3ffc..000000000 --- a/tools/source_icons/scalable/popuparrow.file +++ /dev/null @@ -1 +0,0 @@ -popuparrow.png,h6,actions diff --git a/tools/source_icons/scalable/popuparrow.svg b/tools/source_icons/scalable/popuparrow.svg deleted file mode 100644 index 3328dbfb4..000000000 --- a/tools/source_icons/scalable/popuparrow.svg +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeB-off.file b/tools/source_icons/scalable/previewmodeB-off.file deleted file mode 100644 index 78d96d991..000000000 --- a/tools/source_icons/scalable/previewmodeB-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeB-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeB-off.svg b/tools/source_icons/scalable/previewmodeB-off.svg deleted file mode 100644 index 2566c37cf..000000000 --- a/tools/source_icons/scalable/previewmodeB-off.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeB-on.file b/tools/source_icons/scalable/previewmodeB-on.file deleted file mode 100644 index 045f8a31b..000000000 --- a/tools/source_icons/scalable/previewmodeB-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeB-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeB-on.svg b/tools/source_icons/scalable/previewmodeB-on.svg deleted file mode 100644 index cc3faa733..000000000 --- a/tools/source_icons/scalable/previewmodeB-on.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeBC0-off.file b/tools/source_icons/scalable/previewmodeBC0-off.file deleted file mode 100644 index baf7ab70a..000000000 --- a/tools/source_icons/scalable/previewmodeBC0-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC0-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC0-off.svg b/tools/source_icons/scalable/previewmodeBC0-off.svg deleted file mode 100644 index 7c29636e9..000000000 --- a/tools/source_icons/scalable/previewmodeBC0-off.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - T - - diff --git a/tools/source_icons/scalable/previewmodeBC0-on.file b/tools/source_icons/scalable/previewmodeBC0-on.file deleted file mode 100644 index 033a88501..000000000 --- a/tools/source_icons/scalable/previewmodeBC0-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC0-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC0-on.svg b/tools/source_icons/scalable/previewmodeBC0-on.svg deleted file mode 100644 index 7613279ec..000000000 --- a/tools/source_icons/scalable/previewmodeBC0-on.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - T - - diff --git a/tools/source_icons/scalable/previewmodeBC1-off.file b/tools/source_icons/scalable/previewmodeBC1-off.file deleted file mode 100644 index db5e6f2e2..000000000 --- a/tools/source_icons/scalable/previewmodeBC1-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC1-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC1-off.svg b/tools/source_icons/scalable/previewmodeBC1-off.svg deleted file mode 100644 index 1e7d3e669..000000000 --- a/tools/source_icons/scalable/previewmodeBC1-off.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeBC1-on.file b/tools/source_icons/scalable/previewmodeBC1-on.file deleted file mode 100644 index 1de2f604d..000000000 --- a/tools/source_icons/scalable/previewmodeBC1-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC1-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC1-on.svg b/tools/source_icons/scalable/previewmodeBC1-on.svg deleted file mode 100644 index b4b21cd85..000000000 --- a/tools/source_icons/scalable/previewmodeBC1-on.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeBC2-off.file b/tools/source_icons/scalable/previewmodeBC2-off.file deleted file mode 100644 index 6073f7aac..000000000 --- a/tools/source_icons/scalable/previewmodeBC2-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC2-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC2-off.svg b/tools/source_icons/scalable/previewmodeBC2-off.svg deleted file mode 100644 index e9f4e10f2..000000000 --- a/tools/source_icons/scalable/previewmodeBC2-off.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeBC2-on.file b/tools/source_icons/scalable/previewmodeBC2-on.file deleted file mode 100644 index 18229b31d..000000000 --- a/tools/source_icons/scalable/previewmodeBC2-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC2-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC2-on.svg b/tools/source_icons/scalable/previewmodeBC2-on.svg deleted file mode 100644 index 582b69fd8..000000000 --- a/tools/source_icons/scalable/previewmodeBC2-on.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeBC3-off.file b/tools/source_icons/scalable/previewmodeBC3-off.file deleted file mode 100644 index 1538e97f1..000000000 --- a/tools/source_icons/scalable/previewmodeBC3-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC3-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC3-off.svg b/tools/source_icons/scalable/previewmodeBC3-off.svg deleted file mode 100644 index f8adf9626..000000000 --- a/tools/source_icons/scalable/previewmodeBC3-off.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeBC3-on.file b/tools/source_icons/scalable/previewmodeBC3-on.file deleted file mode 100644 index 6dad52343..000000000 --- a/tools/source_icons/scalable/previewmodeBC3-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeBC3-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC3-on.svg b/tools/source_icons/scalable/previewmodeBC3-on.svg deleted file mode 100644 index 8e92c0b35..000000000 --- a/tools/source_icons/scalable/previewmodeBC3-on.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-off.file b/tools/source_icons/scalable/previewmodeF-focusScreen-off.file deleted file mode 100644 index f019c1bfb..000000000 --- a/tools/source_icons/scalable/previewmodeF-focusScreen-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeF-focusScreen-off.png,w22,actions diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-off.svg b/tools/source_icons/scalable/previewmodeF-focusScreen-off.svg deleted file mode 100644 index 814bc9e93..000000000 --- a/tools/source_icons/scalable/previewmodeF-focusScreen-off.svg +++ /dev/null @@ -1,630 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-on.file b/tools/source_icons/scalable/previewmodeF-focusScreen-on.file deleted file mode 100644 index 07dc7c137..000000000 --- a/tools/source_icons/scalable/previewmodeF-focusScreen-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeF-focusScreen-on.png,w22,actions diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-on.svg b/tools/source_icons/scalable/previewmodeF-focusScreen-on.svg deleted file mode 100644 index 63b0e4ec8..000000000 --- a/tools/source_icons/scalable/previewmodeF-focusScreen-on.svg +++ /dev/null @@ -1,604 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeF-off.file b/tools/source_icons/scalable/previewmodeF-off.file deleted file mode 100644 index 420ff2d30..000000000 --- a/tools/source_icons/scalable/previewmodeF-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeF-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeF-off.svg b/tools/source_icons/scalable/previewmodeF-off.svg deleted file mode 100644 index dd4f099b9..000000000 --- a/tools/source_icons/scalable/previewmodeF-off.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - F - - diff --git a/tools/source_icons/scalable/previewmodeF-on.file b/tools/source_icons/scalable/previewmodeF-on.file deleted file mode 100644 index 64d9940b3..000000000 --- a/tools/source_icons/scalable/previewmodeF-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeF-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeF-on.svg b/tools/source_icons/scalable/previewmodeF-on.svg deleted file mode 100644 index 0b5ca90c5..000000000 --- a/tools/source_icons/scalable/previewmodeF-on.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - F - - diff --git a/tools/source_icons/scalable/previewmodeG-off.file b/tools/source_icons/scalable/previewmodeG-off.file deleted file mode 100644 index be2f098d4..000000000 --- a/tools/source_icons/scalable/previewmodeG-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeG-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeG-off.svg b/tools/source_icons/scalable/previewmodeG-off.svg deleted file mode 100644 index 29f08ebec..000000000 --- a/tools/source_icons/scalable/previewmodeG-off.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeG-on.file b/tools/source_icons/scalable/previewmodeG-on.file deleted file mode 100644 index d6c82f803..000000000 --- a/tools/source_icons/scalable/previewmodeG-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeG-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeG-on.svg b/tools/source_icons/scalable/previewmodeG-on.svg deleted file mode 100644 index 4e5e19b56..000000000 --- a/tools/source_icons/scalable/previewmodeG-on.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeL-off.file b/tools/source_icons/scalable/previewmodeL-off.file deleted file mode 100644 index 7a743f2a3..000000000 --- a/tools/source_icons/scalable/previewmodeL-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeL-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeL-off.svg b/tools/source_icons/scalable/previewmodeL-off.svg deleted file mode 100644 index ea9300e7a..000000000 --- a/tools/source_icons/scalable/previewmodeL-off.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - L - - diff --git a/tools/source_icons/scalable/previewmodeL-on.file b/tools/source_icons/scalable/previewmodeL-on.file deleted file mode 100644 index e7b99191f..000000000 --- a/tools/source_icons/scalable/previewmodeL-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeL-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeL-on.svg b/tools/source_icons/scalable/previewmodeL-on.svg deleted file mode 100644 index 41cd85c07..000000000 --- a/tools/source_icons/scalable/previewmodeL-on.svg +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - L - - diff --git a/tools/source_icons/scalable/previewmodeR-off.file b/tools/source_icons/scalable/previewmodeR-off.file deleted file mode 100644 index a18cb0f3d..000000000 --- a/tools/source_icons/scalable/previewmodeR-off.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeR-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeR-off.svg b/tools/source_icons/scalable/previewmodeR-off.svg deleted file mode 100644 index 2bb60f3b6..000000000 --- a/tools/source_icons/scalable/previewmodeR-off.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/previewmodeR-on.file b/tools/source_icons/scalable/previewmodeR-on.file deleted file mode 100644 index 5901958fb..000000000 --- a/tools/source_icons/scalable/previewmodeR-on.file +++ /dev/null @@ -1 +0,0 @@ -previewmodeR-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeR-on.svg b/tools/source_icons/scalable/previewmodeR-on.svg deleted file mode 100644 index 0648c48b2..000000000 --- a/tools/source_icons/scalable/previewmodeR-on.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/processing-pause.file b/tools/source_icons/scalable/processing-pause.file deleted file mode 100644 index bf82fdf73..000000000 --- a/tools/source_icons/scalable/processing-pause.file +++ /dev/null @@ -1 +0,0 @@ -processing-pause.png,w20,actions diff --git a/tools/source_icons/scalable/processing-pause.svg b/tools/source_icons/scalable/processing-pause.svg deleted file mode 100644 index caeb85d0c..000000000 --- a/tools/source_icons/scalable/processing-pause.svg +++ /dev/null @@ -1,463 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/processing-play.file b/tools/source_icons/scalable/processing-play.file deleted file mode 100644 index e8904e6d8..000000000 --- a/tools/source_icons/scalable/processing-play.file +++ /dev/null @@ -1 +0,0 @@ -processing-play.png,w20,actions diff --git a/tools/source_icons/scalable/processing-play.svg b/tools/source_icons/scalable/processing-play.svg deleted file mode 100644 index cbe2e2cd8..000000000 --- a/tools/source_icons/scalable/processing-play.svg +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/processing-thumbnail.file b/tools/source_icons/scalable/processing-thumbnail.file deleted file mode 100644 index 659697271..000000000 --- a/tools/source_icons/scalable/processing-thumbnail.file +++ /dev/null @@ -1 +0,0 @@ -processing-thumbnail.png,w18,actions diff --git a/tools/source_icons/scalable/processing-thumbnail.svg b/tools/source_icons/scalable/processing-thumbnail.svg deleted file mode 100644 index 8865df7e6..000000000 --- a/tools/source_icons/scalable/processing-thumbnail.svg +++ /dev/null @@ -1,391 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/profile-filled.file b/tools/source_icons/scalable/profile-filled.file deleted file mode 100644 index ce6a2f593..000000000 --- a/tools/source_icons/scalable/profile-filled.file +++ /dev/null @@ -1 +0,0 @@ -profile-filled.png,w22,actions diff --git a/tools/source_icons/scalable/profile-filled.svg b/tools/source_icons/scalable/profile-filled.svg deleted file mode 100644 index fadc80267..000000000 --- a/tools/source_icons/scalable/profile-filled.svg +++ /dev/null @@ -1,746 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/profile-partial.file b/tools/source_icons/scalable/profile-partial.file deleted file mode 100644 index d5e11fcf0..000000000 --- a/tools/source_icons/scalable/profile-partial.file +++ /dev/null @@ -1 +0,0 @@ -profile-partial.png,w22,actions diff --git a/tools/source_icons/scalable/profile-partial.svg b/tools/source_icons/scalable/profile-partial.svg deleted file mode 100644 index d379fc471..000000000 --- a/tools/source_icons/scalable/profile-partial.svg +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rated.file b/tools/source_icons/scalable/rated.file deleted file mode 100644 index 60b4b9533..000000000 --- a/tools/source_icons/scalable/rated.file +++ /dev/null @@ -1 +0,0 @@ -rated.png,h10,actions diff --git a/tools/source_icons/scalable/rated.svg b/tools/source_icons/scalable/rated.svg deleted file mode 100644 index 19af9b20a..000000000 --- a/tools/source_icons/scalable/rated.svg +++ /dev/null @@ -1,715 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/ratednot.file b/tools/source_icons/scalable/ratednot.file deleted file mode 100644 index bdf5b1eb7..000000000 --- a/tools/source_icons/scalable/ratednot.file +++ /dev/null @@ -1 +0,0 @@ -ratednot.png,h10,actions diff --git a/tools/source_icons/scalable/ratednot.svg b/tools/source_icons/scalable/ratednot.svg deleted file mode 100644 index 9c4d76156..000000000 --- a/tools/source_icons/scalable/ratednot.svg +++ /dev/null @@ -1,823 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/ratednotg.file b/tools/source_icons/scalable/ratednotg.file deleted file mode 100644 index dc700605b..000000000 --- a/tools/source_icons/scalable/ratednotg.file +++ /dev/null @@ -1 +0,0 @@ -ratednotg.png,h10,actions diff --git a/tools/source_icons/scalable/ratednotg.svg b/tools/source_icons/scalable/ratednotg.svg deleted file mode 100644 index 8400f97bc..000000000 --- a/tools/source_icons/scalable/ratednotg.svg +++ /dev/null @@ -1,647 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/raw.file b/tools/source_icons/scalable/raw.file deleted file mode 100644 index e7f88a039..000000000 --- a/tools/source_icons/scalable/raw.file +++ /dev/null @@ -1 +0,0 @@ -raw.png,w24,actions diff --git a/tools/source_icons/scalable/raw.svg b/tools/source_icons/scalable/raw.svg deleted file mode 100644 index 4073fbebc..000000000 --- a/tools/source_icons/scalable/raw.svg +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/refresh-red.file b/tools/source_icons/scalable/refresh-red.file deleted file mode 100644 index eb462aafe..000000000 --- a/tools/source_icons/scalable/refresh-red.file +++ /dev/null @@ -1 +0,0 @@ -refresh-red.png,h13,actions diff --git a/tools/source_icons/scalable/refresh-red.svg b/tools/source_icons/scalable/refresh-red.svg deleted file mode 100644 index d6bdb4b4d..000000000 --- a/tools/source_icons/scalable/refresh-red.svg +++ /dev/null @@ -1,1256 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/refresh-white.file b/tools/source_icons/scalable/refresh-white.file deleted file mode 100644 index 6195fa3fa..000000000 --- a/tools/source_icons/scalable/refresh-white.file +++ /dev/null @@ -1 +0,0 @@ -refresh-white.png,h13,actions diff --git a/tools/source_icons/scalable/refresh-white.svg b/tools/source_icons/scalable/refresh-white.svg deleted file mode 100644 index 1b1f45b14..000000000 --- a/tools/source_icons/scalable/refresh-white.svg +++ /dev/null @@ -1,1256 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-left-1.file b/tools/source_icons/scalable/rotate-left-1.file deleted file mode 100644 index 01069fb5b..000000000 --- a/tools/source_icons/scalable/rotate-left-1.file +++ /dev/null @@ -1 +0,0 @@ -rotate-left-1.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-left-1.svg b/tools/source_icons/scalable/rotate-left-1.svg deleted file mode 100644 index 19b6420ae..000000000 --- a/tools/source_icons/scalable/rotate-left-1.svg +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-left-2.file b/tools/source_icons/scalable/rotate-left-2.file deleted file mode 100644 index 7ddcc8294..000000000 --- a/tools/source_icons/scalable/rotate-left-2.file +++ /dev/null @@ -1 +0,0 @@ -rotate-left-2.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-left-2.svg b/tools/source_icons/scalable/rotate-left-2.svg deleted file mode 100644 index 598912692..000000000 --- a/tools/source_icons/scalable/rotate-left-2.svg +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-left-3.file b/tools/source_icons/scalable/rotate-left-3.file deleted file mode 100644 index ff5463291..000000000 --- a/tools/source_icons/scalable/rotate-left-3.file +++ /dev/null @@ -1 +0,0 @@ -rotate-left-3.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-left-3.svg b/tools/source_icons/scalable/rotate-left-3.svg deleted file mode 100644 index e398a61e4..000000000 --- a/tools/source_icons/scalable/rotate-left-3.svg +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-left.file b/tools/source_icons/scalable/rotate-left.file deleted file mode 100644 index 69b2f2e74..000000000 --- a/tools/source_icons/scalable/rotate-left.file +++ /dev/null @@ -1 +0,0 @@ -rotate-left.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-left.svg b/tools/source_icons/scalable/rotate-left.svg deleted file mode 100644 index b0617a931..000000000 --- a/tools/source_icons/scalable/rotate-left.svg +++ /dev/null @@ -1,1144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-move.svg b/tools/source_icons/scalable/rotate-move.svg deleted file mode 100644 index 362803b65..000000000 --- a/tools/source_icons/scalable/rotate-move.svg +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-right-1.file b/tools/source_icons/scalable/rotate-right-1.file deleted file mode 100644 index bddb3b975..000000000 --- a/tools/source_icons/scalable/rotate-right-1.file +++ /dev/null @@ -1 +0,0 @@ -rotate-right-1.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-right-1.svg b/tools/source_icons/scalable/rotate-right-1.svg deleted file mode 100644 index e485389ee..000000000 --- a/tools/source_icons/scalable/rotate-right-1.svg +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-right-2.file b/tools/source_icons/scalable/rotate-right-2.file deleted file mode 100644 index e5e421457..000000000 --- a/tools/source_icons/scalable/rotate-right-2.file +++ /dev/null @@ -1 +0,0 @@ -rotate-right-2.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-right-2.svg b/tools/source_icons/scalable/rotate-right-2.svg deleted file mode 100644 index 476c8d814..000000000 --- a/tools/source_icons/scalable/rotate-right-2.svg +++ /dev/null @@ -1,1438 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-right-3.file b/tools/source_icons/scalable/rotate-right-3.file deleted file mode 100644 index 64c38a7e9..000000000 --- a/tools/source_icons/scalable/rotate-right-3.file +++ /dev/null @@ -1 +0,0 @@ -rotate-right-3.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-right-3.svg b/tools/source_icons/scalable/rotate-right-3.svg deleted file mode 100644 index 7bef3af43..000000000 --- a/tools/source_icons/scalable/rotate-right-3.svg +++ /dev/null @@ -1,1438 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/rotate-right.file b/tools/source_icons/scalable/rotate-right.file deleted file mode 100644 index 123a579c0..000000000 --- a/tools/source_icons/scalable/rotate-right.file +++ /dev/null @@ -1 +0,0 @@ -rotate-right.png,w22,actions diff --git a/tools/source_icons/scalable/rotate-right.svg b/tools/source_icons/scalable/rotate-right.svg deleted file mode 100644 index c5702309f..000000000 --- a/tools/source_icons/scalable/rotate-right.svg +++ /dev/null @@ -1,1123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/stock-flip-horizontal.file b/tools/source_icons/scalable/stock-flip-horizontal.file deleted file mode 100644 index a95ee3be7..000000000 --- a/tools/source_icons/scalable/stock-flip-horizontal.file +++ /dev/null @@ -1 +0,0 @@ -stock-flip-horizontal.png,w22,actions diff --git a/tools/source_icons/scalable/stock-flip-horizontal.svg b/tools/source_icons/scalable/stock-flip-horizontal.svg deleted file mode 100644 index 0dc568256..000000000 --- a/tools/source_icons/scalable/stock-flip-horizontal.svg +++ /dev/null @@ -1,1443 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/stock-flip-vertical.file b/tools/source_icons/scalable/stock-flip-vertical.file deleted file mode 100644 index 303ccb427..000000000 --- a/tools/source_icons/scalable/stock-flip-vertical.file +++ /dev/null @@ -1 +0,0 @@ -stock-flip-vertical.png,w22,actions diff --git a/tools/source_icons/scalable/stock-flip-vertical.svg b/tools/source_icons/scalable/stock-flip-vertical.svg deleted file mode 100644 index 42bcdd8b6..000000000 --- a/tools/source_icons/scalable/stock-flip-vertical.svg +++ /dev/null @@ -1,1305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/stock-rotate-270.file b/tools/source_icons/scalable/stock-rotate-270.file deleted file mode 100644 index e7b884876..000000000 --- a/tools/source_icons/scalable/stock-rotate-270.file +++ /dev/null @@ -1 +0,0 @@ -stock-rotate-270.png,w22,actions diff --git a/tools/source_icons/scalable/stock-rotate-270.svg b/tools/source_icons/scalable/stock-rotate-270.svg deleted file mode 100644 index 473a2d28a..000000000 --- a/tools/source_icons/scalable/stock-rotate-270.svg +++ /dev/null @@ -1,823 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/stock-rotate-90.file b/tools/source_icons/scalable/stock-rotate-90.file deleted file mode 100644 index 26aa135e8..000000000 --- a/tools/source_icons/scalable/stock-rotate-90.file +++ /dev/null @@ -1 +0,0 @@ -stock-rotate-90.png,w22,actions diff --git a/tools/source_icons/scalable/stock-rotate-90.svg b/tools/source_icons/scalable/stock-rotate-90.svg deleted file mode 100644 index 15570f7a3..000000000 --- a/tools/source_icons/scalable/stock-rotate-90.svg +++ /dev/null @@ -1,869 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/straighten.file b/tools/source_icons/scalable/straighten.file deleted file mode 100644 index 7e9790c65..000000000 --- a/tools/source_icons/scalable/straighten.file +++ /dev/null @@ -1,2 +0,0 @@ -straighten.png,w22,actions -straighten-small.png,h18,actions diff --git a/tools/source_icons/scalable/straighten.svg b/tools/source_icons/scalable/straighten.svg deleted file mode 100644 index 53701dc8c..000000000 --- a/tools/source_icons/scalable/straighten.svg +++ /dev/null @@ -1,1258 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/transform.file b/tools/source_icons/scalable/transform.file deleted file mode 100644 index c9239c7f6..000000000 --- a/tools/source_icons/scalable/transform.file +++ /dev/null @@ -1 +0,0 @@ -transform.png,w24,actions diff --git a/tools/source_icons/scalable/transform.svg b/tools/source_icons/scalable/transform.svg deleted file mode 100644 index 4d7c50c8b..000000000 --- a/tools/source_icons/scalable/transform.svg +++ /dev/null @@ -1,1354 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/trash-hide-deleted.file b/tools/source_icons/scalable/trash-hide-deleted.file deleted file mode 100644 index 660b4fffa..000000000 --- a/tools/source_icons/scalable/trash-hide-deleted.file +++ /dev/null @@ -1 +0,0 @@ -trash-hide-deleted.png,w22,actions diff --git a/tools/source_icons/scalable/trash-hide-deleted.svg b/tools/source_icons/scalable/trash-hide-deleted.svg deleted file mode 100644 index 8272d1c77..000000000 --- a/tools/source_icons/scalable/trash-hide-deleted.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/trash-show-full.file b/tools/source_icons/scalable/trash-show-full.file deleted file mode 100644 index 48fbc21c1..000000000 --- a/tools/source_icons/scalable/trash-show-full.file +++ /dev/null @@ -1 +0,0 @@ -trash-show-full.png,w22,actions diff --git a/tools/source_icons/scalable/trash-show-full.svg b/tools/source_icons/scalable/trash-show-full.svg deleted file mode 100644 index 62a0414bd..000000000 --- a/tools/source_icons/scalable/trash-show-full.svg +++ /dev/null @@ -1,1622 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/trash-thumbnail.file b/tools/source_icons/scalable/trash-thumbnail.file deleted file mode 100644 index 753cf836b..000000000 --- a/tools/source_icons/scalable/trash-thumbnail.file +++ /dev/null @@ -1 +0,0 @@ -trash-thumbnail.png,w18,actions diff --git a/tools/source_icons/scalable/trash-thumbnail.svg b/tools/source_icons/scalable/trash-thumbnail.svg deleted file mode 100644 index 11c515022..000000000 --- a/tools/source_icons/scalable/trash-thumbnail.svg +++ /dev/null @@ -1,862 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/unchanged.file b/tools/source_icons/scalable/unchanged.file deleted file mode 100644 index bfeb052cd..000000000 --- a/tools/source_icons/scalable/unchanged.file +++ /dev/null @@ -1,2 +0,0 @@ -unchanged-22.png,w22,actions -unchanged-18.png,w18,actions diff --git a/tools/source_icons/scalable/unchanged.svg b/tools/source_icons/scalable/unchanged.svg deleted file mode 100644 index f0178a78a..000000000 --- a/tools/source_icons/scalable/unchanged.svg +++ /dev/null @@ -1,1357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - diff --git a/tools/source_icons/scalable/undelete-rtl.file b/tools/source_icons/scalable/undelete-rtl.file deleted file mode 100644 index 2fd8e06ad..000000000 --- a/tools/source_icons/scalable/undelete-rtl.file +++ /dev/null @@ -1 +0,0 @@ -undelete-rtl.png,w22,actions diff --git a/tools/source_icons/scalable/undelete-rtl.svg b/tools/source_icons/scalable/undelete-rtl.svg deleted file mode 100644 index 74ea4560c..000000000 --- a/tools/source_icons/scalable/undelete-rtl.svg +++ /dev/null @@ -1,1829 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/undelete-thumbnail-rtl.file b/tools/source_icons/scalable/undelete-thumbnail-rtl.file deleted file mode 100644 index a4a344684..000000000 --- a/tools/source_icons/scalable/undelete-thumbnail-rtl.file +++ /dev/null @@ -1 +0,0 @@ -undelete-thumbnail-rtl.png,w18,actions diff --git a/tools/source_icons/scalable/undelete-thumbnail-rtl.svg b/tools/source_icons/scalable/undelete-thumbnail-rtl.svg deleted file mode 100644 index 2f5a0ba1c..000000000 --- a/tools/source_icons/scalable/undelete-thumbnail-rtl.svg +++ /dev/null @@ -1,1829 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/undelete-thumbnail.file b/tools/source_icons/scalable/undelete-thumbnail.file deleted file mode 100644 index a8cabf8f7..000000000 --- a/tools/source_icons/scalable/undelete-thumbnail.file +++ /dev/null @@ -1 +0,0 @@ -undelete-thumbnail.png,w18,actions diff --git a/tools/source_icons/scalable/undelete-thumbnail.svg b/tools/source_icons/scalable/undelete-thumbnail.svg deleted file mode 100644 index b88fd56f5..000000000 --- a/tools/source_icons/scalable/undelete-thumbnail.svg +++ /dev/null @@ -1,1921 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/undelete.file b/tools/source_icons/scalable/undelete.file deleted file mode 100644 index d9bb900eb..000000000 --- a/tools/source_icons/scalable/undelete.file +++ /dev/null @@ -1 +0,0 @@ -undelete.png,w22,actions diff --git a/tools/source_icons/scalable/undelete.svg b/tools/source_icons/scalable/undelete.svg deleted file mode 100644 index 29eca9d8b..000000000 --- a/tools/source_icons/scalable/undelete.svg +++ /dev/null @@ -1,1965 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/user-desktop.file b/tools/source_icons/scalable/user-desktop.file deleted file mode 100644 index f3dff9653..000000000 --- a/tools/source_icons/scalable/user-desktop.file +++ /dev/null @@ -1 +0,0 @@ -user-desktop.png,h18,places diff --git a/tools/source_icons/scalable/user-desktop.svg b/tools/source_icons/scalable/user-desktop.svg deleted file mode 100644 index b0b6a98dc..000000000 --- a/tools/source_icons/scalable/user-desktop.svg +++ /dev/null @@ -1,996 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/user-home.file b/tools/source_icons/scalable/user-home.file deleted file mode 100644 index d48b964f1..000000000 --- a/tools/source_icons/scalable/user-home.file +++ /dev/null @@ -1 +0,0 @@ -user-home.png,h18,places diff --git a/tools/source_icons/scalable/user-home.svg b/tools/source_icons/scalable/user-home.svg deleted file mode 100644 index 011b8ecff..000000000 --- a/tools/source_icons/scalable/user-home.svg +++ /dev/null @@ -1,1591 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/warnhl.file b/tools/source_icons/scalable/warnhl.file deleted file mode 100644 index 4ea34e6f8..000000000 --- a/tools/source_icons/scalable/warnhl.file +++ /dev/null @@ -1 +0,0 @@ -warnhl.png,w22,actions diff --git a/tools/source_icons/scalable/warnhl.svg b/tools/source_icons/scalable/warnhl.svg deleted file mode 100644 index c0e7f9046..000000000 --- a/tools/source_icons/scalable/warnhl.svg +++ /dev/null @@ -1,657 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/warnsh.file b/tools/source_icons/scalable/warnsh.file deleted file mode 100644 index 2d2640c79..000000000 --- a/tools/source_icons/scalable/warnsh.file +++ /dev/null @@ -1 +0,0 @@ -warnsh.png,w22,actions diff --git a/tools/source_icons/scalable/warnsh.svg b/tools/source_icons/scalable/warnsh.svg deleted file mode 100644 index 7fb944327..000000000 --- a/tools/source_icons/scalable/warnsh.svg +++ /dev/null @@ -1,427 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wavelet.file b/tools/source_icons/scalable/wavelet.file deleted file mode 100644 index 1edeedbae..000000000 --- a/tools/source_icons/scalable/wavelet.file +++ /dev/null @@ -1 +0,0 @@ -wavelet.png,w22,actions diff --git a/tools/source_icons/scalable/wavelet.svg b/tools/source_icons/scalable/wavelet.svg deleted file mode 100644 index 0e410b511..000000000 --- a/tools/source_icons/scalable/wavelet.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-auto.file b/tools/source_icons/scalable/wb-auto.file deleted file mode 100644 index 4fef61d4b..000000000 --- a/tools/source_icons/scalable/wb-auto.file +++ /dev/null @@ -1 +0,0 @@ -wb-auto.png,w22,actions diff --git a/tools/source_icons/scalable/wb-auto.svg b/tools/source_icons/scalable/wb-auto.svg deleted file mode 100644 index 59b8799a2..000000000 --- a/tools/source_icons/scalable/wb-auto.svg +++ /dev/null @@ -1,638 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-camera.file b/tools/source_icons/scalable/wb-camera.file deleted file mode 100644 index 63d394942..000000000 --- a/tools/source_icons/scalable/wb-camera.file +++ /dev/null @@ -1 +0,0 @@ -wb-camera.png,w22,actions diff --git a/tools/source_icons/scalable/wb-camera.svg b/tools/source_icons/scalable/wb-camera.svg deleted file mode 100644 index 119b4a9a6..000000000 --- a/tools/source_icons/scalable/wb-camera.svg +++ /dev/null @@ -1,650 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-cloudy.file b/tools/source_icons/scalable/wb-cloudy.file deleted file mode 100644 index 30319caf0..000000000 --- a/tools/source_icons/scalable/wb-cloudy.file +++ /dev/null @@ -1 +0,0 @@ -wb-cloudy.png,w22,actions diff --git a/tools/source_icons/scalable/wb-cloudy.svg b/tools/source_icons/scalable/wb-cloudy.svg deleted file mode 100644 index 1929d5c93..000000000 --- a/tools/source_icons/scalable/wb-cloudy.svg +++ /dev/null @@ -1,640 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-custom.file b/tools/source_icons/scalable/wb-custom.file deleted file mode 100644 index debc0f4b8..000000000 --- a/tools/source_icons/scalable/wb-custom.file +++ /dev/null @@ -1 +0,0 @@ -wb-custom.png,w22,actions diff --git a/tools/source_icons/scalable/wb-custom.svg b/tools/source_icons/scalable/wb-custom.svg deleted file mode 100644 index c0334549f..000000000 --- a/tools/source_icons/scalable/wb-custom.svg +++ /dev/null @@ -1,655 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-flash.file b/tools/source_icons/scalable/wb-flash.file deleted file mode 100644 index c5872302d..000000000 --- a/tools/source_icons/scalable/wb-flash.file +++ /dev/null @@ -1 +0,0 @@ -wb-flash.png,w22,actions diff --git a/tools/source_icons/scalable/wb-flash.svg b/tools/source_icons/scalable/wb-flash.svg deleted file mode 100644 index b2ee41891..000000000 --- a/tools/source_icons/scalable/wb-flash.svg +++ /dev/null @@ -1,639 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-fluorescent.file b/tools/source_icons/scalable/wb-fluorescent.file deleted file mode 100644 index 7b8d464d4..000000000 --- a/tools/source_icons/scalable/wb-fluorescent.file +++ /dev/null @@ -1 +0,0 @@ -wb-fluorescent.png,w22,actions diff --git a/tools/source_icons/scalable/wb-fluorescent.svg b/tools/source_icons/scalable/wb-fluorescent.svg deleted file mode 100644 index 439fe43be..000000000 --- a/tools/source_icons/scalable/wb-fluorescent.svg +++ /dev/null @@ -1,697 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-lamp.file b/tools/source_icons/scalable/wb-lamp.file deleted file mode 100644 index 4862cafb4..000000000 --- a/tools/source_icons/scalable/wb-lamp.file +++ /dev/null @@ -1 +0,0 @@ -wb-lamp.png,w22,actions diff --git a/tools/source_icons/scalable/wb-lamp.svg b/tools/source_icons/scalable/wb-lamp.svg deleted file mode 100644 index bf1e45350..000000000 --- a/tools/source_icons/scalable/wb-lamp.svg +++ /dev/null @@ -1,1330 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-led.file b/tools/source_icons/scalable/wb-led.file deleted file mode 100644 index 5083da16d..000000000 --- a/tools/source_icons/scalable/wb-led.file +++ /dev/null @@ -1 +0,0 @@ -wb-led.png,w22,actions diff --git a/tools/source_icons/scalable/wb-led.svg b/tools/source_icons/scalable/wb-led.svg deleted file mode 100644 index a6048bf01..000000000 --- a/tools/source_icons/scalable/wb-led.svg +++ /dev/null @@ -1,737 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-shade.file b/tools/source_icons/scalable/wb-shade.file deleted file mode 100644 index 9068faeed..000000000 --- a/tools/source_icons/scalable/wb-shade.file +++ /dev/null @@ -1 +0,0 @@ -wb-shade.png,w22,actions diff --git a/tools/source_icons/scalable/wb-shade.svg b/tools/source_icons/scalable/wb-shade.svg deleted file mode 100644 index 871321180..000000000 --- a/tools/source_icons/scalable/wb-shade.svg +++ /dev/null @@ -1,694 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-sun.file b/tools/source_icons/scalable/wb-sun.file deleted file mode 100644 index e2906963c..000000000 --- a/tools/source_icons/scalable/wb-sun.file +++ /dev/null @@ -1 +0,0 @@ -wb-sun.png,w22,actions diff --git a/tools/source_icons/scalable/wb-sun.svg b/tools/source_icons/scalable/wb-sun.svg deleted file mode 100644 index 222177600..000000000 --- a/tools/source_icons/scalable/wb-sun.svg +++ /dev/null @@ -1,724 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-tungsten.file b/tools/source_icons/scalable/wb-tungsten.file deleted file mode 100644 index dc1989f4c..000000000 --- a/tools/source_icons/scalable/wb-tungsten.file +++ /dev/null @@ -1 +0,0 @@ -wb-tungsten.png,w22,actions diff --git a/tools/source_icons/scalable/wb-tungsten.svg b/tools/source_icons/scalable/wb-tungsten.svg deleted file mode 100644 index 5d172c203..000000000 --- a/tools/source_icons/scalable/wb-tungsten.svg +++ /dev/null @@ -1,697 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/scalable/wb-water.file b/tools/source_icons/scalable/wb-water.file deleted file mode 100644 index 14ce25494..000000000 --- a/tools/source_icons/scalable/wb-water.file +++ /dev/null @@ -1 +0,0 @@ -wb-water.png,w22,actions diff --git a/tools/source_icons/scalable/wb-water.svg b/tools/source_icons/scalable/wb-water.svg deleted file mode 100644 index d3e2ecde7..000000000 --- a/tools/source_icons/scalable/wb-water.svg +++ /dev/null @@ -1,642 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/tools/source_icons/scalable/zoom-100-identifier.file b/tools/source_icons/scalable/zoom-100-identifier.file deleted file mode 100644 index b88690fb1..000000000 --- a/tools/source_icons/scalable/zoom-100-identifier.file +++ /dev/null @@ -1 +0,0 @@ -zoom-100-identifier.png,w12,actions diff --git a/tools/source_icons/scalable/zoom-100-identifier.svg b/tools/source_icons/scalable/zoom-100-identifier.svg deleted file mode 100644 index a45346558..000000000 --- a/tools/source_icons/scalable/zoom-100-identifier.svg +++ /dev/null @@ -1,653 +0,0 @@ - - - - - gtk-zoom-100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - gtk-zoom-100 - - http://www.rawtherapee.com/ - 2013-04-10 - - - DrSlony - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/source_icons/script/change_colour.bash b/tools/source_icons/script/change_colour.bash deleted file mode 100755 index a3e63d22f..000000000 --- a/tools/source_icons/script/change_colour.bash +++ /dev/null @@ -1,52 +0,0 @@ -#! /bin/bash - -### arg1 : this script takes as input a directory which -### contains the svg files for the icon set. -### arg2: it creates in the output directory the svg files -### for the desired colour -### arg3: the colour name (in hexadecimal) to be used for the icon -### arg4: the colour name (in hexadecimal) to be used for the gradient - -DIR_IN=$1 -DIR_OUT=$2 -COLOUR_BG=$3 - -OPACITY=0.85 - - -if [ $# -lt 3 ] -then - echo "Usage: $(basename $0) {input svg directory} {output svg directory} {colour name (hexadecimal)}" - exit 0 -fi - -if [ $# -eq 4 ] -then - COLOUR_GRADIENT=$4 -else - COLOUR_GRADIENT="#ffffff" -fi - -### ORIGINAL = #2a7fff -### PURPLE = #843382 -### GRAY 60% = #666666 -### DARK THEME = #D2D2D2 -### LIGHT THEME = #252525 - - -ORIGINAL="#2a7fff" ### it is the default colour which has been used to develop the gold standard icon set -for SVG in $(ls $DIR_IN/*.svg) -do -# sed -e "s/$ORIGINAL/$COLOUR_BG/g" $SVG > $DIR_OUT/$(basename $SVG) - - sed -e "s/style=\"opacity:0.69.*;fill:$ORIGINAL/style=\"opacity:$OPACITY;fill:$COLOUR_BG/g" -e "s/style=\"opacity:0.7*;fill:$ORIGINAL/style=\"opacity:$OPACITY;fill:$COLOUR_BG/g" -e "s/$ORIGINAL/$COLOUR_BG/g" -e "s/style=\"stop-color:\#ffffff;/style=\"stop-color:$COLOUR_GRADIENT;/g" $SVG > $DIR_OUT/$(basename $SVG) - - - FILE_NAME=${SVG%.svg} - FILE=$FILE_NAME.file - cp $FILE $DIR_OUT - -done - - -#cp $DIR_IN/index.theme $DIR_OUT diff --git a/tools/source_icons/script/make_all_icon_theme.bash b/tools/source_icons/script/make_all_icon_theme.bash deleted file mode 100755 index 4047bf7a9..000000000 --- a/tools/source_icons/script/make_all_icon_theme.bash +++ /dev/null @@ -1,78 +0,0 @@ -#! /bin/bash - -### arg1 : this script takes as input a directory which -### contains the svg files for the gold standard icon set. -### arg2: it creates in the output directory the png files - -### make_all_icon_theme.bash tools/icons_source/scalable /tmp/png - -DIR_IN=$1 -DIR_OUT=$2 - - -if [ $# -lt 2 ] -then - echo "Usage: $(basename $0) {input svg directory} {output directory}" - exit 0 -fi - - -if [ ! -d $DIR_OUT ] -then - mkdir $DIR_OUT -else - rm -r $DIR_OUT/* -fi - -if [ ! -d $DIR_OUT/Dark ] -then - mkdir $DIR_OUT/Dark -fi - -if [ ! -d $DIR_OUT/Light ] -then - mkdir $DIR_OUT/Light -fi - - -rm -r $DIR_OUT/Dark/* -rm -r $DIR_OUT/Light/* - -### make all icon with generic option -./make_icon_theme.bash $DIR_IN $DIR_OUT/Dark "#BBBBBB" "#FFFFFF" -./make_icon_theme.bash $DIR_IN $DIR_OUT/Light "#252525" "#7D7D7D" - -### make custom icon with specific option -if [ ! -d $DIR_OUT/Light/tmp ] -then - mkdir $DIR_OUT/Light/tmp -fi - -if [ ! -d $DIR_OUT/Dark/tmp ] -then - mkdir $DIR_OUT/Dark/tmp -fi - -cp $DIR_IN/closedhand.* $DIR_OUT/Dark/tmp -cp $DIR_IN/closedhand.* $DIR_OUT/Light/tmp - -./make_icon_theme.bash $DIR_OUT/Dark/tmp $DIR_OUT/Dark "#BBBBBB" "#000000" -./make_icon_theme.bash $DIR_OUT/Light/tmp $DIR_OUT/Light "#252525" "#FFFFFF" - -DIR_TMP=/tmp/icons - -if [ ! -d $DIR_TMP ] -then - mkdir $DIR_TMP -fi - -cp -r $DIR_OUT/* $DIR_TMP -mv $DIR_TMP/Dark/*.png $DIR_TMP/Dark/actions -mv $DIR_TMP/Light/*.png $DIR_TMP/Light/actions -/bin/rm -r $DIR_TMP/Dark/*.file $DIR_TMP/Dark/tmp -/bin/rm -r $DIR_TMP/Light/*.file $DIR_TMP/Light/tmp - -cd /tmp -tar cvf iconsets.tar icons -bzip2 iconsets.tar -mv iconsets.tar.bz2 $DIR_OUT diff --git a/tools/source_icons/script/make_icon_theme.bash b/tools/source_icons/script/make_icon_theme.bash deleted file mode 100755 index f20f53af9..000000000 --- a/tools/source_icons/script/make_icon_theme.bash +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -### arg1 : this script takes as input a directory which -### contains the svg files for the gold standard icon set. -### arg2: it creates in the output directory the png files -### for the desired size -### arg3: the colour name (in hexadecimal) to be used - - -### Light Theme -### ./make_icon_theme.bash ../svg/ /tmp/png/ "#252525" "#7D7D7D" - -### Dark Theme -### ./make_icon_theme.bash ../svg/ /tmp/png/ "#D2D2D2" "#FFFFFF" - - -DIR_IN=$1 -DIR_OUT=$2 -COLOUR_BG=$3 -COLOUR_GRADIENT=$4 - -if [ $# -lt 3 ] -then - echo "Usage: $(basename $0) {input svg directory} {output directory} {background colour name (hexadecimal)} {option: gradient colour name (hexadecimal)}" - exit 0 -fi - - -if [ $# -eq 4 ] -then -./change_colour.bash $DIR_IN $DIR_OUT $COLOUR_BG $COLOUR_GRADIENT -else -./change_colour.bash $DIR_IN $DIR_OUT $COLOUR_BG -fi -./svg2png.bash $DIR_OUT $DIR_OUT $WIDTH -rm $DIR_OUT/*.svg - - - diff --git a/tools/source_icons/script/svg2png.bash b/tools/source_icons/script/svg2png.bash deleted file mode 100755 index 27642a52c..000000000 --- a/tools/source_icons/script/svg2png.bash +++ /dev/null @@ -1,64 +0,0 @@ -#! /bin/bash - -### arg1 : this script takes as input a directory which -### contains the svg files for the gold standard icon set. -### arg2: it creates in the output directory the png files -### for the desired size - - -DIR_IN=$1 -DIR_OUT=$2 - -DIR_TMP=/tmp - -if [ $# -ne 2 ] -then - echo "Usage: $(basename $0) {input svg directory} {output directory} {width (in pixel)}" - exit 0 -fi - -if [ ! -d $DIR_OUT/actions ] -then - mkdir $DIR_OUT/actions -fi - -if [ ! -d $DIR_OUT/devices ] -then - mkdir $DIR_OUT/devices -fi - -if [ ! -d $DIR_OUT/places ] -then - mkdir $DIR_OUT/places -fi - - - -for SVG in $(ls $DIR_IN/*.svg) -do - echo $SVG - - FILE=$(basename $SVG) - FILE_NAME=${FILE%.svg} - FILE=$FILE_NAME.file - - if [ -f $DIR_TMP/$FILE_NAME.bash ] - then - rm $DIR_TMP/$FILE_NAME.bash - fi - - echo "#! /bin/bash" > $DIR_TMP/$FILE_NAME.bash - if [[ $OSTYPE == msys || $OSTYPE == MSYS ]]; then - awk -v s="$SVG" -v d="$DIR_OUT" -F, '{print "\"/c/Program Files/Inkscape/inkscape.exe\" " s " --export-png=" d "/" $1 " -" $2}' $DIR_IN/$FILE >> $DIR_TMP/$FILE_NAME.bash - else - awk -v s="$SVG" -v d="$DIR_OUT" -F, '{print "inkscape " s " --export-png=" d "/" $1 " -" $2}' $DIR_IN/$FILE >> $DIR_TMP/$FILE_NAME.bash - fi - - awk -v s="$SVG" -v d="$DIR_OUT" -F, '{print "mv " d "/" $1 " " d "/" $3}' $DIR_IN/$FILE >> $DIR_TMP/$FILE_NAME.bash - - chmod +x $DIR_TMP/$FILE_NAME.bash - $DIR_TMP/$FILE_NAME.bash - - rm $DIR_TMP/$FILE_NAME.bash - -done diff --git a/tools/win/InnoSetup/WindowsInnoSetup.iss.in b/tools/win/InnoSetup/WindowsInnoSetup.iss.in index 6814d9c74..11601a53d 100644 --- a/tools/win/InnoSetup/WindowsInnoSetup.iss.in +++ b/tools/win/InnoSetup/WindowsInnoSetup.iss.in @@ -49,7 +49,7 @@ AllowNoIcons=yes LicenseFile={#MyBuildBasePath}\LICENSE.txt OutputDir={#MyBuildBasePath}\..\ OutputBaseFilename={#MyAppName}_{#MyAppVersion}_{#MySystemName}_{#MyBitDepth} -SetupIconFile={#MySourceBasePath}\rtdata\icons\RT.ico +SetupIconFile={#MySourceBasePath}\rtdata\images\non-themed\rawtherapee.ico WizardImageFile={#MySourceBasePath}\tools\win\InnoSetup\installerStrip.bmp WizardImageBackColor=$2A2A2A Compression=lzma